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
This commit is contained in:
karlklose@chromium.org 2011-01-14 15:08:44 +00:00
parent 2810c2c044
commit d2d81743c9
2 changed files with 10 additions and 3 deletions

View File

@ -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));

View File

@ -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--) {