mirror of
https://github.com/openjdk/jdk.git
synced 2026-05-26 05:18:05 +00:00
8362250: ARM32: forward_exception_entry missing return address
Reviewed-by: shade
This commit is contained in:
parent
5e4a2ead71
commit
6ed81641b1
@ -8888,13 +8888,8 @@ instruct TailCalljmpInd(IPRegP jump_target, inline_cache_regP method_ptr) %{
|
||||
match(TailCall jump_target method_ptr);
|
||||
|
||||
ins_cost(CALL_COST);
|
||||
format %{ "MOV Rexception_pc, LR\n\t"
|
||||
"jump $jump_target \t! $method_ptr holds method" %}
|
||||
format %{ "jump $jump_target \t! $method_ptr holds method" %}
|
||||
ins_encode %{
|
||||
__ mov(Rexception_pc, LR); // this is used only to call
|
||||
// StubRoutines::forward_exception_entry()
|
||||
// which expects PC of exception in
|
||||
// R5. FIXME?
|
||||
__ jump($jump_target$$Register);
|
||||
%}
|
||||
ins_pipe(tail_call);
|
||||
@ -8939,8 +8934,10 @@ instruct ForwardExceptionjmp()
|
||||
match(ForwardException);
|
||||
ins_cost(CALL_COST);
|
||||
|
||||
format %{ "b forward_exception_stub" %}
|
||||
format %{ "MOV Rexception_pc, LR\n\t"
|
||||
"b forward_exception_entry" %}
|
||||
ins_encode %{
|
||||
__ mov(Rexception_pc, LR);
|
||||
// OK to trash Rtemp, because Rtemp is used by stub
|
||||
__ jump(StubRoutines::forward_exception_entry(), relocInfo::runtime_call_type, Rtemp);
|
||||
%}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user