Revision: 9136
Author: [email protected]
Date: Mon Sep 5 04:45:09 2011
Log: Landing MIPS: Support declarations of context allocated locals in
Crankshaft.
Original code review: http://codereview.chromium.org/7739017/
http://code.google.com/p/v8/source/detail?r=9136
Modified:
/branches/bleeding_edge/src/mips/full-codegen-mips.cc
=======================================
--- /branches/bleeding_edge/src/mips/full-codegen-mips.cc Thu Sep 1
05:31:18 2011
+++ /branches/bleeding_edge/src/mips/full-codegen-mips.cc Mon Sep 5
04:45:09 2011
@@ -691,10 +691,11 @@
}
-void FullCodeGenerator::EmitDeclaration(Variable* variable,
+void FullCodeGenerator::EmitDeclaration(VariableProxy* proxy,
Variable::Mode mode,
FunctionLiteral* function) {
Comment cmnt(masm_, "[ Declaration");
+ Variable* variable = proxy->var();
ASSERT(variable != NULL); // Must have been resolved.
Slot* slot = variable->AsSlot();
ASSERT(slot != NULL);
@@ -734,10 +735,12 @@
// We know that we have written a function, which is not a smi.
__ mov(a1, cp);
__ RecordWrite(a1, Operand(offset), a2, result_register());
+ PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
} else if (mode == Variable::CONST || mode == Variable::LET) {
__ LoadRoot(at, Heap::kTheHoleValueRootIndex);
__ sw(at, ContextOperand(cp, slot->index()));
// No write barrier since the_hole_value is in old space.
+ PrepareForBailoutForId(proxy->id(), NO_REGISTERS);
}
break;
@@ -774,7 +777,7 @@
void FullCodeGenerator::VisitDeclaration(Declaration* decl) {
- EmitDeclaration(decl->proxy()->var(), decl->mode(), decl->fun());
+ EmitDeclaration(decl->proxy(), decl->mode(), decl->fun());
}
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev