Revision: 17383
Author: [email protected]
Date: Fri Oct 25 02:12:17 2013 UTC
Log: Introduce MoveDouble to the X64 MacroAssembler
[email protected]
Review URL: https://codereview.chromium.org/26216008
http://code.google.com/p/v8/source/detail?r=17383
Modified:
/branches/bleeding_edge/src/x64/code-stubs-x64.cc
/branches/bleeding_edge/src/x64/codegen-x64.cc
/branches/bleeding_edge/src/x64/lithium-codegen-x64.cc
/branches/bleeding_edge/src/x64/macro-assembler-x64.h
/branches/bleeding_edge/src/x64/stub-cache-x64.cc
=======================================
--- /branches/bleeding_edge/src/x64/code-stubs-x64.cc Thu Oct 24 12:08:58
2013 UTC
+++ /branches/bleeding_edge/src/x64/code-stubs-x64.cc Fri Oct 25 02:12:17
2013 UTC
@@ -594,7 +594,7 @@
// Input is a HeapNumber. Push it on the FPU stack and load its
// bits into rbx.
__ fld_d(FieldOperand(rax, HeapNumber::kValueOffset));
- __ movq(rbx, FieldOperand(rax, HeapNumber::kValueOffset));
+ __ MoveDouble(rbx, FieldOperand(rax, HeapNumber::kValueOffset));
__ movq(rdx, rbx);
__ bind(&loaded);
=======================================
--- /branches/bleeding_edge/src/x64/codegen-x64.cc Thu Oct 24 10:50:35 2013
UTC
+++ /branches/bleeding_edge/src/x64/codegen-x64.cc Fri Oct 25 02:12:17 2013
UTC
@@ -466,7 +466,7 @@
// Non-hole double, copy value into a heap number.
__ AllocateHeapNumber(rax, r15, &gc_required);
// rax: new heap number
- __ movq(FieldOperand(rax, HeapNumber::kValueOffset), r14);
+ __ MoveDouble(FieldOperand(rax, HeapNumber::kValueOffset), r14);
__ movq(FieldOperand(r11,
r9,
times_pointer_size,
=======================================
--- /branches/bleeding_edge/src/x64/lithium-codegen-x64.cc Wed Oct 23
13:48:04 2013 UTC
+++ /branches/bleeding_edge/src/x64/lithium-codegen-x64.cc Fri Oct 25
02:12:17 2013 UTC
@@ -3315,10 +3315,10 @@
__ LoadFromSafepointRegisterSlot(input_reg, input_reg);
__ bind(&allocated);
- __ movq(tmp2, FieldOperand(input_reg, HeapNumber::kValueOffset));
+ __ MoveDouble(tmp2, FieldOperand(input_reg, HeapNumber::kValueOffset));
__ shl(tmp2, Immediate(1));
__ shr(tmp2, Immediate(1));
- __ movq(FieldOperand(tmp, HeapNumber::kValueOffset), tmp2);
+ __ MoveDouble(FieldOperand(tmp, HeapNumber::kValueOffset), tmp2);
__ StoreToSafepointRegisterSlot(input_reg, tmp);
__ bind(&done);
=======================================
--- /branches/bleeding_edge/src/x64/macro-assembler-x64.h Wed Oct 23
13:48:04 2013 UTC
+++ /branches/bleeding_edge/src/x64/macro-assembler-x64.h Fri Oct 25
02:12:17 2013 UTC
@@ -829,6 +829,8 @@
void Pop(Register dst) { pop(dst); }
void PushReturnAddressFrom(Register src) { push(src); }
void PopReturnAddressTo(Register dst) { pop(dst); }
+ void MoveDouble(Register dst, const Operand& src) { movq(dst, src); }
+ void MoveDouble(const Operand& dst, Register src) { movq(dst, src); }
// Control Flow
void Jump(Address destination, RelocInfo::Mode rmode);
=======================================
--- /branches/bleeding_edge/src/x64/stub-cache-x64.cc Wed Oct 23 08:47:15
2013 UTC
+++ /branches/bleeding_edge/src/x64/stub-cache-x64.cc Fri Oct 25 02:12:17
2013 UTC
@@ -2440,7 +2440,7 @@
// Check if the argument is a heap number and load its value.
__ bind(¬_smi);
__ CheckMap(rax, factory()->heap_number_map(), &slow, DONT_DO_SMI_CHECK);
- __ movq(rbx, FieldOperand(rax, HeapNumber::kValueOffset));
+ __ MoveDouble(rbx, FieldOperand(rax, HeapNumber::kValueOffset));
// Check the sign of the argument. If the argument is positive,
// just return it.
@@ -2458,7 +2458,7 @@
__ bind(&negative_sign);
__ xor_(rbx, rdi);
__ AllocateHeapNumber(rax, rdx, &slow);
- __ movq(FieldOperand(rax, HeapNumber::kValueOffset), rbx);
+ __ MoveDouble(FieldOperand(rax, HeapNumber::kValueOffset), rbx);
__ ret(2 * kPointerSize);
// Tail call the full function. We do not have to patch the receiver
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.