diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2012-11-19 16:49:34 -0500 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2012-11-23 05:14:33 -0500 |
commit | c68dba202f54a4c9c68a8bb83d426bf8a00c99f8 (patch) | |
tree | abd3895a01ad6b52a62e4714713618be1cb35d56 /arch/s390/kernel | |
parent | 991c15053a3fc209d76f03c73d4f0621025c9452 (diff) |
s390/disassembler: add new instructions
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel')
-rw-r--r-- | arch/s390/kernel/dis.c | 563 |
1 files changed, 370 insertions, 193 deletions
diff --git a/arch/s390/kernel/dis.c b/arch/s390/kernel/dis.c index f00286bd2ef9..afdb9729cf9b 100644 --- a/arch/s390/kernel/dis.c +++ b/arch/s390/kernel/dis.c | |||
@@ -83,22 +83,29 @@ enum { | |||
83 | U4_12, /* 4 bit unsigned value starting at 12 */ | 83 | U4_12, /* 4 bit unsigned value starting at 12 */ |
84 | U4_16, /* 4 bit unsigned value starting at 16 */ | 84 | U4_16, /* 4 bit unsigned value starting at 16 */ |
85 | U4_20, /* 4 bit unsigned value starting at 20 */ | 85 | U4_20, /* 4 bit unsigned value starting at 20 */ |
86 | U4_24, /* 4 bit unsigned value starting at 24 */ | ||
87 | U4_28, /* 4 bit unsigned value starting at 28 */ | ||
86 | U4_32, /* 4 bit unsigned value starting at 32 */ | 88 | U4_32, /* 4 bit unsigned value starting at 32 */ |
89 | U4_36, /* 4 bit unsigned value starting at 36 */ | ||
87 | U8_8, /* 8 bit unsigned value starting at 8 */ | 90 | U8_8, /* 8 bit unsigned value starting at 8 */ |
88 | U8_16, /* 8 bit unsigned value starting at 16 */ | 91 | U8_16, /* 8 bit unsigned value starting at 16 */ |
89 | U8_24, /* 8 bit unsigned value starting at 24 */ | 92 | U8_24, /* 8 bit unsigned value starting at 24 */ |
90 | U8_32, /* 8 bit unsigned value starting at 32 */ | 93 | U8_32, /* 8 bit unsigned value starting at 32 */ |
91 | I8_8, /* 8 bit signed value starting at 8 */ | 94 | I8_8, /* 8 bit signed value starting at 8 */ |
92 | I8_32, /* 8 bit signed value starting at 32 */ | 95 | I8_32, /* 8 bit signed value starting at 32 */ |
96 | J12_12, /* PC relative offset at 12 */ | ||
93 | I16_16, /* 16 bit signed value starting at 16 */ | 97 | I16_16, /* 16 bit signed value starting at 16 */ |
94 | I16_32, /* 32 bit signed value starting at 16 */ | 98 | I16_32, /* 32 bit signed value starting at 16 */ |
95 | U16_16, /* 16 bit unsigned value starting at 16 */ | 99 | U16_16, /* 16 bit unsigned value starting at 16 */ |
96 | U16_32, /* 32 bit unsigned value starting at 16 */ | 100 | U16_32, /* 32 bit unsigned value starting at 16 */ |
97 | J16_16, /* PC relative jump offset at 16 */ | 101 | J16_16, /* PC relative jump offset at 16 */ |
102 | J16_32, /* PC relative offset at 16 */ | ||
103 | I24_24, /* 24 bit signed value starting at 24 */ | ||
98 | J32_16, /* PC relative long offset at 16 */ | 104 | J32_16, /* PC relative long offset at 16 */ |
99 | I32_16, /* 32 bit signed value starting at 16 */ | 105 | I32_16, /* 32 bit signed value starting at 16 */ |
100 | U32_16, /* 32 bit unsigned value starting at 16 */ | 106 | U32_16, /* 32 bit unsigned value starting at 16 */ |
101 | M_16, /* 4 bit optional mask starting at 16 */ | 107 | M_16, /* 4 bit optional mask starting at 16 */ |
108 | M_20, /* 4 bit optional mask starting at 20 */ | ||
102 | RO_28, /* optional GPR starting at position 28 */ | 109 | RO_28, /* optional GPR starting at position 28 */ |
103 | }; | 110 | }; |
104 | 111 | ||
@@ -109,6 +116,8 @@ enum { | |||
109 | enum { | 116 | enum { |
110 | INSTR_INVALID, | 117 | INSTR_INVALID, |
111 | INSTR_E, | 118 | INSTR_E, |
119 | INSTR_IE_UU, | ||
120 | INSTR_MII_UPI, | ||
112 | INSTR_RIE_R0IU, INSTR_RIE_R0UU, INSTR_RIE_RRP, INSTR_RIE_RRPU, | 121 | INSTR_RIE_R0IU, INSTR_RIE_R0UU, INSTR_RIE_RRP, INSTR_RIE_RRPU, |
113 | INSTR_RIE_RRUUU, INSTR_RIE_RUPI, INSTR_RIE_RUPU, INSTR_RIE_RRI0, | 122 | INSTR_RIE_RRUUU, INSTR_RIE_RUPI, INSTR_RIE_RUPU, INSTR_RIE_RRI0, |
114 | INSTR_RIL_RI, INSTR_RIL_RP, INSTR_RIL_RU, INSTR_RIL_UP, | 123 | INSTR_RIL_RI, INSTR_RIL_RP, INSTR_RIL_RU, INSTR_RIL_UP, |
@@ -118,13 +127,15 @@ enum { | |||
118 | INSTR_RRE_FF, INSTR_RRE_FR, INSTR_RRE_R0, INSTR_RRE_RA, INSTR_RRE_RF, | 127 | INSTR_RRE_FF, INSTR_RRE_FR, INSTR_RRE_R0, INSTR_RRE_RA, INSTR_RRE_RF, |
119 | INSTR_RRE_RR, INSTR_RRE_RR_OPT, | 128 | INSTR_RRE_RR, INSTR_RRE_RR_OPT, |
120 | INSTR_RRF_0UFF, INSTR_RRF_F0FF, INSTR_RRF_F0FF2, INSTR_RRF_F0FR, | 129 | INSTR_RRF_0UFF, INSTR_RRF_F0FF, INSTR_RRF_F0FF2, INSTR_RRF_F0FR, |
121 | INSTR_RRF_FFRU, INSTR_RRF_FUFF, INSTR_RRF_M0RR, INSTR_RRF_R0RR, | 130 | INSTR_RRF_FFRU, INSTR_RRF_FUFF, INSTR_RRF_FUFF2, INSTR_RRF_M0RR, |
122 | INSTR_RRF_R0RR2, INSTR_RRF_RURR, INSTR_RRF_U0FF, INSTR_RRF_U0RF, | 131 | INSTR_RRF_R0RR, INSTR_RRF_R0RR2, INSTR_RRF_RMRR, INSTR_RRF_RURR, |
123 | INSTR_RRF_U0RR, INSTR_RRF_UUFF, INSTR_RRR_F0FF, INSTR_RRS_RRRDU, | 132 | INSTR_RRF_U0FF, INSTR_RRF_U0RF, INSTR_RRF_U0RR, INSTR_RRF_UUFF, |
133 | INSTR_RRF_UUFR, INSTR_RRF_UURF, | ||
134 | INSTR_RRR_F0FF, INSTR_RRS_RRRDU, | ||
124 | INSTR_RR_FF, INSTR_RR_R0, INSTR_RR_RR, INSTR_RR_U0, INSTR_RR_UR, | 135 | INSTR_RR_FF, INSTR_RR_R0, INSTR_RR_RR, INSTR_RR_U0, INSTR_RR_UR, |
125 | INSTR_RSE_CCRD, INSTR_RSE_RRRD, INSTR_RSE_RURD, | 136 | INSTR_RSE_CCRD, INSTR_RSE_RRRD, INSTR_RSE_RURD, |
126 | INSTR_RSI_RRP, | 137 | INSTR_RSI_RRP, |
127 | INSTR_RSL_R0RD, | 138 | INSTR_RSL_LRDFU, INSTR_RSL_R0RD, |
128 | INSTR_RSY_AARD, INSTR_RSY_CCRD, INSTR_RSY_RRRD, INSTR_RSY_RURD, | 139 | INSTR_RSY_AARD, INSTR_RSY_CCRD, INSTR_RSY_RRRD, INSTR_RSY_RURD, |
129 | INSTR_RSY_RDRM, | 140 | INSTR_RSY_RDRM, |
130 | INSTR_RS_AARD, INSTR_RS_CCRD, INSTR_RS_R0RD, INSTR_RS_RRRD, | 141 | INSTR_RS_AARD, INSTR_RS_CCRD, INSTR_RS_R0RD, INSTR_RS_RRRD, |
@@ -136,6 +147,7 @@ enum { | |||
136 | INSTR_SIL_RDI, INSTR_SIL_RDU, | 147 | INSTR_SIL_RDI, INSTR_SIL_RDU, |
137 | INSTR_SIY_IRD, INSTR_SIY_URD, | 148 | INSTR_SIY_IRD, INSTR_SIY_URD, |
138 | INSTR_SI_URD, | 149 | INSTR_SI_URD, |
150 | INSTR_SMI_U0RDP, | ||
139 | INSTR_SSE_RDRD, | 151 | INSTR_SSE_RDRD, |
140 | INSTR_SSF_RRDRD, INSTR_SSF_RRDRD2, | 152 | INSTR_SSF_RRDRD, INSTR_SSF_RRDRD2, |
141 | INSTR_SS_L0RDRD, INSTR_SS_LIRDRD, INSTR_SS_LLRDRD, INSTR_SS_RRRDRD, | 153 | INSTR_SS_L0RDRD, INSTR_SS_LIRDRD, INSTR_SS_LLRDRD, INSTR_SS_RRRDRD, |
@@ -191,31 +203,42 @@ static const struct operand operands[] = | |||
191 | [U4_12] = { 4, 12, 0 }, | 203 | [U4_12] = { 4, 12, 0 }, |
192 | [U4_16] = { 4, 16, 0 }, | 204 | [U4_16] = { 4, 16, 0 }, |
193 | [U4_20] = { 4, 20, 0 }, | 205 | [U4_20] = { 4, 20, 0 }, |
206 | [U4_24] = { 4, 24, 0 }, | ||
207 | [U4_28] = { 4, 28, 0 }, | ||
194 | [U4_32] = { 4, 32, 0 }, | 208 | [U4_32] = { 4, 32, 0 }, |
209 | [U4_36] = { 4, 36, 0 }, | ||
195 | [U8_8] = { 8, 8, 0 }, | 210 | [U8_8] = { 8, 8, 0 }, |
196 | [U8_16] = { 8, 16, 0 }, | 211 | [U8_16] = { 8, 16, 0 }, |
197 | [U8_24] = { 8, 24, 0 }, | 212 | [U8_24] = { 8, 24, 0 }, |
198 | [U8_32] = { 8, 32, 0 }, | 213 | [U8_32] = { 8, 32, 0 }, |
214 | [J12_12] = { 12, 12, OPERAND_PCREL }, | ||
199 | [I16_16] = { 16, 16, OPERAND_SIGNED }, | 215 | [I16_16] = { 16, 16, OPERAND_SIGNED }, |
200 | [U16_16] = { 16, 16, 0 }, | 216 | [U16_16] = { 16, 16, 0 }, |
201 | [U16_32] = { 16, 32, 0 }, | 217 | [U16_32] = { 16, 32, 0 }, |
202 | [J16_16] = { 16, 16, OPERAND_PCREL }, | 218 | [J16_16] = { 16, 16, OPERAND_PCREL }, |
219 | [J16_32] = { 16, 32, OPERAND_PCREL }, | ||
203 | [I16_32] = { 16, 32, OPERAND_SIGNED }, | 220 | [I16_32] = { 16, 32, OPERAND_SIGNED }, |
221 | [I24_24] = { 24, 24, OPERAND_SIGNED }, | ||
204 | [J32_16] = { 32, 16, OPERAND_PCREL }, | 222 | [J32_16] = { 32, 16, OPERAND_PCREL }, |
205 | [I32_16] = { 32, 16, OPERAND_SIGNED }, | 223 | [I32_16] = { 32, 16, OPERAND_SIGNED }, |
206 | [U32_16] = { 32, 16, 0 }, | 224 | [U32_16] = { 32, 16, 0 }, |
207 | [M_16] = { 4, 16, 0 }, | 225 | [M_16] = { 4, 16, 0 }, |
226 | [M_20] = { 4, 20, 0 }, | ||
208 | [RO_28] = { 4, 28, OPERAND_GPR } | 227 | [RO_28] = { 4, 28, OPERAND_GPR } |
209 | }; | 228 | }; |
210 | 229 | ||
211 | static const unsigned char formats[][7] = { | 230 | static const unsigned char formats[][7] = { |
212 | [INSTR_E] = { 0xff, 0,0,0,0,0,0 }, | 231 | [INSTR_E] = { 0xff, 0,0,0,0,0,0 }, |
232 | [INSTR_IE_UU] = { 0xff, U4_24,U4_28,0,0,0,0 }, | ||
233 | [INSTR_MII_UPI] = { 0xff, U4_8,J12_12,I24_24 }, | ||
234 | [INSTR_RIE_R0IU] = { 0xff, R_8,I16_16,U4_32,0,0,0 }, | ||
213 | [INSTR_RIE_R0UU] = { 0xff, R_8,U16_16,U4_32,0,0,0 }, | 235 | [INSTR_RIE_R0UU] = { 0xff, R_8,U16_16,U4_32,0,0,0 }, |
236 | [INSTR_RIE_RRI0] = { 0xff, R_8,R_12,I16_16,0,0,0 }, | ||
214 | [INSTR_RIE_RRPU] = { 0xff, R_8,R_12,U4_32,J16_16,0,0 }, | 237 | [INSTR_RIE_RRPU] = { 0xff, R_8,R_12,U4_32,J16_16,0,0 }, |
215 | [INSTR_RIE_RRP] = { 0xff, R_8,R_12,J16_16,0,0,0 }, | 238 | [INSTR_RIE_RRP] = { 0xff, R_8,R_12,J16_16,0,0,0 }, |
216 | [INSTR_RIE_RRUUU] = { 0xff, R_8,R_12,U8_16,U8_24,U8_32,0 }, | 239 | [INSTR_RIE_RRUUU] = { 0xff, R_8,R_12,U8_16,U8_24,U8_32,0 }, |
217 | [INSTR_RIE_RUPI] = { 0xff, R_8,I8_32,U4_12,J16_16,0,0 }, | 240 | [INSTR_RIE_RUPI] = { 0xff, R_8,I8_32,U4_12,J16_16,0,0 }, |
218 | [INSTR_RIE_RRI0] = { 0xff, R_8,R_12,I16_16,0,0,0 }, | 241 | [INSTR_RIE_RUPU] = { 0xff, R_8,U8_32,U4_12,J16_16,0,0 }, |
219 | [INSTR_RIL_RI] = { 0x0f, R_8,I32_16,0,0,0,0 }, | 242 | [INSTR_RIL_RI] = { 0x0f, R_8,I32_16,0,0,0,0 }, |
220 | [INSTR_RIL_RP] = { 0x0f, R_8,J32_16,0,0,0,0 }, | 243 | [INSTR_RIL_RP] = { 0x0f, R_8,J32_16,0,0,0,0 }, |
221 | [INSTR_RIL_RU] = { 0x0f, R_8,U32_16,0,0,0,0 }, | 244 | [INSTR_RIL_RU] = { 0x0f, R_8,U32_16,0,0,0,0 }, |
@@ -245,14 +268,18 @@ static const unsigned char formats[][7] = { | |||
245 | [INSTR_RRF_F0FR] = { 0xff, F_24,F_16,R_28,0,0,0 }, | 268 | [INSTR_RRF_F0FR] = { 0xff, F_24,F_16,R_28,0,0,0 }, |
246 | [INSTR_RRF_FFRU] = { 0xff, F_24,F_16,R_28,U4_20,0,0 }, | 269 | [INSTR_RRF_FFRU] = { 0xff, F_24,F_16,R_28,U4_20,0,0 }, |
247 | [INSTR_RRF_FUFF] = { 0xff, F_24,F_16,F_28,U4_20,0,0 }, | 270 | [INSTR_RRF_FUFF] = { 0xff, F_24,F_16,F_28,U4_20,0,0 }, |
271 | [INSTR_RRF_FUFF2] = { 0xff, F_24,F_28,F_16,U4_20,0,0 }, | ||
248 | [INSTR_RRF_M0RR] = { 0xff, R_24,R_28,M_16,0,0,0 }, | 272 | [INSTR_RRF_M0RR] = { 0xff, R_24,R_28,M_16,0,0,0 }, |
249 | [INSTR_RRF_R0RR] = { 0xff, R_24,R_16,R_28,0,0,0 }, | 273 | [INSTR_RRF_R0RR] = { 0xff, R_24,R_16,R_28,0,0,0 }, |
250 | [INSTR_RRF_R0RR2] = { 0xff, R_24,R_28,R_16,0,0,0 }, | 274 | [INSTR_RRF_R0RR2] = { 0xff, R_24,R_28,R_16,0,0,0 }, |
275 | [INSTR_RRF_RMRR] = { 0xff, R_24,R_16,R_28,M_20,0,0 }, | ||
251 | [INSTR_RRF_RURR] = { 0xff, R_24,R_28,R_16,U4_20,0,0 }, | 276 | [INSTR_RRF_RURR] = { 0xff, R_24,R_28,R_16,U4_20,0,0 }, |
252 | [INSTR_RRF_U0FF] = { 0xff, F_24,U4_16,F_28,0,0,0 }, | 277 | [INSTR_RRF_U0FF] = { 0xff, F_24,U4_16,F_28,0,0,0 }, |
253 | [INSTR_RRF_U0RF] = { 0xff, R_24,U4_16,F_28,0,0,0 }, | 278 | [INSTR_RRF_U0RF] = { 0xff, R_24,U4_16,F_28,0,0,0 }, |
254 | [INSTR_RRF_U0RR] = { 0xff, R_24,R_28,U4_16,0,0,0 }, | 279 | [INSTR_RRF_U0RR] = { 0xff, R_24,R_28,U4_16,0,0,0 }, |
255 | [INSTR_RRF_UUFF] = { 0xff, F_24,U4_16,F_28,U4_20,0,0 }, | 280 | [INSTR_RRF_UUFF] = { 0xff, F_24,U4_16,F_28,U4_20,0,0 }, |
281 | [INSTR_RRF_UUFR] = { 0xff, F_24,U4_16,R_28,U4_20,0,0 }, | ||
282 | [INSTR_RRF_UURF] = { 0xff, R_24,U4_16,F_28,U4_20,0,0 }, | ||
256 | [INSTR_RRR_F0FF] = { 0xff, F_24,F_28,F_16,0,0,0 }, | 283 | [INSTR_RRR_F0FF] = { 0xff, F_24,F_28,F_16,0,0,0 }, |
257 | [INSTR_RRS_RRRDU] = { 0xff, R_8,R_12,U4_32,D_20,B_16,0 }, | 284 | [INSTR_RRS_RRRDU] = { 0xff, R_8,R_12,U4_32,D_20,B_16,0 }, |
258 | [INSTR_RR_FF] = { 0xff, F_8,F_12,0,0,0,0 }, | 285 | [INSTR_RR_FF] = { 0xff, F_8,F_12,0,0,0,0 }, |
@@ -264,12 +291,13 @@ static const unsigned char formats[][7] = { | |||
264 | [INSTR_RSE_RRRD] = { 0xff, R_8,R_12,D_20,B_16,0,0 }, | 291 | [INSTR_RSE_RRRD] = { 0xff, R_8,R_12,D_20,B_16,0,0 }, |
265 | [INSTR_RSE_RURD] = { 0xff, R_8,U4_12,D_20,B_16,0,0 }, | 292 | [INSTR_RSE_RURD] = { 0xff, R_8,U4_12,D_20,B_16,0,0 }, |
266 | [INSTR_RSI_RRP] = { 0xff, R_8,R_12,J16_16,0,0,0 }, | 293 | [INSTR_RSI_RRP] = { 0xff, R_8,R_12,J16_16,0,0,0 }, |
294 | [INSTR_RSL_LRDFU] = { 0xff, F_32,D_20,L4_8,B_16,U4_36,0 }, | ||
267 | [INSTR_RSL_R0RD] = { 0xff, D_20,L4_8,B_16,0,0,0 }, | 295 | [INSTR_RSL_R0RD] = { 0xff, D_20,L4_8,B_16,0,0,0 }, |
268 | [INSTR_RSY_AARD] = { 0xff, A_8,A_12,D20_20,B_16,0,0 }, | 296 | [INSTR_RSY_AARD] = { 0xff, A_8,A_12,D20_20,B_16,0,0 }, |
269 | [INSTR_RSY_CCRD] = { 0xff, C_8,C_12,D20_20,B_16,0,0 }, | 297 | [INSTR_RSY_CCRD] = { 0xff, C_8,C_12,D20_20,B_16,0,0 }, |
298 | [INSTR_RSY_RDRM] = { 0xff, R_8,D20_20,B_16,U4_12,0,0 }, | ||
270 | [INSTR_RSY_RRRD] = { 0xff, R_8,R_12,D20_20,B_16,0,0 }, | 299 | [INSTR_RSY_RRRD] = { 0xff, R_8,R_12,D20_20,B_16,0,0 }, |
271 | [INSTR_RSY_RURD] = { 0xff, R_8,U4_12,D20_20,B_16,0,0 }, | 300 | [INSTR_RSY_RURD] = { 0xff, R_8,U4_12,D20_20,B_16,0,0 }, |
272 | [INSTR_RSY_RDRM] = { 0xff, R_8,D20_20,B_16,U4_12,0,0 }, | ||
273 | [INSTR_RS_AARD] = { 0xff, A_8,A_12,D_20,B_16,0,0 }, | 301 | [INSTR_RS_AARD] = { 0xff, A_8,A_12,D_20,B_16,0,0 }, |
274 | [INSTR_RS_CCRD] = { 0xff, C_8,C_12,D_20,B_16,0,0 }, | 302 | [INSTR_RS_CCRD] = { 0xff, C_8,C_12,D_20,B_16,0,0 }, |
275 | [INSTR_RS_R0RD] = { 0xff, R_8,D_20,B_16,0,0,0 }, | 303 | [INSTR_RS_R0RD] = { 0xff, R_8,D_20,B_16,0,0,0 }, |
@@ -289,9 +317,10 @@ static const unsigned char formats[][7] = { | |||
289 | [INSTR_SIY_IRD] = { 0xff, D20_20,B_16,I8_8,0,0,0 }, | 317 | [INSTR_SIY_IRD] = { 0xff, D20_20,B_16,I8_8,0,0,0 }, |
290 | [INSTR_SIY_URD] = { 0xff, D20_20,B_16,U8_8,0,0,0 }, | 318 | [INSTR_SIY_URD] = { 0xff, D20_20,B_16,U8_8,0,0,0 }, |
291 | [INSTR_SI_URD] = { 0xff, D_20,B_16,U8_8,0,0,0 }, | 319 | [INSTR_SI_URD] = { 0xff, D_20,B_16,U8_8,0,0,0 }, |
320 | [INSTR_SMI_U0RDP] = { 0xff, U4_8,J16_32,D_20,B_16,0,0 }, | ||
292 | [INSTR_SSE_RDRD] = { 0xff, D_20,B_16,D_36,B_32,0,0 }, | 321 | [INSTR_SSE_RDRD] = { 0xff, D_20,B_16,D_36,B_32,0,0 }, |
293 | [INSTR_SSF_RRDRD] = { 0x00, D_20,B_16,D_36,B_32,R_8,0 }, | 322 | [INSTR_SSF_RRDRD] = { 0x0f, D_20,B_16,D_36,B_32,R_8,0 }, |
294 | [INSTR_SSF_RRDRD2]= { 0x00, R_8,D_20,B_16,D_36,B_32,0 }, | 323 | [INSTR_SSF_RRDRD2]= { 0x0f, R_8,D_20,B_16,D_36,B_32,0 }, |
295 | [INSTR_SS_L0RDRD] = { 0xff, D_20,L8_8,B_16,D_36,B_32,0 }, | 324 | [INSTR_SS_L0RDRD] = { 0xff, D_20,L8_8,B_16,D_36,B_32,0 }, |
296 | [INSTR_SS_LIRDRD] = { 0xff, D_20,L4_8,B_16,D_36,B_32,U4_12 }, | 325 | [INSTR_SS_LIRDRD] = { 0xff, D_20,L4_8,B_16,D_36,B_32,U4_12 }, |
297 | [INSTR_SS_LLRDRD] = { 0xff, D_20,L4_8,B_16,D_36,L4_12,B_32 }, | 326 | [INSTR_SS_LLRDRD] = { 0xff, D_20,L4_8,B_16,D_36,L4_12,B_32 }, |
@@ -304,19 +333,69 @@ static const unsigned char formats[][7] = { | |||
304 | 333 | ||
305 | enum { | 334 | enum { |
306 | LONG_INSN_ALGHSIK, | 335 | LONG_INSN_ALGHSIK, |
336 | LONG_INSN_ALHHHR, | ||
337 | LONG_INSN_ALHHLR, | ||
307 | LONG_INSN_ALHSIK, | 338 | LONG_INSN_ALHSIK, |
339 | LONG_INSN_ALSIHN, | ||
340 | LONG_INSN_CDFBRA, | ||
341 | LONG_INSN_CDGBRA, | ||
342 | LONG_INSN_CDGTRA, | ||
343 | LONG_INSN_CDLFBR, | ||
344 | LONG_INSN_CDLFTR, | ||
345 | LONG_INSN_CDLGBR, | ||
346 | LONG_INSN_CDLGTR, | ||
347 | LONG_INSN_CEFBRA, | ||
348 | LONG_INSN_CEGBRA, | ||
349 | LONG_INSN_CELFBR, | ||
350 | LONG_INSN_CELGBR, | ||
351 | LONG_INSN_CFDBRA, | ||
352 | LONG_INSN_CFEBRA, | ||
353 | LONG_INSN_CFXBRA, | ||
354 | LONG_INSN_CGDBRA, | ||
355 | LONG_INSN_CGDTRA, | ||
356 | LONG_INSN_CGEBRA, | ||
357 | LONG_INSN_CGXBRA, | ||
358 | LONG_INSN_CGXTRA, | ||
359 | LONG_INSN_CLFDBR, | ||
360 | LONG_INSN_CLFDTR, | ||
361 | LONG_INSN_CLFEBR, | ||
308 | LONG_INSN_CLFHSI, | 362 | LONG_INSN_CLFHSI, |
363 | LONG_INSN_CLFXBR, | ||
364 | LONG_INSN_CLFXTR, | ||
365 | LONG_INSN_CLGDBR, | ||
366 | LONG_INSN_CLGDTR, | ||
367 | LONG_INSN_CLGEBR, | ||
309 | LONG_INSN_CLGFRL, | 368 | LONG_INSN_CLGFRL, |
310 | LONG_INSN_CLGHRL, | 369 | LONG_INSN_CLGHRL, |
311 | LONG_INSN_CLGHSI, | 370 | LONG_INSN_CLGHSI, |
371 | LONG_INSN_CLGXBR, | ||
372 | LONG_INSN_CLGXTR, | ||
312 | LONG_INSN_CLHHSI, | 373 | LONG_INSN_CLHHSI, |
374 | LONG_INSN_CXFBRA, | ||
375 | LONG_INSN_CXGBRA, | ||
376 | LONG_INSN_CXGTRA, | ||
377 | LONG_INSN_CXLFBR, | ||
378 | LONG_INSN_CXLFTR, | ||
379 | LONG_INSN_CXLGBR, | ||
380 | LONG_INSN_CXLGTR, | ||
381 | LONG_INSN_FIDBRA, | ||
382 | LONG_INSN_FIEBRA, | ||
383 | LONG_INSN_FIXBRA, | ||
384 | LONG_INSN_LDXBRA, | ||
385 | LONG_INSN_LEDBRA, | ||
386 | LONG_INSN_LEXBRA, | ||
387 | LONG_INSN_LLGFAT, | ||
313 | LONG_INSN_LLGFRL, | 388 | LONG_INSN_LLGFRL, |
314 | LONG_INSN_LLGHRL, | 389 | LONG_INSN_LLGHRL, |
390 | LONG_INSN_LLGTAT, | ||
315 | LONG_INSN_POPCNT, | 391 | LONG_INSN_POPCNT, |
392 | LONG_INSN_RIEMIT, | ||
393 | LONG_INSN_RINEXT, | ||
394 | LONG_INSN_RISBGN, | ||
316 | LONG_INSN_RISBHG, | 395 | LONG_INSN_RISBHG, |
317 | LONG_INSN_RISBLG, | 396 | LONG_INSN_RISBLG, |
318 | LONG_INSN_RINEXT, | 397 | LONG_INSN_SLHHHR, |
319 | LONG_INSN_RIEMIT, | 398 | LONG_INSN_SLHHLR, |
320 | LONG_INSN_TABORT, | 399 | LONG_INSN_TABORT, |
321 | LONG_INSN_TBEGIN, | 400 | LONG_INSN_TBEGIN, |
322 | LONG_INSN_TBEGINC, | 401 | LONG_INSN_TBEGINC, |
@@ -324,19 +403,69 @@ enum { | |||
324 | 403 | ||
325 | static char *long_insn_name[] = { | 404 | static char *long_insn_name[] = { |
326 | [LONG_INSN_ALGHSIK] = "alghsik", | 405 | [LONG_INSN_ALGHSIK] = "alghsik", |
406 | [LONG_INSN_ALHHHR] = "alhhhr", | ||
407 | [LONG_INSN_ALHHLR] = "alhhlr", | ||
327 | [LONG_INSN_ALHSIK] = "alhsik", | 408 | [LONG_INSN_ALHSIK] = "alhsik", |
409 | [LONG_INSN_ALSIHN] = "alsihn", | ||
410 | [LONG_INSN_CDFBRA] = "cdfbra", | ||
411 | [LONG_INSN_CDGBRA] = "cdgbra", | ||
412 | [LONG_INSN_CDGTRA] = "cdgtra", | ||
413 | [LONG_INSN_CDLFBR] = "cdlfbr", | ||
414 | [LONG_INSN_CDLFTR] = "cdlftr", | ||
415 | [LONG_INSN_CDLGBR] = "cdlgbr", | ||
416 | [LONG_INSN_CDLGTR] = "cdlgtr", | ||
417 | [LONG_INSN_CEFBRA] = "cefbra", | ||
418 | [LONG_INSN_CEGBRA] = "cegbra", | ||
419 | [LONG_INSN_CELFBR] = "celfbr", | ||
420 | [LONG_INSN_CELGBR] = "celgbr", | ||
421 | [LONG_INSN_CFDBRA] = "cfdbra", | ||
422 | [LONG_INSN_CFEBRA] = "cfebra", | ||
423 | [LONG_INSN_CFXBRA] = "cfxbra", | ||
424 | [LONG_INSN_CGDBRA] = "cgdbra", | ||
425 | [LONG_INSN_CGDTRA] = "cgdtra", | ||
426 | [LONG_INSN_CGEBRA] = "cgebra", | ||
427 | [LONG_INSN_CGXBRA] = "cgxbra", | ||
428 | [LONG_INSN_CGXTRA] = "cgxtra", | ||
429 | [LONG_INSN_CLFDBR] = "clfdbr", | ||
430 | [LONG_INSN_CLFDTR] = "clfdtr", | ||
431 | [LONG_INSN_CLFEBR] = "clfebr", | ||
328 | [LONG_INSN_CLFHSI] = "clfhsi", | 432 | [LONG_INSN_CLFHSI] = "clfhsi", |
433 | [LONG_INSN_CLFXBR] = "clfxbr", | ||
434 | [LONG_INSN_CLFXTR] = "clfxtr", | ||
435 | [LONG_INSN_CLGDBR] = "clgdbr", | ||
436 | [LONG_INSN_CLGDTR] = "clgdtr", | ||
437 | [LONG_INSN_CLGEBR] = "clgebr", | ||
329 | [LONG_INSN_CLGFRL] = "clgfrl", | 438 | [LONG_INSN_CLGFRL] = "clgfrl", |
330 | [LONG_INSN_CLGHRL] = "clghrl", | 439 | [LONG_INSN_CLGHRL] = "clghrl", |
331 | [LONG_INSN_CLGHSI] = "clghsi", | 440 | [LONG_INSN_CLGHSI] = "clghsi", |
441 | [LONG_INSN_CLGXBR] = "clgxbr", | ||
442 | [LONG_INSN_CLGXTR] = "clgxtr", | ||
332 | [LONG_INSN_CLHHSI] = "clhhsi", | 443 | [LONG_INSN_CLHHSI] = "clhhsi", |
444 | [LONG_INSN_CXFBRA] = "cxfbra", | ||
445 | [LONG_INSN_CXGBRA] = "cxgbra", | ||
446 | [LONG_INSN_CXGTRA] = "cxgtra", | ||
447 | [LONG_INSN_CXLFBR] = "cxlfbr", | ||
448 | [LONG_INSN_CXLFTR] = "cxlftr", | ||
449 | [LONG_INSN_CXLGBR] = "cxlgbr", | ||
450 | [LONG_INSN_CXLGTR] = "cxlgtr", | ||
451 | [LONG_INSN_FIDBRA] = "fidbra", | ||
452 | [LONG_INSN_FIEBRA] = "fiebra", | ||
453 | [LONG_INSN_FIXBRA] = "fixbra", | ||
454 | [LONG_INSN_LDXBRA] = "ldxbra", | ||
455 | [LONG_INSN_LEDBRA] = "ledbra", | ||
456 | [LONG_INSN_LEXBRA] = "lexbra", | ||
457 | [LONG_INSN_LLGFAT] = "llgfat", | ||
333 | [LONG_INSN_LLGFRL] = "llgfrl", | 458 | [LONG_INSN_LLGFRL] = "llgfrl", |
334 | [LONG_INSN_LLGHRL] = "llghrl", | 459 | [LONG_INSN_LLGHRL] = "llghrl", |
460 | [LONG_INSN_LLGTAT] = "llgtat", | ||
335 | [LONG_INSN_POPCNT] = "popcnt", | 461 | [LONG_INSN_POPCNT] = "popcnt", |
462 | [LONG_INSN_RIEMIT] = "riemit", | ||
463 | [LONG_INSN_RINEXT] = "rinext", | ||
464 | [LONG_INSN_RISBGN] = "risbgn", | ||
336 | [LONG_INSN_RISBHG] = "risbhg", | 465 | [LONG_INSN_RISBHG] = "risbhg", |
337 | [LONG_INSN_RISBLG] = "risblg", | 466 | [LONG_INSN_RISBLG] = "risblg", |
338 | [LONG_INSN_RINEXT] = "rinext", | 467 | [LONG_INSN_SLHHHR] = "slhhhr", |
339 | [LONG_INSN_RIEMIT] = "riemit", | 468 | [LONG_INSN_SLHHLR] = "slhhlr", |
340 | [LONG_INSN_TABORT] = "tabort", | 469 | [LONG_INSN_TABORT] = "tabort", |
341 | [LONG_INSN_TBEGIN] = "tbegin", | 470 | [LONG_INSN_TBEGIN] = "tbegin", |
342 | [LONG_INSN_TBEGINC] = "tbeginc", | 471 | [LONG_INSN_TBEGINC] = "tbeginc", |
@@ -344,6 +473,9 @@ static char *long_insn_name[] = { | |||
344 | 473 | ||
345 | static struct insn opcode[] = { | 474 | static struct insn opcode[] = { |
346 | #ifdef CONFIG_64BIT | 475 | #ifdef CONFIG_64BIT |
476 | { "bprp", 0xc5, INSTR_MII_UPI }, | ||
477 | { "bpp", 0xc7, INSTR_SMI_U0RDP }, | ||
478 | { "trtr", 0xd0, INSTR_SS_L0RDRD }, | ||
347 | { "lmd", 0xef, INSTR_SS_RRRDRD3 }, | 479 | { "lmd", 0xef, INSTR_SS_RRRDRD3 }, |
348 | #endif | 480 | #endif |
349 | { "spm", 0x04, INSTR_RR_R0 }, | 481 | { "spm", 0x04, INSTR_RR_R0 }, |
@@ -378,7 +510,6 @@ static struct insn opcode[] = { | |||
378 | { "lcdr", 0x23, INSTR_RR_FF }, | 510 | { "lcdr", 0x23, INSTR_RR_FF }, |
379 | { "hdr", 0x24, INSTR_RR_FF }, | 511 | { "hdr", 0x24, INSTR_RR_FF }, |
380 | { "ldxr", 0x25, INSTR_RR_FF }, | 512 | { "ldxr", 0x25, INSTR_RR_FF }, |
381 | { "lrdr", 0x25, INSTR_RR_FF }, | ||
382 | { "mxr", 0x26, INSTR_RR_FF }, | 513 | { "mxr", 0x26, INSTR_RR_FF }, |
383 | { "mxdr", 0x27, INSTR_RR_FF }, | 514 | { "mxdr", 0x27, INSTR_RR_FF }, |
384 | { "ldr", 0x28, INSTR_RR_FF }, | 515 | { "ldr", 0x28, INSTR_RR_FF }, |
@@ -395,7 +526,6 @@ static struct insn opcode[] = { | |||
395 | { "lcer", 0x33, INSTR_RR_FF }, | 526 | { "lcer", 0x33, INSTR_RR_FF }, |
396 | { "her", 0x34, INSTR_RR_FF }, | 527 | { "her", 0x34, INSTR_RR_FF }, |
397 | { "ledr", 0x35, INSTR_RR_FF }, | 528 | { "ledr", 0x35, INSTR_RR_FF }, |
398 | { "lrer", 0x35, INSTR_RR_FF }, | ||
399 | { "axr", 0x36, INSTR_RR_FF }, | 529 | { "axr", 0x36, INSTR_RR_FF }, |
400 | { "sxr", 0x37, INSTR_RR_FF }, | 530 | { "sxr", 0x37, INSTR_RR_FF }, |
401 | { "ler", 0x38, INSTR_RR_FF }, | 531 | { "ler", 0x38, INSTR_RR_FF }, |
@@ -403,7 +533,6 @@ static struct insn opcode[] = { | |||
403 | { "aer", 0x3a, INSTR_RR_FF }, | 533 | { "aer", 0x3a, INSTR_RR_FF }, |
404 | { "ser", 0x3b, INSTR_RR_FF }, | 534 | { "ser", 0x3b, INSTR_RR_FF }, |
405 | { "mder", 0x3c, INSTR_RR_FF }, | 535 | { "mder", 0x3c, INSTR_RR_FF }, |
406 | { "mer", 0x3c, INSTR_RR_FF }, | ||
407 | { "der", 0x3d, INSTR_RR_FF }, | 536 | { "der", 0x3d, INSTR_RR_FF }, |
408 | { "aur", 0x3e, INSTR_RR_FF }, | 537 | { "aur", 0x3e, INSTR_RR_FF }, |
409 | { "sur", 0x3f, INSTR_RR_FF }, | 538 | { "sur", 0x3f, INSTR_RR_FF }, |
@@ -454,7 +583,6 @@ static struct insn opcode[] = { | |||
454 | { "ae", 0x7a, INSTR_RX_FRRD }, | 583 | { "ae", 0x7a, INSTR_RX_FRRD }, |
455 | { "se", 0x7b, INSTR_RX_FRRD }, | 584 | { "se", 0x7b, INSTR_RX_FRRD }, |
456 | { "mde", 0x7c, INSTR_RX_FRRD }, | 585 | { "mde", 0x7c, INSTR_RX_FRRD }, |
457 | { "me", 0x7c, INSTR_RX_FRRD }, | ||
458 | { "de", 0x7d, INSTR_RX_FRRD }, | 586 | { "de", 0x7d, INSTR_RX_FRRD }, |
459 | { "au", 0x7e, INSTR_RX_FRRD }, | 587 | { "au", 0x7e, INSTR_RX_FRRD }, |
460 | { "su", 0x7f, INSTR_RX_FRRD }, | 588 | { "su", 0x7f, INSTR_RX_FRRD }, |
@@ -534,9 +662,9 @@ static struct insn opcode[] = { | |||
534 | 662 | ||
535 | static struct insn opcode_01[] = { | 663 | static struct insn opcode_01[] = { |
536 | #ifdef CONFIG_64BIT | 664 | #ifdef CONFIG_64BIT |
537 | { "sam64", 0x0e, INSTR_E }, | ||
538 | { "pfpo", 0x0a, INSTR_E }, | ||
539 | { "ptff", 0x04, INSTR_E }, | 665 | { "ptff", 0x04, INSTR_E }, |
666 | { "pfpo", 0x0a, INSTR_E }, | ||
667 | { "sam64", 0x0e, INSTR_E }, | ||
540 | #endif | 668 | #endif |
541 | { "pr", 0x01, INSTR_E }, | 669 | { "pr", 0x01, INSTR_E }, |
542 | { "upt", 0x02, INSTR_E }, | 670 | { "upt", 0x02, INSTR_E }, |
@@ -605,19 +733,28 @@ static struct insn opcode_aa[] = { | |||
605 | 733 | ||
606 | static struct insn opcode_b2[] = { | 734 | static struct insn opcode_b2[] = { |
607 | #ifdef CONFIG_64BIT | 735 | #ifdef CONFIG_64BIT |
608 | { "sske", 0x2b, INSTR_RRF_M0RR }, | ||
609 | { "stckf", 0x7c, INSTR_S_RD }, | 736 | { "stckf", 0x7c, INSTR_S_RD }, |
610 | { "cu21", 0xa6, INSTR_RRF_M0RR }, | 737 | { "lpp", 0x80, INSTR_S_RD }, |
611 | { "cuutf", 0xa6, INSTR_RRF_M0RR }, | 738 | { "lcctl", 0x84, INSTR_S_RD }, |
612 | { "cu12", 0xa7, INSTR_RRF_M0RR }, | 739 | { "lpctl", 0x85, INSTR_S_RD }, |
613 | { "cutfu", 0xa7, INSTR_RRF_M0RR }, | 740 | { "qsi", 0x86, INSTR_S_RD }, |
741 | { "lsctl", 0x87, INSTR_S_RD }, | ||
742 | { "qctri", 0x8e, INSTR_S_RD }, | ||
614 | { "stfle", 0xb0, INSTR_S_RD }, | 743 | { "stfle", 0xb0, INSTR_S_RD }, |
615 | { "lpswe", 0xb2, INSTR_S_RD }, | 744 | { "lpswe", 0xb2, INSTR_S_RD }, |
745 | { "srnmb", 0xb8, INSTR_S_RD }, | ||
616 | { "srnmt", 0xb9, INSTR_S_RD }, | 746 | { "srnmt", 0xb9, INSTR_S_RD }, |
617 | { "lfas", 0xbd, INSTR_S_RD }, | 747 | { "lfas", 0xbd, INSTR_S_RD }, |
618 | { "etndg", 0xec, INSTR_RRE_R0 }, | 748 | { "scctr", 0xe0, INSTR_RRE_RR }, |
749 | { "spctr", 0xe1, INSTR_RRE_RR }, | ||
750 | { "ecctr", 0xe4, INSTR_RRE_RR }, | ||
751 | { "epctr", 0xe5, INSTR_RRE_RR }, | ||
752 | { "ppa", 0xe8, INSTR_RRF_U0RR }, | ||
753 | { "etnd", 0xec, INSTR_RRE_R0 }, | ||
754 | { "ecpga", 0xed, INSTR_RRE_RR }, | ||
755 | { "tend", 0xf8, INSTR_S_00 }, | ||
756 | { "niai", 0xfa, INSTR_IE_UU }, | ||
619 | { { 0, LONG_INSN_TABORT }, 0xfc, INSTR_S_RD }, | 757 | { { 0, LONG_INSN_TABORT }, 0xfc, INSTR_S_RD }, |
620 | { "tend", 0xf8, INSTR_S_RD }, | ||
621 | #endif | 758 | #endif |
622 | { "stidp", 0x02, INSTR_S_RD }, | 759 | { "stidp", 0x02, INSTR_S_RD }, |
623 | { "sck", 0x04, INSTR_S_RD }, | 760 | { "sck", 0x04, INSTR_S_RD }, |
@@ -635,8 +772,8 @@ static struct insn opcode_b2[] = { | |||
635 | { "sie", 0x14, INSTR_S_RD }, | 772 | { "sie", 0x14, INSTR_S_RD }, |
636 | { "pc", 0x18, INSTR_S_RD }, | 773 | { "pc", 0x18, INSTR_S_RD }, |
637 | { "sac", 0x19, INSTR_S_RD }, | 774 | { "sac", 0x19, INSTR_S_RD }, |
638 | { "servc", 0x20, INSTR_RRE_RR }, | ||
639 | { "cfc", 0x1a, INSTR_S_RD }, | 775 | { "cfc", 0x1a, INSTR_S_RD }, |
776 | { "servc", 0x20, INSTR_RRE_RR }, | ||
640 | { "ipte", 0x21, INSTR_RRE_RR }, | 777 | { "ipte", 0x21, INSTR_RRE_RR }, |
641 | { "ipm", 0x22, INSTR_RRE_R0 }, | 778 | { "ipm", 0x22, INSTR_RRE_R0 }, |
642 | { "ivsk", 0x23, INSTR_RRE_RR }, | 779 | { "ivsk", 0x23, INSTR_RRE_RR }, |
@@ -647,9 +784,9 @@ static struct insn opcode_b2[] = { | |||
647 | { "pt", 0x28, INSTR_RRE_RR }, | 784 | { "pt", 0x28, INSTR_RRE_RR }, |
648 | { "iske", 0x29, INSTR_RRE_RR }, | 785 | { "iske", 0x29, INSTR_RRE_RR }, |
649 | { "rrbe", 0x2a, INSTR_RRE_RR }, | 786 | { "rrbe", 0x2a, INSTR_RRE_RR }, |
650 | { "sske", 0x2b, INSTR_RRE_RR }, | 787 | { "sske", 0x2b, INSTR_RRF_M0RR }, |
651 | { "tb", 0x2c, INSTR_RRE_0R }, | 788 | { "tb", 0x2c, INSTR_RRE_0R }, |
652 | { "dxr", 0x2d, INSTR_RRE_F0 }, | 789 | { "dxr", 0x2d, INSTR_RRE_FF }, |
653 | { "pgin", 0x2e, INSTR_RRE_RR }, | 790 | { "pgin", 0x2e, INSTR_RRE_RR }, |
654 | { "pgout", 0x2f, INSTR_RRE_RR }, | 791 | { "pgout", 0x2f, INSTR_RRE_RR }, |
655 | { "csch", 0x30, INSTR_S_00 }, | 792 | { "csch", 0x30, INSTR_S_00 }, |
@@ -667,8 +804,8 @@ static struct insn opcode_b2[] = { | |||
667 | { "schm", 0x3c, INSTR_S_00 }, | 804 | { "schm", 0x3c, INSTR_S_00 }, |
668 | { "bakr", 0x40, INSTR_RRE_RR }, | 805 | { "bakr", 0x40, INSTR_RRE_RR }, |
669 | { "cksm", 0x41, INSTR_RRE_RR }, | 806 | { "cksm", 0x41, INSTR_RRE_RR }, |
670 | { "sqdr", 0x44, INSTR_RRE_F0 }, | 807 | { "sqdr", 0x44, INSTR_RRE_FF }, |
671 | { "sqer", 0x45, INSTR_RRE_F0 }, | 808 | { "sqer", 0x45, INSTR_RRE_FF }, |
672 | { "stura", 0x46, INSTR_RRE_RR }, | 809 | { "stura", 0x46, INSTR_RRE_RR }, |
673 | { "msta", 0x47, INSTR_RRE_R0 }, | 810 | { "msta", 0x47, INSTR_RRE_R0 }, |
674 | { "palb", 0x48, INSTR_RRE_00 }, | 811 | { "palb", 0x48, INSTR_RRE_00 }, |
@@ -694,14 +831,14 @@ static struct insn opcode_b2[] = { | |||
694 | { "rp", 0x77, INSTR_S_RD }, | 831 | { "rp", 0x77, INSTR_S_RD }, |
695 | { "stcke", 0x78, INSTR_S_RD }, | 832 | { "stcke", 0x78, INSTR_S_RD }, |
696 | { "sacf", 0x79, INSTR_S_RD }, | 833 | { "sacf", 0x79, INSTR_S_RD }, |
697 | { "spp", 0x80, INSTR_S_RD }, | ||
698 | { "stsi", 0x7d, INSTR_S_RD }, | 834 | { "stsi", 0x7d, INSTR_S_RD }, |
835 | { "spp", 0x80, INSTR_S_RD }, | ||
699 | { "srnm", 0x99, INSTR_S_RD }, | 836 | { "srnm", 0x99, INSTR_S_RD }, |
700 | { "stfpc", 0x9c, INSTR_S_RD }, | 837 | { "stfpc", 0x9c, INSTR_S_RD }, |
701 | { "lfpc", 0x9d, INSTR_S_RD }, | 838 | { "lfpc", 0x9d, INSTR_S_RD }, |
702 | { "tre", 0xa5, INSTR_RRE_RR }, | 839 | { "tre", 0xa5, INSTR_RRE_RR }, |
703 | { "cuutf", 0xa6, INSTR_RRE_RR }, | 840 | { "cuutf", 0xa6, INSTR_RRF_M0RR }, |
704 | { "cutfu", 0xa7, INSTR_RRE_RR }, | 841 | { "cutfu", 0xa7, INSTR_RRF_M0RR }, |
705 | { "stfl", 0xb1, INSTR_S_RD }, | 842 | { "stfl", 0xb1, INSTR_S_RD }, |
706 | { "trap4", 0xff, INSTR_S_RD }, | 843 | { "trap4", 0xff, INSTR_S_RD }, |
707 | { "", 0, INSTR_INVALID } | 844 | { "", 0, INSTR_INVALID } |
@@ -715,72 +852,87 @@ static struct insn opcode_b3[] = { | |||
715 | { "myr", 0x3b, INSTR_RRF_F0FF }, | 852 | { "myr", 0x3b, INSTR_RRF_F0FF }, |
716 | { "mayhr", 0x3c, INSTR_RRF_F0FF }, | 853 | { "mayhr", 0x3c, INSTR_RRF_F0FF }, |
717 | { "myhr", 0x3d, INSTR_RRF_F0FF }, | 854 | { "myhr", 0x3d, INSTR_RRF_F0FF }, |
718 | { "cegbr", 0xa4, INSTR_RRE_RR }, | ||
719 | { "cdgbr", 0xa5, INSTR_RRE_RR }, | ||
720 | { "cxgbr", 0xa6, INSTR_RRE_RR }, | ||
721 | { "cgebr", 0xa8, INSTR_RRF_U0RF }, | ||
722 | { "cgdbr", 0xa9, INSTR_RRF_U0RF }, | ||
723 | { "cgxbr", 0xaa, INSTR_RRF_U0RF }, | ||
724 | { "cfer", 0xb8, INSTR_RRF_U0RF }, | ||
725 | { "cfdr", 0xb9, INSTR_RRF_U0RF }, | ||
726 | { "cfxr", 0xba, INSTR_RRF_U0RF }, | ||
727 | { "cegr", 0xc4, INSTR_RRE_RR }, | ||
728 | { "cdgr", 0xc5, INSTR_RRE_RR }, | ||
729 | { "cxgr", 0xc6, INSTR_RRE_RR }, | ||
730 | { "cger", 0xc8, INSTR_RRF_U0RF }, | ||
731 | { "cgdr", 0xc9, INSTR_RRF_U0RF }, | ||
732 | { "cgxr", 0xca, INSTR_RRF_U0RF }, | ||
733 | { "lpdfr", 0x70, INSTR_RRE_FF }, | 855 | { "lpdfr", 0x70, INSTR_RRE_FF }, |
734 | { "lndfr", 0x71, INSTR_RRE_FF }, | 856 | { "lndfr", 0x71, INSTR_RRE_FF }, |
735 | { "cpsdr", 0x72, INSTR_RRF_F0FF2 }, | 857 | { "cpsdr", 0x72, INSTR_RRF_F0FF2 }, |
736 | { "lcdfr", 0x73, INSTR_RRE_FF }, | 858 | { "lcdfr", 0x73, INSTR_RRE_FF }, |
859 | { "sfasr", 0x85, INSTR_RRE_R0 }, | ||
860 | { { 0, LONG_INSN_CELFBR }, 0x90, INSTR_RRF_UUFR }, | ||
861 | { { 0, LONG_INSN_CDLFBR }, 0x91, INSTR_RRF_UUFR }, | ||
862 | { { 0, LONG_INSN_CXLFBR }, 0x92, INSTR_RRF_UURF }, | ||
863 | { { 0, LONG_INSN_CEFBRA }, 0x94, INSTR_RRF_UUFR }, | ||
864 | { { 0, LONG_INSN_CDFBRA }, 0x95, INSTR_RRF_UUFR }, | ||
865 | { { 0, LONG_INSN_CXFBRA }, 0x96, INSTR_RRF_UURF }, | ||
866 | { { 0, LONG_INSN_CFEBRA }, 0x98, INSTR_RRF_UURF }, | ||
867 | { { 0, LONG_INSN_CFDBRA }, 0x99, INSTR_RRF_UURF }, | ||
868 | { { 0, LONG_INSN_CFXBRA }, 0x9a, INSTR_RRF_UUFR }, | ||
869 | { { 0, LONG_INSN_CLFEBR }, 0x9c, INSTR_RRF_UURF }, | ||
870 | { { 0, LONG_INSN_CLFDBR }, 0x9d, INSTR_RRF_UURF }, | ||
871 | { { 0, LONG_INSN_CLFXBR }, 0x9e, INSTR_RRF_UUFR }, | ||
872 | { { 0, LONG_INSN_CELGBR }, 0xa0, INSTR_RRF_UUFR }, | ||
873 | { { 0, LONG_INSN_CDLGBR }, 0xa1, INSTR_RRF_UUFR }, | ||
874 | { { 0, LONG_INSN_CXLGBR }, 0xa2, INSTR_RRF_UURF }, | ||
875 | { { 0, LONG_INSN_CEGBRA }, 0xa4, INSTR_RRF_UUFR }, | ||
876 | { { 0, LONG_INSN_CDGBRA }, 0xa5, INSTR_RRF_UUFR }, | ||
877 | { { 0, LONG_INSN_CXGBRA }, 0xa6, INSTR_RRF_UURF }, | ||
878 | { { 0, LONG_INSN_CGEBRA }, 0xa8, INSTR_RRF_UURF }, | ||
879 | { { 0, LONG_INSN_CGDBRA }, 0xa9, INSTR_RRF_UURF }, | ||
880 | { { 0, LONG_INSN_CGXBRA }, 0xaa, INSTR_RRF_UUFR }, | ||
881 | { { 0, LONG_INSN_CLGEBR }, 0xac, INSTR_RRF_UURF }, | ||
882 | { { 0, LONG_INSN_CLGDBR }, 0xad, INSTR_RRF_UURF }, | ||
883 | { { 0, LONG_INSN_CLGXBR }, 0xae, INSTR_RRF_UUFR }, | ||
737 | { "ldgr", 0xc1, INSTR_RRE_FR }, | 884 | { "ldgr", 0xc1, INSTR_RRE_FR }, |
885 | { "cegr", 0xc4, INSTR_RRE_FR }, | ||
886 | { "cdgr", 0xc5, INSTR_RRE_FR }, | ||
887 | { "cxgr", 0xc6, INSTR_RRE_FR }, | ||
888 | { "cger", 0xc8, INSTR_RRF_U0RF }, | ||
889 | { "cgdr", 0xc9, INSTR_RRF_U0RF }, | ||
890 | { "cgxr", 0xca, INSTR_RRF_U0RF }, | ||
738 | { "lgdr", 0xcd, INSTR_RRE_RF }, | 891 | { "lgdr", 0xcd, INSTR_RRE_RF }, |
739 | { "adtr", 0xd2, INSTR_RRR_F0FF }, | 892 | { "mdtra", 0xd0, INSTR_RRF_FUFF2 }, |
740 | { "axtr", 0xda, INSTR_RRR_F0FF }, | 893 | { "ddtra", 0xd1, INSTR_RRF_FUFF2 }, |
741 | { "cdtr", 0xe4, INSTR_RRE_FF }, | 894 | { "adtra", 0xd2, INSTR_RRF_FUFF2 }, |
742 | { "cxtr", 0xec, INSTR_RRE_FF }, | 895 | { "sdtra", 0xd3, INSTR_RRF_FUFF2 }, |
896 | { "ldetr", 0xd4, INSTR_RRF_0UFF }, | ||
897 | { "ledtr", 0xd5, INSTR_RRF_UUFF }, | ||
898 | { "ltdtr", 0xd6, INSTR_RRE_FF }, | ||
899 | { "fidtr", 0xd7, INSTR_RRF_UUFF }, | ||
900 | { "mxtra", 0xd8, INSTR_RRF_FUFF2 }, | ||
901 | { "dxtra", 0xd9, INSTR_RRF_FUFF2 }, | ||
902 | { "axtra", 0xda, INSTR_RRF_FUFF2 }, | ||
903 | { "sxtra", 0xdb, INSTR_RRF_FUFF2 }, | ||
904 | { "lxdtr", 0xdc, INSTR_RRF_0UFF }, | ||
905 | { "ldxtr", 0xdd, INSTR_RRF_UUFF }, | ||
906 | { "ltxtr", 0xde, INSTR_RRE_FF }, | ||
907 | { "fixtr", 0xdf, INSTR_RRF_UUFF }, | ||
743 | { "kdtr", 0xe0, INSTR_RRE_FF }, | 908 | { "kdtr", 0xe0, INSTR_RRE_FF }, |
744 | { "kxtr", 0xe8, INSTR_RRE_FF }, | 909 | { { 0, LONG_INSN_CGDTRA }, 0xe1, INSTR_RRF_UURF }, |
745 | { "cedtr", 0xf4, INSTR_RRE_FF }, | ||
746 | { "cextr", 0xfc, INSTR_RRE_FF }, | ||
747 | { "cdgtr", 0xf1, INSTR_RRE_FR }, | ||
748 | { "cxgtr", 0xf9, INSTR_RRE_FR }, | ||
749 | { "cdstr", 0xf3, INSTR_RRE_FR }, | ||
750 | { "cxstr", 0xfb, INSTR_RRE_FR }, | ||
751 | { "cdutr", 0xf2, INSTR_RRE_FR }, | ||
752 | { "cxutr", 0xfa, INSTR_RRE_FR }, | ||
753 | { "cgdtr", 0xe1, INSTR_RRF_U0RF }, | ||
754 | { "cgxtr", 0xe9, INSTR_RRF_U0RF }, | ||
755 | { "csdtr", 0xe3, INSTR_RRE_RF }, | ||
756 | { "csxtr", 0xeb, INSTR_RRE_RF }, | ||
757 | { "cudtr", 0xe2, INSTR_RRE_RF }, | 910 | { "cudtr", 0xe2, INSTR_RRE_RF }, |
758 | { "cuxtr", 0xea, INSTR_RRE_RF }, | 911 | { "csdtr", 0xe3, INSTR_RRE_RF }, |
759 | { "ddtr", 0xd1, INSTR_RRR_F0FF }, | 912 | { "cdtr", 0xe4, INSTR_RRE_FF }, |
760 | { "dxtr", 0xd9, INSTR_RRR_F0FF }, | ||
761 | { "eedtr", 0xe5, INSTR_RRE_RF }, | 913 | { "eedtr", 0xe5, INSTR_RRE_RF }, |
762 | { "eextr", 0xed, INSTR_RRE_RF }, | ||
763 | { "esdtr", 0xe7, INSTR_RRE_RF }, | 914 | { "esdtr", 0xe7, INSTR_RRE_RF }, |
915 | { "kxtr", 0xe8, INSTR_RRE_FF }, | ||
916 | { { 0, LONG_INSN_CGXTRA }, 0xe9, INSTR_RRF_UUFR }, | ||
917 | { "cuxtr", 0xea, INSTR_RRE_RF }, | ||
918 | { "csxtr", 0xeb, INSTR_RRE_RF }, | ||
919 | { "cxtr", 0xec, INSTR_RRE_FF }, | ||
920 | { "eextr", 0xed, INSTR_RRE_RF }, | ||
764 | { "esxtr", 0xef, INSTR_RRE_RF }, | 921 | { "esxtr", 0xef, INSTR_RRE_RF }, |
765 | { "iedtr", 0xf6, INSTR_RRF_F0FR }, | 922 | { { 0, LONG_INSN_CDGTRA }, 0xf1, INSTR_RRF_UUFR }, |
766 | { "iextr", 0xfe, INSTR_RRF_F0FR }, | 923 | { "cdutr", 0xf2, INSTR_RRE_FR }, |
767 | { "ltdtr", 0xd6, INSTR_RRE_FF }, | 924 | { "cdstr", 0xf3, INSTR_RRE_FR }, |
768 | { "ltxtr", 0xde, INSTR_RRE_FF }, | 925 | { "cedtr", 0xf4, INSTR_RRE_FF }, |
769 | { "fidtr", 0xd7, INSTR_RRF_UUFF }, | ||
770 | { "fixtr", 0xdf, INSTR_RRF_UUFF }, | ||
771 | { "ldetr", 0xd4, INSTR_RRF_0UFF }, | ||
772 | { "lxdtr", 0xdc, INSTR_RRF_0UFF }, | ||
773 | { "ledtr", 0xd5, INSTR_RRF_UUFF }, | ||
774 | { "ldxtr", 0xdd, INSTR_RRF_UUFF }, | ||
775 | { "mdtr", 0xd0, INSTR_RRR_F0FF }, | ||
776 | { "mxtr", 0xd8, INSTR_RRR_F0FF }, | ||
777 | { "qadtr", 0xf5, INSTR_RRF_FUFF }, | 926 | { "qadtr", 0xf5, INSTR_RRF_FUFF }, |
778 | { "qaxtr", 0xfd, INSTR_RRF_FUFF }, | 927 | { "iedtr", 0xf6, INSTR_RRF_F0FR }, |
779 | { "rrdtr", 0xf7, INSTR_RRF_FFRU }, | 928 | { "rrdtr", 0xf7, INSTR_RRF_FFRU }, |
929 | { { 0, LONG_INSN_CXGTRA }, 0xf9, INSTR_RRF_UURF }, | ||
930 | { "cxutr", 0xfa, INSTR_RRE_FR }, | ||
931 | { "cxstr", 0xfb, INSTR_RRE_FR }, | ||
932 | { "cextr", 0xfc, INSTR_RRE_FF }, | ||
933 | { "qaxtr", 0xfd, INSTR_RRF_FUFF }, | ||
934 | { "iextr", 0xfe, INSTR_RRF_F0FR }, | ||
780 | { "rrxtr", 0xff, INSTR_RRF_FFRU }, | 935 | { "rrxtr", 0xff, INSTR_RRF_FFRU }, |
781 | { "sfasr", 0x85, INSTR_RRE_R0 }, | ||
782 | { "sdtr", 0xd3, INSTR_RRR_F0FF }, | ||
783 | { "sxtr", 0xdb, INSTR_RRR_F0FF }, | ||
784 | #endif | 936 | #endif |
785 | { "lpebr", 0x00, INSTR_RRE_FF }, | 937 | { "lpebr", 0x00, INSTR_RRE_FF }, |
786 | { "lnebr", 0x01, INSTR_RRE_FF }, | 938 | { "lnebr", 0x01, INSTR_RRE_FF }, |
@@ -827,10 +979,10 @@ static struct insn opcode_b3[] = { | |||
827 | { "lnxbr", 0x41, INSTR_RRE_FF }, | 979 | { "lnxbr", 0x41, INSTR_RRE_FF }, |
828 | { "ltxbr", 0x42, INSTR_RRE_FF }, | 980 | { "ltxbr", 0x42, INSTR_RRE_FF }, |
829 | { "lcxbr", 0x43, INSTR_RRE_FF }, | 981 | { "lcxbr", 0x43, INSTR_RRE_FF }, |
830 | { "ledbr", 0x44, INSTR_RRE_FF }, | 982 | { { 0, LONG_INSN_LEDBRA }, 0x44, INSTR_RRF_UUFF }, |
831 | { "ldxbr", 0x45, INSTR_RRE_FF }, | 983 | { { 0, LONG_INSN_LDXBRA }, 0x45, INSTR_RRF_UUFF }, |
832 | { "lexbr", 0x46, INSTR_RRE_FF }, | 984 | { { 0, LONG_INSN_LEXBRA }, 0x46, INSTR_RRF_UUFF }, |
833 | { "fixbr", 0x47, INSTR_RRF_U0FF }, | 985 | { { 0, LONG_INSN_FIXBRA }, 0x47, INSTR_RRF_UUFF }, |
834 | { "kxbr", 0x48, INSTR_RRE_FF }, | 986 | { "kxbr", 0x48, INSTR_RRE_FF }, |
835 | { "cxbr", 0x49, INSTR_RRE_FF }, | 987 | { "cxbr", 0x49, INSTR_RRE_FF }, |
836 | { "axbr", 0x4a, INSTR_RRE_FF }, | 988 | { "axbr", 0x4a, INSTR_RRE_FF }, |
@@ -840,24 +992,24 @@ static struct insn opcode_b3[] = { | |||
840 | { "tbedr", 0x50, INSTR_RRF_U0FF }, | 992 | { "tbedr", 0x50, INSTR_RRF_U0FF }, |
841 | { "tbdr", 0x51, INSTR_RRF_U0FF }, | 993 | { "tbdr", 0x51, INSTR_RRF_U0FF }, |
842 | { "diebr", 0x53, INSTR_RRF_FUFF }, | 994 | { "diebr", 0x53, INSTR_RRF_FUFF }, |
843 | { "fiebr", 0x57, INSTR_RRF_U0FF }, | 995 | { { 0, LONG_INSN_FIEBRA }, 0x57, INSTR_RRF_UUFF }, |
844 | { "thder", 0x58, INSTR_RRE_RR }, | 996 | { "thder", 0x58, INSTR_RRE_FF }, |
845 | { "thdr", 0x59, INSTR_RRE_RR }, | 997 | { "thdr", 0x59, INSTR_RRE_FF }, |
846 | { "didbr", 0x5b, INSTR_RRF_FUFF }, | 998 | { "didbr", 0x5b, INSTR_RRF_FUFF }, |
847 | { "fidbr", 0x5f, INSTR_RRF_U0FF }, | 999 | { { 0, LONG_INSN_FIDBRA }, 0x5f, INSTR_RRF_UUFF }, |
848 | { "lpxr", 0x60, INSTR_RRE_FF }, | 1000 | { "lpxr", 0x60, INSTR_RRE_FF }, |
849 | { "lnxr", 0x61, INSTR_RRE_FF }, | 1001 | { "lnxr", 0x61, INSTR_RRE_FF }, |
850 | { "ltxr", 0x62, INSTR_RRE_FF }, | 1002 | { "ltxr", 0x62, INSTR_RRE_FF }, |
851 | { "lcxr", 0x63, INSTR_RRE_FF }, | 1003 | { "lcxr", 0x63, INSTR_RRE_FF }, |
852 | { "lxr", 0x65, INSTR_RRE_RR }, | 1004 | { "lxr", 0x65, INSTR_RRE_FF }, |
853 | { "lexr", 0x66, INSTR_RRE_FF }, | 1005 | { "lexr", 0x66, INSTR_RRE_FF }, |
854 | { "fixr", 0x67, INSTR_RRF_U0FF }, | 1006 | { "fixr", 0x67, INSTR_RRE_FF }, |
855 | { "cxr", 0x69, INSTR_RRE_FF }, | 1007 | { "cxr", 0x69, INSTR_RRE_FF }, |
856 | { "lzer", 0x74, INSTR_RRE_R0 }, | 1008 | { "lzer", 0x74, INSTR_RRE_F0 }, |
857 | { "lzdr", 0x75, INSTR_RRE_R0 }, | 1009 | { "lzdr", 0x75, INSTR_RRE_F0 }, |
858 | { "lzxr", 0x76, INSTR_RRE_R0 }, | 1010 | { "lzxr", 0x76, INSTR_RRE_F0 }, |
859 | { "fier", 0x77, INSTR_RRF_U0FF }, | 1011 | { "fier", 0x77, INSTR_RRE_FF }, |
860 | { "fidr", 0x7f, INSTR_RRF_U0FF }, | 1012 | { "fidr", 0x7f, INSTR_RRE_FF }, |
861 | { "sfpc", 0x84, INSTR_RRE_RR_OPT }, | 1013 | { "sfpc", 0x84, INSTR_RRE_RR_OPT }, |
862 | { "efpc", 0x8c, INSTR_RRE_RR_OPT }, | 1014 | { "efpc", 0x8c, INSTR_RRE_RR_OPT }, |
863 | { "cefbr", 0x94, INSTR_RRE_RF }, | 1015 | { "cefbr", 0x94, INSTR_RRE_RF }, |
@@ -866,9 +1018,12 @@ static struct insn opcode_b3[] = { | |||
866 | { "cfebr", 0x98, INSTR_RRF_U0RF }, | 1018 | { "cfebr", 0x98, INSTR_RRF_U0RF }, |
867 | { "cfdbr", 0x99, INSTR_RRF_U0RF }, | 1019 | { "cfdbr", 0x99, INSTR_RRF_U0RF }, |
868 | { "cfxbr", 0x9a, INSTR_RRF_U0RF }, | 1020 | { "cfxbr", 0x9a, INSTR_RRF_U0RF }, |
869 | { "cefr", 0xb4, INSTR_RRE_RF }, | 1021 | { "cefr", 0xb4, INSTR_RRE_FR }, |
870 | { "cdfr", 0xb5, INSTR_RRE_RF }, | 1022 | { "cdfr", 0xb5, INSTR_RRE_FR }, |
871 | { "cxfr", 0xb6, INSTR_RRE_RF }, | 1023 | { "cxfr", 0xb6, INSTR_RRE_FR }, |
1024 | { "cfer", 0xb8, INSTR_RRF_U0RF }, | ||
1025 | { "cfdr", 0xb9, INSTR_RRF_U0RF }, | ||
1026 | { "cfxr", 0xba, INSTR_RRF_U0RF }, | ||
872 | { "", 0, INSTR_INVALID } | 1027 | { "", 0, INSTR_INVALID } |
873 | }; | 1028 | }; |
874 | 1029 | ||
@@ -910,7 +1065,23 @@ static struct insn opcode_b9[] = { | |||
910 | { "lhr", 0x27, INSTR_RRE_RR }, | 1065 | { "lhr", 0x27, INSTR_RRE_RR }, |
911 | { "cgfr", 0x30, INSTR_RRE_RR }, | 1066 | { "cgfr", 0x30, INSTR_RRE_RR }, |
912 | { "clgfr", 0x31, INSTR_RRE_RR }, | 1067 | { "clgfr", 0x31, INSTR_RRE_RR }, |
1068 | { "cfdtr", 0x41, INSTR_RRF_UURF }, | ||
1069 | { { 0, LONG_INSN_CLGDTR }, 0x42, INSTR_RRF_UURF }, | ||
1070 | { { 0, LONG_INSN_CLFDTR }, 0x43, INSTR_RRF_UURF }, | ||
913 | { "bctgr", 0x46, INSTR_RRE_RR }, | 1071 | { "bctgr", 0x46, INSTR_RRE_RR }, |
1072 | { "cfxtr", 0x49, INSTR_RRF_UURF }, | ||
1073 | { { 0, LONG_INSN_CLGXTR }, 0x4a, INSTR_RRF_UUFR }, | ||
1074 | { { 0, LONG_INSN_CLFXTR }, 0x4b, INSTR_RRF_UUFR }, | ||
1075 | { "cdftr", 0x51, INSTR_RRF_UUFR }, | ||
1076 | { { 0, LONG_INSN_CDLGTR }, 0x52, INSTR_RRF_UUFR }, | ||
1077 | { { 0, LONG_INSN_CDLFTR }, 0x53, INSTR_RRF_UUFR }, | ||
1078 | { "cxftr", 0x59, INSTR_RRF_UURF }, | ||
1079 | { { 0, LONG_INSN_CXLGTR }, 0x5a, INSTR_RRF_UURF }, | ||
1080 | { { 0, LONG_INSN_CXLFTR }, 0x5b, INSTR_RRF_UUFR }, | ||
1081 | { "cgrt", 0x60, INSTR_RRF_U0RR }, | ||
1082 | { "clgrt", 0x61, INSTR_RRF_U0RR }, | ||
1083 | { "crt", 0x72, INSTR_RRF_U0RR }, | ||
1084 | { "clrt", 0x73, INSTR_RRF_U0RR }, | ||
914 | { "ngr", 0x80, INSTR_RRE_RR }, | 1085 | { "ngr", 0x80, INSTR_RRE_RR }, |
915 | { "ogr", 0x81, INSTR_RRE_RR }, | 1086 | { "ogr", 0x81, INSTR_RRE_RR }, |
916 | { "xgr", 0x82, INSTR_RRE_RR }, | 1087 | { "xgr", 0x82, INSTR_RRE_RR }, |
@@ -923,32 +1094,31 @@ static struct insn opcode_b9[] = { | |||
923 | { "slbgr", 0x89, INSTR_RRE_RR }, | 1094 | { "slbgr", 0x89, INSTR_RRE_RR }, |
924 | { "cspg", 0x8a, INSTR_RRE_RR }, | 1095 | { "cspg", 0x8a, INSTR_RRE_RR }, |
925 | { "idte", 0x8e, INSTR_RRF_R0RR }, | 1096 | { "idte", 0x8e, INSTR_RRF_R0RR }, |
1097 | { "crdte", 0x8f, INSTR_RRF_RMRR }, | ||
926 | { "llcr", 0x94, INSTR_RRE_RR }, | 1098 | { "llcr", 0x94, INSTR_RRE_RR }, |
927 | { "llhr", 0x95, INSTR_RRE_RR }, | 1099 | { "llhr", 0x95, INSTR_RRE_RR }, |
928 | { "esea", 0x9d, INSTR_RRE_R0 }, | 1100 | { "esea", 0x9d, INSTR_RRE_R0 }, |
1101 | { "ptf", 0xa2, INSTR_RRE_R0 }, | ||
929 | { "lptea", 0xaa, INSTR_RRF_RURR }, | 1102 | { "lptea", 0xaa, INSTR_RRF_RURR }, |
1103 | { "rrbm", 0xae, INSTR_RRE_RR }, | ||
1104 | { "pfmf", 0xaf, INSTR_RRE_RR }, | ||
930 | { "cu14", 0xb0, INSTR_RRF_M0RR }, | 1105 | { "cu14", 0xb0, INSTR_RRF_M0RR }, |
931 | { "cu24", 0xb1, INSTR_RRF_M0RR }, | 1106 | { "cu24", 0xb1, INSTR_RRF_M0RR }, |
932 | { "cu41", 0xb2, INSTR_RRF_M0RR }, | 1107 | { "cu41", 0xb2, INSTR_RRE_RR }, |
933 | { "cu42", 0xb3, INSTR_RRF_M0RR }, | 1108 | { "cu42", 0xb3, INSTR_RRE_RR }, |
934 | { "crt", 0x72, INSTR_RRF_U0RR }, | ||
935 | { "cgrt", 0x60, INSTR_RRF_U0RR }, | ||
936 | { "clrt", 0x73, INSTR_RRF_U0RR }, | ||
937 | { "clgrt", 0x61, INSTR_RRF_U0RR }, | ||
938 | { "ptf", 0xa2, INSTR_RRE_R0 }, | ||
939 | { "pfmf", 0xaf, INSTR_RRE_RR }, | ||
940 | { "trte", 0xbf, INSTR_RRF_M0RR }, | ||
941 | { "trtre", 0xbd, INSTR_RRF_M0RR }, | 1109 | { "trtre", 0xbd, INSTR_RRF_M0RR }, |
1110 | { "srstu", 0xbe, INSTR_RRE_RR }, | ||
1111 | { "trte", 0xbf, INSTR_RRF_M0RR }, | ||
942 | { "ahhhr", 0xc8, INSTR_RRF_R0RR2 }, | 1112 | { "ahhhr", 0xc8, INSTR_RRF_R0RR2 }, |
943 | { "shhhr", 0xc9, INSTR_RRF_R0RR2 }, | 1113 | { "shhhr", 0xc9, INSTR_RRF_R0RR2 }, |
944 | { "alhhh", 0xca, INSTR_RRF_R0RR2 }, | 1114 | { { 0, LONG_INSN_ALHHHR }, 0xca, INSTR_RRF_R0RR2 }, |
945 | { "alhhl", 0xca, INSTR_RRF_R0RR2 }, | 1115 | { { 0, LONG_INSN_SLHHHR }, 0xcb, INSTR_RRF_R0RR2 }, |
946 | { "slhhh", 0xcb, INSTR_RRF_R0RR2 }, | 1116 | { "chhr", 0xcd, INSTR_RRE_RR }, |
947 | { "chhr ", 0xcd, INSTR_RRE_RR }, | ||
948 | { "clhhr", 0xcf, INSTR_RRE_RR }, | 1117 | { "clhhr", 0xcf, INSTR_RRE_RR }, |
949 | { "ahhlr", 0xd8, INSTR_RRF_R0RR2 }, | 1118 | { "ahhlr", 0xd8, INSTR_RRF_R0RR2 }, |
950 | { "shhlr", 0xd9, INSTR_RRF_R0RR2 }, | 1119 | { "shhlr", 0xd9, INSTR_RRF_R0RR2 }, |
951 | { "slhhl", 0xdb, INSTR_RRF_R0RR2 }, | 1120 | { { 0, LONG_INSN_ALHHLR }, 0xda, INSTR_RRF_R0RR2 }, |
1121 | { { 0, LONG_INSN_SLHHLR }, 0xdb, INSTR_RRF_R0RR2 }, | ||
952 | { "chlr", 0xdd, INSTR_RRE_RR }, | 1122 | { "chlr", 0xdd, INSTR_RRE_RR }, |
953 | { "clhlr", 0xdf, INSTR_RRE_RR }, | 1123 | { "clhlr", 0xdf, INSTR_RRE_RR }, |
954 | { { 0, LONG_INSN_POPCNT }, 0xe1, INSTR_RRE_RR }, | 1124 | { { 0, LONG_INSN_POPCNT }, 0xe1, INSTR_RRE_RR }, |
@@ -976,13 +1146,9 @@ static struct insn opcode_b9[] = { | |||
976 | { "kimd", 0x3e, INSTR_RRE_RR }, | 1146 | { "kimd", 0x3e, INSTR_RRE_RR }, |
977 | { "klmd", 0x3f, INSTR_RRE_RR }, | 1147 | { "klmd", 0x3f, INSTR_RRE_RR }, |
978 | { "epsw", 0x8d, INSTR_RRE_RR }, | 1148 | { "epsw", 0x8d, INSTR_RRE_RR }, |
979 | { "trtt", 0x90, INSTR_RRE_RR }, | ||
980 | { "trtt", 0x90, INSTR_RRF_M0RR }, | 1149 | { "trtt", 0x90, INSTR_RRF_M0RR }, |
981 | { "trto", 0x91, INSTR_RRE_RR }, | ||
982 | { "trto", 0x91, INSTR_RRF_M0RR }, | 1150 | { "trto", 0x91, INSTR_RRF_M0RR }, |
983 | { "trot", 0x92, INSTR_RRE_RR }, | ||
984 | { "trot", 0x92, INSTR_RRF_M0RR }, | 1151 | { "trot", 0x92, INSTR_RRF_M0RR }, |
985 | { "troo", 0x93, INSTR_RRE_RR }, | ||
986 | { "troo", 0x93, INSTR_RRF_M0RR }, | 1152 | { "troo", 0x93, INSTR_RRF_M0RR }, |
987 | { "mlr", 0x96, INSTR_RRE_RR }, | 1153 | { "mlr", 0x96, INSTR_RRE_RR }, |
988 | { "dlr", 0x97, INSTR_RRE_RR }, | 1154 | { "dlr", 0x97, INSTR_RRE_RR }, |
@@ -1013,6 +1179,8 @@ static struct insn opcode_c0[] = { | |||
1013 | 1179 | ||
1014 | static struct insn opcode_c2[] = { | 1180 | static struct insn opcode_c2[] = { |
1015 | #ifdef CONFIG_64BIT | 1181 | #ifdef CONFIG_64BIT |
1182 | { "msgfi", 0x00, INSTR_RIL_RI }, | ||
1183 | { "msfi", 0x01, INSTR_RIL_RI }, | ||
1016 | { "slgfi", 0x04, INSTR_RIL_RU }, | 1184 | { "slgfi", 0x04, INSTR_RIL_RU }, |
1017 | { "slfi", 0x05, INSTR_RIL_RU }, | 1185 | { "slfi", 0x05, INSTR_RIL_RU }, |
1018 | { "agfi", 0x08, INSTR_RIL_RI }, | 1186 | { "agfi", 0x08, INSTR_RIL_RI }, |
@@ -1023,43 +1191,41 @@ static struct insn opcode_c2[] = { | |||
1023 | { "cfi", 0x0d, INSTR_RIL_RI }, | 1191 | { "cfi", 0x0d, INSTR_RIL_RI }, |
1024 | { "clgfi", 0x0e, INSTR_RIL_RU }, | 1192 | { "clgfi", 0x0e, INSTR_RIL_RU }, |
1025 | { "clfi", 0x0f, INSTR_RIL_RU }, | 1193 | { "clfi", 0x0f, INSTR_RIL_RU }, |
1026 | { "msfi", 0x01, INSTR_RIL_RI }, | ||
1027 | { "msgfi", 0x00, INSTR_RIL_RI }, | ||
1028 | #endif | 1194 | #endif |
1029 | { "", 0, INSTR_INVALID } | 1195 | { "", 0, INSTR_INVALID } |
1030 | }; | 1196 | }; |
1031 | 1197 | ||
1032 | static struct insn opcode_c4[] = { | 1198 | static struct insn opcode_c4[] = { |
1033 | #ifdef CONFIG_64BIT | 1199 | #ifdef CONFIG_64BIT |
1034 | { "lrl", 0x0d, INSTR_RIL_RP }, | 1200 | { "llhrl", 0x02, INSTR_RIL_RP }, |
1201 | { "lghrl", 0x04, INSTR_RIL_RP }, | ||
1202 | { "lhrl", 0x05, INSTR_RIL_RP }, | ||
1203 | { { 0, LONG_INSN_LLGHRL }, 0x06, INSTR_RIL_RP }, | ||
1204 | { "sthrl", 0x07, INSTR_RIL_RP }, | ||
1035 | { "lgrl", 0x08, INSTR_RIL_RP }, | 1205 | { "lgrl", 0x08, INSTR_RIL_RP }, |
1206 | { "stgrl", 0x0b, INSTR_RIL_RP }, | ||
1036 | { "lgfrl", 0x0c, INSTR_RIL_RP }, | 1207 | { "lgfrl", 0x0c, INSTR_RIL_RP }, |
1037 | { "lhrl", 0x05, INSTR_RIL_RP }, | 1208 | { "lrl", 0x0d, INSTR_RIL_RP }, |
1038 | { "lghrl", 0x04, INSTR_RIL_RP }, | ||
1039 | { { 0, LONG_INSN_LLGFRL }, 0x0e, INSTR_RIL_RP }, | 1209 | { { 0, LONG_INSN_LLGFRL }, 0x0e, INSTR_RIL_RP }, |
1040 | { "llhrl", 0x02, INSTR_RIL_RP }, | ||
1041 | { { 0, LONG_INSN_LLGHRL }, 0x06, INSTR_RIL_RP }, | ||
1042 | { "strl", 0x0f, INSTR_RIL_RP }, | 1210 | { "strl", 0x0f, INSTR_RIL_RP }, |
1043 | { "stgrl", 0x0b, INSTR_RIL_RP }, | ||
1044 | { "sthrl", 0x07, INSTR_RIL_RP }, | ||
1045 | #endif | 1211 | #endif |
1046 | { "", 0, INSTR_INVALID } | 1212 | { "", 0, INSTR_INVALID } |
1047 | }; | 1213 | }; |
1048 | 1214 | ||
1049 | static struct insn opcode_c6[] = { | 1215 | static struct insn opcode_c6[] = { |
1050 | #ifdef CONFIG_64BIT | 1216 | #ifdef CONFIG_64BIT |
1051 | { "crl", 0x0d, INSTR_RIL_RP }, | 1217 | { "exrl", 0x00, INSTR_RIL_RP }, |
1052 | { "cgrl", 0x08, INSTR_RIL_RP }, | 1218 | { "pfdrl", 0x02, INSTR_RIL_UP }, |
1053 | { "cgfrl", 0x0c, INSTR_RIL_RP }, | ||
1054 | { "chrl", 0x05, INSTR_RIL_RP }, | ||
1055 | { "cghrl", 0x04, INSTR_RIL_RP }, | 1219 | { "cghrl", 0x04, INSTR_RIL_RP }, |
1056 | { "clrl", 0x0f, INSTR_RIL_RP }, | 1220 | { "chrl", 0x05, INSTR_RIL_RP }, |
1221 | { { 0, LONG_INSN_CLGHRL }, 0x06, INSTR_RIL_RP }, | ||
1222 | { "clhrl", 0x07, INSTR_RIL_RP }, | ||
1223 | { "cgrl", 0x08, INSTR_RIL_RP }, | ||
1057 | { "clgrl", 0x0a, INSTR_RIL_RP }, | 1224 | { "clgrl", 0x0a, INSTR_RIL_RP }, |
1225 | { "cgfrl", 0x0c, INSTR_RIL_RP }, | ||
1226 | { "crl", 0x0d, INSTR_RIL_RP }, | ||
1058 | { { 0, LONG_INSN_CLGFRL }, 0x0e, INSTR_RIL_RP }, | 1227 | { { 0, LONG_INSN_CLGFRL }, 0x0e, INSTR_RIL_RP }, |
1059 | { "clhrl", 0x07, INSTR_RIL_RP }, | 1228 | { "clrl", 0x0f, INSTR_RIL_RP }, |
1060 | { { 0, LONG_INSN_CLGHRL }, 0x06, INSTR_RIL_RP }, | ||
1061 | { "pfdrl", 0x02, INSTR_RIL_UP }, | ||
1062 | { "exrl", 0x00, INSTR_RIL_RP }, | ||
1063 | #endif | 1229 | #endif |
1064 | { "", 0, INSTR_INVALID } | 1230 | { "", 0, INSTR_INVALID } |
1065 | }; | 1231 | }; |
@@ -1070,7 +1236,7 @@ static struct insn opcode_c8[] = { | |||
1070 | { "ectg", 0x01, INSTR_SSF_RRDRD }, | 1236 | { "ectg", 0x01, INSTR_SSF_RRDRD }, |
1071 | { "csst", 0x02, INSTR_SSF_RRDRD }, | 1237 | { "csst", 0x02, INSTR_SSF_RRDRD }, |
1072 | { "lpd", 0x04, INSTR_SSF_RRDRD2 }, | 1238 | { "lpd", 0x04, INSTR_SSF_RRDRD2 }, |
1073 | { "lpdg ", 0x05, INSTR_SSF_RRDRD2 }, | 1239 | { "lpdg", 0x05, INSTR_SSF_RRDRD2 }, |
1074 | #endif | 1240 | #endif |
1075 | { "", 0, INSTR_INVALID } | 1241 | { "", 0, INSTR_INVALID } |
1076 | }; | 1242 | }; |
@@ -1080,9 +1246,9 @@ static struct insn opcode_cc[] = { | |||
1080 | { "brcth", 0x06, INSTR_RIL_RP }, | 1246 | { "brcth", 0x06, INSTR_RIL_RP }, |
1081 | { "aih", 0x08, INSTR_RIL_RI }, | 1247 | { "aih", 0x08, INSTR_RIL_RI }, |
1082 | { "alsih", 0x0a, INSTR_RIL_RI }, | 1248 | { "alsih", 0x0a, INSTR_RIL_RI }, |
1083 | { "alsih", 0x0b, INSTR_RIL_RI }, | 1249 | { { 0, LONG_INSN_ALSIHN }, 0x0b, INSTR_RIL_RI }, |
1084 | { "cih", 0x0d, INSTR_RIL_RI }, | 1250 | { "cih", 0x0d, INSTR_RIL_RI }, |
1085 | { "clih ", 0x0f, INSTR_RIL_RI }, | 1251 | { "clih", 0x0f, INSTR_RIL_RI }, |
1086 | #endif | 1252 | #endif |
1087 | { "", 0, INSTR_INVALID } | 1253 | { "", 0, INSTR_INVALID } |
1088 | }; | 1254 | }; |
@@ -1116,11 +1282,15 @@ static struct insn opcode_e3[] = { | |||
1116 | { "cg", 0x20, INSTR_RXY_RRRD }, | 1282 | { "cg", 0x20, INSTR_RXY_RRRD }, |
1117 | { "clg", 0x21, INSTR_RXY_RRRD }, | 1283 | { "clg", 0x21, INSTR_RXY_RRRD }, |
1118 | { "stg", 0x24, INSTR_RXY_RRRD }, | 1284 | { "stg", 0x24, INSTR_RXY_RRRD }, |
1285 | { "ntstg", 0x25, INSTR_RXY_RRRD }, | ||
1119 | { "cvdy", 0x26, INSTR_RXY_RRRD }, | 1286 | { "cvdy", 0x26, INSTR_RXY_RRRD }, |
1120 | { "cvdg", 0x2e, INSTR_RXY_RRRD }, | 1287 | { "cvdg", 0x2e, INSTR_RXY_RRRD }, |
1121 | { "strvg", 0x2f, INSTR_RXY_RRRD }, | 1288 | { "strvg", 0x2f, INSTR_RXY_RRRD }, |
1122 | { "cgf", 0x30, INSTR_RXY_RRRD }, | 1289 | { "cgf", 0x30, INSTR_RXY_RRRD }, |
1123 | { "clgf", 0x31, INSTR_RXY_RRRD }, | 1290 | { "clgf", 0x31, INSTR_RXY_RRRD }, |
1291 | { "ltgf", 0x32, INSTR_RXY_RRRD }, | ||
1292 | { "cgh", 0x34, INSTR_RXY_RRRD }, | ||
1293 | { "pfd", 0x36, INSTR_RXY_URRD }, | ||
1124 | { "strvh", 0x3f, INSTR_RXY_RRRD }, | 1294 | { "strvh", 0x3f, INSTR_RXY_RRRD }, |
1125 | { "bctg", 0x46, INSTR_RXY_RRRD }, | 1295 | { "bctg", 0x46, INSTR_RXY_RRRD }, |
1126 | { "sty", 0x50, INSTR_RXY_RRRD }, | 1296 | { "sty", 0x50, INSTR_RXY_RRRD }, |
@@ -1133,21 +1303,25 @@ static struct insn opcode_e3[] = { | |||
1133 | { "cy", 0x59, INSTR_RXY_RRRD }, | 1303 | { "cy", 0x59, INSTR_RXY_RRRD }, |
1134 | { "ay", 0x5a, INSTR_RXY_RRRD }, | 1304 | { "ay", 0x5a, INSTR_RXY_RRRD }, |
1135 | { "sy", 0x5b, INSTR_RXY_RRRD }, | 1305 | { "sy", 0x5b, INSTR_RXY_RRRD }, |
1306 | { "mfy", 0x5c, INSTR_RXY_RRRD }, | ||
1136 | { "aly", 0x5e, INSTR_RXY_RRRD }, | 1307 | { "aly", 0x5e, INSTR_RXY_RRRD }, |
1137 | { "sly", 0x5f, INSTR_RXY_RRRD }, | 1308 | { "sly", 0x5f, INSTR_RXY_RRRD }, |
1138 | { "sthy", 0x70, INSTR_RXY_RRRD }, | 1309 | { "sthy", 0x70, INSTR_RXY_RRRD }, |
1139 | { "lay", 0x71, INSTR_RXY_RRRD }, | 1310 | { "lay", 0x71, INSTR_RXY_RRRD }, |
1140 | { "stcy", 0x72, INSTR_RXY_RRRD }, | 1311 | { "stcy", 0x72, INSTR_RXY_RRRD }, |
1141 | { "icy", 0x73, INSTR_RXY_RRRD }, | 1312 | { "icy", 0x73, INSTR_RXY_RRRD }, |
1313 | { "laey", 0x75, INSTR_RXY_RRRD }, | ||
1142 | { "lb", 0x76, INSTR_RXY_RRRD }, | 1314 | { "lb", 0x76, INSTR_RXY_RRRD }, |
1143 | { "lgb", 0x77, INSTR_RXY_RRRD }, | 1315 | { "lgb", 0x77, INSTR_RXY_RRRD }, |
1144 | { "lhy", 0x78, INSTR_RXY_RRRD }, | 1316 | { "lhy", 0x78, INSTR_RXY_RRRD }, |
1145 | { "chy", 0x79, INSTR_RXY_RRRD }, | 1317 | { "chy", 0x79, INSTR_RXY_RRRD }, |
1146 | { "ahy", 0x7a, INSTR_RXY_RRRD }, | 1318 | { "ahy", 0x7a, INSTR_RXY_RRRD }, |
1147 | { "shy", 0x7b, INSTR_RXY_RRRD }, | 1319 | { "shy", 0x7b, INSTR_RXY_RRRD }, |
1320 | { "mhy", 0x7c, INSTR_RXY_RRRD }, | ||
1148 | { "ng", 0x80, INSTR_RXY_RRRD }, | 1321 | { "ng", 0x80, INSTR_RXY_RRRD }, |
1149 | { "og", 0x81, INSTR_RXY_RRRD }, | 1322 | { "og", 0x81, INSTR_RXY_RRRD }, |
1150 | { "xg", 0x82, INSTR_RXY_RRRD }, | 1323 | { "xg", 0x82, INSTR_RXY_RRRD }, |
1324 | { "lgat", 0x85, INSTR_RXY_RRRD }, | ||
1151 | { "mlg", 0x86, INSTR_RXY_RRRD }, | 1325 | { "mlg", 0x86, INSTR_RXY_RRRD }, |
1152 | { "dlg", 0x87, INSTR_RXY_RRRD }, | 1326 | { "dlg", 0x87, INSTR_RXY_RRRD }, |
1153 | { "alcg", 0x88, INSTR_RXY_RRRD }, | 1327 | { "alcg", 0x88, INSTR_RXY_RRRD }, |
@@ -1158,23 +1332,20 @@ static struct insn opcode_e3[] = { | |||
1158 | { "llgh", 0x91, INSTR_RXY_RRRD }, | 1332 | { "llgh", 0x91, INSTR_RXY_RRRD }, |
1159 | { "llc", 0x94, INSTR_RXY_RRRD }, | 1333 | { "llc", 0x94, INSTR_RXY_RRRD }, |
1160 | { "llh", 0x95, INSTR_RXY_RRRD }, | 1334 | { "llh", 0x95, INSTR_RXY_RRRD }, |
1161 | { "cgh", 0x34, INSTR_RXY_RRRD }, | 1335 | { { 0, LONG_INSN_LLGTAT }, 0x9c, INSTR_RXY_RRRD }, |
1162 | { "laey", 0x75, INSTR_RXY_RRRD }, | 1336 | { { 0, LONG_INSN_LLGFAT }, 0x9d, INSTR_RXY_RRRD }, |
1163 | { "ltgf", 0x32, INSTR_RXY_RRRD }, | 1337 | { "lat", 0x9f, INSTR_RXY_RRRD }, |
1164 | { "mfy", 0x5c, INSTR_RXY_RRRD }, | ||
1165 | { "mhy", 0x7c, INSTR_RXY_RRRD }, | ||
1166 | { "pfd", 0x36, INSTR_RXY_URRD }, | ||
1167 | { "lbh", 0xc0, INSTR_RXY_RRRD }, | 1338 | { "lbh", 0xc0, INSTR_RXY_RRRD }, |
1168 | { "llch", 0xc2, INSTR_RXY_RRRD }, | 1339 | { "llch", 0xc2, INSTR_RXY_RRRD }, |
1169 | { "stch", 0xc3, INSTR_RXY_RRRD }, | 1340 | { "stch", 0xc3, INSTR_RXY_RRRD }, |
1170 | { "lhh", 0xc4, INSTR_RXY_RRRD }, | 1341 | { "lhh", 0xc4, INSTR_RXY_RRRD }, |
1171 | { "llhh", 0xc6, INSTR_RXY_RRRD }, | 1342 | { "llhh", 0xc6, INSTR_RXY_RRRD }, |
1172 | { "sthh", 0xc7, INSTR_RXY_RRRD }, | 1343 | { "sthh", 0xc7, INSTR_RXY_RRRD }, |
1344 | { "lfhat", 0xc8, INSTR_RXY_RRRD }, | ||
1173 | { "lfh", 0xca, INSTR_RXY_RRRD }, | 1345 | { "lfh", 0xca, INSTR_RXY_RRRD }, |
1174 | { "stfh", 0xcb, INSTR_RXY_RRRD }, | 1346 | { "stfh", 0xcb, INSTR_RXY_RRRD }, |
1175 | { "chf", 0xcd, INSTR_RXY_RRRD }, | 1347 | { "chf", 0xcd, INSTR_RXY_RRRD }, |
1176 | { "clhf", 0xcf, INSTR_RXY_RRRD }, | 1348 | { "clhf", 0xcf, INSTR_RXY_RRRD }, |
1177 | { "ntstg", 0x25, INSTR_RXY_RRRD }, | ||
1178 | #endif | 1349 | #endif |
1179 | { "lrv", 0x1e, INSTR_RXY_RRRD }, | 1350 | { "lrv", 0x1e, INSTR_RXY_RRRD }, |
1180 | { "lrvh", 0x1f, INSTR_RXY_RRRD }, | 1351 | { "lrvh", 0x1f, INSTR_RXY_RRRD }, |
@@ -1189,15 +1360,15 @@ static struct insn opcode_e3[] = { | |||
1189 | static struct insn opcode_e5[] = { | 1360 | static struct insn opcode_e5[] = { |
1190 | #ifdef CONFIG_64BIT | 1361 | #ifdef CONFIG_64BIT |
1191 | { "strag", 0x02, INSTR_SSE_RDRD }, | 1362 | { "strag", 0x02, INSTR_SSE_RDRD }, |
1363 | { "mvhhi", 0x44, INSTR_SIL_RDI }, | ||
1364 | { "mvghi", 0x48, INSTR_SIL_RDI }, | ||
1365 | { "mvhi", 0x4c, INSTR_SIL_RDI }, | ||
1192 | { "chhsi", 0x54, INSTR_SIL_RDI }, | 1366 | { "chhsi", 0x54, INSTR_SIL_RDI }, |
1193 | { "chsi", 0x5c, INSTR_SIL_RDI }, | ||
1194 | { "cghsi", 0x58, INSTR_SIL_RDI }, | ||
1195 | { { 0, LONG_INSN_CLHHSI }, 0x55, INSTR_SIL_RDU }, | 1367 | { { 0, LONG_INSN_CLHHSI }, 0x55, INSTR_SIL_RDU }, |
1196 | { { 0, LONG_INSN_CLFHSI }, 0x5d, INSTR_SIL_RDU }, | 1368 | { "cghsi", 0x58, INSTR_SIL_RDI }, |
1197 | { { 0, LONG_INSN_CLGHSI }, 0x59, INSTR_SIL_RDU }, | 1369 | { { 0, LONG_INSN_CLGHSI }, 0x59, INSTR_SIL_RDU }, |
1198 | { "mvhhi", 0x44, INSTR_SIL_RDI }, | 1370 | { "chsi", 0x5c, INSTR_SIL_RDI }, |
1199 | { "mvhi", 0x4c, INSTR_SIL_RDI }, | 1371 | { { 0, LONG_INSN_CLFHSI }, 0x5d, INSTR_SIL_RDU }, |
1200 | { "mvghi", 0x48, INSTR_SIL_RDI }, | ||
1201 | { { 0, LONG_INSN_TBEGIN }, 0x60, INSTR_SIL_RDU }, | 1372 | { { 0, LONG_INSN_TBEGIN }, 0x60, INSTR_SIL_RDU }, |
1202 | { { 0, LONG_INSN_TBEGINC }, 0x61, INSTR_SIL_RDU }, | 1373 | { { 0, LONG_INSN_TBEGINC }, 0x61, INSTR_SIL_RDU }, |
1203 | #endif | 1374 | #endif |
@@ -1220,9 +1391,11 @@ static struct insn opcode_eb[] = { | |||
1220 | { "rllg", 0x1c, INSTR_RSY_RRRD }, | 1391 | { "rllg", 0x1c, INSTR_RSY_RRRD }, |
1221 | { "clmh", 0x20, INSTR_RSY_RURD }, | 1392 | { "clmh", 0x20, INSTR_RSY_RURD }, |
1222 | { "clmy", 0x21, INSTR_RSY_RURD }, | 1393 | { "clmy", 0x21, INSTR_RSY_RURD }, |
1394 | { "clt", 0x23, INSTR_RSY_RURD }, | ||
1223 | { "stmg", 0x24, INSTR_RSY_RRRD }, | 1395 | { "stmg", 0x24, INSTR_RSY_RRRD }, |
1224 | { "stctg", 0x25, INSTR_RSY_CCRD }, | 1396 | { "stctg", 0x25, INSTR_RSY_CCRD }, |
1225 | { "stmh", 0x26, INSTR_RSY_RRRD }, | 1397 | { "stmh", 0x26, INSTR_RSY_RRRD }, |
1398 | { "clgt", 0x2b, INSTR_RSY_RURD }, | ||
1226 | { "stcmh", 0x2c, INSTR_RSY_RURD }, | 1399 | { "stcmh", 0x2c, INSTR_RSY_RURD }, |
1227 | { "stcmy", 0x2d, INSTR_RSY_RURD }, | 1400 | { "stcmy", 0x2d, INSTR_RSY_RURD }, |
1228 | { "lctlg", 0x2f, INSTR_RSY_CCRD }, | 1401 | { "lctlg", 0x2f, INSTR_RSY_CCRD }, |
@@ -1231,16 +1404,17 @@ static struct insn opcode_eb[] = { | |||
1231 | { "cdsg", 0x3e, INSTR_RSY_RRRD }, | 1404 | { "cdsg", 0x3e, INSTR_RSY_RRRD }, |
1232 | { "bxhg", 0x44, INSTR_RSY_RRRD }, | 1405 | { "bxhg", 0x44, INSTR_RSY_RRRD }, |
1233 | { "bxleg", 0x45, INSTR_RSY_RRRD }, | 1406 | { "bxleg", 0x45, INSTR_RSY_RRRD }, |
1407 | { "ecag", 0x4c, INSTR_RSY_RRRD }, | ||
1234 | { "tmy", 0x51, INSTR_SIY_URD }, | 1408 | { "tmy", 0x51, INSTR_SIY_URD }, |
1235 | { "mviy", 0x52, INSTR_SIY_URD }, | 1409 | { "mviy", 0x52, INSTR_SIY_URD }, |
1236 | { "niy", 0x54, INSTR_SIY_URD }, | 1410 | { "niy", 0x54, INSTR_SIY_URD }, |
1237 | { "cliy", 0x55, INSTR_SIY_URD }, | 1411 | { "cliy", 0x55, INSTR_SIY_URD }, |
1238 | { "oiy", 0x56, INSTR_SIY_URD }, | 1412 | { "oiy", 0x56, INSTR_SIY_URD }, |
1239 | { "xiy", 0x57, INSTR_SIY_URD }, | 1413 | { "xiy", 0x57, INSTR_SIY_URD }, |
1240 | { "lric", 0x60, INSTR_RSY_RDRM }, | 1414 | { "asi", 0x6a, INSTR_SIY_IRD }, |
1241 | { "stric", 0x61, INSTR_RSY_RDRM }, | 1415 | { "alsi", 0x6e, INSTR_SIY_IRD }, |
1242 | { "mric", 0x62, INSTR_RSY_RDRM }, | 1416 | { "agsi", 0x7a, INSTR_SIY_IRD }, |
1243 | { "icmh", 0x80, INSTR_RSE_RURD }, | 1417 | { "algsi", 0x7e, INSTR_SIY_IRD }, |
1244 | { "icmh", 0x80, INSTR_RSY_RURD }, | 1418 | { "icmh", 0x80, INSTR_RSY_RURD }, |
1245 | { "icmy", 0x81, INSTR_RSY_RURD }, | 1419 | { "icmy", 0x81, INSTR_RSY_RURD }, |
1246 | { "clclu", 0x8f, INSTR_RSY_RRRD }, | 1420 | { "clclu", 0x8f, INSTR_RSY_RRRD }, |
@@ -1249,11 +1423,6 @@ static struct insn opcode_eb[] = { | |||
1249 | { "lmy", 0x98, INSTR_RSY_RRRD }, | 1423 | { "lmy", 0x98, INSTR_RSY_RRRD }, |
1250 | { "lamy", 0x9a, INSTR_RSY_AARD }, | 1424 | { "lamy", 0x9a, INSTR_RSY_AARD }, |
1251 | { "stamy", 0x9b, INSTR_RSY_AARD }, | 1425 | { "stamy", 0x9b, INSTR_RSY_AARD }, |
1252 | { "asi", 0x6a, INSTR_SIY_IRD }, | ||
1253 | { "agsi", 0x7a, INSTR_SIY_IRD }, | ||
1254 | { "alsi", 0x6e, INSTR_SIY_IRD }, | ||
1255 | { "algsi", 0x7e, INSTR_SIY_IRD }, | ||
1256 | { "ecag", 0x4c, INSTR_RSY_RRRD }, | ||
1257 | { "srak", 0xdc, INSTR_RSY_RRRD }, | 1426 | { "srak", 0xdc, INSTR_RSY_RRRD }, |
1258 | { "slak", 0xdd, INSTR_RSY_RRRD }, | 1427 | { "slak", 0xdd, INSTR_RSY_RRRD }, |
1259 | { "srlk", 0xde, INSTR_RSY_RRRD }, | 1428 | { "srlk", 0xde, INSTR_RSY_RRRD }, |
@@ -1272,6 +1441,9 @@ static struct insn opcode_eb[] = { | |||
1272 | { "lax", 0xf7, INSTR_RSY_RRRD }, | 1441 | { "lax", 0xf7, INSTR_RSY_RRRD }, |
1273 | { "laa", 0xf8, INSTR_RSY_RRRD }, | 1442 | { "laa", 0xf8, INSTR_RSY_RRRD }, |
1274 | { "laal", 0xfa, INSTR_RSY_RRRD }, | 1443 | { "laal", 0xfa, INSTR_RSY_RRRD }, |
1444 | { "lric", 0x60, INSTR_RSY_RDRM }, | ||
1445 | { "stric", 0x61, INSTR_RSY_RDRM }, | ||
1446 | { "mric", 0x62, INSTR_RSY_RDRM }, | ||
1275 | #endif | 1447 | #endif |
1276 | { "rll", 0x1d, INSTR_RSY_RRRD }, | 1448 | { "rll", 0x1d, INSTR_RSY_RRRD }, |
1277 | { "mvclu", 0x8e, INSTR_RSY_RRRD }, | 1449 | { "mvclu", 0x8e, INSTR_RSY_RRRD }, |
@@ -1283,36 +1455,37 @@ static struct insn opcode_ec[] = { | |||
1283 | #ifdef CONFIG_64BIT | 1455 | #ifdef CONFIG_64BIT |
1284 | { "brxhg", 0x44, INSTR_RIE_RRP }, | 1456 | { "brxhg", 0x44, INSTR_RIE_RRP }, |
1285 | { "brxlg", 0x45, INSTR_RIE_RRP }, | 1457 | { "brxlg", 0x45, INSTR_RIE_RRP }, |
1286 | { "crb", 0xf6, INSTR_RRS_RRRDU }, | 1458 | { { 0, LONG_INSN_RISBLG }, 0x51, INSTR_RIE_RRUUU }, |
1287 | { "cgrb", 0xe4, INSTR_RRS_RRRDU }, | 1459 | { "rnsbg", 0x54, INSTR_RIE_RRUUU }, |
1288 | { "crj", 0x76, INSTR_RIE_RRPU }, | 1460 | { "risbg", 0x55, INSTR_RIE_RRUUU }, |
1461 | { "rosbg", 0x56, INSTR_RIE_RRUUU }, | ||
1462 | { "rxsbg", 0x57, INSTR_RIE_RRUUU }, | ||
1463 | { { 0, LONG_INSN_RISBGN }, 0x59, INSTR_RIE_RRUUU }, | ||
1464 | { { 0, LONG_INSN_RISBHG }, 0x5D, INSTR_RIE_RRUUU }, | ||
1289 | { "cgrj", 0x64, INSTR_RIE_RRPU }, | 1465 | { "cgrj", 0x64, INSTR_RIE_RRPU }, |
1290 | { "cib", 0xfe, INSTR_RIS_RURDI }, | 1466 | { "clgrj", 0x65, INSTR_RIE_RRPU }, |
1291 | { "cgib", 0xfc, INSTR_RIS_RURDI }, | ||
1292 | { "cij", 0x7e, INSTR_RIE_RUPI }, | ||
1293 | { "cgij", 0x7c, INSTR_RIE_RUPI }, | ||
1294 | { "cit", 0x72, INSTR_RIE_R0IU }, | ||
1295 | { "cgit", 0x70, INSTR_RIE_R0IU }, | 1467 | { "cgit", 0x70, INSTR_RIE_R0IU }, |
1296 | { "clrb", 0xf7, INSTR_RRS_RRRDU }, | 1468 | { "clgit", 0x71, INSTR_RIE_R0UU }, |
1297 | { "clgrb", 0xe5, INSTR_RRS_RRRDU }, | 1469 | { "cit", 0x72, INSTR_RIE_R0IU }, |
1470 | { "clfit", 0x73, INSTR_RIE_R0UU }, | ||
1471 | { "crj", 0x76, INSTR_RIE_RRPU }, | ||
1298 | { "clrj", 0x77, INSTR_RIE_RRPU }, | 1472 | { "clrj", 0x77, INSTR_RIE_RRPU }, |
1299 | { "clgrj", 0x65, INSTR_RIE_RRPU }, | 1473 | { "cgij", 0x7c, INSTR_RIE_RUPI }, |
1300 | { "clib", 0xff, INSTR_RIS_RURDU }, | ||
1301 | { "clgib", 0xfd, INSTR_RIS_RURDU }, | ||
1302 | { "clij", 0x7f, INSTR_RIE_RUPU }, | ||
1303 | { "clgij", 0x7d, INSTR_RIE_RUPU }, | 1474 | { "clgij", 0x7d, INSTR_RIE_RUPU }, |
1304 | { "clfit", 0x73, INSTR_RIE_R0UU }, | 1475 | { "cij", 0x7e, INSTR_RIE_RUPI }, |
1305 | { "clgit", 0x71, INSTR_RIE_R0UU }, | 1476 | { "clij", 0x7f, INSTR_RIE_RUPU }, |
1306 | { "rnsbg", 0x54, INSTR_RIE_RRUUU }, | ||
1307 | { "rxsbg", 0x57, INSTR_RIE_RRUUU }, | ||
1308 | { "rosbg", 0x56, INSTR_RIE_RRUUU }, | ||
1309 | { "risbg", 0x55, INSTR_RIE_RRUUU }, | ||
1310 | { { 0, LONG_INSN_RISBLG }, 0x51, INSTR_RIE_RRUUU }, | ||
1311 | { { 0, LONG_INSN_RISBHG }, 0x5D, INSTR_RIE_RRUUU }, | ||
1312 | { "ahik", 0xd8, INSTR_RIE_RRI0 }, | 1477 | { "ahik", 0xd8, INSTR_RIE_RRI0 }, |
1313 | { "aghik", 0xd9, INSTR_RIE_RRI0 }, | 1478 | { "aghik", 0xd9, INSTR_RIE_RRI0 }, |
1314 | { { 0, LONG_INSN_ALHSIK }, 0xda, INSTR_RIE_RRI0 }, | 1479 | { { 0, LONG_INSN_ALHSIK }, 0xda, INSTR_RIE_RRI0 }, |
1315 | { { 0, LONG_INSN_ALGHSIK }, 0xdb, INSTR_RIE_RRI0 }, | 1480 | { { 0, LONG_INSN_ALGHSIK }, 0xdb, INSTR_RIE_RRI0 }, |
1481 | { "cgrb", 0xe4, INSTR_RRS_RRRDU }, | ||
1482 | { "clgrb", 0xe5, INSTR_RRS_RRRDU }, | ||
1483 | { "crb", 0xf6, INSTR_RRS_RRRDU }, | ||
1484 | { "clrb", 0xf7, INSTR_RRS_RRRDU }, | ||
1485 | { "cgib", 0xfc, INSTR_RIS_RURDI }, | ||
1486 | { "clgib", 0xfd, INSTR_RIS_RURDU }, | ||
1487 | { "cib", 0xfe, INSTR_RIS_RURDI }, | ||
1488 | { "clib", 0xff, INSTR_RIS_RURDU }, | ||
1316 | #endif | 1489 | #endif |
1317 | { "", 0, INSTR_INVALID } | 1490 | { "", 0, INSTR_INVALID } |
1318 | }; | 1491 | }; |
@@ -1325,20 +1498,24 @@ static struct insn opcode_ed[] = { | |||
1325 | { "my", 0x3b, INSTR_RXF_FRRDF }, | 1498 | { "my", 0x3b, INSTR_RXF_FRRDF }, |
1326 | { "mayh", 0x3c, INSTR_RXF_FRRDF }, | 1499 | { "mayh", 0x3c, INSTR_RXF_FRRDF }, |
1327 | { "myh", 0x3d, INSTR_RXF_FRRDF }, | 1500 | { "myh", 0x3d, INSTR_RXF_FRRDF }, |
1328 | { "ley", 0x64, INSTR_RXY_FRRD }, | ||
1329 | { "ldy", 0x65, INSTR_RXY_FRRD }, | ||
1330 | { "stey", 0x66, INSTR_RXY_FRRD }, | ||
1331 | { "stdy", 0x67, INSTR_RXY_FRRD }, | ||
1332 | { "sldt", 0x40, INSTR_RXF_FRRDF }, | 1501 | { "sldt", 0x40, INSTR_RXF_FRRDF }, |
1333 | { "slxt", 0x48, INSTR_RXF_FRRDF }, | ||
1334 | { "srdt", 0x41, INSTR_RXF_FRRDF }, | 1502 | { "srdt", 0x41, INSTR_RXF_FRRDF }, |
1503 | { "slxt", 0x48, INSTR_RXF_FRRDF }, | ||
1335 | { "srxt", 0x49, INSTR_RXF_FRRDF }, | 1504 | { "srxt", 0x49, INSTR_RXF_FRRDF }, |
1336 | { "tdcet", 0x50, INSTR_RXE_FRRD }, | 1505 | { "tdcet", 0x50, INSTR_RXE_FRRD }, |
1337 | { "tdcdt", 0x54, INSTR_RXE_FRRD }, | ||
1338 | { "tdcxt", 0x58, INSTR_RXE_FRRD }, | ||
1339 | { "tdget", 0x51, INSTR_RXE_FRRD }, | 1506 | { "tdget", 0x51, INSTR_RXE_FRRD }, |
1507 | { "tdcdt", 0x54, INSTR_RXE_FRRD }, | ||
1340 | { "tdgdt", 0x55, INSTR_RXE_FRRD }, | 1508 | { "tdgdt", 0x55, INSTR_RXE_FRRD }, |
1509 | { "tdcxt", 0x58, INSTR_RXE_FRRD }, | ||
1341 | { "tdgxt", 0x59, INSTR_RXE_FRRD }, | 1510 | { "tdgxt", 0x59, INSTR_RXE_FRRD }, |
1511 | { "ley", 0x64, INSTR_RXY_FRRD }, | ||
1512 | { "ldy", 0x65, INSTR_RXY_FRRD }, | ||
1513 | { "stey", 0x66, INSTR_RXY_FRRD }, | ||
1514 | { "stdy", 0x67, INSTR_RXY_FRRD }, | ||
1515 | { "czdt", 0xa8, INSTR_RSL_LRDFU }, | ||
1516 | { "czxt", 0xa9, INSTR_RSL_LRDFU }, | ||
1517 | { "cdzt", 0xaa, INSTR_RSL_LRDFU }, | ||
1518 | { "cxzt", 0xab, INSTR_RSL_LRDFU }, | ||
1342 | #endif | 1519 | #endif |
1343 | { "ldeb", 0x04, INSTR_RXE_FRRD }, | 1520 | { "ldeb", 0x04, INSTR_RXE_FRRD }, |
1344 | { "lxdb", 0x05, INSTR_RXE_FRRD }, | 1521 | { "lxdb", 0x05, INSTR_RXE_FRRD }, |