Ported to ARM and x64. Please review the new files.

http://codereview.chromium.org/8492004/diff/15004/src/ia32/deoptimizer-ia32.cc
File src/ia32/deoptimizer-ia32.cc (right):

http://codereview.chromium.org/8492004/diff/15004/src/ia32/deoptimizer-ia32.cc#newcode62
src/ia32/deoptimizer-ia32.cc:62: Address curr_reloc_address =
code_start_address + pc_offset;
On 2011/11/10 15:50:54, Vyacheslav Egorov wrote:
You can just use prev_pc_offset instead calculating real address.

pc_delta = pc_offset - prev_pc_offset;

start address is irrelevant.

Done.

http://codereview.chromium.org/8492004/diff/15004/src/ia32/deoptimizer-ia32.cc#newcode156
src/ia32/deoptimizer-ia32.cc:156: RelocInfo rinfo(curr_address + 1,  //
1 after the call opcode.
On 2011/11/10 15:50:54, Vyacheslav Egorov wrote:
relocation info is not used? I think this is not GC safe
 Good catch. Done.

http://codereview.chromium.org/8492004/diff/15004/src/ia32/lithium-codegen-ia32.cc
File src/ia32/lithium-codegen-ia32.cc (right):

http://codereview.chromium.org/8492004/diff/15004/src/ia32/lithium-codegen-ia32.cc#newcode1978
src/ia32/lithium-codegen-ia32.cc:1978:
RecordPosition(instr->pointer_map()->position());
On 2011/11/10 15:50:54, Vyacheslav Egorov wrote:
I think this can be rolled back into CallCodeGeneric because it seems
to be just
code duplication now.

Correct. Done.

http://codereview.chromium.org/8492004/diff/15004/src/ia32/lithium-codegen-ia32.cc#newcode4419
src/ia32/lithium-codegen-ia32.cc:4419: void
LCodeGen::DoLazyBailout(LLazyBailout* instr) {
On 2011/11/10 15:50:54, Vyacheslav Egorov wrote:
maybe instruction should be renamed to LazyDeopt?

Yes, I'll do a renaming only change.

http://codereview.chromium.org/8492004/diff/15004/src/ia32/lithium-codegen-ia32.h
File src/ia32/lithium-codegen-ia32.h (right):

http://codereview.chromium.org/8492004/diff/15004/src/ia32/lithium-codegen-ia32.h#newcode215
src/ia32/lithium-codegen-ia32.h:215: void
RegisterEnvironmentForDeoptimization(LEnvironment* environment,
On 2011/11/10 15:50:54, Vyacheslav Egorov wrote:
maybe use Safepoint::DeoptMode instead of boolean?

Done.

http://codereview.chromium.org/8492004/diff/15004/src/lithium.h
File src/lithium.h (right):

http://codereview.chromium.org/8492004/diff/15004/src/lithium.h#newcode488
src/lithium.h:488: void Register(int deoptimization_index, int
translation_index,
On 2011/11/10 15:50:54, Vyacheslav Egorov wrote:
one argument on a line

Done.

http://codereview.chromium.org/8492004/diff/15004/src/safepoint-table.h
File src/safepoint-table.h (right):

http://codereview.chromium.org/8492004/diff/15004/src/safepoint-table.h#newcode71
src/safepoint-table.h:71: kDeoptIndexBits> {};  // NOLINT
On 2011/11/10 15:50:54, Vyacheslav Egorov wrote:
LONG LINE

Done.

http://codereview.chromium.org/8492004/

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to