Commit 42054156 authored by baptiste.afsa@arm.com's avatar baptiste.afsa@arm.com

[turbofan] Fix double register swap in ARM and ARM64 backends.

R=bmeurer@chromium.org, mstarzinger@chromium.org
BUG=v8:3553
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent eb19fc01
...@@ -819,7 +819,7 @@ void CodeGenerator::AssembleSwap(InstructionOperand* source, ...@@ -819,7 +819,7 @@ void CodeGenerator::AssembleSwap(InstructionOperand* source,
DwVfpRegister dst = g.ToDoubleRegister(destination); DwVfpRegister dst = g.ToDoubleRegister(destination);
__ Move(temp, src); __ Move(temp, src);
__ Move(src, dst); __ Move(src, dst);
__ Move(src, temp); __ Move(dst, temp);
} else { } else {
DCHECK(destination->IsDoubleStackSlot()); DCHECK(destination->IsDoubleStackSlot());
MemOperand dst = g.ToMemOperand(destination); MemOperand dst = g.ToMemOperand(destination);
......
...@@ -837,7 +837,7 @@ void CodeGenerator::AssembleSwap(InstructionOperand* source, ...@@ -837,7 +837,7 @@ void CodeGenerator::AssembleSwap(InstructionOperand* source,
FPRegister dst = g.ToDoubleRegister(destination); FPRegister dst = g.ToDoubleRegister(destination);
__ Fmov(temp, src); __ Fmov(temp, src);
__ Fmov(src, dst); __ Fmov(src, dst);
__ Fmov(src, temp); __ Fmov(dst, temp);
} else { } else {
DCHECK(destination->IsDoubleStackSlot()); DCHECK(destination->IsDoubleStackSlot());
MemOperand dst = g.ToMemOperand(destination, masm()); MemOperand dst = g.ToMemOperand(destination, masm());
......
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