Commit 77441346 authored by haitao.feng@intel.com's avatar haitao.feng@intel.com

Revert "Introduce MoveDouble to the X64 MacroAssembler" (r17383)

The direction is to use "movl, movq, movp" instead of introducing new
Macro assembler instructions.

R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/101083002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19210 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent e8175a3e
...@@ -422,7 +422,7 @@ void ElementsTransitionGenerator::GenerateDoubleToObject( ...@@ -422,7 +422,7 @@ void ElementsTransitionGenerator::GenerateDoubleToObject(
// Non-hole double, copy value into a heap number. // Non-hole double, copy value into a heap number.
__ AllocateHeapNumber(rax, r15, &gc_required); __ AllocateHeapNumber(rax, r15, &gc_required);
// rax: new heap number // rax: new heap number
__ MoveDouble(FieldOperand(rax, HeapNumber::kValueOffset), r14); __ movq(FieldOperand(rax, HeapNumber::kValueOffset), r14);
__ movp(FieldOperand(r11, __ movp(FieldOperand(r11,
r9, r9,
times_pointer_size, times_pointer_size,
......
...@@ -3417,10 +3417,10 @@ void LCodeGen::DoDeferredMathAbsTaggedHeapNumber(LMathAbs* instr) { ...@@ -3417,10 +3417,10 @@ void LCodeGen::DoDeferredMathAbsTaggedHeapNumber(LMathAbs* instr) {
__ LoadFromSafepointRegisterSlot(input_reg, input_reg); __ LoadFromSafepointRegisterSlot(input_reg, input_reg);
__ bind(&allocated); __ bind(&allocated);
__ MoveDouble(tmp2, FieldOperand(input_reg, HeapNumber::kValueOffset)); __ movq(tmp2, FieldOperand(input_reg, HeapNumber::kValueOffset));
__ shl(tmp2, Immediate(1)); __ shl(tmp2, Immediate(1));
__ shr(tmp2, Immediate(1)); __ shr(tmp2, Immediate(1));
__ MoveDouble(FieldOperand(tmp, HeapNumber::kValueOffset), tmp2); __ movq(FieldOperand(tmp, HeapNumber::kValueOffset), tmp2);
__ StoreToSafepointRegisterSlot(input_reg, tmp); __ StoreToSafepointRegisterSlot(input_reg, tmp);
__ bind(&done); __ bind(&done);
......
...@@ -841,9 +841,6 @@ class MacroAssembler: public Assembler { ...@@ -841,9 +841,6 @@ class MacroAssembler: public Assembler {
void Pop(Register dst) { pop(dst); } void Pop(Register dst) { pop(dst); }
void PushReturnAddressFrom(Register src) { push(src); } void PushReturnAddressFrom(Register src) { push(src); }
void PopReturnAddressTo(Register dst) { pop(dst); } 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); }
void Move(Register dst, ExternalReference ext) { void Move(Register dst, ExternalReference ext) {
movp(dst, reinterpret_cast<Address>(ext.address()), movp(dst, reinterpret_cast<Address>(ext.address()),
RelocInfo::EXTERNAL_REFERENCE); RelocInfo::EXTERNAL_REFERENCE);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment