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.