* config/alpha/alpha.md (call_osf_1_noreturn): New pattern.
authorRichard Henderson <rth@redhat.com>
Wed, 7 Mar 2001 18:50:26 +0000 (10:50 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 7 Mar 2001 18:50:26 +0000 (10:50 -0800)
From-SVN: r40297

gcc/ChangeLog
gcc/config/alpha/alpha.md

index d2e1460..4e55b27 100644 (file)
@@ -1,5 +1,9 @@
 2001-03-07  Richard Henderson  <rth@redhat.com>
 
+       * config/alpha/alpha.md (call_osf_1_noreturn): New pattern.
+
+2001-03-07  Richard Henderson  <rth@redhat.com>
+
        * emit-rtl.c (remove_unnecessary_notes): Verify proper nesting
        of block notes and exception handling notes.
 
index 475e9d6..01462c9 100644 (file)
     }
 }")
 
+(define_insn "*call_osf_1_noreturn"
+  [(call (mem:DI (match_operand:DI 0 "call_operand" "c,R,i"))
+        (match_operand 1 "" ""))
+   (clobber (reg:DI 27))
+   (clobber (reg:DI 26))]
+  "! TARGET_WINDOWS_NT && ! TARGET_OPEN_VMS
+   && find_reg_note (insn, REG_NORETURN, NULL_RTX)"
+  "@
+   jsr $26,($27),0
+   bsr $26,$%0..ng
+   jsr $26,%0"
+  [(set_attr "type" "jsr")
+   (set_attr "length" "*,*,8")])
+      
 (define_insn "*call_osf_1"
   [(call (mem:DI (match_operand:DI 0 "call_operand" "c,R,i"))
         (match_operand 1 "" ""))