From d2d81743c95b25480ecb5b46a1f994fedf6b4358 Mon Sep 17 00:00:00 2001 From: "karlklose@chromium.org" Date: Fri, 14 Jan 2011 15:08:44 +0000 Subject: [PATCH] Disable DivI and ModI again until the bug with SafepointWithRegistersAndDoubles is solved. BUG= TEST= Review URL: http://codereview.chromium.org/6295004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/arm/lithium-codegen-arm.cc | 8 +++++--- src/frames.cc | 5 +++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc index 5f24043593..08ece67cab 100644 --- a/src/arm/lithium-codegen-arm.cc +++ b/src/arm/lithium-codegen-arm.cc @@ -999,6 +999,7 @@ void LCodeGen::DoUnknownOSRValue(LUnknownOSRValue* instr) { void LCodeGen::DoModI(LModI* instr) { + Abort("ModI not implemented"); class DeferredModI: public LDeferredCode { public: DeferredModI(LCodeGen* codegen, LModI* instr) @@ -1054,6 +1055,7 @@ void LCodeGen::DoModI(LModI* instr) { void LCodeGen::DoDivI(LDivI* instr) { + Abort("DivI not implemented"); class DeferredDivI: public LDeferredCode { public: DeferredDivI(LCodeGen* codegen, LDivI* instr) @@ -1141,9 +1143,9 @@ void LCodeGen::DoDeferredGenericBinaryStub(LBinaryOperation* instr, __ PushSafepointRegistersAndDoubles(); GenericBinaryOpStub stub(op, OVERWRITE_LEFT, left, right); __ CallStub(&stub); - RecordSafepointWithRegisters(instr->pointer_map(), - 0, - Safepoint::kNoDeoptimizationIndex); + RecordSafepointWithRegistersAndDoubles(instr->pointer_map(), + 0, + Safepoint::kNoDeoptimizationIndex); // Overwrite the stored value of r0 with the result of the stub. __ str(r0, MemOperand(sp, DwVfpRegister::kNumAllocatableRegisters * kDoubleSize)); diff --git a/src/frames.cc b/src/frames.cc index bdc76a9bfe..353dc2093e 100644 --- a/src/frames.cc +++ b/src/frames.cc @@ -554,6 +554,11 @@ void OptimizedFrame::Iterate(ObjectVisitor* v) const { parameters_base += safepoint_entry.argument_count(); } + if (safepoint_entry.has_doubles()) { + parameters_base += DwVfpRegister::kNumAllocatableRegisters * + kDoubleSize / kPointerSize; + } + // Visit the registers that contain pointers if any. if (safepoint_entry.HasRegisters()) { for (int i = kNumSafepointRegisters - 1; i >=0; i--) {