Index: src/crankshaft/x87/lithium-gap-resolver-x87.cc |
diff --git a/src/crankshaft/x87/lithium-gap-resolver-x87.cc b/src/crankshaft/x87/lithium-gap-resolver-x87.cc |
index aa9183541fc8b34c20328c15ba6c4b7012e04074..80e39934595ba3a877e210379ea77ff34f3ff8d2 100644 |
--- a/src/crankshaft/x87/lithium-gap-resolver-x87.cc |
+++ b/src/crankshaft/x87/lithium-gap-resolver-x87.cc |
@@ -374,7 +374,9 @@ void LGapResolver::EmitSwap(int index) { |
// Register-register. |
Register src = cgen_->ToRegister(source); |
Register dst = cgen_->ToRegister(destination); |
- __ xchg(dst, src); |
+ __ push(src); |
+ __ mov(src, dst); |
+ __ pop(dst); |
} else if ((source->IsRegister() && destination->IsStackSlot()) || |
(source->IsStackSlot() && destination->IsRegister())) { |