Index: src/x64/lithium-gap-resolver-x64.cc |
=================================================================== |
--- src/x64/lithium-gap-resolver-x64.cc (revision 15613) |
+++ src/x64/lithium-gap-resolver-x64.cc (working copy) |
@@ -205,16 +205,12 @@ |
} else if (destination->IsDoubleRegister()) { |
double v = cgen_->ToDouble(constant_source); |
uint64_t int_val = BitCast<uint64_t, double>(v); |
- int32_t lower = static_cast<int32_t>(int_val); |
- int32_t upper = static_cast<int32_t>(int_val >> (kBitsPerInt)); |
XMMRegister dst = cgen_->ToDoubleRegister(destination); |
if (int_val == 0) { |
__ xorps(dst, dst); |
} else { |
- __ push(Immediate(upper)); |
- __ push(Immediate(lower)); |
- __ movsd(dst, Operand(rsp, 0)); |
- __ addq(rsp, Immediate(kDoubleSize)); |
+ __ movq(kScratchRegister, int_val, RelocInfo::NONE64); |
+ __ movq(dst, kScratchRegister); |
} |
} else { |
ASSERT(destination->IsStackSlot()); |