danno, thanks for your review.
For existing RUNTIME_ENTRY that currently need to be 64-bits, do you mean we
need EXTERNAL_REFERENCE relocation info for them? For X64, they are:
1) __ movq(kScratchRegister,
FUNCTION_ADDR(Runtime::PerformGC),
RelocInfo::RUNTIME_ENTRY);
__ call(kScratchRegister); from code-stubs-x64.cc
2) // Call the api function!
movq(rax, reinterpret_cast<int64_t>(function_address),
RelocInfo::RUNTIME_ENTRY);
call(rax); from macro-assember-x64.cc
Besides those usage of RUNTIME_ENTRY, the others are for the deoptimization
table entries mentioned in this CL.
If we want to use RUNTIME_ENTRY, instead of introducing DEOPT_ENTRY, the
handling of RUNTIME_ENTRY for X64 is same with DEOPT_ENTRY. The reason is
that
the 32-bit delta for X64 could only be computed when we invoke CopyFrom as
shown
in this CL as at this time the copied codes and deoptimization entries are
both
in code range. The handling of RUNTIME_ENTRY for IA32 is different as the
32-bit
delta could be computed anytime.
https://codereview.chromium.org/11574027/
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev