MIPS: Make KeyedLoads from a sloppy arguments array use a handler.

Port r24120 (eed5963)

Original commit message:
Before, a custom stub was installed.

BUG=
R=paul.lind@imgtec.com

Review URL: https://codereview.chromium.org/594563003

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
balazs.kilvady@imgtec.com 2014-09-22 16:08:49 +00:00
parent 83f64e8c1f
commit ddb2d26686

View File

@ -372,32 +372,6 @@ static MemOperand GenerateUnmappedArgumentsLookup(MacroAssembler* masm,
} }
void KeyedLoadIC::GenerateSloppyArguments(MacroAssembler* masm) {
// The return address is in ra.
Register receiver = LoadDescriptor::ReceiverRegister();
Register key = LoadDescriptor::NameRegister();
DCHECK(receiver.is(a1));
DCHECK(key.is(a2));
Label slow, notin;
MemOperand mapped_location = GenerateMappedArgumentsLookup(
masm, receiver, key, a0, a3, a4, &notin, &slow);
__ Ret(USE_DELAY_SLOT);
__ ld(v0, mapped_location);
__ bind(&notin);
// The unmapped lookup expects that the parameter map is in a2.
MemOperand unmapped_location =
GenerateUnmappedArgumentsLookup(masm, key, a0, a3, &slow);
__ ld(a0, unmapped_location);
__ LoadRoot(a3, Heap::kTheHoleValueRootIndex);
__ Branch(&slow, eq, a0, Operand(a3));
__ Ret(USE_DELAY_SLOT);
__ mov(v0, a0);
__ bind(&slow);
GenerateMiss(masm);
}
void KeyedStoreIC::GenerateSloppyArguments(MacroAssembler* masm) { void KeyedStoreIC::GenerateSloppyArguments(MacroAssembler* masm) {
Register receiver = StoreDescriptor::ReceiverRegister(); Register receiver = StoreDescriptor::ReceiverRegister();
Register key = StoreDescriptor::NameRegister(); Register key = StoreDescriptor::NameRegister();