pa.c (pa_output_call): Load descriptor address to register %r22.
authorJohn David Anglin <danglin@gcc.gnu.org>
Sat, 12 Oct 2019 20:37:37 +0000 (20:37 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Sat, 12 Oct 2019 20:37:37 +0000 (20:37 +0000)
commit70238876c799943407ff6717b7fd9d98b8cb9080
treecceb9c80d335056d23eaeeb7f0a846c16af58394
parentc89d7d19a2aa333684e5bf744ae3b813c6054d63
pa.c (pa_output_call): Load descriptor address to register %r22.

* config/pa/pa.c (pa_output_call): Load descriptor address to register
%r22.  Load function address before global pointer.
(pa_attr_length_indirect_call): Adjust length of inline versions of
$$dyncall.
(pa_output_indirect_call): Remove fast inline version of $$dyncall
before normal cases.  Update inline $$dyncall sequences to preserve
function descriptor address in register %r22.
(TRAMPOLINE_CODE_SIZE): Adjust.
(pa_asm_trampoline_template): Revise 32-bit trampoline.  Don't assume
register %r22 contains trampoline address.
(pa_trampoline_init): Adjust offsets.
(pa_trampoline_adjust_address): Likewise.
* config/pa/pa.h (TRAMPOLINE_SIZE): Adjust 32-bit size.

From-SVN: r276928
gcc/ChangeLog
gcc/config/pa/pa.c
gcc/config/pa/pa.h