| Index: src/x64/macro-assembler-x64.cc
|
| diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc
|
| index b36f4f059332b93b0be6eeea2fc52f9bb0b07b2e..867a4bcbc02e2067b380b163e7708695ac34ad92 100644
|
| --- a/src/x64/macro-assembler-x64.cc
|
| +++ b/src/x64/macro-assembler-x64.cc
|
| @@ -981,7 +981,6 @@ void MacroAssembler::Set(const Operand& dst, intptr_t x) {
|
| movp(dst, kScratchRegister);
|
| }
|
| } else {
|
| - ASSERT(kPointerSize == kInt32Size);
|
| movp(dst, Immediate(static_cast<int32_t>(x)));
|
| }
|
| }
|
| @@ -2622,7 +2621,6 @@ void MacroAssembler::Push(Register src) {
|
| if (kPointerSize == kInt64Size) {
|
| pushq(src);
|
| } else {
|
| - ASSERT(kPointerSize == kInt32Size);
|
| // x32 uses 64-bit push for rbp in the prologue.
|
| ASSERT(src.code() != rbp.code());
|
| leal(rsp, Operand(rsp, -4));
|
| @@ -2635,7 +2633,6 @@ void MacroAssembler::Push(const Operand& src) {
|
| if (kPointerSize == kInt64Size) {
|
| pushq(src);
|
| } else {
|
| - ASSERT(kPointerSize == kInt32Size);
|
| movp(kScratchRegister, src);
|
| leal(rsp, Operand(rsp, -4));
|
| movp(Operand(rsp, 0), kScratchRegister);
|
| @@ -2643,11 +2640,20 @@ void MacroAssembler::Push(const Operand& src) {
|
| }
|
|
|
|
|
| +void MacroAssembler::PushQuad(const Operand& src) {
|
| + if (kPointerSize == kInt64Size) {
|
| + pushq(src);
|
| + } else {
|
| + movp(kScratchRegister, src);
|
| + pushq(kScratchRegister);
|
| + }
|
| +}
|
| +
|
| +
|
| void MacroAssembler::Push(Immediate value) {
|
| if (kPointerSize == kInt64Size) {
|
| pushq(value);
|
| } else {
|
| - ASSERT(kPointerSize == kInt32Size);
|
| leal(rsp, Operand(rsp, -4));
|
| movp(Operand(rsp, 0), value);
|
| }
|
| @@ -2658,7 +2664,6 @@ void MacroAssembler::PushImm32(int32_t imm32) {
|
| if (kPointerSize == kInt64Size) {
|
| pushq_imm32(imm32);
|
| } else {
|
| - ASSERT(kPointerSize == kInt32Size);
|
| leal(rsp, Operand(rsp, -4));
|
| movp(Operand(rsp, 0), Immediate(imm32));
|
| }
|
| @@ -2669,7 +2674,6 @@ void MacroAssembler::Pop(Register dst) {
|
| if (kPointerSize == kInt64Size) {
|
| popq(dst);
|
| } else {
|
| - ASSERT(kPointerSize == kInt32Size);
|
| // x32 uses 64-bit pop for rbp in the epilogue.
|
| ASSERT(dst.code() != rbp.code());
|
| movp(dst, Operand(rsp, 0));
|
| @@ -2682,7 +2686,6 @@ void MacroAssembler::Pop(const Operand& dst) {
|
| if (kPointerSize == kInt64Size) {
|
| popq(dst);
|
| } else {
|
| - ASSERT(kPointerSize == kInt32Size);
|
| Register scratch = dst.AddressUsesRegister(kScratchRegister)
|
| ? kSmiConstantRegister : kScratchRegister;
|
| movp(scratch, Operand(rsp, 0));
|
| @@ -2698,6 +2701,16 @@ void MacroAssembler::Pop(const Operand& dst) {
|
| }
|
|
|
|
|
| +void MacroAssembler::PopQuad(const Operand& dst) {
|
| + if (kPointerSize == kInt64Size) {
|
| + popq(dst);
|
| + } else {
|
| + popq(kScratchRegister);
|
| + movp(dst, kScratchRegister);
|
| + }
|
| +}
|
| +
|
| +
|
| void MacroAssembler::LoadSharedFunctionInfoSpecialField(Register dst,
|
| Register base,
|
| int offset) {
|
| @@ -2739,7 +2752,6 @@ void MacroAssembler::Jump(const Operand& op) {
|
| if (kPointerSize == kInt64Size) {
|
| jmp(op);
|
| } else {
|
| - ASSERT(kPointerSize == kInt32Size);
|
| movp(kScratchRegister, op);
|
| jmp(kScratchRegister);
|
| }
|
| @@ -2781,7 +2793,6 @@ void MacroAssembler::Call(const Operand& op) {
|
| if (kPointerSize == kInt64Size) {
|
| call(op);
|
| } else {
|
| - ASSERT(kPointerSize == kInt32Size);
|
| movp(kScratchRegister, op);
|
| call(kScratchRegister);
|
| }
|
|
|