121 // load exception object |
121 // load exception object |
122 __ call_VM(Oexception, |
122 __ call_VM(Oexception, |
123 CAST_FROM_FN_PTR(address, |
123 CAST_FROM_FN_PTR(address, |
124 InterpreterRuntime::throw_ClassCastException), |
124 InterpreterRuntime::throw_ClassCastException), |
125 Otos_i); |
125 Otos_i); |
126 __ should_not_reach_here(); |
|
127 return entry; |
|
128 } |
|
129 |
|
130 |
|
131 // Arguments are: required type in G5_method_type, and |
|
132 // failing object (or NULL) in G3_method_handle. |
|
133 address TemplateInterpreterGenerator::generate_WrongMethodType_handler() { |
|
134 address entry = __ pc(); |
|
135 // expression stack must be empty before entering the VM if an exception |
|
136 // happened |
|
137 __ empty_expression_stack(); |
|
138 // load exception object |
|
139 __ call_VM(Oexception, |
|
140 CAST_FROM_FN_PTR(address, |
|
141 InterpreterRuntime::throw_WrongMethodTypeException), |
|
142 G5_method_type, // required |
|
143 G3_method_handle); // actual |
|
144 __ should_not_reach_here(); |
126 __ should_not_reach_here(); |
145 return entry; |
127 return entry; |
146 } |
128 } |
147 |
129 |
148 |
130 |