MIPS: Remove KeyedStoreIC::GenerateRuntimeSetProperty and move Store::GenerateRuntimeSetProperty to the PropertyICCompiler.
Port r23311 (654ca86) BUG= R=verwaest@chromium.org Review URL: https://codereview.chromium.org/504743002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
7db82e0de4
commit
aff1fefe1d
@ -963,6 +963,19 @@ void ElementHandlerCompiler::GenerateLoadDictionaryElement(
|
||||
}
|
||||
|
||||
|
||||
void PropertyICCompiler::GenerateRuntimeSetProperty(MacroAssembler* masm,
|
||||
StrictMode strict_mode) {
|
||||
__ Push(StoreIC::ReceiverRegister(), StoreIC::NameRegister(),
|
||||
StoreIC::ValueRegister());
|
||||
|
||||
__ li(a0, Operand(Smi::FromInt(strict_mode)));
|
||||
__ Push(a0);
|
||||
|
||||
// Do tail-call to runtime routine.
|
||||
__ TailCallRuntime(Runtime::kSetProperty, 4, 1);
|
||||
}
|
||||
|
||||
|
||||
#undef __
|
||||
}
|
||||
} // namespace v8::internal
|
||||
|
@ -9,6 +9,7 @@
|
||||
|
||||
#include "src/codegen.h"
|
||||
#include "src/ic/ic.h"
|
||||
#include "src/ic/ic-compiler.h"
|
||||
#include "src/ic/stub-cache.h"
|
||||
|
||||
namespace v8 {
|
||||
@ -687,17 +688,6 @@ void KeyedLoadIC::GenerateString(MacroAssembler* masm) {
|
||||
}
|
||||
|
||||
|
||||
void KeyedStoreIC::GenerateRuntimeSetProperty(MacroAssembler* masm,
|
||||
StrictMode strict_mode) {
|
||||
// Push receiver, key and value for runtime call.
|
||||
__ Push(ReceiverRegister(), NameRegister(), ValueRegister());
|
||||
__ li(a0, Operand(Smi::FromInt(strict_mode))); // Strict mode.
|
||||
__ Push(a0);
|
||||
|
||||
__ TailCallRuntime(Runtime::kSetProperty, 4, 1);
|
||||
}
|
||||
|
||||
|
||||
static void KeyedStoreGenerateGenericHelper(
|
||||
MacroAssembler* masm, Label* fast_object, Label* fast_double, Label* slow,
|
||||
KeyedStoreCheckMap check_map, KeyedStoreIncrementLength increment_length,
|
||||
@ -896,7 +886,7 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm,
|
||||
// a0: value.
|
||||
// a1: key.
|
||||
// a2: receiver.
|
||||
GenerateRuntimeSetProperty(masm, strict_mode);
|
||||
PropertyICCompiler::GenerateRuntimeSetProperty(masm, strict_mode);
|
||||
|
||||
// Extra capacity case: Check if there is extra capacity to
|
||||
// perform the store and update the length. Used for adding one
|
||||
@ -1065,18 +1055,6 @@ void StoreIC::GenerateNormal(MacroAssembler* masm) {
|
||||
}
|
||||
|
||||
|
||||
void StoreIC::GenerateRuntimeSetProperty(MacroAssembler* masm,
|
||||
StrictMode strict_mode) {
|
||||
__ Push(ReceiverRegister(), NameRegister(), ValueRegister());
|
||||
|
||||
__ li(a0, Operand(Smi::FromInt(strict_mode)));
|
||||
__ Push(a0);
|
||||
|
||||
// Do tail-call to runtime routine.
|
||||
__ TailCallRuntime(Runtime::kSetProperty, 4, 1);
|
||||
}
|
||||
|
||||
|
||||
#undef __
|
||||
|
||||
|
||||
|
@ -964,6 +964,19 @@ void ElementHandlerCompiler::GenerateLoadDictionaryElement(
|
||||
}
|
||||
|
||||
|
||||
void PropertyICCompiler::GenerateRuntimeSetProperty(MacroAssembler* masm,
|
||||
StrictMode strict_mode) {
|
||||
__ Push(StoreIC::ReceiverRegister(), StoreIC::NameRegister(),
|
||||
StoreIC::ValueRegister());
|
||||
|
||||
__ li(a0, Operand(Smi::FromInt(strict_mode)));
|
||||
__ Push(a0);
|
||||
|
||||
// Do tail-call to runtime routine.
|
||||
__ TailCallRuntime(Runtime::kSetProperty, 4, 1);
|
||||
}
|
||||
|
||||
|
||||
#undef __
|
||||
}
|
||||
} // namespace v8::internal
|
||||
|
@ -9,6 +9,7 @@
|
||||
|
||||
#include "src/codegen.h"
|
||||
#include "src/ic/ic.h"
|
||||
#include "src/ic/ic-compiler.h"
|
||||
#include "src/ic/stub-cache.h"
|
||||
|
||||
namespace v8 {
|
||||
@ -692,18 +693,6 @@ void KeyedLoadIC::GenerateString(MacroAssembler* masm) {
|
||||
}
|
||||
|
||||
|
||||
void KeyedStoreIC::GenerateRuntimeSetProperty(MacroAssembler* masm,
|
||||
StrictMode strict_mode) {
|
||||
// Push receiver, key and value for runtime call.
|
||||
__ Push(ReceiverRegister(), NameRegister(), ValueRegister());
|
||||
|
||||
__ li(a0, Operand(Smi::FromInt(strict_mode))); // Strict mode.
|
||||
__ Push(a0);
|
||||
|
||||
__ TailCallRuntime(Runtime::kSetProperty, 4, 1);
|
||||
}
|
||||
|
||||
|
||||
static void KeyedStoreGenerateGenericHelper(
|
||||
MacroAssembler* masm, Label* fast_object, Label* fast_double, Label* slow,
|
||||
KeyedStoreCheckMap check_map, KeyedStoreIncrementLength increment_length,
|
||||
@ -906,7 +895,7 @@ void KeyedStoreIC::GenerateGeneric(MacroAssembler* masm,
|
||||
// a0: value.
|
||||
// a1: key.
|
||||
// a2: receiver.
|
||||
GenerateRuntimeSetProperty(masm, strict_mode);
|
||||
PropertyICCompiler::GenerateRuntimeSetProperty(masm, strict_mode);
|
||||
|
||||
// Extra capacity case: Check if there is extra capacity to
|
||||
// perform the store and update the length. Used for adding one
|
||||
@ -1072,18 +1061,6 @@ void StoreIC::GenerateNormal(MacroAssembler* masm) {
|
||||
}
|
||||
|
||||
|
||||
void StoreIC::GenerateRuntimeSetProperty(MacroAssembler* masm,
|
||||
StrictMode strict_mode) {
|
||||
__ Push(ReceiverRegister(), NameRegister(), ValueRegister());
|
||||
|
||||
__ li(a0, Operand(Smi::FromInt(strict_mode)));
|
||||
__ Push(a0);
|
||||
|
||||
// Do tail-call to runtime routine.
|
||||
__ TailCallRuntime(Runtime::kSetProperty, 4, 1);
|
||||
}
|
||||
|
||||
|
||||
#undef __
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user