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
parent 2810c2c0
...@@ -999,6 +999,7 @@ void LCodeGen::DoUnknownOSRValue(LUnknownOSRValue* instr) { ...@@ -999,6 +999,7 @@ void LCodeGen::DoUnknownOSRValue(LUnknownOSRValue* instr) {
void LCodeGen::DoModI(LModI* instr) { void LCodeGen::DoModI(LModI* instr) {
Abort("ModI not implemented");
class DeferredModI: public LDeferredCode { class DeferredModI: public LDeferredCode {
public: public:
DeferredModI(LCodeGen* codegen, LModI* instr) DeferredModI(LCodeGen* codegen, LModI* instr)
...@@ -1054,6 +1055,7 @@ void LCodeGen::DoModI(LModI* instr) { ...@@ -1054,6 +1055,7 @@ void LCodeGen::DoModI(LModI* instr) {
void LCodeGen::DoDivI(LDivI* instr) { void LCodeGen::DoDivI(LDivI* instr) {
Abort("DivI not implemented");
class DeferredDivI: public LDeferredCode { class DeferredDivI: public LDeferredCode {
public: public:
DeferredDivI(LCodeGen* codegen, LDivI* instr) DeferredDivI(LCodeGen* codegen, LDivI* instr)
...@@ -1141,9 +1143,9 @@ void LCodeGen::DoDeferredGenericBinaryStub(LBinaryOperation* instr, ...@@ -1141,9 +1143,9 @@ void LCodeGen::DoDeferredGenericBinaryStub(LBinaryOperation* instr,
__ PushSafepointRegistersAndDoubles(); __ PushSafepointRegistersAndDoubles();
GenericBinaryOpStub stub(op, OVERWRITE_LEFT, left, right); GenericBinaryOpStub stub(op, OVERWRITE_LEFT, left, right);
__ CallStub(&stub); __ CallStub(&stub);
RecordSafepointWithRegisters(instr->pointer_map(), RecordSafepointWithRegistersAndDoubles(instr->pointer_map(),
0, 0,
Safepoint::kNoDeoptimizationIndex); Safepoint::kNoDeoptimizationIndex);
// Overwrite the stored value of r0 with the result of the stub. // Overwrite the stored value of r0 with the result of the stub.
__ str(r0, MemOperand(sp, DwVfpRegister::kNumAllocatableRegisters * __ str(r0, MemOperand(sp, DwVfpRegister::kNumAllocatableRegisters *
kDoubleSize)); kDoubleSize));
......
...@@ -554,6 +554,11 @@ void OptimizedFrame::Iterate(ObjectVisitor* v) const { ...@@ -554,6 +554,11 @@ void OptimizedFrame::Iterate(ObjectVisitor* v) const {
parameters_base += safepoint_entry.argument_count(); 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. // Visit the registers that contain pointers if any.
if (safepoint_entry.HasRegisters()) { if (safepoint_entry.HasRegisters()) {
for (int i = kNumSafepointRegisters - 1; i >=0; i--) { for (int i = kNumSafepointRegisters - 1; i >=0; i--) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment