105 // Method activation 106 static MethodKind method_kind(methodHandle m); 107 static address entry_for_kind(MethodKind k) { assert(0 <= k && k < number_of_method_entries, "illegal kind"); return _entry_table[k]; } 108 static address entry_for_method(methodHandle m) { return _entry_table[method_kind(m)]; } 109 110 static void print_method_kind(MethodKind kind) PRODUCT_RETURN; 111 112 // Runtime support 113 114 // length = invoke bytecode length (to advance to next bytecode) 115 static address deopt_entry (TosState state, int length) { ShouldNotReachHere(); return NULL; } 116 static address return_entry (TosState state, int length) { ShouldNotReachHere(); return NULL; } 117 118 static address rethrow_exception_entry() { return _rethrow_exception_entry; } 119 120 // Activation size in words for a method that is just being called. 121 // Parameters haven't been pushed so count them too. 122 static int size_top_interpreter_activation(methodOop method); 123 124 // Deoptimization support 125 static address continuation_for(methodOop method, 126 address bcp, 127 int callee_parameters, 128 bool is_top_frame, 129 bool& use_next_mdp); 130 131 // share implementation of size_activation and layout_activation: 132 static int size_activation(methodOop method, 133 int temps, 134 int popframe_args, 135 int monitors, 136 int callee_params, 137 int callee_locals, 138 bool is_top_frame); 139 140 static int layout_activation(methodOop method, 141 int temps, 142 int popframe_args, 143 int monitors, 144 int callee_params, 145 int callee_locals, 146 frame* caller, 147 frame* interpreter_frame, 148 bool is_top_frame); 149 | 105 // Method activation 106 static MethodKind method_kind(methodHandle m); 107 static address entry_for_kind(MethodKind k) { assert(0 <= k && k < number_of_method_entries, "illegal kind"); return _entry_table[k]; } 108 static address entry_for_method(methodHandle m) { return _entry_table[method_kind(m)]; } 109 110 static void print_method_kind(MethodKind kind) PRODUCT_RETURN; 111 112 // Runtime support 113 114 // length = invoke bytecode length (to advance to next bytecode) 115 static address deopt_entry (TosState state, int length) { ShouldNotReachHere(); return NULL; } 116 static address return_entry (TosState state, int length) { ShouldNotReachHere(); return NULL; } 117 118 static address rethrow_exception_entry() { return _rethrow_exception_entry; } 119 120 // Activation size in words for a method that is just being called. 121 // Parameters haven't been pushed so count them too. 122 static int size_top_interpreter_activation(methodOop method); 123 124 // Deoptimization support 125 // Compute the entry address for continuation after 126 static address deopt_continue_after_entry(methodOop method, 127 address bcp, 128 int callee_parameters, 129 bool is_top_frame); 130 // Compute the entry address for reexecution 131 static address deopt_reexecute_entry(methodOop method, address bcp); 132 // Deoptimization should reexecute this bytecode 133 static bool bytecode_should_reexecute(Bytecodes::Code code); 134 135 // share implementation of size_activation and layout_activation: 136 static int size_activation(methodOop method, 137 int temps, 138 int popframe_args, 139 int monitors, 140 int callee_params, 141 int callee_locals, 142 bool is_top_frame); 143 144 static int layout_activation(methodOop method, 145 int temps, 146 int popframe_args, 147 int monitors, 148 int callee_params, 149 int callee_locals, 150 frame* caller, 151 frame* interpreter_frame, 152 bool is_top_frame); 153 |