Decodes the metadata for compiled code. The data is an encoded byte stream to make it as compact
as possible, but still allow fast constant time access.
The encoding consists of entries with the following structure:
u1 entryFlags
u1 deltaIP
[s1|s2|s4 frameSizeEncoding]
[s1|s2|s4 exceptionOffset]
[u2|u4 referenceMapIndex]
[s4 deoptFrameInfoIndex]
The first byte, entryFlags, encodes which of the optional data fields are present and what size
they have. The size of the whole entry can be computed from just this byte, which allows fast
iteration of the table. The deltaIP is the difference of the IP for this entry and the next
entry. The first entry always corresponds to IP zero.
This table structure allows linear search for the entry of a given IP. An
index is used to turn this into a constant time lookup. The index
stores the entry offset for every IP at the given
granularity.