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
This commit is contained in:
haitao.feng@intel.com 2014-02-08 02:16:25 +00:00
parent e8175a3e9f
commit 7744134643
3 changed files with 3 additions and 6 deletions

View File

@ -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,

View File

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

View File

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