Index: src/crankshaft/ia32/lithium-gap-resolver-ia32.cc |
diff --git a/src/crankshaft/ia32/lithium-gap-resolver-ia32.cc b/src/crankshaft/ia32/lithium-gap-resolver-ia32.cc |
index b90f6bb21e05e2a6b8b1e15c7d73739d4055c84c..c3284df882790f92417c23419b6e801d92873d4e 100644 |
--- a/src/crankshaft/ia32/lithium-gap-resolver-ia32.cc |
+++ b/src/crankshaft/ia32/lithium-gap-resolver-ia32.cc |
@@ -369,7 +369,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())) { |