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); |