Chromium Code Reviews| Index: src/assembler.h |
| diff --git a/src/assembler.h b/src/assembler.h |
| index 0bf28ae5c5fbdc89cfdcd280eb8245046a4d6d1c..9fee24768ab221133bb4fea09d0892de0f9fd657 100644 |
| --- a/src/assembler.h |
| +++ b/src/assembler.h |
| @@ -210,7 +210,8 @@ class RelocInfo BASE_EMBEDDED { |
| // add more as needed |
| // Pseudo-types |
| NUMBER_OF_MODES, // There are at most 15 modes with noncompact encoding. |
| - NONE, // never recorded |
| + NONE, // never recorded 32-bit value |
| + NONE64, // never recorded 64-bit value |
| LAST_CODE_ENUM = DEBUG_BREAK, |
| LAST_GCED_ENUM = GLOBAL_PROPERTY_CELL, |
| // Modes <= LAST_COMPACT_ENUM are guaranteed to have compact encoding. |
| @@ -221,9 +222,12 @@ class RelocInfo BASE_EMBEDDED { |
| RelocInfo() {} |
| - RelocInfo(byte* pc, Mode rmode, intptr_t data, Code* host) |
| + explicit RelocInfo(byte* pc, Mode rmode, intptr_t data, Code* host) |
|
ulan
2012/10/22 09:18:25
No need for explicit here and below since the numb
|
| : pc_(pc), rmode_(rmode), data_(data), host_(host) { |
| } |
| + explicit RelocInfo(byte* pc, double data64) |
| + : pc_(pc), rmode_(NONE64), data64_(data64), host_(NULL) { |
| + } |
| static inline bool IsConstructCall(Mode mode) { |
| return mode == CONSTRUCT_CALL; |
| @@ -262,6 +266,9 @@ class RelocInfo BASE_EMBEDDED { |
| static inline bool IsDebugBreakSlot(Mode mode) { |
| return mode == DEBUG_BREAK_SLOT; |
| } |
| + static inline bool IsNone(Mode mode) { |
| + return mode == NONE || mode == NONE64; |
| + } |
| static inline int ModeMask(Mode mode) { return 1 << mode; } |
| // Accessors |
| @@ -269,6 +276,7 @@ class RelocInfo BASE_EMBEDDED { |
| void set_pc(byte* pc) { pc_ = pc; } |
| Mode rmode() const { return rmode_; } |
| intptr_t data() const { return data_; } |
| + double data64() const { return data64_; } |
| Code* host() const { return host_; } |
| // Apply a relocation by delta bytes |
| @@ -366,7 +374,10 @@ class RelocInfo BASE_EMBEDDED { |
| // comment). |
| byte* pc_; |
| Mode rmode_; |
| - intptr_t data_; |
| + union { |
| + intptr_t data_; |
| + double data64_; |
| + }; |
| Code* host_; |
| #ifdef V8_TARGET_ARCH_MIPS |
| // Code and Embedded Object pointers in mips are stored split |