Index: src/assembler.h |
diff --git a/src/assembler.h b/src/assembler.h |
index eac7278570f6e18e2bfcba3a52fc2a5aa9f2ab32..4dd2a3c2dff9973e927d357e21ebd447879d91b8 100644 |
--- a/src/assembler.h |
+++ b/src/assembler.h |
@@ -394,8 +394,6 @@ class RelocInfo { |
// Everything after runtime_entry (inclusive) is not GC'ed. |
RUNTIME_ENTRY, |
COMMENT, |
- POSITION, // See comment for kNoPosition above. |
- STATEMENT_POSITION, // See comment for kNoPosition above. |
// Additional code inserted for debug break slot. |
DEBUG_BREAK_SLOT_AT_POSITION, |
@@ -417,8 +415,9 @@ class RelocInfo { |
CONST_POOL, |
VENEER_POOL, |
- DEOPT_REASON, // Deoptimization reason index. |
- DEOPT_ID, // Deoptimization inlining id. |
+ DEOPT_POSITION, // Deoptimization source position. |
+ DEOPT_REASON, // Deoptimization reason index. |
+ DEOPT_ID, // Deoptimization inlining id. |
// This is not an actual reloc mode, but used to encode a long pc jump that |
// cannot be encoded as part of another record. |
@@ -475,18 +474,15 @@ class RelocInfo { |
static inline bool IsVeneerPool(Mode mode) { |
return mode == VENEER_POOL; |
} |
+ static inline bool IsDeoptPosition(Mode mode) { |
+ return mode == DEOPT_POSITION; |
+ } |
static inline bool IsDeoptReason(Mode mode) { |
return mode == DEOPT_REASON; |
} |
static inline bool IsDeoptId(Mode mode) { |
return mode == DEOPT_ID; |
} |
- static inline bool IsPosition(Mode mode) { |
- return mode == POSITION || mode == STATEMENT_POSITION; |
- } |
- static inline bool IsStatementPosition(Mode mode) { |
- return mode == STATEMENT_POSITION; |
- } |
static inline bool IsExternalReference(Mode mode) { |
return mode == EXTERNAL_REFERENCE; |
} |
@@ -667,9 +663,7 @@ class RelocInfo { |
#endif |
static const int kCodeTargetMask = (1 << (LAST_CODE_ENUM + 1)) - 1; |
- static const int kPositionMask = 1 << POSITION | 1 << STATEMENT_POSITION; |
- static const int kDataMask = |
- (1 << CODE_TARGET_WITH_ID) | kPositionMask | (1 << COMMENT); |
+ static const int kDataMask = (1 << CODE_TARGET_WITH_ID) | (1 << COMMENT); |
static const int kDebugBreakSlotMask = 1 << DEBUG_BREAK_SLOT_AT_POSITION | |
1 << DEBUG_BREAK_SLOT_AT_RETURN | |
1 << DEBUG_BREAK_SLOT_AT_CALL; |
@@ -698,24 +692,8 @@ class RelocInfo { |
// lower addresses. |
class RelocInfoWriter BASE_EMBEDDED { |
public: |
- RelocInfoWriter() |
- : pos_(NULL), |
- last_pc_(NULL), |
- last_id_(0), |
- last_position_(0), |
- last_mode_(RelocInfo::NUMBER_OF_MODES), |
- next_position_candidate_pos_delta_(0), |
- next_position_candidate_pc_delta_(0), |
- next_position_candidate_flushed_(true) {} |
- RelocInfoWriter(byte* pos, byte* pc) |
- : pos_(pos), |
- last_pc_(pc), |
- last_id_(0), |
- last_position_(0), |
- last_mode_(RelocInfo::NUMBER_OF_MODES), |
- next_position_candidate_pos_delta_(0), |
- next_position_candidate_pc_delta_(0), |
- next_position_candidate_flushed_(true) {} |
+ RelocInfoWriter() : pos_(NULL), last_pc_(NULL), last_id_(0) {} |
+ RelocInfoWriter(byte* pos, byte* pc) : pos_(pos), last_pc_(pc), last_id_(0) {} |
byte* pos() const { return pos_; } |
byte* last_pc() const { return last_pc_; } |
@@ -729,8 +707,6 @@ class RelocInfoWriter BASE_EMBEDDED { |
last_pc_ = pc; |
} |
- void Finish() { FlushPosition(); } |
- |
// Max size (bytes) of a written RelocInfo. Longest encoding is |
// ExtraTag, VariableLengthPCJump, ExtraTag, pc_delta, data_delta. |
// On ia32 and arm this is 1 + 4 + 1 + 1 + 4 = 11. |
@@ -748,18 +724,11 @@ class RelocInfoWriter BASE_EMBEDDED { |
inline void WriteModeAndPC(uint32_t pc_delta, RelocInfo::Mode rmode); |
inline void WriteIntData(int data_delta); |
inline void WriteData(intptr_t data_delta); |
- inline void WritePosition(int pc_delta, int pos_delta, RelocInfo::Mode rmode); |
- |
- void FlushPosition(); |
byte* pos_; |
byte* last_pc_; |
int last_id_; |
- int last_position_; |
RelocInfo::Mode last_mode_; |
- int next_position_candidate_pos_delta_; |
- uint32_t next_position_candidate_pc_delta_; |
- bool next_position_candidate_flushed_; |
DISALLOW_COPY_AND_ASSIGN(RelocInfoWriter); |
}; |
@@ -805,13 +774,11 @@ class RelocIterator: public Malloced { |
int GetShortDataTypeTag(); |
void ReadShortTaggedPC(); |
void ReadShortTaggedId(); |
- void ReadShortTaggedPosition(); |
void ReadShortTaggedData(); |
void AdvanceReadPC(); |
void AdvanceReadId(); |
void AdvanceReadInt(); |
- void AdvanceReadPosition(); |
void AdvanceReadData(); |
// If the given mode is wanted, set it in rinfo_ and return true. |
@@ -827,7 +794,6 @@ class RelocIterator: public Malloced { |
bool done_; |
int mode_mask_; |
int last_id_; |
- int last_position_; |
DISALLOW_COPY_AND_ASSIGN(RelocIterator); |
}; |
@@ -1134,41 +1100,6 @@ size_t hash_value(ExternalReference); |
std::ostream& operator<<(std::ostream&, ExternalReference); |
- |
-// ----------------------------------------------------------------------------- |
-// Position recording support |
- |
-class AssemblerPositionsRecorder : public PositionsRecorder { |
- public: |
- explicit AssemblerPositionsRecorder(Assembler* assembler) |
- : assembler_(assembler), |
- current_position_(RelocInfo::kNoPosition), |
- written_position_(RelocInfo::kNoPosition), |
- current_statement_position_(RelocInfo::kNoPosition), |
- written_statement_position_(RelocInfo::kNoPosition) {} |
- |
- // Set current position to pos. |
- void RecordPosition(int pos); |
- |
- // Set current statement position to pos. |
- void RecordStatementPosition(int pos); |
- |
- private: |
- // Write recorded positions to relocation information. |
- void WriteRecordedPositions(); |
- |
- Assembler* assembler_; |
- |
- int current_position_; |
- int written_position_; |
- |
- int current_statement_position_; |
- int written_statement_position_; |
- |
- DISALLOW_COPY_AND_ASSIGN(AssemblerPositionsRecorder); |
-}; |
- |
- |
// ----------------------------------------------------------------------------- |
// Utility functions |