| Index: src/mips/macro-assembler-mips.cc
|
| diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc
|
| index 930afcb72abe8787d51955d2ca41235c27bd74ea..147ae7576c52a8666b55abd2135632c05f8e33fc 100644
|
| --- a/src/mips/macro-assembler-mips.cc
|
| +++ b/src/mips/macro-assembler-mips.cc
|
| @@ -4843,7 +4843,7 @@ void MacroAssembler::AssertSmi(Register object) {
|
| void MacroAssembler::AssertString(Register object) {
|
| if (emit_debug_code()) {
|
| STATIC_ASSERT(kSmiTag == 0);
|
| - And(t0, object, Operand(kSmiTagMask));
|
| + SmiTst(object, t0);
|
| Check(ne, kOperandIsASmiAndNotAString, t0, Operand(zero_reg));
|
| push(object);
|
| lw(object, FieldMemOperand(object, HeapObject::kMapOffset));
|
| @@ -4857,7 +4857,7 @@ void MacroAssembler::AssertString(Register object) {
|
| void MacroAssembler::AssertName(Register object) {
|
| if (emit_debug_code()) {
|
| STATIC_ASSERT(kSmiTag == 0);
|
| - And(t0, object, Operand(kSmiTagMask));
|
| + SmiTst(object, t0);
|
| Check(ne, kOperandIsASmiAndNotAName, t0, Operand(zero_reg));
|
| push(object);
|
| lw(object, FieldMemOperand(object, HeapObject::kMapOffset));
|
| @@ -5057,7 +5057,7 @@ void MacroAssembler::EmitSeqStringSetCharCheck(Register string,
|
| Register scratch,
|
| uint32_t encoding_mask) {
|
| Label is_object;
|
| - And(at, string, Operand(kSmiTagMask));
|
| + SmiTst(string, at);
|
| ThrowIf(eq, kNonObject, at, Operand(zero_reg));
|
|
|
| lw(at, FieldMemOperand(string, HeapObject::kMapOffset));
|
| @@ -5071,9 +5071,7 @@ void MacroAssembler::EmitSeqStringSetCharCheck(Register string,
|
| // string length without using a temp register, it is restored at the end of
|
| // this function.
|
| Label index_tag_ok, index_tag_bad;
|
| - // On ARM TrySmiTag is used here.
|
| - AdduAndCheckForOverflow(index, index, index, scratch);
|
| - BranchOnOverflow(&index_tag_bad, scratch);
|
| + TrySmiTag(index, scratch, &index_tag_bad);
|
| Branch(&index_tag_ok);
|
| bind(&index_tag_bad);
|
| Throw(kIndexIsTooLarge);
|
|
|