From b8714d72d13e5585fce9535ebec95297bd450225 Mon Sep 17 00:00:00 2001 From: "palfia@homejinni.com" Date: Wed, 5 Jun 2013 17:52:44 +0000 Subject: [PATCH] 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 . git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/mips/ic-mips.cc | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/mips/ic-mips.cc b/src/mips/ic-mips.cc index 8b2b3254f1..a4dc9e45c8 100644 --- a/src/mips/ic-mips.cc +++ b/src/mips/ic-mips.cc @@ -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) { // ----------- S t a t e ------------- // -- 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, Register object, Register key, @@ -883,9 +895,6 @@ void KeyedCallIC::GenerateNonStrictArguments(MacroAssembler* masm, } -Object* KeyedLoadIC_Miss(Arguments args); - - void KeyedLoadIC::GenerateMiss(MacroAssembler* masm, ICMissMode miss_mode) { // ---------- S t a t e -------------- // -- ra : return address