MIPS: Add LoadIC_Slow builtin and use it for loading properties from primitive values.
Port r14950 (12748bb) Original commit message: This fixes recent performance regressions on Dromaeo. BUG=chromium:242512 Review URL: https://codereview.chromium.org/16452011 Patch from Balazs Kilvady <kilvadyb@homejinni.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
8bd4199fdd
commit
b8714d72d1
@ -646,9 +646,6 @@ void KeyedCallIC::GenerateNormal(MacroAssembler* masm, int argc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Defined in ic.cc.
|
|
||||||
Object* LoadIC_Miss(Arguments args);
|
|
||||||
|
|
||||||
void LoadIC::GenerateMegamorphic(MacroAssembler* masm) {
|
void LoadIC::GenerateMegamorphic(MacroAssembler* masm) {
|
||||||
// ----------- S t a t e -------------
|
// ----------- S t a t e -------------
|
||||||
// -- a2 : name
|
// -- a2 : name
|
||||||
@ -710,6 +707,21 @@ void LoadIC::GenerateMiss(MacroAssembler* masm) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void LoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) {
|
||||||
|
// ---------- S t a t e --------------
|
||||||
|
// -- a2 : name
|
||||||
|
// -- ra : return address
|
||||||
|
// -- a0 : receiver
|
||||||
|
// -- sp[0] : receiver
|
||||||
|
// -----------------------------------
|
||||||
|
|
||||||
|
__ mov(a3, a0);
|
||||||
|
__ Push(a3, a2);
|
||||||
|
|
||||||
|
__ TailCallRuntime(Runtime::kGetProperty, 2, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static MemOperand GenerateMappedArgumentsLookup(MacroAssembler* masm,
|
static MemOperand GenerateMappedArgumentsLookup(MacroAssembler* masm,
|
||||||
Register object,
|
Register object,
|
||||||
Register key,
|
Register key,
|
||||||
@ -883,9 +895,6 @@ void KeyedCallIC::GenerateNonStrictArguments(MacroAssembler* masm,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Object* KeyedLoadIC_Miss(Arguments args);
|
|
||||||
|
|
||||||
|
|
||||||
void KeyedLoadIC::GenerateMiss(MacroAssembler* masm, ICMissMode miss_mode) {
|
void KeyedLoadIC::GenerateMiss(MacroAssembler* masm, ICMissMode miss_mode) {
|
||||||
// ---------- S t a t e --------------
|
// ---------- S t a t e --------------
|
||||||
// -- ra : return address
|
// -- ra : return address
|
||||||
|
Loading…
Reference in New Issue
Block a user