Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1218)

Unified Diff: runtime/vm/flow_graph_compiler_ia32.cc

Issue 10453110: Implement optimized unary ops for ia32 as well. Fix a crash in disassembler. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: runtime/vm/flow_graph_compiler_ia32.cc
===================================================================
--- runtime/vm/flow_graph_compiler_ia32.cc (revision 8181)
+++ runtime/vm/flow_graph_compiler_ia32.cc (working copy)
@@ -65,7 +65,9 @@
__ Comment("Deopt stub for id %d", deopt_id_);
__ Bind(entry_label());
for (intptr_t i = 0; i < registers_.length(); i++) {
- __ pushl(registers_[i]);
+ if (registers_[i] != kNoRegister) {
+ __ pushl(registers_[i]);
+ }
}
__ movl(EAX, Immediate(Smi::RawValue(reason_)));
__ call(&StubCode::DeoptimizeLabel());
@@ -139,6 +141,23 @@
try_index);
}
+
+Label* FlowGraphCompiler::AddDeoptStub(intptr_t deopt_id,
+ intptr_t deopt_token_index,
+ intptr_t try_index,
+ DeoptReasonId reason,
+ Register reg1,
+ Register reg2) {
+ DeoptimizationStub* stub =
+ new DeoptimizationStub(deopt_id, deopt_token_index, try_index, reason);
+ stub->Push(reg1);
+ stub->Push(reg2);
+ deopt_stubs_.Add(stub);
+ return stub->entry_label();
+}
+
+
+
#define __ assembler_->
void FlowGraphCompiler::IntrinsifyGetter() {

Powered by Google App Engine
This is Rietveld 408576698