Index: runtime/vm/intermediate_language_ia32.cc |
diff --git a/runtime/vm/intermediate_language_ia32.cc b/runtime/vm/intermediate_language_ia32.cc |
index c90b2c52d8fd2e0f4dbb60b6c3854b37104c1130..c3f905ded2b672a51a4838c9bd1bc7ffa6f95576 100644 |
--- a/runtime/vm/intermediate_language_ia32.cc |
+++ b/runtime/vm/intermediate_language_ia32.cc |
@@ -845,20 +845,17 @@ void NativeCallInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ movl(EDX, Immediate(argc_tag)); |
const StubEntry* stub_entry; |
- if (link_lazily()) { |
- stub_entry = StubCode::CallBootstrapCFunction_entry(); |
- __ movl(ECX, Immediate(NativeEntry::LinkNativeCallEntry())); |
- compiler->GeneratePatchableCall(token_pos(), *stub_entry, |
- RawPcDescriptors::kOther, locs()); |
- } else { |
- stub_entry = (is_bootstrap_native()) |
- ? StubCode::CallBootstrapCFunction_entry() |
- : StubCode::CallNativeCFunction_entry(); |
- const ExternalLabel label(reinterpret_cast<uword>(native_c_function())); |
- __ movl(ECX, Immediate(label.address())); |
- compiler->GenerateCall(token_pos(), *stub_entry, RawPcDescriptors::kOther, |
- locs()); |
- } |
+ |
+ // There is no lazy-linking support on ia32. |
+ ASSERT(!link_lazily()); |
kustermann
2016/11/16 21:03:12
This property is guaranteed in flow_graph_compiler
Florian Schneider
2016/11/16 21:08:28
We have a test that runs with this flag on all pla
kustermann
2016/11/16 21:12:13
But the code emitted will simply not work, because
Florian Schneider
2016/11/16 21:25:02
Oh ok. Right. Then it's fine to add the assertion
|
+ stub_entry = (is_bootstrap_native()) |
+ ? StubCode::CallBootstrapCFunction_entry() |
+ : StubCode::CallNativeCFunction_entry(); |
+ const ExternalLabel label(reinterpret_cast<uword>(native_c_function())); |
+ __ movl(ECX, Immediate(label.address())); |
+ compiler->GenerateCall(token_pos(), *stub_entry, RawPcDescriptors::kOther, |
+ locs()); |
+ |
__ popl(result); |
} |