Index: src/mips64/macro-assembler-mips64.cc |
diff --git a/src/mips64/macro-assembler-mips64.cc b/src/mips64/macro-assembler-mips64.cc |
index 602cb54f3c787ece26faeb32ab16c3398154234b..0568cd6bea8b5c82b8a5ec724118b7c9c3b4c8ee 100644 |
--- a/src/mips64/macro-assembler-mips64.cc |
+++ b/src/mips64/macro-assembler-mips64.cc |
@@ -1439,9 +1439,8 @@ void MacroAssembler::FlushICache(Register address, unsigned instructions) { |
MultiPush(saved_regs); |
AllowExternalCallThatCantCauseGC scope(this); |
- // Save to a0 in case address == a4. |
Move(a0, address); |
- PrepareCallCFunction(2, a4); |
+ PrepareCallCFunction(2, t8); |
li(a1, instructions * kInstrSize); |
CallCFunction(ExternalReference::flush_icache_function(isolate()), 2); |
@@ -5348,13 +5347,10 @@ void MacroAssembler::AssertSmi(Register object) { |
void MacroAssembler::AssertString(Register object) { |
if (emit_debug_code()) { |
STATIC_ASSERT(kSmiTag == 0); |
- SmiTst(object, a4); |
- Check(ne, kOperandIsASmiAndNotAString, a4, Operand(zero_reg)); |
- push(object); |
- ld(object, FieldMemOperand(object, HeapObject::kMapOffset)); |
- lbu(object, FieldMemOperand(object, Map::kInstanceTypeOffset)); |
- Check(lo, kOperandIsNotAString, object, Operand(FIRST_NONSTRING_TYPE)); |
- pop(object); |
+ SmiTst(object, t8); |
+ Check(ne, kOperandIsASmiAndNotAString, t8, Operand(zero_reg)); |
+ GetObjectType(object, t8, t8); |
+ Check(lo, kOperandIsNotAString, t8, Operand(FIRST_NONSTRING_TYPE)); |
} |
} |
@@ -5362,13 +5358,10 @@ void MacroAssembler::AssertString(Register object) { |
void MacroAssembler::AssertName(Register object) { |
if (emit_debug_code()) { |
STATIC_ASSERT(kSmiTag == 0); |
- SmiTst(object, a4); |
- Check(ne, kOperandIsASmiAndNotAName, a4, Operand(zero_reg)); |
- push(object); |
- ld(object, FieldMemOperand(object, HeapObject::kMapOffset)); |
- lbu(object, FieldMemOperand(object, Map::kInstanceTypeOffset)); |
- Check(le, kOperandIsNotAName, object, Operand(LAST_NAME_TYPE)); |
- pop(object); |
+ SmiTst(object, t8); |
+ Check(ne, kOperandIsASmiAndNotAName, t8, Operand(zero_reg)); |
+ GetObjectType(object, t8, t8); |
+ Check(le, kOperandIsNotAName, t8, Operand(LAST_NAME_TYPE)); |
} |
} |
@@ -5376,10 +5369,10 @@ void MacroAssembler::AssertName(Register object) { |
void MacroAssembler::AssertFunction(Register object) { |
if (emit_debug_code()) { |
STATIC_ASSERT(kSmiTag == 0); |
- SmiTst(object, t0); |
- Check(ne, kOperandIsASmiAndNotAFunction, t0, Operand(zero_reg)); |
- GetObjectType(object, t0, t0); |
- Check(eq, kOperandIsNotAFunction, t0, Operand(JS_FUNCTION_TYPE)); |
+ SmiTst(object, t8); |
+ Check(ne, kOperandIsASmiAndNotAFunction, t8, Operand(zero_reg)); |
+ GetObjectType(object, t8, t8); |
+ Check(eq, kOperandIsNotAFunction, t8, Operand(JS_FUNCTION_TYPE)); |
} |
} |
@@ -5391,11 +5384,9 @@ void MacroAssembler::AssertUndefinedOrAllocationSite(Register object, |
AssertNotSmi(object); |
LoadRoot(scratch, Heap::kUndefinedValueRootIndex); |
Branch(&done_checking, eq, object, Operand(scratch)); |
- push(object); |
- ld(object, FieldMemOperand(object, HeapObject::kMapOffset)); |
+ ld(t8, FieldMemOperand(object, HeapObject::kMapOffset)); |
LoadRoot(scratch, Heap::kAllocationSiteMapRootIndex); |
- Assert(eq, kExpectedUndefinedOrCell, object, Operand(scratch)); |
- pop(object); |
+ Assert(eq, kExpectedUndefinedOrCell, t8, Operand(scratch)); |
bind(&done_checking); |
} |
} |