Some more comments.

http://codereview.chromium.org/6248004/diff/15001/src/arm/code-stubs-arm.cc
File src/arm/code-stubs-arm.cc (right):

http://codereview.chromium.org/6248004/diff/15001/src/arm/code-stubs-arm.cc#newcode2895
src/arm/code-stubs-arm.cc:2895: // * object: r0  or  at
sp+1*kPointerSize .
Spaces around binary operations, and no space before ..

http://codereview.chromium.org/6248004/diff/15001/src/arm/code-stubs-arm.cc#newcode3062
src/arm/code-stubs-arm.cc:3062: __ EnterInternalFrame();
LeaveInternalFrame after the call.

http://codereview.chromium.org/6248004/diff/15001/src/arm/lithium-arm.cc
File src/arm/lithium-arm.cc (right):

http://codereview.chromium.org/6248004/diff/15001/src/arm/lithium-arm.cc#newcode1079
src/arm/lithium-arm.cc:1079: return MarkAsCall(DefineFixed(result, r0),
instr);
Now that we have fast straight line code and slow code in deferred code
this should not use MarkAsCall any more, but
AssignEnvironment(AssignPointerMap(DefineFixed(result, r0))). The IA32
version uses MarkAsSaveDoubles(result) as well, but with the newly added
safepoint with doubles (see comments in lithium-codegen-arm.cc) that
should be used instead.

http://codereview.chromium.org/6248004/diff/15001/src/arm/lithium-codegen-arm.cc
File src/arm/lithium-codegen-arm.cc (right):

http://codereview.chromium.org/6248004/diff/15001/src/arm/lithium-codegen-arm.cc#newcode1995
src/arm/lithium-codegen-arm.cc:1995: __ PushSafepointRegisters();
I think we need to use PushSafepointRegistersAndDoubles here. We have no
control over whether the InstanceofStub will change the content of the
double registers.

http://codereview.chromium.org/6248004/diff/15001/src/arm/lithium-codegen-arm.cc#newcode2007
src/arm/lithium-codegen-arm.cc:2007: __ BlockConstPoolFor(4);
4 -> kAdditionalDelta

http://codereview.chromium.org/6248004/diff/15001/src/arm/lithium-codegen-arm.cc#newcode2013
src/arm/lithium-codegen-arm.cc:2013: RecordSafepointWithRegisters(
Use RecordSafepointWithRegistersAndDoubles here.

http://codereview.chromium.org/6248004/diff/15001/src/arm/lithium-codegen-arm.cc#newcode2017
src/arm/lithium-codegen-arm.cc:2017: __ str(r0, MemOperand(sp,
result.code() * kPointerSize));
Use StoreToSafepointRegisterSlot here.

http://codereview.chromium.org/6248004/diff/15001/src/arm/lithium-codegen-arm.cc#newcode2019
src/arm/lithium-codegen-arm.cc:2019: __ PopSafepointRegisters();
And use PopSafepointRegistersAndDoubles here.

http://codereview.chromium.org/6248004/diff/15001/src/arm/macro-assembler-arm.cc
File src/arm/macro-assembler-arm.cc (right):

http://codereview.chromium.org/6248004/diff/15001/src/arm/macro-assembler-arm.cc#newcode488
src/arm/macro-assembler-arm.cc:488: void
MacroAssembler::StoreToSafepointRegisters(Register reg) {
StoreToSafepointRegisters -> StoreToSafepointRegisterSlot

http://codereview.chromium.org/6248004/diff/15001/src/arm/macro-assembler-arm.cc#newcode502
src/arm/macro-assembler-arm.cc:502: return MemOperand(sp, reg.code() *
kInstrSize);
reg.code() -> SafepointRegisterStackIndex(reg.code())

http://codereview.chromium.org/6248004/

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

Reply via email to