Index: src/assembler.h |
=================================================================== |
--- src/assembler.h (revision 2251) |
+++ src/assembler.h (working copy) |
@@ -183,7 +183,7 @@ |
intptr_t data() const { return data_; } |
// Apply a relocation by delta bytes |
- INLINE(void apply(int delta)); |
+ INLINE(void apply(intptr_t delta)); |
// Read/modify the code target in the branch/call instruction |
// this relocation applies to; |
@@ -265,8 +265,12 @@ |
last_pc_ = pc; |
} |
- // Max size (bytes) of a written RelocInfo. |
- static const int kMaxSize = 12; |
+ // Max size (bytes) of a written RelocInfo. Longest encoding is |
+ // ExtraTag, VariableLengthPCJump, ExtraTag, pc_delta, ExtraTag, data_delta. |
+ // On ia32 and arm this is 1 + 4 + 1 + 1 + 1 + 4 = 12. |
+ // On x64 this is 1 + 4 + 1 + 1 + 1 + 8 == 16; |
+ // Here we use the maximum of the two. |
+ static const int kMaxSize = 16; |
private: |
inline uint32_t WriteVariableLengthPCJump(uint32_t pc_delta); |