diff options
author | Vladimir Marko <vmarko@google.com> | 2015-02-16 13:05:59 +0000 |
---|---|---|
committer | Vladimir Marko <vmarko@google.com> | 2015-02-19 17:08:25 +0000 |
commit | 6ce3eba0f2e6e505ed408cdc40d213c8a512238d (patch) | |
tree | 5f7ced5c710ada776fa2e2624a05a0d414ed8b39 /compiler/dex/mir_graph.cc | |
parent | 1b472546657d31d38883373d8340d1441281a6a5 (diff) | |
download | art-6ce3eba0f2e6e505ed408cdc40d213c8a512238d.tar.gz art-6ce3eba0f2e6e505ed408cdc40d213c8a512238d.tar.bz2 art-6ce3eba0f2e6e505ed408cdc40d213c8a512238d.zip |
Add suspend checks to special methods.
Generate suspend checks at the beginning of special methods.
If we need to call to runtime, go to the slow path where we
create a simplified but valid frame, spill all arguments,
call art_quick_test_suspend, restore necessary arguments and
return back to the fast path. This keeps the fast path
overhead to a minimum.
Bug: 19245639
Change-Id: I3de5aee783943941322a49c4cf2c4c94411dbaa2
Diffstat (limited to 'compiler/dex/mir_graph.cc')
-rw-r--r-- | compiler/dex/mir_graph.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/dex/mir_graph.cc b/compiler/dex/mir_graph.cc index 08ca1b288c..590fe1d95e 100644 --- a/compiler/dex/mir_graph.cc +++ b/compiler/dex/mir_graph.cc @@ -1738,7 +1738,7 @@ CallInfo* MIRGraph::NewMemCallInfo(BasicBlock* bb, MIR* mir, InvokeType type, info->num_arg_words = mir->ssa_rep->num_uses; info->args = (info->num_arg_words == 0) ? nullptr : arena_->AllocArray<RegLocation>(info->num_arg_words, kArenaAllocMisc); - for (int i = 0; i < info->num_arg_words; i++) { + for (size_t i = 0; i < info->num_arg_words; i++) { info->args[i] = GetRawSrc(mir, i); } info->opt_flags = mir->optimization_flags; |