8285378: Remove unnecessary nop for C1 exception and deopt handler

Reviewed-by: kvn, dlong
This commit is contained in:
Boris Ulasevich 2022-05-06 09:29:04 +00:00
parent 3cdedf1ddb
commit c6eab989b7
6 changed files with 2 additions and 74 deletions

View File

@ -378,13 +378,6 @@ int LIR_Assembler::initial_frame_size_in_bytes() const {
int LIR_Assembler::emit_exception_handler() {
// if the last instruction is a call (typically to do a throw which
// is coming at the end after block reordering) the return address
// must still point into the code area in order to avoid assertion
// failures when searching for the corresponding bci => add a nop
// (was bug 5/14/1999 - gri)
__ nop();
// generate code for exception handler
address handler_base = __ start_a_stub(exception_handler_size());
if (handler_base == NULL) {
@ -403,7 +396,8 @@ int LIR_Assembler::emit_exception_handler() {
__ verify_not_null_oop(r0);
// search an exception handler (r0: exception oop, r3: throwing pc)
__ far_call(RuntimeAddress(Runtime1::entry_for(Runtime1::handle_exception_from_callee_id))); __ should_not_reach_here();
__ far_call(RuntimeAddress(Runtime1::entry_for(Runtime1::handle_exception_from_callee_id)));
__ should_not_reach_here();
guarantee(code_offset() - offset <= exception_handler_size(), "overflow");
__ end_a_stub();
@ -471,13 +465,6 @@ int LIR_Assembler::emit_unwind_handler() {
int LIR_Assembler::emit_deopt_handler() {
// if the last instruction is a call (typically to do a throw which
// is coming at the end after block reordering) the return address
// must still point into the code area in order to avoid assertion
// failures when searching for the corresponding bci => add a nop
// (was bug 5/14/1999 - gri)
__ nop();
// generate code for exception handler
address handler_base = __ start_a_stub(deopt_handler_size());
if (handler_base == NULL) {

View File

@ -199,9 +199,6 @@ int LIR_Assembler::initial_frame_size_in_bytes() const {
int LIR_Assembler::emit_exception_handler() {
// TODO: ARM
__ nop(); // See comments in other ports
address handler_base = __ start_a_stub(exception_handler_size());
if (handler_base == NULL) {
bailout("exception handler overflow");

View File

@ -167,13 +167,6 @@ void LIR_Assembler::osr_entry() {
int LIR_Assembler::emit_exception_handler() {
// If the last instruction is a call (typically to do a throw which
// is coming at the end after block reordering) the return address
// must still point into the code area in order to avoid assertion
// failures when searching for the corresponding bci => add a nop
// (was bug 5/14/1999 - gri).
__ nop();
// Generate code for the exception handler.
address handler_base = __ start_a_stub(exception_handler_size());
@ -247,13 +240,6 @@ int LIR_Assembler::emit_unwind_handler() {
int LIR_Assembler::emit_deopt_handler() {
// If the last instruction is a call (typically to do a throw which
// is coming at the end after block reordering) the return address
// must still point into the code area in order to avoid assertion
// failures when searching for the corresponding bci => add a nop
// (was bug 5/14/1999 - gri).
__ nop();
// Generate code for deopt handler.
address handler_base = __ start_a_stub(deopt_handler_size());

View File

@ -307,13 +307,6 @@ int LIR_Assembler::initial_frame_size_in_bytes() const {
}
int LIR_Assembler::emit_exception_handler() {
// if the last instruction is a call (typically to do a throw which
// is coming at the end after block reordering) the return address
// must still point into the code area in order to avoid assertion
// failures when searching for the corresponding bci ==> add a nop
// (was bug 5/14/1999 -gri)
__ nop();
// generate code for exception handler
address handler_base = __ start_a_stub(exception_handler_size());
if (handler_base == NULL) {
@ -399,13 +392,6 @@ int LIR_Assembler::emit_unwind_handler() {
}
int LIR_Assembler::emit_deopt_handler() {
// if the last instruction is a call (typically to do a throw which
// is coming at the end after block reordering) the return address
// must still point into the code area in order to avoid assertion
// failures when searching for the corresponding bck => add a nop
// (was bug 5/14/1999 - gri)
__ nop();
// generate code for exception handler
address handler_base = __ start_a_stub(deopt_handler_size());
if (handler_base == NULL) {

View File

@ -165,13 +165,6 @@ address LIR_Assembler::emit_call_c(address a) {
}
int LIR_Assembler::emit_exception_handler() {
// If the last instruction is a call (typically to do a throw which
// is coming at the end after block reordering) the return address
// must still point into the code area in order to avoid assertion
// failures when searching for the corresponding bci. => Add a nop.
// (was bug 5/14/1999 - gri)
__ nop();
// Generate code for exception handler.
address handler_base = __ start_a_stub(exception_handler_size());
if (handler_base == NULL) {
@ -263,13 +256,6 @@ int LIR_Assembler::emit_unwind_handler() {
}
int LIR_Assembler::emit_deopt_handler() {
// If the last instruction is a call (typically to do a throw which
// is coming at the end after block reordering) the return address
// must still point into the code area in order to avoid assertion
// failures when searching for the corresponding bci. => Add a nop.
// (was bug 5/14/1999 - gri)
__ nop();
// Generate code for exception handler.
address handler_base = __ start_a_stub(deopt_handler_size());
if (handler_base == NULL) {

View File

@ -398,13 +398,6 @@ int LIR_Assembler::initial_frame_size_in_bytes() const {
int LIR_Assembler::emit_exception_handler() {
// if the last instruction is a call (typically to do a throw which
// is coming at the end after block reordering) the return address
// must still point into the code area in order to avoid assertion
// failures when searching for the corresponding bci => add a nop
// (was bug 5/14/1999 - gri)
__ nop();
// generate code for exception handler
address handler_base = __ start_a_stub(exception_handler_size());
if (handler_base == NULL) {
@ -499,13 +492,6 @@ int LIR_Assembler::emit_unwind_handler() {
int LIR_Assembler::emit_deopt_handler() {
// if the last instruction is a call (typically to do a throw which
// is coming at the end after block reordering) the return address
// must still point into the code area in order to avoid assertion
// failures when searching for the corresponding bci => add a nop
// (was bug 5/14/1999 - gri)
__ nop();
// generate code for exception handler
address handler_base = __ start_a_stub(deopt_handler_size());
if (handler_base == NULL) {