From 6ce3eba0f2e6e505ed408cdc40d213c8a512238d Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Mon, 16 Feb 2015 13:05:59 +0000 Subject: 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 --- compiler/dex/mir_graph.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'compiler/dex/mir_graph.h') diff --git a/compiler/dex/mir_graph.h b/compiler/dex/mir_graph.h index 020136c3d8..d74e7b6a97 100644 --- a/compiler/dex/mir_graph.h +++ b/compiler/dex/mir_graph.h @@ -498,19 +498,19 @@ class ChildBlockIterator { * more efficient invoke code generation. */ struct CallInfo { - int num_arg_words; // Note: word count, not arg count. - RegLocation* args; // One for each word of arguments. - RegLocation result; // Eventual target of MOVE_RESULT. + size_t num_arg_words; // Note: word count, not arg count. + RegLocation* args; // One for each word of arguments. + RegLocation result; // Eventual target of MOVE_RESULT. int opt_flags; InvokeType type; uint32_t dex_idx; - uint32_t index; // Method idx for invokes, type idx for FilledNewArray. + uint32_t index; // Method idx for invokes, type idx for FilledNewArray. uintptr_t direct_code; uintptr_t direct_method; - RegLocation target; // Target of following move_result. + RegLocation target; // Target of following move_result. bool skip_this; bool is_range; - DexOffset offset; // Offset in code units. + DexOffset offset; // Offset in code units. MIR* mir; }; -- cgit v1.2.3