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:
parent
83f64e8c1f
commit
ddb2d26686
@ -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, ¬in, &slow);
|
|
||||||
__ Ret(USE_DELAY_SLOT);
|
|
||||||
__ ld(v0, mapped_location);
|
|
||||||
__ bind(¬in);
|
|
||||||
// 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();
|
||||||
|
Loading…
Reference in New Issue
Block a user