| Index: src/mips64/code-stubs-mips64.cc
|
| diff --git a/src/mips64/code-stubs-mips64.cc b/src/mips64/code-stubs-mips64.cc
|
| index 751da944024cb0638ea7c466e248c16793259bc2..e7b4bab2452a2b45a0099d8864033caad93ea097 100644
|
| --- a/src/mips64/code-stubs-mips64.cc
|
| +++ b/src/mips64/code-stubs-mips64.cc
|
| @@ -3318,6 +3318,39 @@ void ToStringStub::Generate(MacroAssembler* masm) {
|
| }
|
|
|
|
|
| +void ToNameStub::Generate(MacroAssembler* masm) {
|
| + // The ToName stub takes on argument in a0.
|
| + Label is_number;
|
| + __ JumpIfSmi(a0, &is_number);
|
| +
|
| + Label not_name;
|
| + STATIC_ASSERT(FIRST_NAME_TYPE == FIRST_TYPE);
|
| + __ GetObjectType(a0, a1, a1);
|
| + // a0: receiver
|
| + // a1: receiver instance type
|
| + __ Branch(¬_name, gt, a1, Operand(LAST_NAME_TYPE));
|
| + __ Ret(USE_DELAY_SLOT);
|
| + __ mov(v0, a0);
|
| + __ bind(¬_name);
|
| +
|
| + Label not_heap_number;
|
| + __ Branch(¬_heap_number, ne, a1, Operand(HEAP_NUMBER_TYPE));
|
| + __ bind(&is_number);
|
| + NumberToStringStub stub(isolate());
|
| + __ TailCallStub(&stub);
|
| + __ bind(¬_heap_number);
|
| +
|
| + Label not_oddball;
|
| + __ Branch(¬_oddball, ne, a1, Operand(ODDBALL_TYPE));
|
| + __ Ret(USE_DELAY_SLOT);
|
| + __ ld(v0, FieldMemOperand(a0, Oddball::kToStringOffset));
|
| + __ bind(¬_oddball);
|
| +
|
| + __ push(a0); // Push argument.
|
| + __ TailCallRuntime(Runtime::kToName);
|
| +}
|
| +
|
| +
|
| void StringHelper::GenerateFlatOneByteStringEquals(
|
| MacroAssembler* masm, Register left, Register right, Register scratch1,
|
| Register scratch2, Register scratch3) {
|
|
|