diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1993-02-10 16:12:51 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1993-02-10 16:12:51 -0500 |
commit | 4ba7b922dd2f6d22a009352d85223d0e44283d02 (patch) | |
tree | 9ae95d5684b3e2e513d35a326c8512b7014618d5 /gcc | |
parent | 130d2d725d8c26a325c46d413e041d9ffb70ba73 (diff) | |
download | gcc-4ba7b922dd2f6d22a009352d85223d0e44283d02.zip gcc-4ba7b922dd2f6d22a009352d85223d0e44283d02.tar.gz gcc-4ba7b922dd2f6d22a009352d85223d0e44283d02.tar.bz2 |
(call insns): Always reload gp after a full call.
Use current_file_function_operand to see when we can use BSR.
From-SVN: r3458
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/alpha/alpha.md | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/gcc/config/alpha/alpha.md b/gcc/config/alpha/alpha.md index a49b621..849f404 100644 --- a/gcc/config/alpha/alpha.md +++ b/gcc/config/alpha/alpha.md @@ -2198,12 +2198,7 @@ (use (match_operand:DI 1 "" "")) (clobber (reg:DI 26))] "" - "* -{ if (alpha_gp_dead_after (insn)) - return \"jsr $26,($27),%1\"; - else - return \"jsr $26,($27),%1\;ldgp $29,0($26)\"; -}" + "jsr $26,($27),%1\;ldgp $29,0($26)" [(set_attr "type" "jsr")]) (define_insn "" @@ -2213,31 +2208,26 @@ (use (match_operand:DI 2 "" "")) (clobber (reg:DI 26))] "" - "* -{ if (alpha_gp_dead_after (insn)) - return \"jsr $26,($27),%2\"; - else - return \"jsr $26,($27),%2\;ldgp $29,0($26)\"; -}" + "jsr $26,($27),%2\;ldgp $29,0($26)" [(set_attr "type" "jsr")]) (define_insn "" - [(call (mem:DI (match_operand 1 "current_function_operand" "i")) + [(call (mem:DI (match_operand 1 "current_file_function_operand" "i")) (match_operand 0 "" "")) (use (match_dup 1)) (clobber (reg:DI 26))] "" - "bsr $26,%F1" + "bsr $26,%1..ng" [(set_attr "type" "ibr")]) (define_insn "" [(set (match_operand 0 "register_operand" "=rf") - (call (mem:DI (match_operand 1 "current_function_operand" "i")) + (call (mem:DI (match_operand 1 "current_file_function_operand" "i")) (match_operand 2 "" ""))) (use (match_dup 1)) (clobber (reg:DI 26))] "" - "bsr $26,%F1" + "bsr $26,%1..ng" [(set_attr "type" "ibr")]) (define_insn "jump" |