Reviewers: Mads Ager,

Description:
Fix compilation failure on ia32 and x64.

TBR=ager

BUG=
TEST=

Please review this at http://codereview.chromium.org/6359001/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files:
  M src/arm/lithium-codegen-arm.cc
  M src/frames.cc


Index: src/arm/lithium-codegen-arm.cc
diff --git a/src/arm/lithium-codegen-arm.cc b/src/arm/lithium-codegen-arm.cc
index 5f2404359311b7f87dc1ed5fd59b1bcb94b2469e..08ece67cab2a4c5223e4e95d04134dd6c8bb889e 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));
Index: src/frames.cc
diff --git a/src/frames.cc b/src/frames.cc
index bdc76a9bfeb7d9f972f3b1c9a61eabed8003ca1f..16ffbf5a94e61557879fb1a30de550db49c90338 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 += DoubleRegister::kNumAllocatableRegisters *
+        kDoubleSize / kPointerSize;
+  }
+
   // Visit the registers that contain pointers if any.
   if (safepoint_entry.HasRegisters()) {
     for (int i = kNumSafepointRegisters - 1; i >=0; i--) {


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

Reply via email to