Index: src/arm/lithium-codegen-arm.cc |
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc |
index 9533d03011714b3017c6be7db69727afeea9dabf..207dd8cdaa40550343a1d7a7a31fc6ff5bbc5bc7 100644 |
--- a/src/arm/lithium-codegen-arm.cc |
+++ b/src/arm/lithium-codegen-arm.cc |
@@ -2475,28 +2475,27 @@ void LCodeGen::DoCmpHoleAndBranch(LCmpHoleAndBranch* instr) { |
void LCodeGen::DoCompareMinusZeroAndBranch(LCompareMinusZeroAndBranch* instr) { |
Representation rep = instr->hydrogen()->value()->representation(); |
ASSERT(!rep.IsInteger32()); |
- Label if_false; |
Register scratch = ToRegister(instr->temp()); |
if (rep.IsDouble()) { |
DwVfpRegister value = ToDoubleRegister(instr->value()); |
__ VFPCompareAndSetFlags(value, 0.0); |
- __ b(ne, &if_false); |
+ EmitFalseBranch(instr, ne); |
__ VmovHigh(scratch, value); |
__ cmp(scratch, Operand(0x80000000)); |
} else { |
Register value = ToRegister(instr->value()); |
- __ CheckMap( |
- value, scratch, Heap::kHeapNumberMapRootIndex, &if_false, DO_SMI_CHECK); |
+ __ CheckMap(value, |
+ scratch, |
+ Heap::kHeapNumberMapRootIndex, |
+ instr->FalseLabel(chunk()), |
+ DO_SMI_CHECK); |
__ ldr(scratch, FieldMemOperand(value, HeapNumber::kExponentOffset)); |
__ ldr(ip, FieldMemOperand(value, HeapNumber::kMantissaOffset)); |
__ cmp(scratch, Operand(0x80000000)); |
__ cmp(ip, Operand(0x00000000), eq); |
} |
EmitBranch(instr, eq); |
- |
- __ bind(&if_false); |
- EmitFalseBranch(instr, al); |
} |