Index: src/assembler.h |
=================================================================== |
--- src/assembler.h (revision 11811) |
+++ src/assembler.h (working copy) |
@@ -204,14 +204,19 @@ |
EXTERNAL_REFERENCE, // The address of an external C++ function. |
INTERNAL_REFERENCE, // An address inside the same function. |
+ // Marks a constant pool. Only used on ARM. |
+ // It uses a custom noncompact encoding. |
+ CONST_POOL, |
+ |
// add more as needed |
// Pseudo-types |
- NUMBER_OF_MODES, // There are at most 14 modes with noncompact encoding. |
+ NUMBER_OF_MODES, // There are at most 15 modes with noncompact encoding. |
NONE, // never recorded |
LAST_CODE_ENUM = DEBUG_BREAK, |
LAST_GCED_ENUM = GLOBAL_PROPERTY_CELL, |
// Modes <= LAST_COMPACT_ENUM are guaranteed to have compact encoding. |
- LAST_COMPACT_ENUM = CODE_TARGET_WITH_ID |
+ LAST_COMPACT_ENUM = CODE_TARGET_WITH_ID, |
+ LAST_STANDARD_NONCOMPACT_ENUM = INTERNAL_REFERENCE |
}; |
@@ -240,6 +245,9 @@ |
static inline bool IsComment(Mode mode) { |
return mode == COMMENT; |
} |
+ static inline bool IsConstPool(Mode mode) { |
+ return mode == CONST_POOL; |
+ } |
static inline bool IsPosition(Mode mode) { |
return mode == POSITION || mode == STATEMENT_POSITION; |
} |
@@ -416,6 +424,7 @@ |
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); |
+ inline void WriteExtraTaggedConstPoolData(int data); |
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); |
@@ -466,6 +475,7 @@ |
void ReadTaggedPC(); |
void AdvanceReadPC(); |
void AdvanceReadId(); |
+ void AdvanceReadConstPoolData(); |
void AdvanceReadPosition(); |
void AdvanceReadData(); |
void AdvanceReadVariableLengthPCJump(); |