| Index: src/x64/macro-assembler-x64.h
|
| ===================================================================
|
| --- src/x64/macro-assembler-x64.h (revision 15486)
|
| +++ src/x64/macro-assembler-x64.h (working copy)
|
| @@ -662,9 +662,16 @@
|
|
|
| // Shifts a smi value to the left, and returns the result if that is a smi.
|
| // Uses and clobbers rcx, so dst may not be rcx.
|
| +#ifndef V8_TARGET_ARCH_X32
|
| void SmiShiftLeft(Register dst,
|
| Register src1,
|
| Register src2);
|
| +#else
|
| + void SmiShiftLeft(Register dst,
|
| + Register src1,
|
| + Register src2,
|
| + Label* on_not_smi_result);
|
| +#endif
|
| // Shifts a smi value to the right, shifting in zero bits at the top, and
|
| // returns the unsigned intepretation of the result if that is a smi.
|
| // Uses and clobbers rcx, so dst may not be rcx.
|
| @@ -719,6 +726,15 @@
|
| movq(dst, constant);
|
| }
|
|
|
| +#ifdef V8_TARGET_ARCH_X32
|
| + void Push(Immediate value);
|
| + void Push_imm32(int32_t imm32);
|
| + void Push(Register src);
|
| + void Push(const Operand& src);
|
| + void Pop(Register dst);
|
| + void Pop(const Operand& dst);
|
| +#endif
|
| +
|
| void Push(Smi* smi);
|
| void Test(const Operand& dst, Smi* source);
|
|
|
| @@ -769,7 +785,11 @@
|
|
|
| // Load a register with a long value as efficiently as possible.
|
| void Set(Register dst, int64_t x);
|
| +#ifndef V8_TARGET_ARCH_X32
|
| void Set(const Operand& dst, int64_t x);
|
| +#else
|
| + void Set(const Operand& dst, int32_t x);
|
| +#endif
|
|
|
| // Move if the registers are not identical.
|
| void Move(Register target, Register source);
|
| @@ -827,10 +847,16 @@
|
| // Control Flow
|
| void Jump(Address destination, RelocInfo::Mode rmode);
|
| void Jump(ExternalReference ext);
|
| +#ifdef V8_TARGET_ARCH_X32
|
| + void Jump(const Operand& src);
|
| +#endif
|
| void Jump(Handle<Code> code_object, RelocInfo::Mode rmode);
|
|
|
| void Call(Address destination, RelocInfo::Mode rmode);
|
| void Call(ExternalReference ext);
|
| +#ifdef V8_TARGET_ARCH_X32
|
| + void Call(const Operand& op);
|
| +#endif
|
| void Call(Handle<Code> code_object,
|
| RelocInfo::Mode rmode,
|
| TypeFeedbackId ast_id = TypeFeedbackId::None());
|
| @@ -1379,7 +1405,7 @@
|
| // modified. It may be the "smi 1 constant" register.
|
| Register GetSmiConstant(Smi* value);
|
|
|
| - intptr_t RootRegisterDelta(ExternalReference other);
|
| + int64_t RootRegisterDelta(ExternalReference other);
|
|
|
| // Moves the smi value to the destination register.
|
| void LoadSmiConstant(Register dst, Smi* value);
|
|
|