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); |