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
-~----------~----~----~----~------~----~------~--~---