Author: [email protected]
Date: Tue Feb 17 02:32:28 2009
New Revision: 1289

Modified:
    branches/experimental/toiger/src/codegen-arm.cc

Log:
Experimental: a couple more changes to the ARM port.

On the simulator, the VM starts and goes to the prompt.  We pass all
but 12 of the release-mode tests in the V8 test suite pass.

Review URL: http://codereview.chromium.org/21404

Modified: branches/experimental/toiger/src/codegen-arm.cc
==============================================================================
--- branches/experimental/toiger/src/codegen-arm.cc     (original)
+++ branches/experimental/toiger/src/codegen-arm.cc     Tue Feb 17 02:32:28 2009
@@ -1669,6 +1669,7 @@


  void CodeGenerator::VisitForInStatement(ForInStatement* node) {
+  ASSERT(!in_spilled_code());
    VirtualFrame::SpilledScope spilled_scope(this);
    Comment cmnt(masm_, "[ ForInStatement");
    CodeForStatementPosition(node);
@@ -1685,9 +1686,8 @@
    JumpTarget primitive(this);
    JumpTarget jsobject(this);
    JumpTarget fixed_array(this);
-  JumpTarget entry(this);
+  JumpTarget entry(this, JumpTarget::BIDIRECTIONAL);
    JumpTarget end_del_check(this);
-  JumpTarget cleanup(this);
    JumpTarget exit(this);

    // Get the object to enumerate over (converted to JSObject).
@@ -1779,7 +1779,7 @@
    __ ldr(r0, frame_->ElementAt(0));  // load the current count
    __ ldr(r1, frame_->ElementAt(1));  // load the length
    __ cmp(r0, Operand(r1));  // compare to the array length
-  cleanup.Branch(hs);
+  node->break_target()->Branch(hs);

    __ ldr(r0, frame_->ElementAt(0));

@@ -1855,7 +1855,6 @@
    entry.Jump();

    // Cleanup.
-  cleanup.Bind();
    node->break_target()->Bind();
    frame_->Drop(5);

@@ -2470,14 +2469,16 @@


  void CodeGenerator::VisitCatchExtensionObject(CatchExtensionObject* node) {
+  ASSERT(!in_spilled_code());
    VirtualFrame::SpilledScope spilled_scope(this);
    // Call runtime routine to allocate the catch extension object and
    // assign the exception value to the catch variable.
-  Comment cmnt(masm_, "[CatchExtensionObject ");
+  Comment cmnt(masm_, "[ CatchExtensionObject");
    LoadAndSpill(node->key());
    LoadAndSpill(node->value());
-  __ CallRuntime(Runtime::kCreateCatchExtensionObject, 2);
-  frame_->EmitPush(r0);
+  Result result =
+      frame_->CallRuntime(Runtime::kCreateCatchExtensionObject, 2);
+  frame_->EmitPush(result.reg());
  }



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

Reply via email to