* config/alpha/alpha.md (attr type): Add callpal.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Sep 2002 18:01:09 +0000 (18:01 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Sep 2002 18:01:09 +0000 (18:01 +0000)
        (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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57113 138bc75d-0d04-0410-961f-82ee72b054a4

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 0b69e8f..5a8c3c5 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 800476d..d5b8099 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 01acdf1..b5bc6ff 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 6816e44..41e1efd 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 69aa4a8..832cf6b 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 78bb51f..12204b6 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.