Thanks for your recommendation.
It seems that currently INTERNAL_REFERENCE is used for MIPS only, and not
for
IA32 and X64. From the original commit
811cc11aab99d1fb9a662af5d023deb2eb7b19d2,
the INTERNAL_REFERENCE is used for "jump near, absolute indirect" for IA32,
i.e., the opcode is "FF /4". So when the code is moved by GC, the content
of the
INTERNAL_REFERECE is +delta for the absolute address in the code.
For this CL, we want to use "jump near, relative", i.e., the opcode is "E9".
From reading the code from 811cc11aab99d1fb9a662af5d023deb2eb7b19d2, I
realized
that this CL has an assumption that the deoptimization table entries will
not
move. If it moves, I should use "+delta" in the relocation entry of the
optimized code, while if the optimized code (containing DeoptimizeIf)
moves, I
have already used "-delta" in the code. If this assumption (the
deoptimization
table entries are not moved by GC) right?
https://codereview.chromium.org/11574027/
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev