| 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..38308e5cdef8a71951428d18a14510b805c9070f 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_scratch,
|
| 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 double_scratch);
|
|
|
|
|
| void LoadInstanceDescriptors(Register map, Register descriptors);
|
|
|