Chromium Code Reviews| Index: src/arm/macro-assembler-arm.h |
| diff --git a/src/arm/macro-assembler-arm.h b/src/arm/macro-assembler-arm.h |
| index 747dd3b88298065d2ae6966514e5a5dadd8f17cc..8ff261b7ecb622db3290506019392173dbc5a330 100644 |
| --- a/src/arm/macro-assembler-arm.h |
| +++ b/src/arm/macro-assembler-arm.h |
| @@ -484,6 +484,11 @@ class MacroAssembler: public Assembler { |
| const double imm, |
| const Register scratch = no_reg); |
| + void VmovHigh(Register dst, DwVfpRegister src); |
| + void VmovHigh(DwVfpRegister dst, Register src); |
| + void VmovLow(Register dst, DwVfpRegister src); |
| + void VmovLow(DwVfpRegister dst, Register src); |
| + |
| // Converts the smi or heap number in object to an int32 using the rules |
| // for ToInt32 as described in ECMAScript 9.5.: the value is truncated |
| // and brought into the range -2^31 .. +2^31 - 1. |
| @@ -494,14 +499,14 @@ class MacroAssembler: public Assembler { |
| Register scratch2, |
| Register scratch3, |
| DwVfpRegister double_scratch1, |
| - DwVfpRegister double_scratch2, |
| + LowDwVfpRegister double_scratch2, |
| Label* not_int32); |
| // Loads the number from object into dst register. |
| // If |object| is neither smi nor heap number, |not_number| is jumped to |
| // with |object| still intact. |
| void LoadNumber(Register object, |
| - DwVfpRegister dst, |
| + LowDwVfpRegister dst, |
| Register heap_number_map, |
| Register scratch, |
| Label* not_number); |
| @@ -515,7 +520,7 @@ class MacroAssembler: public Assembler { |
| DwVfpRegister double_dst, |
| Register heap_number_map, |
| Register scratch, |
| - DwVfpRegister double_scratch, |
| + LowDwVfpRegister double_scratch, |
| Label* not_int32); |
| // Loads the number from object into dst as a 32-bit integer. |
| @@ -528,7 +533,7 @@ class MacroAssembler: public Assembler { |
| Register heap_number_map, |
| Register scratch, |
| DwVfpRegister double_scratch0, |
| - DwVfpRegister double_scratch1, |
| + LowDwVfpRegister double_scratch1, |
| Label* not_int32); |
| @@ -796,8 +801,7 @@ class MacroAssembler: public Assembler { |
| // Copies a fixed number of fields of heap objects from src to dst. |
| void CopyFields(Register dst, |
| Register src, |
| - DwVfpRegister double_scratch, |
| - SwVfpRegister single_scratch, |
| + LowDwVfpRegister double_scratch, |
| int field_count); |
| // Copies a number of bytes from src to dst. All registers are clobbered. On |
| @@ -874,6 +878,7 @@ class MacroAssembler: public Assembler { |
| Register key_reg, |
| Register elements_reg, |
| Register scratch1, |
| + LowDwVfpRegister double_scratch0, |
|
ulan
2013/07/25 11:49:54
double_scratch would be more consistent with the r
|
| Label* fail, |
| int elements_offset = 0); |
| @@ -957,26 +962,27 @@ class MacroAssembler: public Assembler { |
| // Load the value of a smi object into a double register. |
| // The register value must be between d0 and d15. |
| - void SmiToDouble(DwVfpRegister value, Register smi); |
| + void SmiToDouble(LowDwVfpRegister value, Register smi); |
| // Check if a double can be exactly represented as a signed 32-bit integer. |
| // Z flag set to one if true. |
| void TestDoubleIsInt32(DwVfpRegister double_input, |
| - DwVfpRegister double_scratch); |
| + LowDwVfpRegister double_scratch); |
| // Try to convert a double to a signed 32-bit integer. |
| // Z flag set to one and result assigned if the conversion is exact. |
| void TryDoubleToInt32Exact(Register result, |
| DwVfpRegister double_input, |
| - DwVfpRegister double_scratch); |
| + LowDwVfpRegister double_scratch); |
| // Floor a double and writes the value to the result register. |
| // Go to exact if the conversion is exact (to be able to test -0), |
| // fall through calling code if an overflow occurred, else go to done. |
| + // In return, input_high is loaded with high bits of input. |
| void TryInt32Floor(Register result, |
| DwVfpRegister double_input, |
| Register input_high, |
| - DwVfpRegister double_scratch, |
| + LowDwVfpRegister double_scratch, |
| Label* done, |
| Label* exact); |
| @@ -989,7 +995,7 @@ class MacroAssembler: public Assembler { |
| Register scratch, |
| Register scratch_high, |
| Register scratch_low, |
| - DwVfpRegister double_scratch); |
| + LowDwVfpRegister double_scratch); |
| // Check whether d16-d31 are available on the CPU. The result is given by the |
| // Z condition flag: Z==0 if d16-d31 available, Z==1 otherwise. |
| @@ -1311,7 +1317,7 @@ class MacroAssembler: public Assembler { |
| void ClampDoubleToUint8(Register result_reg, |
| DwVfpRegister input_reg, |
| - DwVfpRegister temp_double_reg); |
| + LowDwVfpRegister temp_double_reg); |
|
ulan
2013/07/25 11:49:54
double_scratch would be more consistent with the r
|
| void LoadInstanceDescriptors(Register map, Register descriptors); |