Index: src/mips/code-stubs-mips.cc |
diff --git a/src/mips/code-stubs-mips.cc b/src/mips/code-stubs-mips.cc |
index e14b2bae899ebbe24e70b670f8c734de8d03a635..749ffc2b0e4ed45a5cfac5c3adc306a90e4dbe3b 100644 |
--- a/src/mips/code-stubs-mips.cc |
+++ b/src/mips/code-stubs-mips.cc |
@@ -672,9 +672,8 @@ void FloatingPointHelper::LoadNumberAsInt32Double(MacroAssembler* masm, |
// Restore FCSR. |
__ ctc1(scratch1, FCSR); |
- // Check for inexact conversion. |
- __ srl(scratch2, scratch2, kFCSRFlagShift); |
- __ And(scratch2, scratch2, (kFCSRFlagMask | kFCSRInexactFlagBit)); |
+ // Check for inexact conversion or exception. |
+ __ And(scratch2, scratch2, kFCSRFlagMask); |
// Jump to not_int32 if the operation did not succeed. |
__ Branch(not_int32, ne, scratch2, Operand(zero_reg)); |
@@ -757,9 +756,8 @@ void FloatingPointHelper::LoadNumberAsInt32(MacroAssembler* masm, |
// Restore FCSR. |
__ ctc1(scratch1, FCSR); |
- // Check for inexact conversion. |
- __ srl(scratch2, scratch2, kFCSRFlagShift); |
- __ And(scratch2, scratch2, (kFCSRFlagMask | kFCSRInexactFlagBit)); |
+ // Check for inexact conversion or exception. |
+ __ And(scratch2, scratch2, kFCSRFlagMask); |
// Jump to not_int32 if the operation did not succeed. |
__ Branch(not_int32, ne, scratch2, Operand(zero_reg)); |
@@ -1966,6 +1964,7 @@ void UnaryOpStub::GenerateHeapNumberStubBitNot(MacroAssembler* masm) { |
GenerateTypeTransition(masm); |
} |
+ |
void UnaryOpStub::GenerateHeapNumberCodeSub(MacroAssembler* masm, |
Label* slow) { |
EmitCheckForHeapNumber(masm, a0, a1, t2, slow); |
@@ -2777,8 +2776,7 @@ void BinaryOpStub::GenerateInt32Stub(MacroAssembler* masm) { |
// Restore FCSR. |
__ ctc1(scratch1, FCSR); |
- // Check for inexact conversion. |
- __ srl(scratch2, scratch2, kFCSRFlagShift); |
+ // Check for inexact conversion or exception. |
__ And(scratch2, scratch2, kFCSRFlagMask); |
if (result_type_ <= BinaryOpIC::INT32) { |
@@ -6374,6 +6372,7 @@ void ICCompareStub::GenerateMiss(MacroAssembler* masm) { |
__ Jump(a2); |
} |
+ |
void DirectCEntryStub::Generate(MacroAssembler* masm) { |
// No need to pop or drop anything, LeaveExitFrame will restore the old |
// stack, thus dropping the allocated space for the return value. |
@@ -6398,6 +6397,7 @@ void DirectCEntryStub::GenerateCall(MacroAssembler* masm, |
this->GenerateCall(masm, t9); |
} |
+ |
void DirectCEntryStub::GenerateCall(MacroAssembler* masm, |
Register target) { |
__ Move(t9, target); |