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:
balazs.kilvady@imgtec.com 2014-08-25 09:55:41 +00:00
parent 7db82e0de4
commit aff1fefe1d
4 changed files with 30 additions and 49 deletions

View File

@ -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

View File

@ -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 __

View File

@ -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

View File

@ -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 __