| Index: src/x64/macro-assembler-x64.cc
|
| diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc
|
| index 2e554b166b902a18bba4c5da45e3dc11236d87f6..5387fc519de0e8bdc9e3048fd5544083875cab94 100644
|
| --- a/src/x64/macro-assembler-x64.cc
|
| +++ b/src/x64/macro-assembler-x64.cc
|
| @@ -2500,6 +2500,12 @@ MacroAssembler::kSafepointPushRegisterIndices[Register::kNumRegisters] = {
|
| };
|
|
|
|
|
| +void MacroAssembler::StoreToSafepointRegisterSlot(Register dst,
|
| + const Immediate& imm) {
|
| + movq(SafepointRegisterSlot(dst), imm);
|
| +}
|
| +
|
| +
|
| void MacroAssembler::StoreToSafepointRegisterSlot(Register dst, Register src) {
|
| movq(SafepointRegisterSlot(dst), src);
|
| }
|
| @@ -2858,6 +2864,26 @@ void MacroAssembler::ClampDoubleToUint8(XMMRegister input_reg,
|
| }
|
|
|
|
|
| +static double kUint32Bias =
|
| + static_cast<double>(static_cast<uint32_t>(0xFFFFFFFF)) + 1;
|
| +
|
| +
|
| +void MacroAssembler::LoadUint32(XMMRegister dst,
|
| + Register src,
|
| + XMMRegister scratch) {
|
| + Label done;
|
| + cmpl(src, Immediate(0));
|
| + movq(kScratchRegister,
|
| + reinterpret_cast<int64_t>(&kUint32Bias),
|
| + RelocInfo::NONE);
|
| + movsd(scratch, Operand(kScratchRegister, 0));
|
| + cvtlsi2sd(dst, src);
|
| + j(not_sign, &done, Label::kNear);
|
| + addsd(dst, scratch);
|
| + bind(&done);
|
| +}
|
| +
|
| +
|
| void MacroAssembler::LoadInstanceDescriptors(Register map,
|
| Register descriptors) {
|
| Register temp = descriptors;
|
|
|