MIPS: Remove KeyedStoreIC::GenerateRuntimeSetProperty and move...

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
parent 7db82e0d
......@@ -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 __
......
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