Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(153)

Unified Diff: src/x64/macro-assembler-x64.h

Issue 18014003: Add X32 port into V8 (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698