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

Reply via email to