| Index: src/arm/lithium-codegen-arm.cc
|
| diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
|
| index 6bbdcc90d759ef11076b733237e0ba7af5801374..7e91af36782318a85a43584244f6a3e1fc031cb4 100644
|
| --- a/src/arm/lithium-codegen-arm.cc
|
| +++ b/src/arm/lithium-codegen-arm.cc
|
| @@ -1409,12 +1409,9 @@ void LCodeGen::DoDivI(LDivI* instr) {
|
|
|
| // Check for (kMinInt / -1).
|
| if (instr->hydrogen()->CheckFlag(HValue::kCanOverflow)) {
|
| - Label left_not_min_int;
|
| __ cmp(left, Operand(kMinInt));
|
| - __ b(ne, &left_not_min_int);
|
| - __ cmp(right, Operand(-1));
|
| + __ cmp(right, Operand(-1), eq);
|
| DeoptimizeIf(eq, instr->environment());
|
| - __ bind(&left_not_min_int);
|
| }
|
|
|
| if (CpuFeatures::IsSupported(SUDIV)) {
|
| @@ -1513,12 +1510,9 @@ void LCodeGen::DoMathFloorOfDiv(LMathFloorOfDiv* instr) {
|
|
|
| // Check for (kMinInt / -1).
|
| if (instr->hydrogen()->CheckFlag(HValue::kCanOverflow)) {
|
| - Label left_not_min_int;
|
| __ cmp(left, Operand(kMinInt));
|
| - __ b(ne, &left_not_min_int);
|
| - __ cmp(right, Operand(-1));
|
| + __ cmp(right, Operand(-1), eq);
|
| DeoptimizeIf(eq, instr->environment());
|
| - __ bind(&left_not_min_int);
|
| }
|
|
|
| // Check for (0 / -x) that will produce negative zero.
|
| @@ -1887,8 +1881,7 @@ void LCodeGen::DoValueOf(LValueOf* instr) {
|
| // If the object is not a value type, return the object.
|
| __ CompareObjectType(input, map, map, JS_VALUE_TYPE);
|
| __ Move(result, input, ne);
|
| - __ b(ne, &done);
|
| - __ ldr(result, FieldMemOperand(input, JSValue::kValueOffset));
|
| + __ ldr(result, FieldMemOperand(input, JSValue::kValueOffset), eq);
|
|
|
| __ bind(&done);
|
| }
|
| @@ -5580,14 +5573,11 @@ void LCodeGen::EmitIsConstructCall(Register temp1, Register temp2) {
|
| __ ldr(temp1, MemOperand(fp, StandardFrameConstants::kCallerFPOffset));
|
|
|
| // Skip the arguments adaptor frame if it exists.
|
| - Label check_frame_marker;
|
| __ ldr(temp2, MemOperand(temp1, StandardFrameConstants::kContextOffset));
|
| __ cmp(temp2, Operand(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)));
|
| - __ b(ne, &check_frame_marker);
|
| - __ ldr(temp1, MemOperand(temp1, StandardFrameConstants::kCallerFPOffset));
|
| + __ ldr(temp1, MemOperand(temp1, StandardFrameConstants::kCallerFPOffset), eq);
|
|
|
| // Check the marker in the calling frame.
|
| - __ bind(&check_frame_marker);
|
| __ ldr(temp1, MemOperand(temp1, StandardFrameConstants::kMarkerOffset));
|
| __ cmp(temp1, Operand(Smi::FromInt(StackFrame::CONSTRUCT)));
|
| }
|
|
|