Commit d5909a79 by Richard Henderson Committed by Richard Henderson

alpha.md (attr type): Add callpal.

        * 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
parent e0073fa8
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.
......
......@@ -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:
......
......@@ -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")])
;; 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
......
......@@ -59,6 +59,11 @@
(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"))
......
......@@ -59,6 +59,11 @@
(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"))
......
......@@ -113,7 +113,7 @@
; 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.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment