Reviewers: Mads Ager, Description: 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. Please review this at http://codereview.chromium.org/21404 SVN Base: http://v8.googlecode.com/svn/branches/experimental/toiger/ Affected files: M src/codegen-arm.cc Index: src/codegen-arm.cc =================================================================== --- src/codegen-arm.cc (revision 1285) +++ src/codegen-arm.cc (working copy) @@ -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 -~----------~----~----~----~------~----~------~--~---
