| Index: src/x64/lithium-codegen-x64.cc
|
| diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc
|
| index 14d31c572eb9a3203c332383b32981d5bf9727df..f701bc43a47fc5b3aff9efbbb862b2eaea82d1ce 100644
|
| --- a/src/x64/lithium-codegen-x64.cc
|
| +++ b/src/x64/lithium-codegen-x64.cc
|
| @@ -157,7 +157,7 @@ bool LCodeGen::GeneratePrologue() {
|
| #endif
|
| __ push(rax);
|
| __ Set(rax, slots);
|
| - __ movq(kScratchRegister, kSlotsZapValue);
|
| + __ Set(kScratchRegister, kSlotsZapValue);
|
| Label loop;
|
| __ bind(&loop);
|
| __ movq(MemOperand(rsp, rax, times_pointer_size, 0),
|
| @@ -3481,7 +3481,7 @@ void LCodeGen::DoMathRound(LMathRound* instr) {
|
| static int64_t minus_one_half = V8_INT64_C(0xBFE0000000000000); // -0.5
|
|
|
| Label done, round_to_zero, below_one_half, do_not_compensate, restore;
|
| - __ movq(kScratchRegister, one_half);
|
| + __ MoveInteger64(kScratchRegister, one_half);
|
| __ movq(xmm_scratch, kScratchRegister);
|
| __ ucomisd(xmm_scratch, input_reg);
|
| __ j(above, &below_one_half);
|
| @@ -3496,7 +3496,7 @@ void LCodeGen::DoMathRound(LMathRound* instr) {
|
| __ jmp(&done);
|
|
|
| __ bind(&below_one_half);
|
| - __ movq(kScratchRegister, minus_one_half);
|
| + __ MoveInteger64(kScratchRegister, minus_one_half);
|
| __ movq(xmm_scratch, kScratchRegister);
|
| __ ucomisd(xmm_scratch, input_reg);
|
| __ j(below_equal, &round_to_zero);
|
| @@ -3552,7 +3552,7 @@ void LCodeGen::DoMathPowHalf(LMathPowHalf* instr) {
|
| Label done, sqrt;
|
| // Check base for -Infinity. According to IEEE-754, double-precision
|
| // -Infinity has the highest 12 bits set and the lowest 52 bits cleared.
|
| - __ movq(kScratchRegister, V8_INT64_C(0xFFF0000000000000));
|
| + __ MoveInteger64(kScratchRegister, V8_INT64_C(0xFFF0000000000000));
|
| __ movq(xmm_scratch, kScratchRegister);
|
| __ ucomisd(xmm_scratch, input_reg);
|
| // Comparing -Infinity with NaN results in "unordered", which sets the
|
| @@ -3660,7 +3660,7 @@ void LCodeGen::DoRandom(LRandom* instr) {
|
| // ( 1.(20 0s)(32 random bits) x 2^20 ) - (1.0 x 2^20)).
|
| XMMRegister result = ToDoubleRegister(instr->result());
|
| XMMRegister scratch4 = double_scratch0();
|
| - __ movq(scratch3, V8_INT64_C(0x4130000000000000)); // 1.0 x 2^20 as double
|
| + __ MoveInteger64(scratch3, V8_INT64_C(0x4130000000000000)); // 1.0 x 2^20
|
| __ movq(scratch4, scratch3);
|
| __ movd(result, random);
|
| __ xorps(result, scratch4);
|
|
|