alpha.c (alpha_return_addr_rtx): New variable.
authorRichard Henderson <rth@cygnus.com>
Thu, 16 Oct 1997 18:37:59 +0000 (11:37 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 16 Oct 1997 18:37:59 +0000 (11:37 -0700)
commit9ecc37f0e28c6e2bd063193f22794ff6d213b074
tree2843841f70e843b7e679929b55558330d21f844d
parentbda2ffefc8cd48d877d9721fef72b161bba32fed
alpha.c (alpha_return_addr_rtx): New variable.

        * alpha.c (alpha_return_addr_rtx): New variable.
        (alpha_save_machine_status): New; save it.
        (alpha_restore_machine_status): New; restore it.
        (alpha_init_expanders): New; clear it.
        (alpha_return_addr): New; set it.
        (alpha_ra_ever_killed): New; if alpha_return_addr_rtx, regs_ever_live
        is overly conservative, so search the insns explicitly.
        (alpha_sa_mask [VMS]): Check alpha_ra_ever_killed.
        (alpha_sa_size [VMS && !VMS]): Likewise.
        * alpha.h (RETURN_ADDR_RTX): Call alpha_return_addr.
        (INIT_EXPANDERS): New definition.

        * alpha.c: Move REG_PV, REG_RA somewhere more visible in the file.
        (output_prolog [!VMS]): Use them.

        * alpha.c (output_prolog [!VMS]): Move gp detection to ...
        (alpha_does_function_need_gp): ... a new function.  Refine the
        CALL_INSN test to just TYPE_JSR.
        * alpha.md (most call insns): Fix some jsr/ibr type transpositions.

From-SVN: r15936
gcc/ChangeLog
gcc/config/alpha/alpha.c
gcc/config/alpha/alpha.h
gcc/config/alpha/alpha.md