Index: src/assembler.h |
=================================================================== |
--- src/assembler.h (revision 13219) |
+++ src/assembler.h (working copy) |
@@ -241,9 +241,15 @@ |
EXTERNAL_REFERENCE, // The address of an external C++ function. |
INTERNAL_REFERENCE, // An address inside the same function. |
+#if defined(V8_TARGET_ARCH_X64) |
Sven Panne
2012/12/14 08:20:11
Similar to the comment in the related CL, I will s
|
+ // Marks a deopt entry. Only used on X64. |
+ // It uses a custom noncompact encoding. |
+ DEOPT_ENTRY, |
+#else |
// Marks a constant pool. Only used on ARM. |
// It uses a custom noncompact encoding. |
CONST_POOL, |
+#endif |
// add more as needed |
// Pseudo-types |
@@ -252,7 +258,11 @@ |
CODE_AGE_SEQUENCE, // Not stored in RelocInfo array, used explictly by |
// code aging. |
FIRST_REAL_RELOC_MODE = CODE_TARGET, |
+#if defined(V8_TARGET_ARCH_X64) |
Sven Panne
2012/12/14 08:20:11
see above
|
+ LAST_REAL_RELOC_MODE = DEOPT_ENTRY, |
+#else |
LAST_REAL_RELOC_MODE = CONST_POOL, |
+#endif |
FIRST_PSEUDO_RELOC_MODE = CODE_AGE_SEQUENCE, |
LAST_PSEUDO_RELOC_MODE = CODE_AGE_SEQUENCE, |
LAST_CODE_ENUM = DEBUG_BREAK, |
@@ -297,9 +307,15 @@ |
static inline bool IsComment(Mode mode) { |
return mode == COMMENT; |
} |
+#if defined(V8_TARGET_ARCH_X64) |
Sven Panne
2012/12/14 08:20:11
see above
|
+ static inline bool IsDeoptEntry(Mode mode) { |
+ return mode == DEOPT_ENTRY; |
+ } |
+#else |
static inline bool IsConstPool(Mode mode) { |
return mode == CONST_POOL; |
} |
+#endif |
static inline bool IsPosition(Mode mode) { |
return mode == POSITION || mode == STATEMENT_POSITION; |
} |
@@ -343,6 +359,9 @@ |
WriteBarrierMode mode = UPDATE_WRITE_BARRIER)); |
INLINE(Object* target_object()); |
INLINE(Handle<Object> target_object_handle(Assembler* origin)); |
+#if defined(V8_TARGET_ARCH_X64) |
Sven Panne
2012/12/14 08:20:11
see above
|
+ INLINE(Address target_deopt_entry(Assembler* origin)); |
+#endif |
INLINE(Object** target_object_address()); |
INLINE(void set_target_object(Object* target, |
WriteBarrierMode mode = UPDATE_WRITE_BARRIER)); |
@@ -477,7 +496,11 @@ |
inline void WriteTaggedPC(uint32_t pc_delta, int tag); |
inline void WriteExtraTaggedPC(uint32_t pc_delta, int extra_tag); |
inline void WriteExtraTaggedIntData(int data_delta, int top_tag); |
+#if !defined(V8_TARGET_ARCH_X64) |
Sven Panne
2012/12/14 08:20:11
see above
|
inline void WriteExtraTaggedConstPoolData(int data); |
+#else |
+ inline void WriteExtraTaggedDeoptEntryData(int data); |
+#endif |
inline void WriteExtraTaggedData(intptr_t data_delta, int top_tag); |
inline void WriteTaggedData(intptr_t data_delta, int tag); |
inline void WriteExtraTag(int extra_tag, int top_tag); |