2000-05-29 Philip Blundell <philb@gnu.org>
[binutils.git] / opcodes / ia64-ic.tbl
blob021194af70251b0f887e46d6caa527b83d02534d
1 Class;  Events/Instructions
2 all;    IC:predicatable-instructions, IC:unpredicatable-instructions
3 branches;       IC:indirect-brs, IC:ip-rel-brs
4 cfm-readers;    IC:fr-readers, IC:fr-writers, IC:gr-readers, IC:gr-writers, IC:mod-sched-brs, IC:predicatable-instructions, IC:pr-writers, alloc, br.call, brl.call, br.ret, cover, loadrs, rfi, IC:chk-a, invala.e
5 chk-a;  chk.a.clr, chk.a.nc
6 cmpxchg;        cmpxchg1, cmpxchg2, cmpxchg4, cmpxchg8
7 czx;    czx1, czx2
8 fcmp-s0;        fcmp[Field(sf)==s0]
9 fcmp-s1;        fcmp[Field(sf)==s1]
10 fcmp-s2;        fcmp[Field(sf)==s2]
11 fcmp-s3;        fcmp[Field(sf)==s3]
12 fetchadd;       fetchadd4, fetchadd8
13 fp-arith;       fadd, famax, famin, fcvt.fx, fcvt.fxu, fcvt.xuf, fma, fmax, fmin, fmpy, fms, fnma, fnmpy, fnorm, fpamax, fpamin, fpcvt.fx, fpcvt.fxu, fpma, fpmax, fpmin, fpmpy, fpms, fpnma, fpnmpy, fprcpa, fprsqrta, frcpa, frsqrta, fsub
14 fp-arith-s0;    IC:fp-arith[Field(sf)==s0]
15 fp-arith-s1;    IC:fp-arith[Field(sf)==s1]
16 fp-arith-s2;    IC:fp-arith[Field(sf)==s2]
17 fp-arith-s3;    IC:fp-arith[Field(sf)==s3]
18 fp-non-arith;   fabs, fand, fandcm, fclass, fcvt.xf, fmerge, fmix, fneg, fnegabs, for, fpabs, fpmerge, fpack, fpneg, fpnegabs, fselect, fswap, fsxt, fxor, xma
19 fpcmp-s0;       fpcmp[Field(sf)==s0]
20 fpcmp-s1;       fpcmp[Field(sf)==s1]
21 fpcmp-s2;       fpcmp[Field(sf)==s2]
22 fpcmp-s3;       fpcmp[Field(sf)==s3]
23 fr-readers;     IC:fp-arith, IC:fp-non-arith, IC:pr-writers-fp, chk.s[Format in {M21}], getf
24 fr-writers;     IC:fp-arith, IC:fp-non-arith\fclass, IC:mem-readers-fp
25 gr-readers;     IC:gr-readers-writers, IC:mem-readers, IC:mem-writers, chk.s, cmp, cmp4, fc, itc.i, itc.d, itr.i, itr.d, IC:mov-to-AR-gr, IC:mov-to-BR, IC:mov-to-CR, IC:mov-to-IND, IC:mov-from-IND, IC:mov-to-PR-allreg, IC:mov-to-PSR-l, IC:mov-to-PSR-um, IC:probe-all, ptc.e, ptc.g, ptc.ga, ptc.l, ptr.i, ptr.d, setf, tbit, tnat
26 gr-readers-writers;     IC:mov-from-IND, add, addl, addp4, adds, and, andcm, IC:czx, dep\dep[Format in {I13}], extr, IC:mem-readers-int, IC:ld-all-postinc, IC:lfetch-postinc, IC:mix, IC:mux, or, IC:pack, IC:padd, IC:pavg, IC:pavgsub, IC:pcmp, IC:pmax, IC:pmin, IC:pmpy, IC:pmpyshr, popcnt, IC:probe-nofault, IC:psad, IC:pshl, IC:pshladd, IC:pshr, IC:pshradd, IC:psub, shl, shladd, shladdp4, shr, shrp, IC:st-postinc, sub, IC:sxt, tak, thash, tpa, ttag, IC:unpack, xor, IC:zxt
27 gr-writers;     alloc, dep, getf, IC:gr-readers-writers, IC:mem-readers-int, IC:mov-from-AR, IC:mov-from-BR, IC:mov-from-CR, IC:mov-from-PR, IC:mov-immediate, IC:mov-from-PSR, IC:mov-from-PSR-um, IC:mov-ip, movl
28 indirect-brp;   brp[Format in {B7}]
29 indirect-brs;   br.call[Format in {B5}], br.cond[Format in {B4}], br.ia, br.ret
30 invala-all;     invala[Format in {M24}], invala.e
31 ip-rel-brs;     IC:mod-sched-brs, br.call[Format in {B3}], brl.call, brl.cond, br.cond[Format in {B1}], br.cloop
32 ld;     ld1, ld2, ld4, ld8, ld8.fill
33 ld-a;   ld1.a, ld2.a, ld4.a, ld8.a
34 ld-all-postinc; IC:ld[Format in {M2 M3}], IC:ldfp[Format in {M12}], IC:ldf[Format in {M7 M8}]
35 ld-c;   IC:ld-c-nc, IC:ld-c-clr
36 ld-c-clr;       ld1.c.clr, ld2.c.clr, ld4.c.clr, ld8.c.clr, IC:ld-c-clr-acq
37 ld-c-clr-acq;   ld1.c.clr.acq, ld2.c.clr.acq, ld4.c.clr.acq, ld8.c.clr.acq
38 ld-c-nc;        ld1.c.nc, ld2.c.nc, ld4.c.nc, ld8.c.nc
39 ld-s;   ld1.s, ld2.s, ld4.s, ld8.s
40 ld-sa;  ld1.sa, ld2.sa, ld4.sa, ld8.sa
41 ldf;    ldfs, ldfd, ldfe, ldf8, ldf.fill
42 ldf-a;  ldfs.a, ldfd.a, ldfe.a, ldf8.a
43 ldf-c;  IC:ldf-c-nc, IC:ldf-c-clr
44 ldf-c-clr;      ldfs.c.clr, ldfd.c.clr, ldfe.c.clr, ldf8.c.clr
45 ldf-c-nc;       ldfs.c.nc, ldfd.c.nc, ldfe.c.nc, ldf8.c.nc
46 ldf-s;  ldfs.s, ldfd.s, ldfe.s, ldf8.s
47 ldf-sa; ldfs.sa, ldfd.sa, ldfe.sa, ldf8.sa
48 ldfp;   ldfps, ldfpd, ldfp8
49 ldfp-a; ldfps.a, ldfpd.a, ldfp8.a
50 ldfp-c; IC:ldfp-c-nc, IC:ldfp-c-clr
51 ldfp-c-clr;     ldfps.c.clr, ldfpd.c.clr, ldfp8.c.clr
52 ldfp-c-nc;      ldfps.c.nc, ldfpd.c.nc, ldfp8.c.nc
53 ldfp-s; ldfps.s, ldfpd.s, ldfp8.s
54 ldfp-sa;        ldfps.sa, ldfpd.sa, ldfp8.sa
55 lfetch-all;     lfetch
56 lfetch-fault;   lfetch[Field(lftype)==fault]
57 lfetch-nofault; lfetch[Field(lftype)==]
58 lfetch-postinc; lfetch[Format in {M14 M15}]
59 mem-readers;    IC:mem-readers-fp, IC:mem-readers-int
60 mem-readers-alat;       IC:ld-a, IC:ldf-a, IC:ldfp-a, IC:ld-sa, IC:ldf-sa, IC:ldfp-sa, IC:ld-c, IC:ldf-c, IC:ldfp-c
61 mem-readers-fp; IC:ldf, IC:ldfp
62 mem-readers-int;        IC:cmpxchg, IC:fetchadd, IC:xchg, IC:ld
63 mem-readers-spec;       IC:ld-s, IC:ld-sa, IC:ldf-s, IC:ldf-sa, IC:ldfp-s, IC:ldfp-sa
64 mem-writers;    IC:mem-writers-fp, IC:mem-writers-int
65 mem-writers-fp; IC:stf
66 mem-writers-int;        IC:cmpxchg, IC:fetchadd, IC:xchg, IC:st
67 mix;    mix1, mix2, mix4
68 mod-sched-brs;  br.cexit, br.ctop, br.wexit, br.wtop
69 mod-sched-brs-counted;  br.cexit, br.cloop, br.ctop
70 mov-from-AR;    IC:mov-from-AR-M, IC:mov-from-AR-I, IC:mov-from-AR-IM
71 mov-from-AR-BSP;        IC:mov-from-AR-M[Field(ar3) == BSP]
72 mov-from-AR-BSPSTORE;   IC:mov-from-AR-M[Field(ar3) == BSPSTORE]
73 mov-from-AR-CCV;        IC:mov-from-AR-M[Field(ar3) == CCV]
74 mov-from-AR-EC; IC:mov-from-AR-I[Field(ar3) == EC]
75 mov-from-AR-FPSR;       IC:mov-from-AR-M[Field(ar3) == FPSR]
76 mov-from-AR-I;  mov_ar[Format in {I28}]
77 mov-from-AR-ig; IC:mov-from-AR-IM[Field(ar3) in {48-63 112-127}]
78 mov-from-AR-IM; mov_ar[Format in {I28 M31}]
79 mov-from-AR-ITC;        IC:mov-from-AR-M[Field(ar3) == ITC]
80 mov-from-AR-K;  IC:mov-from-AR-M[Field(ar3) in {K0 K1 K2 K3 K4 K5 K6 K7}]
81 mov-from-AR-LC; IC:mov-from-AR-I[Field(ar3) == LC]
82 mov-from-AR-M;  mov_ar[Format in {M31}]
83 mov-from-AR-PFS;        IC:mov-from-AR-I[Field(ar3) == PFS]
84 mov-from-AR-RNAT;       IC:mov-from-AR-M[Field(ar3) == RNAT]
85 mov-from-AR-RSC;        IC:mov-from-AR-M[Field(ar3) == RSC]
86 mov-from-AR-rv; IC:none
87 mov-from-AR-UNAT;       IC:mov-from-AR-M[Field(ar3) == UNAT]
88 mov-from-BR;    mov_br[Format in {I22}]
89 mov-from-CR;    mov_cr[Format in {M33}]
90 mov-from-CR-CMCV;       IC:mov-from-CR[Field(cr3) == CMCV]
91 mov-from-CR-DCR;        IC:mov-from-CR[Field(cr3) == DCR]
92 mov-from-CR-EOI;        IC:mov-from-CR[Field(cr3) == EOI]
93 mov-from-CR-GPTA;       IC:mov-from-CR[Field(cr3) == GPTA]
94 mov-from-CR-IFA;        IC:mov-from-CR[Field(cr3) == IFA]
95 mov-from-CR-IFS;        IC:mov-from-CR[Field(cr3) == IFS]
96 mov-from-CR-IHA;        IC:mov-from-CR[Field(cr3) == IHA]
97 mov-from-CR-IIM;        IC:mov-from-CR[Field(cr3) == IIM]
98 mov-from-CR-IIP;        IC:mov-from-CR[Field(cr3) == IIP]
99 mov-from-CR-IIPA;       IC:mov-from-CR[Field(cr3) == IIPA]
100 mov-from-CR-IPSR;       IC:mov-from-CR[Field(cr3) == IPSR]
101 mov-from-CR-IRR;        IC:mov-from-CR[Field(cr3) in {IRR0 IRR1 IRR2 IRR3}]
102 mov-from-CR-ISR;        IC:mov-from-CR[Field(cr3) == ISR]
103 mov-from-CR-ITIR;       IC:mov-from-CR[Field(cr3) == ITIR]
104 mov-from-CR-ITM;        IC:mov-from-CR[Field(cr3) == ITM]
105 mov-from-CR-ITV;        IC:mov-from-CR[Field(cr3) == ITV]
106 mov-from-CR-IVA;        IC:mov-from-CR[Field(cr3) == IVA]
107 mov-from-CR-IVR;        IC:mov-from-CR[Field(cr3) == IVR]
108 mov-from-CR-LID;        IC:mov-from-CR[Field(cr3) == LID]
109 mov-from-CR-LRR;        IC:mov-from-CR[Field(cr3) in {LRR0 LRR1}]
110 mov-from-CR-PMV;        IC:mov-from-CR[Field(cr3) == PMV]
111 mov-from-CR-PTA;        IC:mov-from-CR[Field(cr3) == PTA]
112 mov-from-CR-rv; IC:none
113 mov-from-CR-TPR;        IC:mov-from-CR[Field(cr3) == TPR]
114 mov-from-IND;   mov_indirect[Format in {M43}]
115 mov-from-IND-CPUID;     IC:mov-from-IND[Field(ireg) == cpuid]
116 mov-from-IND-DBR;       IC:mov-from-IND[Field(ireg) == dbr]
117 mov-from-IND-IBR;       IC:mov-from-IND[Field(ireg) == ibr]
118 mov-from-IND-MSR;       IC:mov-from-IND[Field(ireg) == msr]
119 mov-from-IND-PKR;       IC:mov-from-IND[Field(ireg) == pkr]
120 mov-from-IND-PMC;       IC:mov-from-IND[Field(ireg) == pmc]
121 mov-from-IND-PMD;       IC:mov-from-IND[Field(ireg) == pmd]
122 mov-from-IND-priv;      IC:mov-from-IND[Field(ireg) in {dbr ibr msr pkr pmc rr}]
123 mov-from-IND-RR;        IC:mov-from-IND[Field(ireg) == rr]
124 mov-from-PR;    mov_pr[Format in {I25}]
125 mov-from-PSR;   mov_psr[Format in {M36}]
126 mov-from-PSR-um;        mov_um[Format in {M36}]
127 mov-immediate;  addl[Format in {A5}]
128 mov-ip; mov_ip[Format in {I25}]
129 mov-to-AR;      IC:mov-to-AR-M, IC:mov-to-AR-I
130 mov-to-AR-BSP;  IC:mov-to-AR-M[Field(ar3) == BSP]
131 mov-to-AR-BSPSTORE;     IC:mov-to-AR-M[Field(ar3) == BSPSTORE]
132 mov-to-AR-CCV;  IC:mov-to-AR-M[Field(ar3) == CCV]
133 mov-to-AR-EC;   IC:mov-to-AR-I[Field(ar3) == EC]
134 mov-to-AR-FPSR; IC:mov-to-AR-M[Field(ar3) == FPSR]
135 mov-to-AR-gr;   IC:mov-to-AR-M[Format in {M29}], IC:mov-to-AR-I[Format in {I26}]
136 mov-to-AR-I;    mov_ar[Format in {I26 I27}]
137 mov-to-AR-ig;   IC:mov-to-AR-IM[Field(ar3) in {48-63 112-127}]
138 mov-to-AR-IM;   mov_ar[Format in {I26 I27 M29 M30}]
139 mov-to-AR-ITC;  IC:mov-to-AR-M[Field(ar3) == ITC]
140 mov-to-AR-K;    IC:mov-to-AR-M[Field(ar3) in {K0 K1 K2 K3 K4 K5 K6 K7}]
141 mov-to-AR-LC;   IC:mov-to-AR-I[Field(ar3) == LC]
142 mov-to-AR-M;    mov_ar[Format in {M29 M30}]
143 mov-to-AR-PFS;  IC:mov-to-AR-I[Field(ar3) == PFS]
144 mov-to-AR-RNAT; IC:mov-to-AR-M[Field(ar3) == RNAT]
145 mov-to-AR-RSC;  IC:mov-to-AR-M[Field(ar3) == RSC]
146 mov-to-AR-UNAT; IC:mov-to-AR-M[Field(ar3) == UNAT]
147 mov-to-BR;      mov_br[Format in {I21}]
148 mov-to-CR;      mov_cr[Format in {M32}]
149 mov-to-CR-CMCV; IC:mov-to-CR[Field(cr3) == CMCV]
150 mov-to-CR-DCR;  IC:mov-to-CR[Field(cr3) == DCR]
151 mov-to-CR-EOI;  IC:mov-to-CR[Field(cr3) == EOI]
152 mov-to-CR-GPTA; IC:mov-to-CR[Field(cr3) == GPTA]
153 mov-to-CR-IFA;  IC:mov-to-CR[Field(cr3) == IFA]
154 mov-to-CR-IFS;  IC:mov-to-CR[Field(cr3) == IFS]
155 mov-to-CR-IHA;  IC:mov-to-CR[Field(cr3) == IHA]
156 mov-to-CR-IIM;  IC:mov-to-CR[Field(cr3) == IIM]
157 mov-to-CR-IIP;  IC:mov-to-CR[Field(cr3) == IIP]
158 mov-to-CR-IIPA; IC:mov-to-CR[Field(cr3) == IIPA]
159 mov-to-CR-IPSR; IC:mov-to-CR[Field(cr3) == IPSR]
160 mov-to-CR-IRR;  IC:mov-to-CR[Field(cr3) in {IRR0 IRR1 IRR2 IRR3}]
161 mov-to-CR-ISR;  IC:mov-to-CR[Field(cr3) == ISR]
162 mov-to-CR-ITIR; IC:mov-to-CR[Field(cr3) == ITIR]
163 mov-to-CR-ITM;  IC:mov-to-CR[Field(cr3) == ITM]
164 mov-to-CR-ITV;  IC:mov-to-CR[Field(cr3) == ITV]
165 mov-to-CR-IVA;  IC:mov-to-CR[Field(cr3) == IVA]
166 mov-to-CR-IVR;  IC:mov-to-CR[Field(cr3) == IVR]
167 mov-to-CR-LID;  IC:mov-to-CR[Field(cr3) == LID]
168 mov-to-CR-LRR;  IC:mov-to-CR[Field(cr3) in {LRR0 LRR1}]
169 mov-to-CR-PMV;  IC:mov-to-CR[Field(cr3) == PMV]
170 mov-to-CR-PTA;  IC:mov-to-CR[Field(cr3) == PTA]
171 mov-to-CR-TPR;  IC:mov-to-CR[Field(cr3) == TPR]
172 mov-to-IND;     mov_indirect[Format in {M42}]
173 mov-to-IND-CPUID;       IC:mov-to-IND[Field(ireg) == cpuid]
174 mov-to-IND-DBR; IC:mov-to-IND[Field(ireg) == dbr]
175 mov-to-IND-IBR; IC:mov-to-IND[Field(ireg) == ibr]
176 mov-to-IND-MSR; IC:mov-to-IND[Field(ireg) == msr]
177 mov-to-IND-PKR; IC:mov-to-IND[Field(ireg) == pkr]
178 mov-to-IND-PMC; IC:mov-to-IND[Field(ireg) == pmc]
179 mov-to-IND-PMD; IC:mov-to-IND[Field(ireg) == pmd]
180 mov-to-IND-priv;        IC:mov-to-IND
181 mov-to-IND-RR;  IC:mov-to-IND[Field(ireg) == rr]
182 mov-to-PR;      IC:mov-to-PR-allreg, IC:mov-to-PR-rotreg
183 mov-to-PR-allreg;       mov_pr[Format in {I23}]
184 mov-to-PR-rotreg;       mov_pr[Format in {I24}]
185 mov-to-PSR-l;   mov_psr[Format in {M35}]
186 mov-to-PSR-um;  mov_um[Format in {M35}]
187 mux;    mux1, mux2
188 none;   -
189 pack;   pack2, pack4
190 padd;   padd1, padd2, padd4
191 pavg;   pavg1, pavg2
192 pavgsub;        pavgsub1, pavgsub2
193 pcmp;   pcmp1, pcmp2, pcmp4
194 pmax;   pmax1, pmax2
195 pmin;   pmin1, pmin2
196 pmpy;   pmpy2
197 pmpyshr;        pmpyshr2
198 pr-and-writers; IC:pr-gen-writers-int[Field(ctype) in {and andcm}], IC:pr-gen-writers-int[Field(ctype) in {or.andcm and.orcm}]
199 pr-gen-writers-fp;      fclass, fcmp
200 pr-gen-writers-int;     cmp, cmp4, tbit, tnat
201 pr-norm-writers-fp;     IC:pr-gen-writers-fp[Field(ctype)==]
202 pr-norm-writers-int;    IC:pr-gen-writers-int[Field(ctype)==]
203 pr-or-writers;  IC:pr-gen-writers-int[Field(ctype) in {or orcm}], IC:pr-gen-writers-int[Field(ctype) in {or.andcm and.orcm}]
204 pr-readers-br;  br.call, br.cond, brl.call, brl.cond, br.ret, br.wexit, br.wtop, break.b, break, nop.b, nop, IC:ReservedBQP
205 pr-readers-nobr-nomovpr;        add, addp4, and, andcm, break.f, break.i, break.m, break.x, break, chk.s, IC:chk-a, cmp, cmp4, IC:cmpxchg, IC:czx, dep, extr, IC:fp-arith, IC:fp-non-arith, fc, fchkf, fclrf, fcmp, IC:fetchadd, fpcmp, fsetc, fwb, getf, IC:invala-all, itc.i, itc.d, itr.i, itr.d, IC:ld, IC:ldf, IC:ldfp, IC:lfetch-all, mf, IC:mix, IC:mov-from-AR-M, IC:mov-from-AR-IM, IC:mov-from-AR-I, IC:mov-to-AR-M, IC:mov-to-AR-I, IC:mov-to-AR-IM, IC:mov-to-BR, IC:mov-from-BR, IC:mov-to-CR, IC:mov-from-CR, IC:mov-to-IND, IC:mov-from-IND, IC:mov-ip, IC:mov-immediate, IC:mov-to-PSR-l, IC:mov-to-PSR-um, IC:mov-from-PSR, IC:mov-from-PSR-um, movl, IC:mux, nop.f, nop.i, nop.m, nop.x, nop, or, IC:pack, IC:padd, IC:pavg, IC:pavgsub, IC:pcmp, IC:pmax, IC:pmin, IC:pmpy, IC:pmpyshr, popcnt, IC:probe-all, IC:psad, IC:pshl, IC:pshladd, IC:pshr, IC:pshradd, IC:psub, ptc.e, ptc.g, ptc.ga, ptc.l, ptr.d, ptr.i, IC:ReservedQP, rsm, setf, shl, shladd, shladdp4, shr, shrp, srlz.i, srlz.d, ssm, IC:st, IC:stf, sub, sum, IC:sxt, sync, tak,