alpha.md (attr type): Add callpal.
authorRichard Henderson <rth@redhat.com>
Fri, 13 Sep 2002 18:01:09 +0000 (11:01 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Fri, 13 Sep 2002 18:01:09 +0000 (11:01 -0700)
        * config/alpha/alpha.md (attr type): Add callpal.
        (imb, trap, load_tp, set_tp): Use it.
        * config/alpha/ev4.md (ev4_callpal): New.
        * config/alpha/ev5.md (ev5_callpal): New.
        * config/alpha/ev6.md (ev6_ibr): Handle callpal.
        * config/alpha/alpha.c (alphaev4_insn_pipe): Handle TYPE_CALLPAL.
        (alphaev5_insn_pipe): Likewise.

From-SVN: r57113

gcc/ChangeLog
gcc/config/alpha/alpha.c
gcc/config/alpha/alpha.md
gcc/config/alpha/ev4.md
gcc/config/alpha/ev5.md
gcc/config/alpha/ev6.md

index 0b69e8fdbf487c90d2e8ec284a2a3017cb9fd659..5a8c3c5215aca35afa0b8ba21a7bf08239f1c5f9 100644 (file)
@@ -1,3 +1,13 @@
+2002-09-13  Richard Henderson  <rth@redhat.com>
+
+       * config/alpha/alpha.md (attr type): Add callpal.
+       (imb, trap, load_tp, set_tp): Use it.
+       * config/alpha/ev4.md (ev4_callpal): New.
+       * config/alpha/ev5.md (ev5_callpal): New.
+       * config/alpha/ev6.md (ev6_ibr): Handle callpal.
+       * config/alpha/alpha.c (alphaev4_insn_pipe): Handle TYPE_CALLPAL.
+       (alphaev5_insn_pipe): Likewise.
+
 2002-09-13  Andreas Jaeger  <aj@suse.de>
 
        * Makefile.in (print-rtl.o): Depend on CONFIG_H.
index 800476d4e8fc1dc4ea09bb8f61d793347d3745b3..d5b8099718e178de937def8aa6b6e9565fdc6ca3 100644 (file)
@@ -8376,6 +8376,7 @@ alphaev4_insn_pipe (insn)
     case TYPE_MISC:
     case TYPE_IBR:
     case TYPE_JSR:
+    case TYPE_CALLPAL:
     case TYPE_FCPYS:
     case TYPE_FCMOV:
     case TYPE_FADD:
@@ -8418,6 +8419,7 @@ alphaev5_insn_pipe (insn)
 
     case TYPE_IBR:
     case TYPE_JSR:
+    case TYPE_CALLPAL:
       return EV5_E1;
 
     case TYPE_FCPYS:
index 01acdf14165e32e4613a6d205ed1bd77cdfddf3b..b5bc6ff05c4cbfad3343b6ee134c877369529e3f 100644 (file)
@@ -97,7 +97,7 @@
 ;; separately.
 
 (define_attr "type"
-  "ild,fld,ldsym,ist,fst,ibr,fbr,jsr,iadd,ilog,shift,icmov,fcmov,icmp,imul,\
+  "ild,fld,ldsym,ist,fst,ibr,callpal,fbr,jsr,iadd,ilog,shift,icmov,fcmov,icmp,imul,\
 fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
   (const_string "iadd"))
 
@@ -4866,7 +4866,7 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
   [(unspec_volatile [(const_int 0)] UNSPECV_IMB)]
   ""
   "call_pal 0x86"
-  [(set_attr "type" "ibr")])
+  [(set_attr "type" "callpal")])
 
 ;; BUGCHK is documented common to OSF/1 and VMS PALcode.
 ;; NT does not document anything at 0x81 -- presumably it would generate
@@ -4876,7 +4876,7 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
   [(trap_if (const_int 1) (const_int 0))]
   "!TARGET_ABI_WINDOWS_NT"
   "call_pal 0x81"
-  [(set_attr "type" "ibr")])
+  [(set_attr "type" "callpal")])
 
 ;; For userland, we load the thread pointer from the TCB.
 ;; For the kernel, we load the per-cpu private value.
@@ -4891,7 +4891,7 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
   else
     return "call_pal 0x9e";
 }
-  [(set_attr "type" "ibr")])
+  [(set_attr "type" "callpal")])
 
 ;; For completeness, and possibly a __builtin function, here's how to
 ;; set the thread pointer.  Since we don't describe enough of this
@@ -4913,7 +4913,7 @@ fadd,fmul,fcpys,fdiv,fsqrt,misc,mvi,ftoi,itof,multi,none"
   else
     return "call_pal 0x9f";
 }
-  [(set_attr "type" "ibr")])
+  [(set_attr "type" "callpal")])
 \f
 ;; Finally, we have the basic data motion insns.  The byte and word insns
 ;; are done via define_expand.  Start with the floating-point insns, since
index 6816e44640ba6f1a9ed3ab5770bbcc81893db090..41e1efd4cd78394a2e786800155568d3056587be 100644 (file)
        (eq_attr "type" "ibr,jsr"))
   "ev4_ib1+ev4_bbox,ev4_bbox")
 
+(define_insn_reservation "ev4_callpal" 2
+  (and (eq_attr "cpu" "ev4")
+       (eq_attr "type" "callpal"))
+  "ev4_ib1+ev4_bbox,ev4_bbox")
+
 (define_insn_reservation "ev4_fbr" 2
   (and (eq_attr "cpu" "ev4")
        (eq_attr "type" "fbr"))
index 69aa4a817aa3f180b6f8ba524a16af4f65dc1eb7..832cf6be8f365a7394d2929c6dbb094ec0d435b0 100644 (file)
        (eq_attr "type" "ibr"))
   "ev5_e1")
 
+(define_insn_reservation "ev5_callpal" 1
+  (and (eq_attr "cpu" "ev5")
+       (eq_attr "type" "callpal"))
+  "ev5_e1")
+
 (define_insn_reservation "ev5_jsr" 1
   (and (eq_attr "cpu" "ev5")
        (eq_attr "type" "jsr"))
index 78bb51f23f2df8eed14f6c967342310a6f3108c1..12204b69d6a7c380763923e5d0a477ada9929223 100644 (file)
 ; Integer branches issue to upper units
 (define_insn_reservation "ev6_ibr" 1
   (and (eq_attr "cpu" "ev6")
-       (eq_attr "type" "ibr"))
+       (eq_attr "type" "ibr,callpal"))
   "ev6_u")
 
 ; Calls only issue to L0.