diff options
Diffstat (limited to 'deps/v8/src/x64/lithium-gap-resolver-x64.cc')
-rw-r--r-- | deps/v8/src/x64/lithium-gap-resolver-x64.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/deps/v8/src/x64/lithium-gap-resolver-x64.cc b/deps/v8/src/x64/lithium-gap-resolver-x64.cc index bf5d31d72..877ea8cd3 100644 --- a/deps/v8/src/x64/lithium-gap-resolver-x64.cc +++ b/deps/v8/src/x64/lithium-gap-resolver-x64.cc @@ -204,8 +204,9 @@ void LGapResolver::EmitMove(int index) { ASSERT(destination->IsStackSlot()); Operand dst = cgen_->ToOperand(destination); if (cgen_->IsInteger32Constant(constant_source)) { - // Allow top 32 bits of an untagged Integer32 to be arbitrary. - __ movl(dst, Immediate(cgen_->ToInteger32(constant_source))); + // Zero top 32 bits of a 64 bit spill slot that holds a 32 bit untagged + // value. + __ movq(dst, Immediate(cgen_->ToInteger32(constant_source))); } else { __ LoadObject(kScratchRegister, cgen_->ToHandle(constant_source)); __ movq(dst, kScratchRegister); |