Reviewers: Sven Panne,

Description:
Encode RelocInfo extra tag to fit changed RelocInfo kind enum.

This fixes some failures on MIPS. Though not all of them, since
MIPS does not correctly implement set_target_internal_reference.

[email protected]

Please review this at https://codereview.chromium.org/1008823002/

Base URL: https://chromium.googlesource.com/v8/v8.git@master

Affected files (+2, -2 lines):
  M src/assembler.cc


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;
       }
     }


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to