Chromium Code Reviews| Index: src/arm/code-stubs-arm.cc |
| diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc |
| index 4e7b248cca41aeec0dbd8a8162638950fd239f5e..06882d68cc4dc8081d3070936bfa40af7b751845 100644 |
| --- a/src/arm/code-stubs-arm.cc |
| +++ b/src/arm/code-stubs-arm.cc |
| @@ -608,14 +608,14 @@ void DoubleToIStub::Generate(MacroAssembler* masm) { |
| // Account for saved regs if input is sp. |
| if (input_reg.is(sp)) double_offset += 2 * kPointerSize; |
| - // Immediate values for this stub fit in instructions, so it's safe to use ip. |
| - Register scratch = ip; |
| + Register scratch = GetRegisterThatIsNotOneOf(input_reg, result_reg); |
| Register scratch_low = |
| GetRegisterThatIsNotOneOf(input_reg, result_reg, scratch); |
| Register scratch_high = |
| GetRegisterThatIsNotOneOf(input_reg, result_reg, scratch, scratch_low); |
| LowDwVfpRegister double_scratch = kScratchDoubleReg; |
| + __ Push(scratch); |
| __ Push(scratch_high, scratch_low); |
|
rmcilroy
2014/01/14 14:23:30
Since Benedikt has fixed the Push/Pop typo, please
Mostyn Bramley-Moore
2014/01/14 14:30:58
Done.
I have verified that this works on master n
|
| if (!skip_fastpath()) { |
| @@ -700,6 +700,7 @@ void DoubleToIStub::Generate(MacroAssembler* masm) { |
| __ bind(&done); |
| __ Pop(scratch_high, scratch_low); |
| + __ Pop(scratch); |
| __ Ret(); |
| } |