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

http://codereview.chromium.org/6164005/diff/1/src/arm/lithium-arm.cc#newcode1242
src/arm/lithium-arm.cc:1242: // TODO(karlklose) The fixed register
allocation
On 2011/01/13 08:28:38, Søren Gjesse wrote:
Please open a bug to track this, and change to TODO(number).

Done.

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

http://codereview.chromium.org/6164005/diff/1/src/arm/lithium-codegen-arm.cc#newcode884
src/arm/lithium-codegen-arm.cc:884: const int32_t kTwoHighestBits =
3<<30;
I have created a TrySmiTag instruction in the macro assembler to
abstract over this code.

http://codereview.chromium.org/6164005/diff/1/src/arm/lithium-codegen-arm.cc#newcode885
src/arm/lithium-codegen-arm.cc:885: __ and_(scratch, left,
Operand(kTwoHighestBits));
s.a.

http://codereview.chromium.org/6164005/diff/1/src/arm/lithium-codegen-arm.cc#newcode888
src/arm/lithium-codegen-arm.cc:888: __ b(eq, &deoptimize);
s.a.

http://codereview.chromium.org/6164005/diff/1/src/arm/lithium-codegen-arm.cc#newcode897
src/arm/lithium-codegen-arm.cc:897: GenericBinaryOpStub stub(Token::DIV,
OVERWRITE_LEFT, left, right);
On 2011/01/13 08:28:38, Søren Gjesse wrote:
The LDivI instruction is not marked as call which means that it will
not spill
registers to the stack. Therefore it is not safe to call a stub. It
needs to be
called from deferred code and marked with
"RecordSafepointWithRegisters". As the
GenericBinaryOpStub might touch floating point registers as well we
need to have
a safepoint with both registers and doubles.

Done.

http://codereview.chromium.org/6164005/

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

Reply via email to