Index: src/x87/lithium-gap-resolver-x87.cc |
diff --git a/src/x87/lithium-gap-resolver-x87.cc b/src/x87/lithium-gap-resolver-x87.cc |
index b94e34f2c0c746da91c3af9f04bc605d520ba2f9..6a6427550c933727f5f3f1b1327afbf91a0a8d71 100644 |
--- a/src/x87/lithium-gap-resolver-x87.cc |
+++ b/src/x87/lithium-gap-resolver-x87.cc |
@@ -317,10 +317,15 @@ void LGapResolver::EmitMove(int index) { |
} else if (source->IsDoubleRegister()) { |
// load from the register onto the stack, store in destination, which must |
// be a double stack slot in the non-SSE2 case. |
- DCHECK(destination->IsDoubleStackSlot()); |
- Operand dst = cgen_->ToOperand(destination); |
- X87Register src = cgen_->ToX87Register(source); |
- cgen_->X87Mov(dst, src); |
+ if (destination->IsDoubleStackSlot()) { |
+ Operand dst = cgen_->ToOperand(destination); |
+ X87Register src = cgen_->ToX87Register(source); |
+ cgen_->X87Mov(dst, src); |
+ } else { |
+ X87Register dst = cgen_->ToX87Register(destination); |
+ X87Register src = cgen_->ToX87Register(source); |
+ cgen_->X87Mov(dst, src); |
+ } |
} else if (source->IsDoubleStackSlot()) { |
// load from the stack slot on top of the floating point stack, and then |
// store in destination. If destination is a double register, then it |