| Index: src/mips64/code-stubs-mips64.cc
|
| diff --git a/src/mips64/code-stubs-mips64.cc b/src/mips64/code-stubs-mips64.cc
|
| index 9ae9102914cfa668ba70ebaddac6d221be587698..9976af16743c1c8030f7447ab6b474d32d13bd9f 100644
|
| --- a/src/mips64/code-stubs-mips64.cc
|
| +++ b/src/mips64/code-stubs-mips64.cc
|
| @@ -1894,6 +1894,32 @@ void ArgumentsAccessStub::GenerateNewSloppyFast(MacroAssembler* masm) {
|
| }
|
|
|
|
|
| +void LoadIndexedInterceptorStub::Generate(MacroAssembler* masm) {
|
| + // Return address is in ra.
|
| + Label slow;
|
| +
|
| + Register receiver = LoadDescriptor::ReceiverRegister();
|
| + Register key = LoadDescriptor::NameRegister();
|
| +
|
| + // Check that the key is an array index, that is Uint32.
|
| + __ And(t0, key, Operand(kSmiTagMask | kSmiSignMask));
|
| + __ Branch(&slow, ne, t0, Operand(zero_reg));
|
| +
|
| + // Everything is fine, call runtime.
|
| + __ Push(receiver, key); // Receiver, key.
|
| +
|
| + // Perform tail call to the entry.
|
| + __ TailCallExternalReference(
|
| + ExternalReference(IC_Utility(IC::kLoadElementWithInterceptor),
|
| + masm->isolate()),
|
| + 2, 1);
|
| +
|
| + __ bind(&slow);
|
| + PropertyAccessCompiler::TailCallBuiltin(
|
| + masm, PropertyAccessCompiler::MissBuiltin(Code::KEYED_LOAD_IC));
|
| +}
|
| +
|
| +
|
| void ArgumentsAccessStub::GenerateNewStrict(MacroAssembler* masm) {
|
| // sp[0] : number of parameters
|
| // sp[4] : receiver displacement
|
|
|