I added platform ports and changed the encoding scheme. ARM64 is incomplete
because we don't use internal references there to begin with.

In the first patch set, I used the skip encoding to find the code position to patch, just like other embedded references. This assumes (and we assert) that skip is always positive, i.e. the code positions to patch is in ascending order. This means that code positions holding embedded references in the reloc info are in ascending order. This is not true if we toss in internal references, which are inline in the code, and have e.g. external references stored in a constant
pool at the end of the code object.

So instead of using this skip encoding, I always encode internal references (pc mapping to target pc) as two offsets from code entry. This way it does not mess
with the skip encoding of other embedded references.


https://codereview.chromium.org/1005183006/diff/20001/src/serialize.cc
File src/serialize.cc (right):

https://codereview.chromium.org/1005183006/diff/20001/src/serialize.cc#newcode2003
src/serialize.cc:2003: DCHECK(to_skip >= 0);
This is the assertion I was referring to.

https://codereview.chromium.org/1005183006/

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