summaryrefslogtreecommitdiff
path: root/deps/v8/src/crankshaft/x64/lithium-gap-resolver-x64.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/crankshaft/x64/lithium-gap-resolver-x64.cc')
-rw-r--r--deps/v8/src/crankshaft/x64/lithium-gap-resolver-x64.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/deps/v8/src/crankshaft/x64/lithium-gap-resolver-x64.cc b/deps/v8/src/crankshaft/x64/lithium-gap-resolver-x64.cc
index cc65f188ce..3808c377dc 100644
--- a/deps/v8/src/crankshaft/x64/lithium-gap-resolver-x64.cc
+++ b/deps/v8/src/crankshaft/x64/lithium-gap-resolver-x64.cc
@@ -244,7 +244,9 @@ void LGapResolver::EmitSwap(int index) {
// Swap two general-purpose registers.
Register src = cgen_->ToRegister(source);
Register dst = cgen_->ToRegister(destination);
- __ xchgq(dst, src);
+ __ movp(kScratchRegister, src);
+ __ movp(src, dst);
+ __ movp(dst, kScratchRegister);
} else if ((source->IsRegister() && destination->IsStackSlot()) ||
(source->IsStackSlot() && destination->IsRegister())) {