| Index: src/mips/full-codegen-mips.cc
|
| diff --git a/src/mips/full-codegen-mips.cc b/src/mips/full-codegen-mips.cc
|
| index 9d93aafb9d6aed3b8148de70d9ddae680b0f899f..66bc23537873d414f7566953cf40b240f71e5caf 100644
|
| --- a/src/mips/full-codegen-mips.cc
|
| +++ b/src/mips/full-codegen-mips.cc
|
| @@ -2916,7 +2916,7 @@ void FullCodeGenerator::EmitIsSmi(CallRuntime* expr) {
|
| &if_true, &if_false, &fall_through);
|
|
|
| PrepareForBailoutBeforeSplit(expr, true, if_true, if_false);
|
| - __ And(t0, v0, Operand(kSmiTagMask));
|
| + __ SmiTst(v0, t0);
|
| Split(eq, t0, Operand(zero_reg), if_true, if_false, fall_through);
|
|
|
| context()->Plug(if_true, if_false);
|
| @@ -2937,7 +2937,7 @@ void FullCodeGenerator::EmitIsNonNegativeSmi(CallRuntime* expr) {
|
| &if_true, &if_false, &fall_through);
|
|
|
| PrepareForBailoutBeforeSplit(expr, true, if_true, if_false);
|
| - __ And(at, v0, Operand(kSmiTagMask | 0x80000000));
|
| + __ NonNegativeSmiTst(v0, at);
|
| Split(eq, at, Operand(zero_reg), if_true, if_false, fall_through);
|
|
|
| context()->Plug(if_true, if_false);
|
| @@ -3530,9 +3530,9 @@ void FullCodeGenerator::EmitOneByteSeqStringSetChar(CallRuntime* expr) {
|
| __ Pop(index, value);
|
|
|
| if (FLAG_debug_code) {
|
| - __ And(at, value, Operand(kSmiTagMask));
|
| + __ SmiTst(value, at);
|
| __ ThrowIf(ne, kNonSmiValue, at, Operand(zero_reg));
|
| - __ And(at, index, Operand(kSmiTagMask));
|
| + __ SmiTst(index, at);
|
| __ ThrowIf(ne, kNonSmiIndex, at, Operand(zero_reg));
|
| __ SmiUntag(index, index);
|
| static const uint32_t one_byte_seq_type = kSeqStringTag | kOneByteStringTag;
|
| @@ -3567,9 +3567,9 @@ void FullCodeGenerator::EmitTwoByteSeqStringSetChar(CallRuntime* expr) {
|
| __ Pop(index, value);
|
|
|
| if (FLAG_debug_code) {
|
| - __ And(at, value, Operand(kSmiTagMask));
|
| + __ SmiTst(value, at);
|
| __ ThrowIf(ne, kNonSmiValue, at, Operand(zero_reg));
|
| - __ And(at, index, Operand(kSmiTagMask));
|
| + __ SmiTst(index, at);
|
| __ ThrowIf(ne, kNonSmiIndex, at, Operand(zero_reg));
|
| __ SmiUntag(index, index);
|
| static const uint32_t two_byte_seq_type = kSeqStringTag | kTwoByteStringTag;
|
|
|