Index: src/assembler.cc |
diff --git a/src/assembler.cc b/src/assembler.cc |
index 37186e00cc9207e1f364adbe80e4556b611720cb..a63ca3a4cf62e5538c00efc61980fd7460b2e70e 100644 |
--- a/src/assembler.cc |
+++ b/src/assembler.cc |
@@ -511,7 +511,7 @@ void RelocInfoWriter::Write(const RelocInfo* rinfo) { |
: kVeneerPoolTag); |
} else { |
DCHECK(rmode > RelocInfo::LAST_COMPACT_ENUM); |
- int saved_mode = rmode - RelocInfo::LAST_COMPACT_ENUM; |
+ int saved_mode = rmode - RelocInfo::LAST_COMPACT_ENUM - 1; |
// For all other modes we simply use the mode as the extra tag. |
// None of these modes need a data component. |
DCHECK(saved_mode < kPoolExtraTag); |
@@ -721,7 +721,7 @@ void RelocIterator::next() { |
Advance(kIntSize); |
} else { |
AdvanceReadPC(); |
- int rmode = extra_tag + RelocInfo::LAST_COMPACT_ENUM; |
+ int rmode = extra_tag + RelocInfo::LAST_COMPACT_ENUM + 1; |
if (SetMode(static_cast<RelocInfo::Mode>(rmode))) return; |
} |
} |