| Index: src/mips64/code-stubs-mips64.cc
|
| diff --git a/src/mips64/code-stubs-mips64.cc b/src/mips64/code-stubs-mips64.cc
|
| index e08ed69a7d2a4bf706a34041b0ecd5ac70fd9d7b..762084520d55e026fb3ab90e9cbfb63b2ba29549 100644
|
| --- a/src/mips64/code-stubs-mips64.cc
|
| +++ b/src/mips64/code-stubs-mips64.cc
|
| @@ -4755,7 +4755,7 @@ void FastNewObjectStub::Generate(MacroAssembler* masm) {
|
| __ ld(a2, FieldMemOperand(a3, JSFunction::kPrototypeOrInitialMapOffset));
|
| __ JumpIfSmi(a2, &new_object);
|
| __ GetObjectType(a2, a0, a0);
|
| - __ Branch(&new_object, ne, a2, Operand(MAP_TYPE));
|
| + __ Branch(&new_object, ne, a0, Operand(MAP_TYPE));
|
|
|
| // Fall back to runtime if the target differs from the new target's
|
| // initial map constructor.
|
| @@ -4774,7 +4774,7 @@ void FastNewObjectStub::Generate(MacroAssembler* masm) {
|
| __ sd(a3, MemOperand(v0, JSObject::kPropertiesOffset));
|
| __ sd(a3, MemOperand(v0, JSObject::kElementsOffset));
|
| STATIC_ASSERT(JSObject::kHeaderSize == 3 * kPointerSize);
|
| - __ Addu(a1, v0, Operand(JSObject::kHeaderSize));
|
| + __ Daddu(a1, v0, Operand(JSObject::kHeaderSize));
|
|
|
| // ----------- S t a t e -------------
|
| // -- v0 : result (untagged)
|
| @@ -4788,7 +4788,7 @@ void FastNewObjectStub::Generate(MacroAssembler* masm) {
|
| // Perform in-object slack tracking if requested.
|
| Label slack_tracking;
|
| STATIC_ASSERT(Map::kNoSlackTracking == 0);
|
| - __ lw(a3, FieldMemOperand(a2, Map::kBitField3Offset));
|
| + __ lwu(a3, FieldMemOperand(a2, Map::kBitField3Offset));
|
| __ And(at, a3, Operand(Map::ConstructionCounter::kMask));
|
| __ Branch(USE_DELAY_SLOT, &slack_tracking, ne, at, Operand(zero_reg));
|
| __ LoadRoot(a0, Heap::kUndefinedValueRootIndex); // In delay slot.
|
| @@ -4799,7 +4799,7 @@ void FastNewObjectStub::Generate(MacroAssembler* masm) {
|
| // Add the object tag to make the JSObject real.
|
| STATIC_ASSERT(kHeapObjectTag == 1);
|
| __ Ret(USE_DELAY_SLOT);
|
| - __ Addu(v0, v0, Operand(kHeapObjectTag)); // In delay slot.
|
| + __ Daddu(v0, v0, Operand(kHeapObjectTag)); // In delay slot.
|
| }
|
| __ bind(&slack_tracking);
|
| {
|
| @@ -4824,7 +4824,7 @@ void FastNewObjectStub::Generate(MacroAssembler* masm) {
|
| __ And(a3, a3, Operand(Map::ConstructionCounter::kMask));
|
| __ Branch(USE_DELAY_SLOT, &finalize, eq, a3, Operand(zero_reg));
|
| STATIC_ASSERT(kHeapObjectTag == 1);
|
| - __ Addu(v0, v0, Operand(kHeapObjectTag)); // In delay slot.
|
| + __ Daddu(v0, v0, Operand(kHeapObjectTag)); // In delay slot.
|
| __ Ret();
|
|
|
| // Finalize the instance size.
|
| @@ -4845,6 +4845,7 @@ void FastNewObjectStub::Generate(MacroAssembler* masm) {
|
| STATIC_ASSERT(kSmiTag == 0);
|
| STATIC_ASSERT(kSmiTagSize == 1);
|
| __ dsll(a4, a4, kPointerSizeLog2 + kSmiShiftSize + kSmiTagSize);
|
| + __ SmiTag(a4);
|
| __ Push(a2, a4);
|
| __ CallRuntime(Runtime::kAllocateInNewSpace);
|
| __ Pop(a2);
|
| @@ -4852,7 +4853,7 @@ void FastNewObjectStub::Generate(MacroAssembler* masm) {
|
| STATIC_ASSERT(kHeapObjectTag == 1);
|
| __ Dsubu(v0, v0, Operand(kHeapObjectTag));
|
| __ lbu(a5, FieldMemOperand(a2, Map::kInstanceSizeOffset));
|
| - __ Lsa(a5, v0, a5, kPointerSizeLog2);
|
| + __ Dlsa(a5, v0, a5, kPointerSizeLog2);
|
| __ jmp(&done_allocate);
|
|
|
| // Fall back to %NewObject.
|
|
|