1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2 | /* SPU ELF support for BFD. |
3 | |
4 | Copyright 2006 Free Software Foundation, Inc. |
5 | |
6 | This file is part of BFD, the Binary File Descriptor library. |
7 | |
8 | */ |
9 | |
10 | /* SPU Opcode Table |
11 | |
12 | -=-=-= FORMAT =-=-=- |
13 | |
14 | +----+-------+-------+-------+-------+ +------------+-------+-------+-------+ |
15 | RRR | op | RC | RB | RA | RT | RI7 | op | I7 | RA | RT | |
16 | +----+-------+-------+-------+-------+ +------------+-------+-------+-------+ |
17 | 0 3 1 1 2 3 0 1 1 2 3 |
18 | 0 7 4 1 0 7 4 1 |
19 | |
20 | +-----------+--------+-------+-------+ +---------+----------+-------+-------+ |
21 | RI8 | op | I8 | RA | RT | RI10 | op | I10 | RA | RT | |
22 | +-----------+--------+-------+-------+ +---------+----------+-------+-------+ |
23 | 0 9 1 2 3 0 7 1 2 3 |
24 | 7 4 1 7 4 1 |
25 | |
26 | +----------+-----------------+-------+ +--------+-------------------+-------+ |
27 | RI16 | op | I16 | RT | RI18 | op | I18 | RT | |
28 | +----------+-----------------+-------+ +--------+-------------------+-------+ |
29 | 0 8 2 3 0 6 2 3 |
30 | 4 1 4 1 |
31 | |
32 | +------------+-------+-------+-------+ +-------+--+-----------------+-------+ |
33 | RR | op | RB | RA | RT | LBT | op |RO| I16 | RO | |
34 | +------------+-------+-------+-------+ +-------+--+-----------------+-------+ |
35 | 0 1 1 2 3 0 6 8 2 3 |
36 | 0 7 4 1 4 1 |
37 | |
38 | +------------+----+--+-------+-------+ |
39 | LBTI | op | // |RO| RA | RO | |
40 | +------------+----+--+-------+-------+ |
41 | 0 1 1 1 2 3 |
42 | 0 5 7 4 1 |
43 | |
44 | -=-=-= OPCODE =-=-=- |
45 | |
46 | OPCODE field specifies the most significant 11bit of the instruction. Some formats don't have 11bits for opcode field, and in this |
47 | case, bit field other than op are defined as 0s. For example, opcode of fma instruction which is RRR format is defined as 0x700, |
48 | since 0x700 -> 11'b11100000000, this means opcode is 4'b1110, and other 7bits are defined as 7'b0000000. |
49 | |
50 | -=-=-= ASM_FORMAT =-=-=- |
51 | |
52 | RRR category RI7 category |
53 | ASM_RRR mnemonic RC, RA, RB, RT ASM_RI4 mnemonic RT, RA, I4 |
54 | ASM_RI7 mnemonic RT, RA, I7 |
55 | |
56 | RI8 category RI10 category |
57 | ASM_RUI8 mnemonic RT, RA, UI8 ASM_AI10 mnemonic RA, I10 |
58 | ASM_RI10 mnemonic RT, RA, R10 |
59 | ASM_RI10IDX mnemonic RT, I10(RA) |
60 | |
61 | RI16 category RI18 category |
62 | ASM_I16W mnemonic I16W ASM_RI18 mnemonic RT, I18 |
63 | ASM_RI16 mnemonic RT, I16 |
64 | ASM_RI16W mnemonic RT, I16W |
65 | |
66 | RR category LBT category |
67 | ASM_MFSPR mnemonic RT, SA ASM_LBT mnemonic brinst, brtarg |
68 | ASM_MTSPR mnemonic SA, RT |
69 | ASM_NOOP mnemonic LBTI category |
70 | ASM_RA mnemonic RA ASM_LBTI mnemonic brinst, RA |
71 | ASM_RAB mnemonic RA, RB |
72 | ASM_RDCH mnemonic RT, CA |
73 | ASM_RR mnemonic RT, RA, RB |
74 | ASM_RT mnemonic RT |
75 | ASM_RTA mnemonic RT, RA |
76 | ASM_WRCH mnemonic CA, RT |
77 | |
78 | Note that RRR instructions have the names for RC and RT reversed from |
79 | what's in the ISA, in order to put RT in the same position it appears |
80 | for other formats. |
81 | |
82 | -=-=-= DEPENDENCY =-=-=- |
83 | |
84 | DEPENDENCY filed consists of 5 digits. This represents which register is used as source and which register is used as target. |
85 | The first(most significant) digit is always 0. Then it is followd by RC, RB, RA and RT digits. |
86 | If the digit is 0, this means the corresponding register is not used in the instruction. |
87 | If the digit is 1, this means the corresponding register is used as a source in the instruction. |
88 | If the digit is 2, this means the corresponding register is used as a target in the instruction. |
89 | If the digit is 3, this means the corresponding register is used as both source and target in the instruction. |
90 | For example, fms instruction has 00113 as the DEPENDENCY field. This means RC is not used in this operation, RB and RA are |
91 | used as sources and RT is the target. |
92 | |
93 | -=-=-= PIPE =-=-=- |
94 | |
95 | This field shows which execution pipe is used for the instruction |
96 | |
97 | pipe0 execution pipelines: |
98 | FP6 SP floating pipeline |
99 | FP7 integer operations executed in SP floating pipeline |
100 | FPD DP floating pipeline |
101 | FX2 FXU pipeline |
102 | FX3 Rotate/Shift pipeline |
103 | FXB Byte pipeline |
104 | NOP No pipeline |
105 | |
106 | pipe1 execution pipelines: |
107 | BR Branch pipeline |
108 | LNOP No pipeline |
109 | LS Load/Store pipeline |
110 | SHUF Shuffle pipeline |
111 | SPR SPR/CH pipeline |
112 | |
113 | */ |
114 | |
115 | #define _A0() {0} |
116 | #define _A1(a) {1,a} |
117 | #define _A2(a,b) {2,a,b} |
118 | #define _A3(a,b,c) {3,a,b,c} |
119 | #define _A4(a,b,c,d) {4,a,b,c,d} |
120 | |
121 | /* TAG FORMAT OPCODE MNEMONIC ASM_FORMAT DEPENDENCY PIPE COMMENT */ |
122 | /* 0[RC][RB][RA][RT] */ |
123 | /* 1:src, 2:target */ |
124 | |
125 | APUOP(M_BR, RI16, 0x190, "br" , _A1(A_R18), 00000, BR) /* BRel IP<-IP+I16 */ |
126 | APUOP(M_BRSL, RI16, 0x198, "brsl" , _A2(A_T,A_R18), 00002, BR) /* BRelSetLink RT,IP<-IP,IP+I16 */ |
127 | APUOP(M_BRA, RI16, 0x180, "bra" , _A1(A_S18), 00000, BR) /* BRAbs IP<-I16 */ |
128 | APUOP(M_BRASL, RI16, 0x188, "brasl" , _A2(A_T,A_S18), 00002, BR) /* BRAbsSetLink RT,IP<-IP,I16 */ |
129 | APUOP(M_FSMBI, RI16, 0x194, "fsmbi" , _A2(A_T,A_X16), 00002, SHUF) /* FormSelMask%I RT<-fsm(I16) */ |
130 | APUOP(M_LQA, RI16, 0x184, "lqa" , _A2(A_T,A_S18), 00002, LS) /* LoadQAbs RT<-M[I16] */ |
131 | APUOP(M_LQR, RI16, 0x19C, "lqr" , _A2(A_T,A_R18), 00002, LS) /* LoadQRel RT<-M[IP+I16] */ |
132 | APUOP(M_STOP, RR, 0x000, "stop" , _A0(), 00000, BR) /* STOP stop */ |
133 | APUOP(M_STOP2, RR, 0x000, "stop" , _A1(A_U14), 00000, BR) /* STOP stop */ |
134 | APUOP(M_STOPD, RR, 0x140, "stopd" , _A3(A_T,A_A,A_B), 00111, BR) /* STOPD stop (with register dependencies) */ |
135 | APUOP(M_LNOP, RR, 0x001, "lnop" , _A0(), 00000, LNOP) /* LNOP no_operation */ |
136 | APUOP(M_SYNC, RR, 0x002, "sync" , _A0(), 00000, BR) /* SYNC flush_pipe */ |
137 | APUOP(M_DSYNC, RR, 0x003, "dsync" , _A0(), 00000, BR) /* DSYNC flush_store_queue */ |
138 | APUOP(M_MFSPR, RR, 0x00c, "mfspr" , _A2(A_T,A_S), 00002, SPR) /* MFSPR RT<-SA */ |
139 | APUOP(M_RDCH, RR, 0x00d, "rdch" , _A2(A_T,A_H), 00002, SPR) /* ReaDCHannel RT<-CA:data */ |
140 | APUOP(M_RCHCNT, RR, 0x00f, "rchcnt" , _A2(A_T,A_H), 00002, SPR) /* ReaDCHanCouNT RT<-CA:count */ |
141 | APUOP(M_HBRA, LBT, 0x080, "hbra" , _A2(A_S11,A_S18), 00000, LS) /* HBRA BTB[B9]<-M[I16] */ |
142 | APUOP(M_HBRR, LBT, 0x090, "hbrr" , _A2(A_S11,A_R18), 00000, LS) /* HBRR BTB[B9]<-M[IP+I16] */ |
143 | APUOP(M_BRZ, RI16, 0x100, "brz" , _A2(A_T,A_R18), 00001, BR) /* BRZ IP<-IP+I16_if(RT) */ |
144 | APUOP(M_BRNZ, RI16, 0x108, "brnz" , _A2(A_T,A_R18), 00001, BR) /* BRNZ IP<-IP+I16_if(RT) */ |
145 | APUOP(M_BRHZ, RI16, 0x110, "brhz" , _A2(A_T,A_R18), 00001, BR) /* BRHZ IP<-IP+I16_if(RT) */ |
146 | APUOP(M_BRHNZ, RI16, 0x118, "brhnz" , _A2(A_T,A_R18), 00001, BR) /* BRHNZ IP<-IP+I16_if(RT) */ |
147 | APUOP(M_STQA, RI16, 0x104, "stqa" , _A2(A_T,A_S18), 00001, LS) /* SToreQAbs M[I16]<-RT */ |
148 | APUOP(M_STQR, RI16, 0x11C, "stqr" , _A2(A_T,A_R18), 00001, LS) /* SToreQRel M[IP+I16]<-RT */ |
149 | APUOP(M_MTSPR, RR, 0x10c, "mtspr" , _A2(A_S,A_T), 00001, SPR) /* MTSPR SA<-RT */ |
150 | APUOP(M_WRCH, RR, 0x10d, "wrch" , _A2(A_H,A_T), 00001, SPR) /* ChanWRite CA<-RT */ |
151 | APUOP(M_LQD, RI10, 0x1a0, "lqd" , _A4(A_T,A_S14,A_P,A_A), 00012, LS) /* LoadQDisp RT<-M[Ra+I10] */ |
152 | APUOP(M_BI, RR, 0x1a8, "bi" , _A1(A_A), 00010, BR) /* BI IP<-RA */ |
153 | APUOP(M_BISL, RR, 0x1a9, "bisl" , _A2(A_T,A_A), 00012, BR) /* BISL RT,IP<-IP,RA */ |
154 | APUOP(M_IRET, RR, 0x1aa, "iret" , _A1(A_A), 00010, BR) /* IRET IP<-SRR0 */ |
155 | APUOP(M_IRET2, RR, 0x1aa, "iret" , _A0(), 00010, BR) /* IRET IP<-SRR0 */ |
156 | APUOP(M_BISLED, RR, 0x1ab, "bisled" , _A2(A_T,A_A), 00012, BR) /* BISLED RT,IP<-IP,RA_if(ext) */ |
157 | APUOP(M_HBR, LBTI, 0x1ac, "hbr" , _A2(A_S11I,A_A), 00010, LS) /* HBR BTB[B9]<-M[Ra] */ |
158 | APUOP(M_FREST, RR, 0x1b8, "frest" , _A2(A_T,A_A), 00012, SHUF) /* FREST RT<-recip(RA) */ |
159 | APUOP(M_FRSQEST, RR, 0x1b9, "frsqest" , _A2(A_T,A_A), 00012, SHUF) /* FRSQEST RT<-rsqrt(RA) */ |
160 | APUOP(M_FSM, RR, 0x1b4, "fsm" , _A2(A_T,A_A), 00012, SHUF) /* FormSelMask% RT<-expand(Ra) */ |
161 | APUOP(M_FSMH, RR, 0x1b5, "fsmh" , _A2(A_T,A_A), 00012, SHUF) /* FormSelMask% RT<-expand(Ra) */ |
162 | APUOP(M_FSMB, RR, 0x1b6, "fsmb" , _A2(A_T,A_A), 00012, SHUF) /* FormSelMask% RT<-expand(Ra) */ |
163 | APUOP(M_GB, RR, 0x1b0, "gb" , _A2(A_T,A_A), 00012, SHUF) /* GatherBits% RT<-gather(RA) */ |
164 | APUOP(M_GBH, RR, 0x1b1, "gbh" , _A2(A_T,A_A), 00012, SHUF) /* GatherBits% RT<-gather(RA) */ |
165 | APUOP(M_GBB, RR, 0x1b2, "gbb" , _A2(A_T,A_A), 00012, SHUF) /* GatherBits% RT<-gather(RA) */ |
166 | APUOP(M_CBD, RI7, 0x1f4, "cbd" , _A4(A_T,A_U7,A_P,A_A), 00012, SHUF) /* genCtl%%insD RT<-sta(Ra+I4,siz) */ |
167 | APUOP(M_CHD, RI7, 0x1f5, "chd" , _A4(A_T,A_U7,A_P,A_A), 00012, SHUF) /* genCtl%%insD RT<-sta(Ra+I4,siz) */ |
168 | APUOP(M_CWD, RI7, 0x1f6, "cwd" , _A4(A_T,A_U7,A_P,A_A), 00012, SHUF) /* genCtl%%insD RT<-sta(Ra+I4,siz) */ |
169 | APUOP(M_CDD, RI7, 0x1f7, "cdd" , _A4(A_T,A_U7,A_P,A_A), 00012, SHUF) /* genCtl%%insD RT<-sta(Ra+I4,siz) */ |
170 | APUOP(M_ROTQBII, RI7, 0x1f8, "rotqbii" , _A3(A_T,A_A,A_U3), 00012, SHUF) /* ROTQBII RT<-RA<<<I7 */ |
171 | APUOP(M_ROTQBYI, RI7, 0x1fc, "rotqbyi" , _A3(A_T,A_A,A_S7N), 00012, SHUF) /* ROTQBYI RT<-RA<<<(I7*8) */ |
172 | APUOP(M_ROTQMBII, RI7, 0x1f9, "rotqmbii" , _A3(A_T,A_A,A_S3), 00012, SHUF) /* ROTQMBII RT<-RA<<I7 */ |
173 | APUOP(M_ROTQMBYI, RI7, 0x1fd, "rotqmbyi" , _A3(A_T,A_A,A_S6), 00012, SHUF) /* ROTQMBYI RT<-RA<<I7 */ |
174 | APUOP(M_SHLQBII, RI7, 0x1fb, "shlqbii" , _A3(A_T,A_A,A_U3), 00012, SHUF) /* SHLQBII RT<-RA<<I7 */ |
175 | APUOP(M_SHLQBYI, RI7, 0x1ff, "shlqbyi" , _A3(A_T,A_A,A_U5), 00012, SHUF) /* SHLQBYI RT<-RA<<I7 */ |
176 | APUOP(M_STQD, RI10, 0x120, "stqd" , _A4(A_T,A_S14,A_P,A_A), 00011, LS) /* SToreQDisp M[Ra+I10]<-RT */ |
177 | APUOP(M_BIHNZ, RR, 0x12b, "bihnz" , _A2(A_T,A_A), 00011, BR) /* BIHNZ IP<-RA_if(RT) */ |
178 | APUOP(M_BIHZ, RR, 0x12a, "bihz" , _A2(A_T,A_A), 00011, BR) /* BIHZ IP<-RA_if(RT) */ |
179 | APUOP(M_BINZ, RR, 0x129, "binz" , _A2(A_T,A_A), 00011, BR) /* BINZ IP<-RA_if(RT) */ |
180 | APUOP(M_BIZ, RR, 0x128, "biz" , _A2(A_T,A_A), 00011, BR) /* BIZ IP<-RA_if(RT) */ |
181 | APUOP(M_CBX, RR, 0x1d4, "cbx" , _A3(A_T,A_A,A_B), 00112, SHUF) /* genCtl%%insX RT<-sta(Ra+Rb,siz) */ |
182 | APUOP(M_CHX, RR, 0x1d5, "chx" , _A3(A_T,A_A,A_B), 00112, SHUF) /* genCtl%%insX RT<-sta(Ra+Rb,siz) */ |
183 | APUOP(M_CWX, RR, 0x1d6, "cwx" , _A3(A_T,A_A,A_B), 00112, SHUF) /* genCtl%%insX RT<-sta(Ra+Rb,siz) */ |
184 | APUOP(M_CDX, RR, 0x1d7, "cdx" , _A3(A_T,A_A,A_B), 00112, SHUF) /* genCtl%%insX RT<-sta(Ra+Rb,siz) */ |
185 | APUOP(M_LQX, RR, 0x1c4, "lqx" , _A3(A_T,A_A,A_B), 00112, LS) /* LoadQindeX RT<-M[Ra+Rb] */ |
186 | APUOP(M_ROTQBI, RR, 0x1d8, "rotqbi" , _A3(A_T,A_A,A_B), 00112, SHUF) /* ROTQBI RT<-RA<<<Rb */ |
187 | APUOP(M_ROTQMBI, RR, 0x1d9, "rotqmbi" , _A3(A_T,A_A,A_B), 00112, SHUF) /* ROTQMBI RT<-RA<<Rb */ |
188 | APUOP(M_SHLQBI, RR, 0x1db, "shlqbi" , _A3(A_T,A_A,A_B), 00112, SHUF) /* SHLQBI RT<-RA<<Rb */ |
189 | APUOP(M_ROTQBY, RR, 0x1dc, "rotqby" , _A3(A_T,A_A,A_B), 00112, SHUF) /* ROTQBY RT<-RA<<<(Rb*8) */ |
190 | APUOP(M_ROTQMBY, RR, 0x1dd, "rotqmby" , _A3(A_T,A_A,A_B), 00112, SHUF) /* ROTQMBY RT<-RA<<Rb */ |
191 | APUOP(M_SHLQBY, RR, 0x1df, "shlqby" , _A3(A_T,A_A,A_B), 00112, SHUF) /* SHLQBY RT<-RA<<Rb */ |
192 | APUOP(M_ROTQBYBI, RR, 0x1cc, "rotqbybi" , _A3(A_T,A_A,A_B), 00112, SHUF) /* ROTQBYBI RT<-RA<<Rb */ |
193 | APUOP(M_ROTQMBYBI, RR, 0x1cd, "rotqmbybi" , _A3(A_T,A_A,A_B), 00112, SHUF) /* ROTQMBYBI RT<-RA<<Rb */ |
194 | APUOP(M_SHLQBYBI, RR, 0x1cf, "shlqbybi" , _A3(A_T,A_A,A_B), 00112, SHUF) /* SHLQBYBI RT<-RA<<Rb */ |
195 | APUOP(M_STQX, RR, 0x144, "stqx" , _A3(A_T,A_A,A_B), 00111, LS) /* SToreQindeX M[Ra+Rb]<-RT */ |
196 | APUOP(M_SHUFB, RRR, 0x580, "shufb" , _A4(A_C,A_A,A_B,A_T), 02111, SHUF) /* SHUFfleBytes RC<-f(RA,RB,RT) */ |
197 | APUOP(M_IL, RI16, 0x204, "il" , _A2(A_T,A_S16), 00002, FX2) /* ImmLoad RT<-sxt(I16) */ |
198 | APUOP(M_ILH, RI16, 0x20c, "ilh" , _A2(A_T,A_X16), 00002, FX2) /* ImmLoadH RT<-I16 */ |
199 | APUOP(M_ILHU, RI16, 0x208, "ilhu" , _A2(A_T,A_X16), 00002, FX2) /* ImmLoadHUpper RT<-I16<<16 */ |
200 | APUOP(M_ILA, RI18, 0x210, "ila" , _A2(A_T,A_U18), 00002, FX2) /* ImmLoadAddr RT<-zxt(I18) */ |
201 | APUOP(M_NOP, RR, 0x201, "nop" , _A1(A_T), 00000, NOP) /* XNOP no_operation */ |
202 | APUOP(M_NOP2, RR, 0x201, "nop" , _A0(), 00000, NOP) /* XNOP no_operation */ |
203 | APUOP(M_IOHL, RI16, 0x304, "iohl" , _A2(A_T,A_X16), 00003, FX2) /* AddImmeXt RT<-RT+sxt(I16) */ |
204 | APUOP(M_ANDBI, RI10, 0x0b0, "andbi" , _A3(A_T,A_A,A_S10B), 00012, FX2) /* AND%I RT<-RA&I10 */ |
205 | APUOP(M_ANDHI, RI10, 0x0a8, "andhi" , _A3(A_T,A_A,A_S10), 00012, FX2) /* AND%I RT<-RA&I10 */ |
206 | APUOP(M_ANDI, RI10, 0x0a0, "andi" , _A3(A_T,A_A,A_S10), 00012, FX2) /* AND%I RT<-RA&I10 */ |
207 | APUOP(M_ORBI, RI10, 0x030, "orbi" , _A3(A_T,A_A,A_S10B), 00012, FX2) /* OR%I RT<-RA|I10 */ |
208 | APUOP(M_ORHI, RI10, 0x028, "orhi" , _A3(A_T,A_A,A_S10), 00012, FX2) /* OR%I RT<-RA|I10 */ |
209 | APUOP(M_ORI, RI10, 0x020, "ori" , _A3(A_T,A_A,A_S10), 00012, FX2) /* OR%I RT<-RA|I10 */ |
210 | APUOP(M_ORX, RR, 0x1f0, "orx" , _A2(A_T,A_A), 00012, BR) /* ORX RT<-RA.w0|RA.w1|RA.w2|RA.w3 */ |
211 | APUOP(M_XORBI, RI10, 0x230, "xorbi" , _A3(A_T,A_A,A_S10B), 00012, FX2) /* XOR%I RT<-RA^I10 */ |
212 | APUOP(M_XORHI, RI10, 0x228, "xorhi" , _A3(A_T,A_A,A_S10), 00012, FX2) /* XOR%I RT<-RA^I10 */ |
213 | APUOP(M_XORI, RI10, 0x220, "xori" , _A3(A_T,A_A,A_S10), 00012, FX2) /* XOR%I RT<-RA^I10 */ |
214 | APUOP(M_AHI, RI10, 0x0e8, "ahi" , _A3(A_T,A_A,A_S10), 00012, FX2) /* Add%Immed RT<-RA+I10 */ |
215 | APUOP(M_AI, RI10, 0x0e0, "ai" , _A3(A_T,A_A,A_S10), 00012, FX2) /* Add%Immed RT<-RA+I10 */ |
216 | APUOP(M_SFHI, RI10, 0x068, "sfhi" , _A3(A_T,A_A,A_S10), 00012, FX2) /* SubFrom%Imm RT<-I10-RA */ |
217 | APUOP(M_SFI, RI10, 0x060, "sfi" , _A3(A_T,A_A,A_S10), 00012, FX2) /* SubFrom%Imm RT<-I10-RA */ |
218 | APUOP(M_CGTBI, RI10, 0x270, "cgtbi" , _A3(A_T,A_A,A_S10B), 00012, FX2) /* CGT%I RT<-(RA>I10) */ |
219 | APUOP(M_CGTHI, RI10, 0x268, "cgthi" , _A3(A_T,A_A,A_S10), 00012, FX2) /* CGT%I RT<-(RA>I10) */ |
220 | APUOP(M_CGTI, RI10, 0x260, "cgti" , _A3(A_T,A_A,A_S10), 00012, FX2) /* CGT%I RT<-(RA>I10) */ |
221 | APUOP(M_CLGTBI, RI10, 0x2f0, "clgtbi" , _A3(A_T,A_A,A_S10B), 00012, FX2) /* CLGT%I RT<-(RA>I10) */ |
222 | APUOP(M_CLGTHI, RI10, 0x2e8, "clgthi" , _A3(A_T,A_A,A_S10), 00012, FX2) /* CLGT%I RT<-(RA>I10) */ |
223 | APUOP(M_CLGTI, RI10, 0x2e0, "clgti" , _A3(A_T,A_A,A_S10), 00012, FX2) /* CLGT%I RT<-(RA>I10) */ |
224 | APUOP(M_CEQBI, RI10, 0x3f0, "ceqbi" , _A3(A_T,A_A,A_S10B), 00012, FX2) /* CEQ%I RT<-(RA=I10) */ |
225 | APUOP(M_CEQHI, RI10, 0x3e8, "ceqhi" , _A3(A_T,A_A,A_S10), 00012, FX2) /* CEQ%I RT<-(RA=I10) */ |
226 | APUOP(M_CEQI, RI10, 0x3e0, "ceqi" , _A3(A_T,A_A,A_S10), 00012, FX2) /* CEQ%I RT<-(RA=I10) */ |
227 | APUOP(M_HGTI, RI10, 0x278, "hgti" , _A3(A_T,A_A,A_S10), 00010, FX2) /* HaltGTI halt_if(RA>I10) */ |
228 | APUOP(M_HGTI2, RI10, 0x278, "hgti" , _A2(A_A,A_S10), 00010, FX2) /* HaltGTI halt_if(RA>I10) */ |
229 | APUOP(M_HLGTI, RI10, 0x2f8, "hlgti" , _A3(A_T,A_A,A_S10), 00010, FX2) /* HaltLGTI halt_if(RA>I10) */ |
230 | APUOP(M_HLGTI2, RI10, 0x2f8, "hlgti" , _A2(A_A,A_S10), 00010, FX2) /* HaltLGTI halt_if(RA>I10) */ |
231 | APUOP(M_HEQI, RI10, 0x3f8, "heqi" , _A3(A_T,A_A,A_S10), 00010, FX2) /* HaltEQImm halt_if(RA=I10) */ |
232 | APUOP(M_HEQI2, RI10, 0x3f8, "heqi" , _A2(A_A,A_S10), 00010, FX2) /* HaltEQImm halt_if(RA=I10) */ |
233 | APUOP(M_MPYI, RI10, 0x3a0, "mpyi" , _A3(A_T,A_A,A_S10), 00012, FP7) /* MPYI RT<-RA*I10 */ |
234 | APUOP(M_MPYUI, RI10, 0x3a8, "mpyui" , _A3(A_T,A_A,A_S10), 00012, FP7) /* MPYUI RT<-RA*I10 */ |
235 | APUOP(M_CFLTS, RI8, 0x3b0, "cflts" , _A3(A_T,A_A,A_U7A), 00012, FP7) /* CFLTS RT<-int(RA,I8) */ |
236 | APUOP(M_CFLTU, RI8, 0x3b2, "cfltu" , _A3(A_T,A_A,A_U7A), 00012, FP7) /* CFLTU RT<-int(RA,I8) */ |
237 | APUOP(M_CSFLT, RI8, 0x3b4, "csflt" , _A3(A_T,A_A,A_U7B), 00012, FP7) /* CSFLT RT<-flt(RA,I8) */ |
238 | APUOP(M_CUFLT, RI8, 0x3b6, "cuflt" , _A3(A_T,A_A,A_U7B), 00012, FP7) /* CUFLT RT<-flt(RA,I8) */ |
239 | APUOP(M_FESD, RR, 0x3b8, "fesd" , _A2(A_T,A_A), 00012, FPD) /* FESD RT<-double(RA) */ |
240 | APUOP(M_FRDS, RR, 0x3b9, "frds" , _A2(A_T,A_A), 00012, FPD) /* FRDS RT<-single(RA) */ |
241 | APUOP(M_FSCRRD, RR, 0x398, "fscrrd" , _A1(A_T), 00002, FPD) /* FSCRRD RT<-FP_status */ |
242 | APUOP(M_FSCRWR, RR, 0x3ba, "fscrwr" , _A2(A_T,A_A), 00010, FP7) /* FSCRWR FP_status<-RA */ |
243 | APUOP(M_FSCRWR2, RR, 0x3ba, "fscrwr" , _A1(A_A), 00010, FP7) /* FSCRWR FP_status<-RA */ |
244 | APUOP(M_CLZ, RR, 0x2a5, "clz" , _A2(A_T,A_A), 00012, FX2) /* CLZ RT<-clz(RA) */ |
245 | APUOP(M_CNTB, RR, 0x2b4, "cntb" , _A2(A_T,A_A), 00012, FXB) /* CNT RT<-pop(RA) */ |
246 | APUOP(M_XSBH, RR, 0x2b6, "xsbh" , _A2(A_T,A_A), 00012, FX2) /* eXtSignBtoH RT<-sign_ext(RA) */ |
247 | APUOP(M_XSHW, RR, 0x2ae, "xshw" , _A2(A_T,A_A), 00012, FX2) /* eXtSignHtoW RT<-sign_ext(RA) */ |
248 | APUOP(M_XSWD, RR, 0x2a6, "xswd" , _A2(A_T,A_A), 00012, FX2) /* eXtSignWtoD RT<-sign_ext(RA) */ |
249 | APUOP(M_ROTI, RI7, 0x078, "roti" , _A3(A_T,A_A,A_S7N), 00012, FX3) /* ROT%I RT<-RA<<<I7 */ |
250 | APUOP(M_ROTMI, RI7, 0x079, "rotmi" , _A3(A_T,A_A,A_S7), 00012, FX3) /* ROT%MI RT<-RA<<I7 */ |
251 | APUOP(M_ROTMAI, RI7, 0x07a, "rotmai" , _A3(A_T,A_A,A_S7), 00012, FX3) /* ROTMA%I RT<-RA<<I7 */ |
252 | APUOP(M_SHLI, RI7, 0x07b, "shli" , _A3(A_T,A_A,A_U6), 00012, FX3) /* SHL%I RT<-RA<<I7 */ |
253 | APUOP(M_ROTHI, RI7, 0x07c, "rothi" , _A3(A_T,A_A,A_S7N), 00012, FX3) /* ROT%I RT<-RA<<<I7 */ |
254 | APUOP(M_ROTHMI, RI7, 0x07d, "rothmi" , _A3(A_T,A_A,A_S6), 00012, FX3) /* ROT%MI RT<-RA<<I7 */ |
255 | APUOP(M_ROTMAHI, RI7, 0x07e, "rotmahi" , _A3(A_T,A_A,A_S6), 00012, FX3) /* ROTMA%I RT<-RA<<I7 */ |
256 | APUOP(M_SHLHI, RI7, 0x07f, "shlhi" , _A3(A_T,A_A,A_U5), 00012, FX3) /* SHL%I RT<-RA<<I7 */ |
257 | APUOP(M_A, RR, 0x0c0, "a" , _A3(A_T,A_A,A_B), 00112, FX2) /* Add% RT<-RA+RB */ |
258 | APUOP(M_AH, RR, 0x0c8, "ah" , _A3(A_T,A_A,A_B), 00112, FX2) /* Add% RT<-RA+RB */ |
259 | APUOP(M_SF, RR, 0x040, "sf" , _A3(A_T,A_A,A_B), 00112, FX2) /* SubFrom% RT<-RB-RA */ |
260 | APUOP(M_SFH, RR, 0x048, "sfh" , _A3(A_T,A_A,A_B), 00112, FX2) /* SubFrom% RT<-RB-RA */ |
261 | APUOP(M_CGT, RR, 0x240, "cgt" , _A3(A_T,A_A,A_B), 00112, FX2) /* CGT% RT<-(RA>RB) */ |
262 | APUOP(M_CGTB, RR, 0x250, "cgtb" , _A3(A_T,A_A,A_B), 00112, FX2) /* CGT% RT<-(RA>RB) */ |
263 | APUOP(M_CGTH, RR, 0x248, "cgth" , _A3(A_T,A_A,A_B), 00112, FX2) /* CGT% RT<-(RA>RB) */ |
264 | APUOP(M_CLGT, RR, 0x2c0, "clgt" , _A3(A_T,A_A,A_B), 00112, FX2) /* CLGT% RT<-(RA>RB) */ |
265 | APUOP(M_CLGTB, RR, 0x2d0, "clgtb" , _A3(A_T,A_A,A_B), 00112, FX2) /* CLGT% RT<-(RA>RB) */ |
266 | APUOP(M_CLGTH, RR, 0x2c8, "clgth" , _A3(A_T,A_A,A_B), 00112, FX2) /* CLGT% RT<-(RA>RB) */ |
267 | APUOP(M_CEQ, RR, 0x3c0, "ceq" , _A3(A_T,A_A,A_B), 00112, FX2) /* CEQ% RT<-(RA=RB) */ |
268 | APUOP(M_CEQB, RR, 0x3d0, "ceqb" , _A3(A_T,A_A,A_B), 00112, FX2) /* CEQ% RT<-(RA=RB) */ |
269 | APUOP(M_CEQH, RR, 0x3c8, "ceqh" , _A3(A_T,A_A,A_B), 00112, FX2) /* CEQ% RT<-(RA=RB) */ |
270 | APUOP(M_HGT, RR, 0x258, "hgt" , _A3(A_T,A_A,A_B), 00110, FX2) /* HaltGT halt_if(RA>RB) */ |
271 | APUOP(M_HGT2, RR, 0x258, "hgt" , _A2(A_A,A_B), 00110, FX2) /* HaltGT halt_if(RA>RB) */ |
272 | APUOP(M_HLGT, RR, 0x2d8, "hlgt" , _A3(A_T,A_A,A_B), 00110, FX2) /* HaltLGT halt_if(RA>RB) */ |
273 | APUOP(M_HLGT2, RR, 0x2d8, "hlgt" , _A2(A_A,A_B), 00110, FX2) /* HaltLGT halt_if(RA>RB) */ |
274 | APUOP(M_HEQ, RR, 0x3d8, "heq" , _A3(A_T,A_A,A_B), 00110, FX2) /* HaltEQ halt_if(RA=RB) */ |
275 | APUOP(M_HEQ2, RR, 0x3d8, "heq" , _A2(A_A,A_B), 00110, FX2) /* HaltEQ halt_if(RA=RB) */ |
276 | APUOP(M_FCEQ, RR, 0x3c2, "fceq" , _A3(A_T,A_A,A_B), 00112, FX2) /* FCEQ RT<-(RA=RB) */ |
277 | APUOP(M_FCMEQ, RR, 0x3ca, "fcmeq" , _A3(A_T,A_A,A_B), 00112, FX2) /* FCMEQ RT<-(|RA|=|RB|) */ |
278 | APUOP(M_FCGT, RR, 0x2c2, "fcgt" , _A3(A_T,A_A,A_B), 00112, FX2) /* FCGT RT<-(RA<RB) */ |
279 | APUOP(M_FCMGT, RR, 0x2ca, "fcmgt" , _A3(A_T,A_A,A_B), 00112, FX2) /* FCMGT RT<-(|RA|<|RB|) */ |
280 | APUOP(M_AND, RR, 0x0c1, "and" , _A3(A_T,A_A,A_B), 00112, FX2) /* AND RT<-RA&RB */ |
281 | APUOP(M_NAND, RR, 0x0c9, "nand" , _A3(A_T,A_A,A_B), 00112, FX2) /* NAND RT<-!(RA&RB) */ |
282 | APUOP(M_OR, RR, 0x041, "or" , _A3(A_T,A_A,A_B), 00112, FX2) /* OR RT<-RA|RB */ |
283 | APUOP(M_NOR, RR, 0x049, "nor" , _A3(A_T,A_A,A_B), 00112, FX2) /* NOR RT<-!(RA&RB) */ |
284 | APUOP(M_XOR, RR, 0x241, "xor" , _A3(A_T,A_A,A_B), 00112, FX2) /* XOR RT<-RA^RB */ |
285 | APUOP(M_EQV, RR, 0x249, "eqv" , _A3(A_T,A_A,A_B), 00112, FX2) /* EQuiValent RT<-!(RA^RB) */ |
286 | APUOP(M_ANDC, RR, 0x2c1, "andc" , _A3(A_T,A_A,A_B), 00112, FX2) /* ANDComplement RT<-RA&!RB */ |
287 | APUOP(M_ORC, RR, 0x2c9, "orc" , _A3(A_T,A_A,A_B), 00112, FX2) /* ORComplement RT<-RA|!RB */ |
288 | APUOP(M_ABSDB, RR, 0x053, "absdb" , _A3(A_T,A_A,A_B), 00112, FXB) /* ABSoluteDiff RT<-|RA-RB| */ |
289 | APUOP(M_AVGB, RR, 0x0d3, "avgb" , _A3(A_T,A_A,A_B), 00112, FXB) /* AVG% RT<-(RA+RB+1)/2 */ |
290 | APUOP(M_SUMB, RR, 0x253, "sumb" , _A3(A_T,A_A,A_B), 00112, FXB) /* SUM% RT<-f(RA,RB) */ |
291 | APUOP(M_DFA, RR, 0x2cc, "dfa" , _A3(A_T,A_A,A_B), 00112, FPD) /* DFAdd RT<-RA+RB */ |
292 | APUOP(M_DFM, RR, 0x2ce, "dfm" , _A3(A_T,A_A,A_B), 00112, FPD) /* DFMul RT<-RA*RB */ |
293 | APUOP(M_DFS, RR, 0x2cd, "dfs" , _A3(A_T,A_A,A_B), 00112, FPD) /* DFSub RT<-RA-RB */ |
294 | APUOP(M_FA, RR, 0x2c4, "fa" , _A3(A_T,A_A,A_B), 00112, FP6) /* FAdd RT<-RA+RB */ |
295 | APUOP(M_FM, RR, 0x2c6, "fm" , _A3(A_T,A_A,A_B), 00112, FP6) /* FMul RT<-RA*RB */ |
296 | APUOP(M_FS, RR, 0x2c5, "fs" , _A3(A_T,A_A,A_B), 00112, FP6) /* FSub RT<-RA-RB */ |
297 | APUOP(M_MPY, RR, 0x3c4, "mpy" , _A3(A_T,A_A,A_B), 00112, FP7) /* MPY RT<-RA*RB */ |
298 | APUOP(M_MPYH, RR, 0x3c5, "mpyh" , _A3(A_T,A_A,A_B), 00112, FP7) /* MPYH RT<-(RAh*RB)<<16 */ |
299 | APUOP(M_MPYHH, RR, 0x3c6, "mpyhh" , _A3(A_T,A_A,A_B), 00112, FP7) /* MPYHH RT<-RAh*RBh */ |
300 | APUOP(M_MPYHHU, RR, 0x3ce, "mpyhhu" , _A3(A_T,A_A,A_B), 00112, FP7) /* MPYHHU RT<-RAh*RBh */ |
301 | APUOP(M_MPYS, RR, 0x3c7, "mpys" , _A3(A_T,A_A,A_B), 00112, FP7) /* MPYS RT<-(RA*RB)>>16 */ |
302 | APUOP(M_MPYU, RR, 0x3cc, "mpyu" , _A3(A_T,A_A,A_B), 00112, FP7) /* MPYU RT<-RA*RB */ |
303 | APUOP(M_FI, RR, 0x3d4, "fi" , _A3(A_T,A_A,A_B), 00112, FP7) /* FInterpolate RT<-f(RA,RB) */ |
304 | APUOP(M_ROT, RR, 0x058, "rot" , _A3(A_T,A_A,A_B), 00112, FX3) /* ROT% RT<-RA<<<RB */ |
305 | APUOP(M_ROTM, RR, 0x059, "rotm" , _A3(A_T,A_A,A_B), 00112, FX3) /* ROT%M RT<-RA<<Rb */ |
306 | APUOP(M_ROTMA, RR, 0x05a, "rotma" , _A3(A_T,A_A,A_B), 00112, FX3) /* ROTMA% RT<-RA<<Rb */ |
307 | APUOP(M_SHL, RR, 0x05b, "shl" , _A3(A_T,A_A,A_B), 00112, FX3) /* SHL% RT<-RA<<Rb */ |
308 | APUOP(M_ROTH, RR, 0x05c, "roth" , _A3(A_T,A_A,A_B), 00112, FX3) /* ROT% RT<-RA<<<RB */ |
309 | APUOP(M_ROTHM, RR, 0x05d, "rothm" , _A3(A_T,A_A,A_B), 00112, FX3) /* ROT%M RT<-RA<<Rb */ |
310 | APUOP(M_ROTMAH, RR, 0x05e, "rotmah" , _A3(A_T,A_A,A_B), 00112, FX3) /* ROTMA% RT<-RA<<Rb */ |
311 | APUOP(M_SHLH, RR, 0x05f, "shlh" , _A3(A_T,A_A,A_B), 00112, FX3) /* SHL% RT<-RA<<Rb */ |
312 | APUOP(M_MPYHHA, RR, 0x346, "mpyhha" , _A3(A_T,A_A,A_B), 00113, FP7) /* MPYHHA RT<-RAh*RBh+RT */ |
313 | APUOP(M_MPYHHAU, RR, 0x34e, "mpyhhau" , _A3(A_T,A_A,A_B), 00113, FP7) /* MPYHHAU RT<-RAh*RBh+RT */ |
314 | APUOP(M_DFMA, RR, 0x35c, "dfma" , _A3(A_T,A_A,A_B), 00113, FPD) /* DFMAdd RT<-RT+RA*RB */ |
315 | APUOP(M_DFMS, RR, 0x35d, "dfms" , _A3(A_T,A_A,A_B), 00113, FPD) /* DFMSub RT<-RA*RB-RT */ |
316 | APUOP(M_DFNMS, RR, 0x35e, "dfnms" , _A3(A_T,A_A,A_B), 00113, FPD) /* DFNMSub RT<-RT-RA*RB */ |
317 | APUOP(M_DFNMA, RR, 0x35f, "dfnma" , _A3(A_T,A_A,A_B), 00113, FPD) /* DFNMAdd RT<-(-RT)-RA*RB */ |
318 | APUOP(M_FMA, RRR, 0x700, "fma" , _A4(A_C,A_A,A_B,A_T), 02111, FP6) /* FMAdd RC<-RT+RA*RB */ |
319 | APUOP(M_FMS, RRR, 0x780, "fms" , _A4(A_C,A_A,A_B,A_T), 02111, FP6) /* FMSub RC<-RA*RB-RT */ |
320 | APUOP(M_FNMS, RRR, 0x680, "fnms" , _A4(A_C,A_A,A_B,A_T), 02111, FP6) /* FNMSub RC<-RT-RA*RB */ |
321 | APUOP(M_MPYA, RRR, 0x600, "mpya" , _A4(A_C,A_A,A_B,A_T), 02111, FP7) /* MPYA RC<-RA*RB+RT */ |
322 | APUOP(M_SELB, RRR, 0x400, "selb" , _A4(A_C,A_A,A_B,A_T), 02111, FX2) /* SELectBits RC<-RA&RT|RB&!RT */ |
323 | /* for system function call, this uses op-code of mtspr */ |
324 | APUOP(M_SYSCALL, RI7, 0x10c, "syscall" , _A3(A_T,A_A,A_S7N), 00002, SPR) /* System Call */ |
325 | /* |
326 | pseudo instruction: |
327 | system call |
328 | value of I9 operation |
329 | 0 halt |
330 | 1 rt[0] = open(MEM[ra[0]], ra[1]) |
331 | 2 rt[0] = close(ra[0]) |
332 | 3 rt[0] = read(ra[0], MEM[ra[1]], ra[2]) |
333 | 4 rt[0] = write(ra[0], MEM[ra[1]], ra[2]) |
334 | 5 printf(MEM[ra[0]], ra[1], ra[2], ra[3]) |
335 | 42 rt[0] = clock() |
336 | 52 rt[0] = lseek(ra0, ra1, ra2) |
337 | |
338 | */ |
339 | |
340 | |
341 | /* new multiprecision add/sub */ |
342 | APUOP(M_ADDX, RR, 0x340, "addx" , _A3(A_T,A_A,A_B), 00113, FX2) /* Add_eXtended RT<-RA+RB+RT */ |
343 | APUOP(M_CG, RR, 0x0c2, "cg" , _A3(A_T,A_A,A_B), 00112, FX2) /* CarryGenerate RT<-cout(RA+RB) */ |
344 | APUOP(M_CGX, RR, 0x342, "cgx" , _A3(A_T,A_A,A_B), 00113, FX2) /* CarryGen_eXtd RT<-cout(RA+RB+RT) */ |
345 | APUOP(M_SFX, RR, 0x341, "sfx" , _A3(A_T,A_A,A_B), 00113, FX2) /* Add_eXtended RT<-RA+RB+RT */ |
346 | APUOP(M_BG, RR, 0x042, "bg" , _A3(A_T,A_A,A_B), 00112, FX2) /* CarryGenerate RT<-cout(RA+RB) */ |
347 | APUOP(M_BGX, RR, 0x343, "bgx" , _A3(A_T,A_A,A_B), 00113, FX2) /* CarryGen_eXtd RT<-cout(RA+RB+RT) */ |
348 | |
349 | /* |
350 | |
351 | The following ops are a subset of above except with feature bits set. |
352 | Feature bits are bits 11-17 of the instruction: |
353 | |
354 | 11 - C & P feature bit |
355 | 12 - disable interrupts |
356 | 13 - enable interrupts |
357 | |
358 | */ |
359 | APUOPFB(M_BID, RR, 0x1a8, 0x20, "bid" , _A1(A_A), 00010, BR) /* BI IP<-RA */ |
360 | APUOPFB(M_BIE, RR, 0x1a8, 0x10, "bie" , _A1(A_A), 00010, BR) /* BI IP<-RA */ |
361 | APUOPFB(M_BISLD, RR, 0x1a9, 0x20, "bisld" , _A2(A_T,A_A), 00012, BR) /* BISL RT,IP<-IP,RA */ |
362 | APUOPFB(M_BISLE, RR, 0x1a9, 0x10, "bisle" , _A2(A_T,A_A), 00012, BR) /* BISL RT,IP<-IP,RA */ |
363 | APUOPFB(M_IRETD, RR, 0x1aa, 0x20, "iretd" , _A1(A_A), 00010, BR) /* IRET IP<-SRR0 */ |
364 | APUOPFB(M_IRETD2, RR, 0x1aa, 0x20, "iretd" , _A0(), 00010, BR) /* IRET IP<-SRR0 */ |
365 | APUOPFB(M_IRETE, RR, 0x1aa, 0x10, "irete" , _A1(A_A), 00010, BR) /* IRET IP<-SRR0 */ |
366 | APUOPFB(M_IRETE2, RR, 0x1aa, 0x10, "irete" , _A0(), 00010, BR) /* IRET IP<-SRR0 */ |
367 | APUOPFB(M_BISLEDD, RR, 0x1ab, 0x20, "bisledd" , _A2(A_T,A_A), 00012, BR) /* BISLED RT,IP<-IP,RA_if(ext) */ |
368 | APUOPFB(M_BISLEDE, RR, 0x1ab, 0x10, "bislede" , _A2(A_T,A_A), 00012, BR) /* BISLED RT,IP<-IP,RA_if(ext) */ |
369 | APUOPFB(M_BIHNZD, RR, 0x12b, 0x20, "bihnzd" , _A2(A_T,A_A), 00011, BR) /* BIHNZ IP<-RA_if(RT) */ |
370 | APUOPFB(M_BIHNZE, RR, 0x12b, 0x10, "bihnze" , _A2(A_T,A_A), 00011, BR) /* BIHNZ IP<-RA_if(RT) */ |
371 | APUOPFB(M_BIHZD, RR, 0x12a, 0x20, "bihzd" , _A2(A_T,A_A), 00011, BR) /* BIHZ IP<-RA_if(RT) */ |
372 | APUOPFB(M_BIHZE, RR, 0x12a, 0x10, "bihze" , _A2(A_T,A_A), 00011, BR) /* BIHZ IP<-RA_if(RT) */ |
373 | APUOPFB(M_BINZD, RR, 0x129, 0x20, "binzd" , _A2(A_T,A_A), 00011, BR) /* BINZ IP<-RA_if(RT) */ |
374 | APUOPFB(M_BINZE, RR, 0x129, 0x10, "binze" , _A2(A_T,A_A), 00011, BR) /* BINZ IP<-RA_if(RT) */ |
375 | APUOPFB(M_BIZD, RR, 0x128, 0x20, "bizd" , _A2(A_T,A_A), 00011, BR) /* BIZ IP<-RA_if(RT) */ |
376 | APUOPFB(M_BIZE, RR, 0x128, 0x10, "bize" , _A2(A_T,A_A), 00011, BR) /* BIZ IP<-RA_if(RT) */ |
377 | APUOPFB(M_SYNCC, RR, 0x002, 0x40, "syncc" , _A0(), 00000, BR) /* SYNCC flush_pipe */ |
378 | APUOPFB(M_HBRP, LBTI, 0x1ac, 0x40, "hbrp" , _A0(), 00010, LS) /* HBR BTB[B9]<-M[Ra] */ |
379 | |
380 | /* Synonyms required by the AS manual. */ |
381 | APUOP(M_LR, RI10, 0x020, "lr" , _A2(A_T,A_A), 00012, FX2) /* OR%I RT<-RA|I10 */ |
382 | APUOP(M_BIHT, RR, 0x12b, "biht" , _A2(A_T,A_A), 00011, BR) /* BIHNZ IP<-RA_if(RT) */ |
383 | APUOP(M_BIHF, RR, 0x12a, "bihf" , _A2(A_T,A_A), 00011, BR) /* BIHZ IP<-RA_if(RT) */ |
384 | APUOP(M_BIT, RR, 0x129, "bit" , _A2(A_T,A_A), 00011, BR) /* BINZ IP<-RA_if(RT) */ |
385 | APUOP(M_BIF, RR, 0x128, "bif" , _A2(A_T,A_A), 00011, BR) /* BIZ IP<-RA_if(RT) */ |
386 | APUOPFB(M_BIHTD, RR, 0x12b, 0x20, "bihtd" , _A2(A_T,A_A), 00011, BR) /* BIHNF IP<-RA_if(RT) */ |
387 | APUOPFB(M_BIHTE, RR, 0x12b, 0x10, "bihte" , _A2(A_T,A_A), 00011, BR) /* BIHNF IP<-RA_if(RT) */ |
388 | APUOPFB(M_BIHFD, RR, 0x12a, 0x20, "bihfd" , _A2(A_T,A_A), 00011, BR) /* BIHZ IP<-RA_if(RT) */ |
389 | APUOPFB(M_BIHFE, RR, 0x12a, 0x10, "bihfe" , _A2(A_T,A_A), 00011, BR) /* BIHZ IP<-RA_if(RT) */ |
390 | APUOPFB(M_BITD, RR, 0x129, 0x20, "bitd" , _A2(A_T,A_A), 00011, BR) /* BINF IP<-RA_if(RT) */ |
391 | APUOPFB(M_BITE, RR, 0x129, 0x10, "bite" , _A2(A_T,A_A), 00011, BR) /* BINF IP<-RA_if(RT) */ |
392 | APUOPFB(M_BIFD, RR, 0x128, 0x20, "bifd" , _A2(A_T,A_A), 00011, BR) /* BIZ IP<-RA_if(RT) */ |
393 | APUOPFB(M_BIFE, RR, 0x128, 0x10, "bife" , _A2(A_T,A_A), 00011, BR) /* BIZ IP<-RA_if(RT) */ |
394 | |
395 | #undef _A0 |
396 | #undef _A1 |
397 | #undef _A2 |
398 | #undef _A3 |
399 | #undef _A4 |
400 | |