Please have a look again. This version still only works for ARM EABI, but it will fail with UNIMPLEMENTED instead of producing wrong results.
http://codereview.chromium.org/6532020/diff/1/src/arm/lithium-arm.cc File src/arm/lithium-arm.cc (right): http://codereview.chromium.org/6532020/diff/1/src/arm/lithium-arm.cc#newcode1431 src/arm/lithium-arm.cc:1431: return MarkAsCall(DefineFixedDouble(result, d3), instr, On 2011/02/17 09:59:56, Søren Gjesse wrote:
Please do either MarkAsCall( DefineFixedDouble(result, d3), instr, CAN_DEOPTIMIZE_EAGERLY);
or
MarkAsCall(DefineFixedDouble(result, d3), instr, CAN_DEOPTIMIZE_EAGERLY);
I think the first will fit.
Done. http://codereview.chromium.org/6532020/diff/1/src/arm/lithium-codegen-arm.cc File src/arm/lithium-codegen-arm.cc (right): http://codereview.chromium.org/6532020/diff/1/src/arm/lithium-codegen-arm.cc#newcode2872 src/arm/lithium-codegen-arm.cc:2872: __ stm(db_w, sp, r0.bit() | r1.bit() | r2.bit() | r3.bit()); On 2011/02/17 09:59:56, Søren Gjesse wrote:
As discussed off-line this saving is not needed.
Done. http://codereview.chromium.org/6532020/diff/1/src/arm/lithium-codegen-arm.cc#newcode2880 src/arm/lithium-codegen-arm.cc:2880: __ stm(db_w, sp, r0.bit() | r1.bit() | r2.bit() | r3.bit()); On 2011/02/17 09:59:56, Søren Gjesse wrote:
Ditto.
Done. http://codereview.chromium.org/6532020/diff/1/src/arm/lithium-codegen-arm.cc#newcode2888 src/arm/lithium-codegen-arm.cc:2888: ASSERT(CpuFeatures::IsSupported(VFP3)); On 2011/02/17 09:59:56, Søren Gjesse wrote:
Crankshaft implies VFP3, and we are already in a VFP3 scope, so this
ASSERT is
not necessary.
Done. http://codereview.chromium.org/6532020/diff/1/src/arm/lithium-codegen-arm.cc#newcode2893 src/arm/lithium-codegen-arm.cc:2893: Label non_smi, call; On 2011/02/17 09:59:56, Søren Gjesse wrote:
Please use JumpIfNotSmi.
Done. http://codereview.chromium.org/6532020/diff/1/src/arm/lithium-codegen-arm.cc#newcode2911 src/arm/lithium-codegen-arm.cc:2911: __ add(scratch, right_reg, Operand(value_offset), LeaveCC); On 2011/02/17 09:59:56, Søren Gjesse wrote:
LeaveCC is default for add.
Done. http://codereview.chromium.org/6532020/diff/1/src/arm/lithium-codegen-arm.cc#newcode2922 src/arm/lithium-codegen-arm.cc:2922: // Store the result in the result register and restore r0-r3. Implemented MacroAssembler::GetCFunctionDoubleResult and used it here and in http://codereview.chromium.org/6532020/diff/1/src/arm/simulator-arm.cc File src/arm/simulator-arm.cc (right): http://codereview.chromium.org/6532020/diff/1/src/arm/simulator-arm.cc#newcode319 src/arm/simulator-arm.cc:319: PrintF("%3s: %f \n", Yes, removed. http://codereview.chromium.org/6532020/ -- v8-dev mailing list v8-dev@googlegroups.com http://groups.google.com/group/v8-dev