src/cpu/x86/vm/templateInterpreter_x86_64.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
7055355 Cdiff src/cpu/x86/vm/templateInterpreter_x86_64.cpp
src/cpu/x86/vm/templateInterpreter_x86_64.cpp
Print this page
*** 118,152 ****
throw_ClassCastException),
c_rarg1);
return entry;
}
- // Arguments are: required type at TOS+8, failing object (or NULL) at TOS+4.
- address TemplateInterpreterGenerator::generate_WrongMethodType_handler() {
- address entry = __ pc();
-
- __ pop(c_rarg2); // failing object is at TOS
- __ pop(c_rarg1); // required type is at TOS+8
-
- __ verify_oop(c_rarg1);
- __ verify_oop(c_rarg2);
-
- // Various method handle types use interpreter registers as temps.
- __ restore_bcp();
- __ restore_locals();
-
- // Expression stack must be empty before entering the VM for an exception.
- __ empty_expression_stack();
-
- __ call_VM(noreg,
- CAST_FROM_FN_PTR(address,
- InterpreterRuntime::throw_WrongMethodTypeException),
- // pass required type, failing object (or NULL)
- c_rarg1, c_rarg2);
- return entry;
- }
-
address TemplateInterpreterGenerator::generate_exception_handler_common(
const char* name, const char* message, bool pass_oop) {
assert(!pass_oop || message == NULL, "either oop or message but not both");
address entry = __ pc();
if (pass_oop) {
--- 118,127 ----
src/cpu/x86/vm/templateInterpreter_x86_64.cpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File