Chromium Code Reviews| 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); |