Commit 12f433e2 authored by mbrandy's avatar mbrandy Committed by Commit bot

PPC: VectorICs: vector [keyed]store ic MISS handling infrastructure.

Port a913f4bf

R=mvstanton@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=

Review URL: https://codereview.chromium.org/1261663002

Cr-Commit-Position: refs/heads/master@{#29878}
parent 6f4c0614
...@@ -474,12 +474,24 @@ void KeyedLoadIC::GenerateMegamorphic(MacroAssembler* masm, ...@@ -474,12 +474,24 @@ void KeyedLoadIC::GenerateMegamorphic(MacroAssembler* masm,
} }
static void StoreIC_PushArgs(MacroAssembler* masm) {
if (FLAG_vector_stores) {
__ Push(StoreDescriptor::ReceiverRegister(),
StoreDescriptor::NameRegister(), StoreDescriptor::ValueRegister(),
VectorStoreICDescriptor::SlotRegister(),
VectorStoreICDescriptor::VectorRegister());
} else {
__ Push(StoreDescriptor::ReceiverRegister(),
StoreDescriptor::NameRegister(), StoreDescriptor::ValueRegister());
}
}
void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) { void KeyedStoreIC::GenerateMiss(MacroAssembler* masm) {
// Push receiver, key and value for runtime call. StoreIC_PushArgs(masm);
__ Push(StoreDescriptor::ReceiverRegister(), StoreDescriptor::NameRegister(),
StoreDescriptor::ValueRegister());
__ TailCallRuntime(Runtime::kKeyedStoreIC_Miss, 3, 1); int args = FLAG_vector_stores ? 5 : 3;
__ TailCallRuntime(Runtime::kKeyedStoreIC_Miss, args, 1);
} }
...@@ -781,11 +793,11 @@ void StoreIC::GenerateMegamorphic(MacroAssembler* masm) { ...@@ -781,11 +793,11 @@ void StoreIC::GenerateMegamorphic(MacroAssembler* masm) {
void StoreIC::GenerateMiss(MacroAssembler* masm) { void StoreIC::GenerateMiss(MacroAssembler* masm) {
__ Push(StoreDescriptor::ReceiverRegister(), StoreDescriptor::NameRegister(), StoreIC_PushArgs(masm);
StoreDescriptor::ValueRegister());
// Perform tail call to the entry. // Perform tail call to the entry.
__ TailCallRuntime(Runtime::kStoreIC_Miss, 3, 1); int args = FLAG_vector_stores ? 5 : 3;
__ TailCallRuntime(Runtime::kStoreIC_Miss, args, 1);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment