diff options
| author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2010-02-26 16:37:49 -0500 |
|---|---|---|
| committer | Martin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com> | 2010-02-26 16:37:32 -0500 |
| commit | 618708ff04f3a7b74f54210bd518aa1d827d8e65 (patch) | |
| tree | d7d4fcf3abd8533f26de994937e1962ffd426079 | |
| parent | b695adfaa118fd7c50eca8990e348dd7372ee0aa (diff) | |
[S390] add z9-ec/z10 instruction to kernel disassembler
Add the instruction of the z9-ec and z10 machines to the kernel disassembler.
Add the missing "ptff" instruction of z9-109 and the missing "sqd" of g5.
Remove useless comments with instruction examples from format table.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
| -rw-r--r-- | arch/s390/kernel/dis.c | 369 |
1 files changed, 285 insertions, 84 deletions
diff --git a/arch/s390/kernel/dis.c b/arch/s390/kernel/dis.c index db943a7ec513..b39b27d68b45 100644 --- a/arch/s390/kernel/dis.c +++ b/arch/s390/kernel/dis.c | |||
| @@ -86,10 +86,17 @@ enum { | |||
| 86 | U4_12, /* 4 bit unsigned value starting at 12 */ | 86 | U4_12, /* 4 bit unsigned value starting at 12 */ |
| 87 | U4_16, /* 4 bit unsigned value starting at 16 */ | 87 | U4_16, /* 4 bit unsigned value starting at 16 */ |
| 88 | U4_20, /* 4 bit unsigned value starting at 20 */ | 88 | U4_20, /* 4 bit unsigned value starting at 20 */ |
| 89 | U4_32, /* 4 bit unsigned value starting at 32 */ | ||
| 89 | U8_8, /* 8 bit unsigned value starting at 8 */ | 90 | U8_8, /* 8 bit unsigned value starting at 8 */ |
| 90 | U8_16, /* 8 bit unsigned value starting at 16 */ | 91 | U8_16, /* 8 bit unsigned value starting at 16 */ |
| 92 | U8_24, /* 8 bit unsigned value starting at 24 */ | ||
| 93 | U8_32, /* 8 bit unsigned value starting at 32 */ | ||
| 94 | I8_8, /* 8 bit signed value starting at 8 */ | ||
| 95 | I8_32, /* 8 bit signed value starting at 32 */ | ||
| 91 | I16_16, /* 16 bit signed value starting at 16 */ | 96 | I16_16, /* 16 bit signed value starting at 16 */ |
| 97 | I16_32, /* 32 bit signed value starting at 16 */ | ||
| 92 | U16_16, /* 16 bit unsigned value starting at 16 */ | 98 | U16_16, /* 16 bit unsigned value starting at 16 */ |
| 99 | U16_32, /* 32 bit unsigned value starting at 16 */ | ||
| 93 | J16_16, /* PC relative jump offset at 16 */ | 100 | J16_16, /* PC relative jump offset at 16 */ |
| 94 | J32_16, /* PC relative long offset at 16 */ | 101 | J32_16, /* PC relative long offset at 16 */ |
| 95 | I32_16, /* 32 bit signed value starting at 16 */ | 102 | I32_16, /* 32 bit signed value starting at 16 */ |
| @@ -104,21 +111,37 @@ enum { | |||
| 104 | */ | 111 | */ |
| 105 | enum { | 112 | enum { |
| 106 | INSTR_INVALID, | 113 | INSTR_INVALID, |
| 107 | INSTR_E, INSTR_RIE_RRP, INSTR_RIL_RI, INSTR_RIL_RP, INSTR_RIL_RU, | 114 | INSTR_E, |
| 108 | INSTR_RIL_UP, INSTR_RI_RI, INSTR_RI_RP, INSTR_RI_RU, INSTR_RI_UP, | 115 | INSTR_RIE_R0IU, INSTR_RIE_R0UU, INSTR_RIE_RRP, INSTR_RIE_RRPU, |
| 116 | INSTR_RIE_RRUUU, INSTR_RIE_RUPI, INSTR_RIE_RUPU, | ||
| 117 | INSTR_RIL_RI, INSTR_RIL_RP, INSTR_RIL_RU, INSTR_RIL_UP, | ||
| 118 | INSTR_RIS_R0RDU, INSTR_RIS_R0UU, INSTR_RIS_RURDI, INSTR_RIS_RURDU, | ||
| 119 | INSTR_RI_RI, INSTR_RI_RP, INSTR_RI_RU, INSTR_RI_UP, | ||
| 109 | INSTR_RRE_00, INSTR_RRE_0R, INSTR_RRE_AA, INSTR_RRE_AR, INSTR_RRE_F0, | 120 | INSTR_RRE_00, INSTR_RRE_0R, INSTR_RRE_AA, INSTR_RRE_AR, INSTR_RRE_F0, |
| 110 | INSTR_RRE_FF, INSTR_RRE_R0, INSTR_RRE_RA, INSTR_RRE_RF, INSTR_RRE_RR, | 121 | INSTR_RRE_FF, INSTR_RRE_FR, INSTR_RRE_R0, INSTR_RRE_RA, INSTR_RRE_RF, |
| 111 | INSTR_RRE_RR_OPT, INSTR_RRF_F0FF, INSTR_RRF_FUFF, INSTR_RRF_M0RR, | 122 | INSTR_RRE_RR, INSTR_RRE_RR_OPT, |
| 112 | INSTR_RRF_R0RR, INSTR_RRF_RURR, INSTR_RRF_U0FF, INSTR_RRF_U0RF, | 123 | INSTR_RRF_0UFF, INSTR_RRF_F0FF, INSTR_RRF_F0FF2, INSTR_RRF_F0FR, |
| 124 | INSTR_RRF_FFRU, INSTR_RRF_FUFF, INSTR_RRF_M0RR, INSTR_RRF_R0RR, | ||
| 125 | INSTR_RRF_RURR, INSTR_RRF_U0FF, INSTR_RRF_U0RF, INSTR_RRF_U0RR, | ||
| 126 | INSTR_RRF_UUFF, INSTR_RRR_F0FF, INSTR_RRS_RRRDU, | ||
| 113 | INSTR_RR_FF, INSTR_RR_R0, INSTR_RR_RR, INSTR_RR_U0, INSTR_RR_UR, | 127 | INSTR_RR_FF, INSTR_RR_R0, INSTR_RR_RR, INSTR_RR_U0, INSTR_RR_UR, |
| 114 | INSTR_RSE_CCRD, INSTR_RSE_RRRD, INSTR_RSE_RURD, INSTR_RSI_RRP, | 128 | INSTR_RSE_CCRD, INSTR_RSE_RRRD, INSTR_RSE_RURD, |
| 115 | INSTR_RSL_R0RD, INSTR_RSY_AARD, INSTR_RSY_CCRD, INSTR_RSY_RRRD, | 129 | INSTR_RSI_RRP, |
| 116 | INSTR_RSY_RURD, INSTR_RS_AARD, INSTR_RS_CCRD, INSTR_RS_R0RD, | 130 | INSTR_RSL_R0RD, |
| 117 | INSTR_RS_RRRD, INSTR_RS_RURD, INSTR_RXE_FRRD, INSTR_RXE_RRRD, | 131 | INSTR_RSY_AARD, INSTR_RSY_CCRD, INSTR_RSY_RRRD, INSTR_RSY_RURD, |
| 118 | INSTR_RXF_FRRDF, INSTR_RXY_FRRD, INSTR_RXY_RRRD, INSTR_RX_FRRD, | 132 | INSTR_RS_AARD, INSTR_RS_CCRD, INSTR_RS_R0RD, INSTR_RS_RRRD, |
| 119 | INSTR_RX_RRRD, INSTR_RX_URRD, INSTR_SIY_URD, INSTR_SI_URD, | 133 | INSTR_RS_RURD, |
| 120 | INSTR_SSE_RDRD, INSTR_SSF_RRDRD, INSTR_SS_L0RDRD, INSTR_SS_LIRDRD, | 134 | INSTR_RXE_FRRD, INSTR_RXE_RRRD, |
| 121 | INSTR_SS_LLRDRD, INSTR_SS_RRRDRD, INSTR_SS_RRRDRD2, INSTR_SS_RRRDRD3, | 135 | INSTR_RXF_FRRDF, |
| 136 | INSTR_RXY_FRRD, INSTR_RXY_RRRD, INSTR_RXY_URRD, | ||
| 137 | INSTR_RX_FRRD, INSTR_RX_RRRD, INSTR_RX_URRD, | ||
| 138 | INSTR_SIL_RDI, INSTR_SIL_RDU, | ||
| 139 | INSTR_SIY_IRD, INSTR_SIY_URD, | ||
| 140 | INSTR_SI_URD, | ||
| 141 | INSTR_SSE_RDRD, | ||
| 142 | INSTR_SSF_RRDRD, | ||
| 143 | INSTR_SS_L0RDRD, INSTR_SS_LIRDRD, INSTR_SS_LLRDRD, INSTR_SS_RRRDRD, | ||
| 144 | INSTR_SS_RRRDRD2, INSTR_SS_RRRDRD3, | ||
| 122 | INSTR_S_00, INSTR_S_RD, | 145 | INSTR_S_00, INSTR_S_RD, |
| 123 | }; | 146 | }; |
| 124 | 147 | ||
| @@ -129,7 +152,7 @@ struct operand { | |||
| 129 | }; | 152 | }; |
| 130 | 153 | ||
| 131 | struct insn { | 154 | struct insn { |
| 132 | const char name[5]; | 155 | const char name[6]; |
| 133 | unsigned char opfrag; | 156 | unsigned char opfrag; |
| 134 | unsigned char format; | 157 | unsigned char format; |
| 135 | }; | 158 | }; |
| @@ -170,11 +193,16 @@ static const struct operand operands[] = | |||
| 170 | [U4_12] = { 4, 12, 0 }, | 193 | [U4_12] = { 4, 12, 0 }, |
| 171 | [U4_16] = { 4, 16, 0 }, | 194 | [U4_16] = { 4, 16, 0 }, |
| 172 | [U4_20] = { 4, 20, 0 }, | 195 | [U4_20] = { 4, 20, 0 }, |
| 196 | [U4_32] = { 4, 32, 0 }, | ||
| 173 | [U8_8] = { 8, 8, 0 }, | 197 | [U8_8] = { 8, 8, 0 }, |
| 174 | [U8_16] = { 8, 16, 0 }, | 198 | [U8_16] = { 8, 16, 0 }, |
| 199 | [U8_24] = { 8, 24, 0 }, | ||
| 200 | [U8_32] = { 8, 32, 0 }, | ||
| 175 | [I16_16] = { 16, 16, OPERAND_SIGNED }, | 201 | [I16_16] = { 16, 16, OPERAND_SIGNED }, |
| 176 | [U16_16] = { 16, 16, 0 }, | 202 | [U16_16] = { 16, 16, 0 }, |
| 203 | [U16_32] = { 16, 32, 0 }, | ||
| 177 | [J16_16] = { 16, 16, OPERAND_PCREL }, | 204 | [J16_16] = { 16, 16, OPERAND_PCREL }, |
| 205 | [I16_32] = { 16, 32, OPERAND_SIGNED }, | ||
| 178 | [J32_16] = { 32, 16, OPERAND_PCREL }, | 206 | [J32_16] = { 32, 16, OPERAND_PCREL }, |
| 179 | [I32_16] = { 32, 16, OPERAND_SIGNED }, | 207 | [I32_16] = { 32, 16, OPERAND_SIGNED }, |
| 180 | [U32_16] = { 32, 16, 0 }, | 208 | [U32_16] = { 32, 16, 0 }, |
| @@ -183,82 +211,93 @@ static const struct operand operands[] = | |||
| 183 | }; | 211 | }; |
| 184 | 212 | ||
| 185 | static const unsigned char formats[][7] = { | 213 | static const unsigned char formats[][7] = { |
| 186 | [INSTR_E] = { 0xff, 0,0,0,0,0,0 }, /* e.g. pr */ | 214 | [INSTR_E] = { 0xff, 0,0,0,0,0,0 }, |
| 187 | [INSTR_RIE_RRP] = { 0xff, R_8,R_12,J16_16,0,0,0 }, /* e.g. brxhg */ | 215 | [INSTR_RIE_R0UU] = { 0xff, R_8,U16_16,U4_32,0,0,0 }, |
| 188 | [INSTR_RIL_RP] = { 0x0f, R_8,J32_16,0,0,0,0 }, /* e.g. brasl */ | 216 | [INSTR_RIE_RRPU] = { 0xff, R_8,R_12,U4_32,J16_16,0,0 }, |
| 189 | [INSTR_RIL_UP] = { 0x0f, U4_8,J32_16,0,0,0,0 }, /* e.g. brcl */ | 217 | [INSTR_RIE_RRP] = { 0xff, R_8,R_12,J16_16,0,0,0 }, |
| 190 | [INSTR_RIL_RI] = { 0x0f, R_8,I32_16,0,0,0,0 }, /* e.g. afi */ | 218 | [INSTR_RIE_RRUUU] = { 0xff, R_8,R_12,U8_16,U8_24,U8_32,0 }, |
| 191 | [INSTR_RIL_RU] = { 0x0f, R_8,U32_16,0,0,0,0 }, /* e.g. alfi */ | 219 | [INSTR_RIE_RUPI] = { 0xff, R_8,I8_32,U4_12,J16_16,0,0 }, |
| 192 | [INSTR_RI_RI] = { 0x0f, R_8,I16_16,0,0,0,0 }, /* e.g. ahi */ | 220 | [INSTR_RIL_RI] = { 0x0f, R_8,I32_16,0,0,0,0 }, |
| 193 | [INSTR_RI_RP] = { 0x0f, R_8,J16_16,0,0,0,0 }, /* e.g. brct */ | 221 | [INSTR_RIL_RP] = { 0x0f, R_8,J32_16,0,0,0,0 }, |
| 194 | [INSTR_RI_RU] = { 0x0f, R_8,U16_16,0,0,0,0 }, /* e.g. tml */ | 222 | [INSTR_RIL_RU] = { 0x0f, R_8,U32_16,0,0,0,0 }, |
| 195 | [INSTR_RI_UP] = { 0x0f, U4_8,J16_16,0,0,0,0 }, /* e.g. brc */ | 223 | [INSTR_RIL_UP] = { 0x0f, U4_8,J32_16,0,0,0,0 }, |
| 196 | [INSTR_RRE_00] = { 0xff, 0,0,0,0,0,0 }, /* e.g. palb */ | 224 | [INSTR_RIS_R0RDU] = { 0xff, R_8,U8_32,D_20,B_16,0,0 }, |
| 197 | [INSTR_RRE_0R] = { 0xff, R_28,0,0,0,0,0 }, /* e.g. tb */ | 225 | [INSTR_RIS_RURDI] = { 0xff, R_8,I8_32,U4_12,D_20,B_16,0 }, |
| 198 | [INSTR_RRE_AA] = { 0xff, A_24,A_28,0,0,0,0 }, /* e.g. cpya */ | 226 | [INSTR_RIS_RURDU] = { 0xff, R_8,U8_32,U4_12,D_20,B_16,0 }, |
| 199 | [INSTR_RRE_AR] = { 0xff, A_24,R_28,0,0,0,0 }, /* e.g. sar */ | 227 | [INSTR_RI_RI] = { 0x0f, R_8,I16_16,0,0,0,0 }, |
| 200 | [INSTR_RRE_F0] = { 0xff, F_24,0,0,0,0,0 }, /* e.g. sqer */ | 228 | [INSTR_RI_RP] = { 0x0f, R_8,J16_16,0,0,0,0 }, |
| 201 | [INSTR_RRE_FF] = { 0xff, F_24,F_28,0,0,0,0 }, /* e.g. debr */ | 229 | [INSTR_RI_RU] = { 0x0f, R_8,U16_16,0,0,0,0 }, |
| 202 | [INSTR_RRE_R0] = { 0xff, R_24,0,0,0,0,0 }, /* e.g. ipm */ | 230 | [INSTR_RI_UP] = { 0x0f, U4_8,J16_16,0,0,0,0 }, |
| 203 | [INSTR_RRE_RA] = { 0xff, R_24,A_28,0,0,0,0 }, /* e.g. ear */ | 231 | [INSTR_RRE_00] = { 0xff, 0,0,0,0,0,0 }, |
| 204 | [INSTR_RRE_RF] = { 0xff, R_24,F_28,0,0,0,0 }, /* e.g. cefbr */ | 232 | [INSTR_RRE_0R] = { 0xff, R_28,0,0,0,0,0 }, |
| 205 | [INSTR_RRE_RR] = { 0xff, R_24,R_28,0,0,0,0 }, /* e.g. lura */ | 233 | [INSTR_RRE_AA] = { 0xff, A_24,A_28,0,0,0,0 }, |
| 206 | [INSTR_RRE_RR_OPT]= { 0xff, R_24,RO_28,0,0,0,0 }, /* efpc, sfpc */ | 234 | [INSTR_RRE_AR] = { 0xff, A_24,R_28,0,0,0,0 }, |
| 207 | [INSTR_RRF_F0FF] = { 0xff, F_16,F_24,F_28,0,0,0 }, /* e.g. madbr */ | 235 | [INSTR_RRE_F0] = { 0xff, F_24,0,0,0,0,0 }, |
| 208 | [INSTR_RRF_FUFF] = { 0xff, F_24,F_16,F_28,U4_20,0,0 },/* e.g. didbr */ | 236 | [INSTR_RRE_FF] = { 0xff, F_24,F_28,0,0,0,0 }, |
| 209 | [INSTR_RRF_RURR] = { 0xff, R_24,R_28,R_16,U4_20,0,0 },/* e.g. .insn */ | 237 | [INSTR_RRE_FR] = { 0xff, F_24,R_28,0,0,0,0 }, |
| 210 | [INSTR_RRF_R0RR] = { 0xff, R_24,R_16,R_28,0,0,0 }, /* e.g. idte */ | 238 | [INSTR_RRE_R0] = { 0xff, R_24,0,0,0,0,0 }, |
| 211 | [INSTR_RRF_U0FF] = { 0xff, F_24,U4_16,F_28,0,0,0 }, /* e.g. fixr */ | 239 | [INSTR_RRE_RA] = { 0xff, R_24,A_28,0,0,0,0 }, |
| 212 | [INSTR_RRF_U0RF] = { 0xff, R_24,U4_16,F_28,0,0,0 }, /* e.g. cfebr */ | 240 | [INSTR_RRE_RF] = { 0xff, R_24,F_28,0,0,0,0 }, |
| 213 | [INSTR_RRF_M0RR] = { 0xff, R_24,R_28,M_16,0,0,0 }, /* e.g. sske */ | 241 | [INSTR_RRE_RR] = { 0xff, R_24,R_28,0,0,0,0 }, |
| 214 | [INSTR_RR_FF] = { 0xff, F_8,F_12,0,0,0,0 }, /* e.g. adr */ | 242 | [INSTR_RRE_RR_OPT]= { 0xff, R_24,RO_28,0,0,0,0 }, |
| 215 | [INSTR_RR_R0] = { 0xff, R_8, 0,0,0,0,0 }, /* e.g. spm */ | 243 | [INSTR_RRF_0UFF] = { 0xff, F_24,F_28,U4_20,0,0,0 }, |
| 216 | [INSTR_RR_RR] = { 0xff, R_8,R_12,0,0,0,0 }, /* e.g. lr */ | 244 | [INSTR_RRF_F0FF2] = { 0xff, F_24,F_16,F_28,0,0,0 }, |
| 217 | [INSTR_RR_U0] = { 0xff, U8_8, 0,0,0,0,0 }, /* e.g. svc */ | 245 | [INSTR_RRF_F0FF] = { 0xff, F_16,F_24,F_28,0,0,0 }, |
| 218 | [INSTR_RR_UR] = { 0xff, U4_8,R_12,0,0,0,0 }, /* e.g. bcr */ | 246 | [INSTR_RRF_F0FR] = { 0xff, F_24,F_16,R_28,0,0,0 }, |
| 219 | [INSTR_RSE_RRRD] = { 0xff, R_8,R_12,D_20,B_16,0,0 }, /* e.g. lmh */ | 247 | [INSTR_RRF_FFRU] = { 0xff, F_24,F_16,R_28,U4_20,0,0 }, |
| 220 | [INSTR_RSE_CCRD] = { 0xff, C_8,C_12,D_20,B_16,0,0 }, /* e.g. lmh */ | 248 | [INSTR_RRF_FUFF] = { 0xff, F_24,F_16,F_28,U4_20,0,0 }, |
| 221 | [INSTR_RSE_RURD] = { 0xff, R_8,U4_12,D_20,B_16,0,0 }, /* e.g. icmh */ | 249 | [INSTR_RRF_M0RR] = { 0xff, R_24,R_28,M_16,0,0,0 }, |
| 222 | [INSTR_RSL_R0RD] = { 0xff, R_8,D_20,B_16,0,0,0 }, /* e.g. tp */ | 250 | [INSTR_RRF_R0RR] = { 0xff, R_24,R_16,R_28,0,0,0 }, |
| 223 | [INSTR_RSI_RRP] = { 0xff, R_8,R_12,J16_16,0,0,0 }, /* e.g. brxh */ | 251 | [INSTR_RRF_RURR] = { 0xff, R_24,R_28,R_16,U4_20,0,0 }, |
| 224 | [INSTR_RSY_RRRD] = { 0xff, R_8,R_12,D20_20,B_16,0,0 },/* e.g. stmy */ | 252 | [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 }, | ||
| 254 | [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 }, | ||
| 256 | [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 }, | ||
| 258 | [INSTR_RR_FF] = { 0xff, F_8,F_12,0,0,0,0 }, | ||
| 259 | [INSTR_RR_R0] = { 0xff, R_8, 0,0,0,0,0 }, | ||
| 260 | [INSTR_RR_RR] = { 0xff, R_8,R_12,0,0,0,0 }, | ||
| 261 | [INSTR_RR_U0] = { 0xff, U8_8, 0,0,0,0,0 }, | ||
| 262 | [INSTR_RR_UR] = { 0xff, U4_8,R_12,0,0,0,0 }, | ||
| 263 | [INSTR_RSE_CCRD] = { 0xff, C_8,C_12,D_20,B_16,0,0 }, | ||
| 264 | [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 }, | ||
| 266 | [INSTR_RSI_RRP] = { 0xff, R_8,R_12,J16_16,0,0,0 }, | ||
| 267 | [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 }, | ||
| 269 | [INSTR_RSY_CCRD] = { 0xff, C_8,C_12,D20_20,B_16,0,0 }, | ||
| 270 | [INSTR_RSY_RRRD] = { 0xff, R_8,R_12,D20_20,B_16,0,0 }, | ||
| 225 | [INSTR_RSY_RURD] = { 0xff, R_8,U4_12,D20_20,B_16,0,0 }, | 271 | [INSTR_RSY_RURD] = { 0xff, R_8,U4_12,D20_20,B_16,0,0 }, |
| 226 | /* e.g. icmh */ | 272 | [INSTR_RS_AARD] = { 0xff, A_8,A_12,D_20,B_16,0,0 }, |
| 227 | [INSTR_RSY_AARD] = { 0xff, A_8,A_12,D20_20,B_16,0,0 },/* e.g. lamy */ | 273 | [INSTR_RS_CCRD] = { 0xff, C_8,C_12,D_20,B_16,0,0 }, |
| 228 | [INSTR_RSY_CCRD] = { 0xff, C_8,C_12,D20_20,B_16,0,0 },/* e.g. lamy */ | 274 | [INSTR_RS_R0RD] = { 0xff, R_8,D_20,B_16,0,0,0 }, |
| 229 | [INSTR_RS_AARD] = { 0xff, A_8,A_12,D_20,B_16,0,0 }, /* e.g. lam */ | 275 | [INSTR_RS_RRRD] = { 0xff, R_8,R_12,D_20,B_16,0,0 }, |
| 230 | [INSTR_RS_CCRD] = { 0xff, C_8,C_12,D_20,B_16,0,0 }, /* e.g. lctl */ | 276 | [INSTR_RS_RURD] = { 0xff, R_8,U4_12,D_20,B_16,0,0 }, |
| 231 | [INSTR_RS_R0RD] = { 0xff, R_8,D_20,B_16,0,0,0 }, /* e.g. sll */ | 277 | [INSTR_RXE_FRRD] = { 0xff, F_8,D_20,X_12,B_16,0,0 }, |
| 232 | [INSTR_RS_RRRD] = { 0xff, R_8,R_12,D_20,B_16,0,0 }, /* e.g. cs */ | 278 | [INSTR_RXE_RRRD] = { 0xff, R_8,D_20,X_12,B_16,0,0 }, |
| 233 | [INSTR_RS_RURD] = { 0xff, R_8,U4_12,D_20,B_16,0,0 }, /* e.g. icm */ | ||
| 234 | [INSTR_RXE_FRRD] = { 0xff, F_8,D_20,X_12,B_16,0,0 }, /* e.g. axbr */ | ||
| 235 | [INSTR_RXE_RRRD] = { 0xff, R_8,D_20,X_12,B_16,0,0 }, /* e.g. lg */ | ||
| 236 | [INSTR_RXF_FRRDF] = { 0xff, F_32,F_8,D_20,X_12,B_16,0 }, | 279 | [INSTR_RXF_FRRDF] = { 0xff, F_32,F_8,D_20,X_12,B_16,0 }, |
| 237 | /* e.g. madb */ | 280 | [INSTR_RXY_FRRD] = { 0xff, F_8,D20_20,X_12,B_16,0,0 }, |
| 238 | [INSTR_RXY_RRRD] = { 0xff, R_8,D20_20,X_12,B_16,0,0 },/* e.g. ly */ | 281 | [INSTR_RXY_RRRD] = { 0xff, R_8,D20_20,X_12,B_16,0,0 }, |
| 239 | [INSTR_RXY_FRRD] = { 0xff, F_8,D20_20,X_12,B_16,0,0 },/* e.g. ley */ | 282 | [INSTR_RXY_URRD] = { 0xff, U4_8,D20_20,X_12,B_16,0,0 }, |
| 240 | [INSTR_RX_FRRD] = { 0xff, F_8,D_20,X_12,B_16,0,0 }, /* e.g. ae */ | 283 | [INSTR_RX_FRRD] = { 0xff, F_8,D_20,X_12,B_16,0,0 }, |
| 241 | [INSTR_RX_RRRD] = { 0xff, R_8,D_20,X_12,B_16,0,0 }, /* e.g. l */ | 284 | [INSTR_RX_RRRD] = { 0xff, R_8,D_20,X_12,B_16,0,0 }, |
| 242 | [INSTR_RX_URRD] = { 0xff, U4_8,D_20,X_12,B_16,0,0 }, /* e.g. bc */ | 285 | [INSTR_RX_URRD] = { 0xff, U4_8,D_20,X_12,B_16,0,0 }, |
| 243 | [INSTR_SI_URD] = { 0xff, D_20,B_16,U8_8,0,0,0 }, /* e.g. cli */ | 286 | [INSTR_SIL_RDI] = { 0xff, D_20,B_16,I16_32,0,0,0 }, |
| 244 | [INSTR_SIY_URD] = { 0xff, D20_20,B_16,U8_8,0,0,0 }, /* e.g. tmy */ | 287 | [INSTR_SIL_RDU] = { 0xff, D_20,B_16,U16_32,0,0,0 }, |
| 245 | [INSTR_SSE_RDRD] = { 0xff, D_20,B_16,D_36,B_32,0,0 }, /* e.g. mvsdk */ | 288 | [INSTR_SIY_IRD] = { 0xff, D20_20,B_16,I8_8,0,0,0 }, |
| 289 | [INSTR_SIY_URD] = { 0xff, D20_20,B_16,U8_8,0,0,0 }, | ||
| 290 | [INSTR_SI_URD] = { 0xff, D_20,B_16,U8_8,0,0,0 }, | ||
| 291 | [INSTR_SSE_RDRD] = { 0xff, D_20,B_16,D_36,B_32,0,0 }, | ||
| 292 | [INSTR_SSF_RRDRD] = { 0x00, D_20,B_16,D_36,B_32,R_8,0 }, | ||
| 246 | [INSTR_SS_L0RDRD] = { 0xff, D_20,L8_8,B_16,D_36,B_32,0 }, | 293 | [INSTR_SS_L0RDRD] = { 0xff, D_20,L8_8,B_16,D_36,B_32,0 }, |
| 247 | /* e.g. mvc */ | ||
| 248 | [INSTR_SS_LIRDRD] = { 0xff, D_20,L4_8,B_16,D_36,B_32,U4_12 }, | 294 | [INSTR_SS_LIRDRD] = { 0xff, D_20,L4_8,B_16,D_36,B_32,U4_12 }, |
| 249 | /* e.g. srp */ | ||
| 250 | [INSTR_SS_LLRDRD] = { 0xff, D_20,L4_8,B_16,D_36,L4_12,B_32 }, | 295 | [INSTR_SS_LLRDRD] = { 0xff, D_20,L4_8,B_16,D_36,L4_12,B_32 }, |
| 251 | /* e.g. pack */ | ||
| 252 | [INSTR_SS_RRRDRD] = { 0xff, D_20,R_8,B_16,D_36,B_32,R_12 }, | ||
| 253 | /* e.g. mvck */ | ||
| 254 | [INSTR_SS_RRRDRD2]= { 0xff, R_8,D_20,B_16,R_12,D_36,B_32 }, | 296 | [INSTR_SS_RRRDRD2]= { 0xff, R_8,D_20,B_16,R_12,D_36,B_32 }, |
| 255 | /* e.g. plo */ | ||
| 256 | [INSTR_SS_RRRDRD3]= { 0xff, R_8,R_12,D_20,B_16,D_36,B_32 }, | 297 | [INSTR_SS_RRRDRD3]= { 0xff, R_8,R_12,D_20,B_16,D_36,B_32 }, |
| 257 | /* e.g. lmd */ | 298 | [INSTR_SS_RRRDRD] = { 0xff, D_20,R_8,B_16,D_36,B_32,R_12 }, |
| 258 | [INSTR_S_00] = { 0xff, 0,0,0,0,0,0 }, /* e.g. hsch */ | 299 | [INSTR_S_00] = { 0xff, 0,0,0,0,0,0 }, |
| 259 | [INSTR_S_RD] = { 0xff, D_20,B_16,0,0,0,0 }, /* e.g. lpsw */ | 300 | [INSTR_S_RD] = { 0xff, D_20,B_16,0,0,0,0 }, |
| 260 | [INSTR_SSF_RRDRD] = { 0x00, D_20,B_16,D_36,B_32,R_8,0 }, | ||
| 261 | /* e.g. mvcos */ | ||
| 262 | }; | 301 | }; |
| 263 | 302 | ||
| 264 | static struct insn opcode[] = { | 303 | static struct insn opcode[] = { |
| @@ -454,6 +493,8 @@ static struct insn opcode[] = { | |||
| 454 | static struct insn opcode_01[] = { | 493 | static struct insn opcode_01[] = { |
| 455 | #ifdef CONFIG_64BIT | 494 | #ifdef CONFIG_64BIT |
| 456 | { "sam64", 0x0e, INSTR_E }, | 495 | { "sam64", 0x0e, INSTR_E }, |
| 496 | { "pfpo", 0x0a, INSTR_E }, | ||
| 497 | { "ptff", 0x04, INSTR_E }, | ||
| 457 | #endif | 498 | #endif |
| 458 | { "pr", 0x01, INSTR_E }, | 499 | { "pr", 0x01, INSTR_E }, |
| 459 | { "upt", 0x02, INSTR_E }, | 500 | { "upt", 0x02, INSTR_E }, |
| @@ -519,6 +560,8 @@ static struct insn opcode_b2[] = { | |||
| 519 | { "cutfu", 0xa7, INSTR_RRF_M0RR }, | 560 | { "cutfu", 0xa7, INSTR_RRF_M0RR }, |
| 520 | { "stfle", 0xb0, INSTR_S_RD }, | 561 | { "stfle", 0xb0, INSTR_S_RD }, |
| 521 | { "lpswe", 0xb2, INSTR_S_RD }, | 562 | { "lpswe", 0xb2, INSTR_S_RD }, |
| 563 | { "srnmt", 0xb9, INSTR_S_RD }, | ||
| 564 | { "lfas", 0xbd, INSTR_S_RD }, | ||
| 522 | #endif | 565 | #endif |
| 523 | { "stidp", 0x02, INSTR_S_RD }, | 566 | { "stidp", 0x02, INSTR_S_RD }, |
| 524 | { "sck", 0x04, INSTR_S_RD }, | 567 | { "sck", 0x04, INSTR_S_RD }, |
| @@ -589,7 +632,6 @@ static struct insn opcode_b2[] = { | |||
| 589 | { "clst", 0x5d, INSTR_RRE_RR }, | 632 | { "clst", 0x5d, INSTR_RRE_RR }, |
| 590 | { "srst", 0x5e, INSTR_RRE_RR }, | 633 | { "srst", 0x5e, INSTR_RRE_RR }, |
| 591 | { "cmpsc", 0x63, INSTR_RRE_RR }, | 634 | { "cmpsc", 0x63, INSTR_RRE_RR }, |
| 592 | { "cmpsc", 0x63, INSTR_RRE_RR }, | ||
| 593 | { "siga", 0x74, INSTR_S_RD }, | 635 | { "siga", 0x74, INSTR_S_RD }, |
| 594 | { "xsch", 0x76, INSTR_S_00 }, | 636 | { "xsch", 0x76, INSTR_S_00 }, |
| 595 | { "rp", 0x77, INSTR_S_RD }, | 637 | { "rp", 0x77, INSTR_S_RD }, |
| @@ -630,6 +672,57 @@ static struct insn opcode_b3[] = { | |||
| 630 | { "cger", 0xc8, INSTR_RRF_U0RF }, | 672 | { "cger", 0xc8, INSTR_RRF_U0RF }, |
| 631 | { "cgdr", 0xc9, INSTR_RRF_U0RF }, | 673 | { "cgdr", 0xc9, INSTR_RRF_U0RF }, |
| 632 | { "cgxr", 0xca, INSTR_RRF_U0RF }, | 674 | { "cgxr", 0xca, INSTR_RRF_U0RF }, |
| 675 | { "lpdfr", 0x70, INSTR_RRE_FF }, | ||
| 676 | { "lndfr", 0x71, INSTR_RRE_FF }, | ||
| 677 | { "cpsdr", 0x72, INSTR_RRF_F0FF2 }, | ||
| 678 | { "lcdfr", 0x73, INSTR_RRE_FF }, | ||
| 679 | { "ldgr", 0xc1, INSTR_RRE_FR }, | ||
| 680 | { "lgdr", 0xcd, INSTR_RRE_RF }, | ||
| 681 | { "adtr", 0xd2, INSTR_RRR_F0FF }, | ||
| 682 | { "axtr", 0xda, INSTR_RRR_F0FF }, | ||
| 683 | { "cdtr", 0xe4, INSTR_RRE_FF }, | ||
| 684 | { "cxtr", 0xec, INSTR_RRE_FF }, | ||
| 685 | { "kdtr", 0xe0, INSTR_RRE_FF }, | ||
| 686 | { "kxtr", 0xe8, INSTR_RRE_FF }, | ||
| 687 | { "cedtr", 0xf4, INSTR_RRE_FF }, | ||
| 688 | { "cextr", 0xfc, INSTR_RRE_FF }, | ||
| 689 | { "cdgtr", 0xf1, INSTR_RRE_FR }, | ||
| 690 | { "cxgtr", 0xf9, INSTR_RRE_FR }, | ||
| 691 | { "cdstr", 0xf3, INSTR_RRE_FR }, | ||
| 692 | { "cxstr", 0xfb, INSTR_RRE_FR }, | ||
| 693 | { "cdutr", 0xf2, INSTR_RRE_FR }, | ||
| 694 | { "cxutr", 0xfa, INSTR_RRE_FR }, | ||
| 695 | { "cgdtr", 0xe1, INSTR_RRF_U0RF }, | ||
| 696 | { "cgxtr", 0xe9, INSTR_RRF_U0RF }, | ||
| 697 | { "csdtr", 0xe3, INSTR_RRE_RF }, | ||
| 698 | { "csxtr", 0xeb, INSTR_RRE_RF }, | ||
| 699 | { "cudtr", 0xe2, INSTR_RRE_RF }, | ||
| 700 | { "cuxtr", 0xea, INSTR_RRE_RF }, | ||
| 701 | { "ddtr", 0xd1, INSTR_RRR_F0FF }, | ||
| 702 | { "dxtr", 0xd9, INSTR_RRR_F0FF }, | ||
| 703 | { "eedtr", 0xe5, INSTR_RRE_RF }, | ||
| 704 | { "eextr", 0xed, INSTR_RRE_RF }, | ||
| 705 | { "esdtr", 0xe7, INSTR_RRE_RF }, | ||
| 706 | { "esxtr", 0xef, INSTR_RRE_RF }, | ||
| 707 | { "iedtr", 0xf6, INSTR_RRF_F0FR }, | ||
| 708 | { "iextr", 0xfe, INSTR_RRF_F0FR }, | ||
| 709 | { "ltdtr", 0xd6, INSTR_RRE_FF }, | ||
| 710 | { "ltxtr", 0xde, INSTR_RRE_FF }, | ||
| 711 | { "fidtr", 0xd7, INSTR_RRF_UUFF }, | ||
| 712 | { "fixtr", 0xdf, INSTR_RRF_UUFF }, | ||
| 713 | { "ldetr", 0xd4, INSTR_RRF_0UFF }, | ||
| 714 | { "lxdtr", 0xdc, INSTR_RRF_0UFF }, | ||
| 715 | { "ledtr", 0xd5, INSTR_RRF_UUFF }, | ||
| 716 | { "ldxtr", 0xdd, INSTR_RRF_UUFF }, | ||
| 717 | { "mdtr", 0xd0, INSTR_RRR_F0FF }, | ||
| 718 | { "mxtr", 0xd8, INSTR_RRR_F0FF }, | ||
| 719 | { "qadtr", 0xf5, INSTR_RRF_FUFF }, | ||
| 720 | { "qaxtr", 0xfd, INSTR_RRF_FUFF }, | ||
| 721 | { "rrdtr", 0xf7, INSTR_RRF_FFRU }, | ||
| 722 | { "rrxtr", 0xff, INSTR_RRF_FFRU }, | ||
| 723 | { "sfasr", 0x85, INSTR_RRE_R0 }, | ||
| 724 | { "sdtr", 0xd3, INSTR_RRR_F0FF }, | ||
| 725 | { "sxtr", 0xdb, INSTR_RRR_F0FF }, | ||
| 633 | #endif | 726 | #endif |
| 634 | { "lpebr", 0x00, INSTR_RRE_FF }, | 727 | { "lpebr", 0x00, INSTR_RRE_FF }, |
| 635 | { "lnebr", 0x01, INSTR_RRE_FF }, | 728 | { "lnebr", 0x01, INSTR_RRE_FF }, |
| @@ -780,6 +873,14 @@ static struct insn opcode_b9[] = { | |||
| 780 | { "cu24", 0xb1, INSTR_RRF_M0RR }, | 873 | { "cu24", 0xb1, INSTR_RRF_M0RR }, |
| 781 | { "cu41", 0xb2, INSTR_RRF_M0RR }, | 874 | { "cu41", 0xb2, INSTR_RRF_M0RR }, |
| 782 | { "cu42", 0xb3, INSTR_RRF_M0RR }, | 875 | { "cu42", 0xb3, INSTR_RRF_M0RR }, |
| 876 | { "crt", 0x72, INSTR_RRF_U0RR }, | ||
| 877 | { "cgrt", 0x60, INSTR_RRF_U0RR }, | ||
| 878 | { "clrt", 0x73, INSTR_RRF_U0RR }, | ||
| 879 | { "clgrt", 0x61, INSTR_RRF_U0RR }, | ||
| 880 | { "ptf", 0xa2, INSTR_RRE_R0 }, | ||
| 881 | { "pfmf", 0xaf, INSTR_RRE_RR }, | ||
| 882 | { "trte", 0xbf, INSTR_RRF_M0RR }, | ||
| 883 | { "trtre", 0xbd, INSTR_RRF_M0RR }, | ||
| 783 | #endif | 884 | #endif |
| 784 | { "kmac", 0x1e, INSTR_RRE_RR }, | 885 | { "kmac", 0x1e, INSTR_RRE_RR }, |
| 785 | { "lrvr", 0x1f, INSTR_RRE_RR }, | 886 | { "lrvr", 0x1f, INSTR_RRE_RR }, |
| @@ -835,6 +936,43 @@ static struct insn opcode_c2[] = { | |||
| 835 | { "cfi", 0x0d, INSTR_RIL_RI }, | 936 | { "cfi", 0x0d, INSTR_RIL_RI }, |
| 836 | { "clgfi", 0x0e, INSTR_RIL_RU }, | 937 | { "clgfi", 0x0e, INSTR_RIL_RU }, |
| 837 | { "clfi", 0x0f, INSTR_RIL_RU }, | 938 | { "clfi", 0x0f, INSTR_RIL_RU }, |
| 939 | { "msfi", 0x01, INSTR_RIL_RI }, | ||
| 940 | { "msgfi", 0x00, INSTR_RIL_RI }, | ||
| 941 | #endif | ||
| 942 | { "", 0, INSTR_INVALID } | ||
| 943 | }; | ||
| 944 | |||
| 945 | static struct insn opcode_c4[] = { | ||
| 946 | #ifdef CONFIG_64BIT | ||
| 947 | { "lrl", 0x0d, INSTR_RIL_RP }, | ||
| 948 | { "lgrl", 0x08, INSTR_RIL_RP }, | ||
| 949 | { "lgfrl", 0x0c, INSTR_RIL_RP }, | ||
| 950 | { "lhrl", 0x05, INSTR_RIL_RP }, | ||
| 951 | { "lghrl", 0x04, INSTR_RIL_RP }, | ||
| 952 | { "llgfrl", 0x0e, INSTR_RIL_RP }, | ||
| 953 | { "llhrl", 0x02, INSTR_RIL_RP }, | ||
| 954 | { "llghrl", 0x06, INSTR_RIL_RP }, | ||
| 955 | { "strl", 0x0f, INSTR_RIL_RP }, | ||
| 956 | { "stgrl", 0x0b, INSTR_RIL_RP }, | ||
| 957 | { "sthrl", 0x07, INSTR_RIL_RP }, | ||
| 958 | #endif | ||
| 959 | { "", 0, INSTR_INVALID } | ||
| 960 | }; | ||
| 961 | |||
| 962 | static struct insn opcode_c6[] = { | ||
| 963 | #ifdef CONFIG_64BIT | ||
| 964 | { "crl", 0x0d, INSTR_RIL_RP }, | ||
| 965 | { "cgrl", 0x08, INSTR_RIL_RP }, | ||
| 966 | { "cgfrl", 0x0c, INSTR_RIL_RP }, | ||
| 967 | { "chrl", 0x05, INSTR_RIL_RP }, | ||
| 968 | { "cghrl", 0x04, INSTR_RIL_RP }, | ||
| 969 | { "clrl", 0x0f, INSTR_RIL_RP }, | ||
| 970 | { "clgrl", 0x0a, INSTR_RIL_RP }, | ||
| 971 | { "clgfrl", 0x0e, INSTR_RIL_RP }, | ||
| 972 | { "clhrl", 0x07, INSTR_RIL_RP }, | ||
| 973 | { "clghrl", 0x06, INSTR_RIL_RP }, | ||
| 974 | { "pfdrl", 0x02, INSTR_RIL_UP }, | ||
| 975 | { "exrl", 0x00, INSTR_RIL_RP }, | ||
| 838 | #endif | 976 | #endif |
| 839 | { "", 0, INSTR_INVALID } | 977 | { "", 0, INSTR_INVALID } |
| 840 | }; | 978 | }; |
| @@ -842,6 +980,8 @@ static struct insn opcode_c2[] = { | |||
| 842 | static struct insn opcode_c8[] = { | 980 | static struct insn opcode_c8[] = { |
| 843 | #ifdef CONFIG_64BIT | 981 | #ifdef CONFIG_64BIT |
| 844 | { "mvcos", 0x00, INSTR_SSF_RRDRD }, | 982 | { "mvcos", 0x00, INSTR_SSF_RRDRD }, |
| 983 | { "ectg", 0x01, INSTR_SSF_RRDRD }, | ||
| 984 | { "csst", 0x02, INSTR_SSF_RRDRD }, | ||
| 845 | #endif | 985 | #endif |
| 846 | { "", 0, INSTR_INVALID } | 986 | { "", 0, INSTR_INVALID } |
| 847 | }; | 987 | }; |
| @@ -917,6 +1057,12 @@ static struct insn opcode_e3[] = { | |||
| 917 | { "llgh", 0x91, INSTR_RXY_RRRD }, | 1057 | { "llgh", 0x91, INSTR_RXY_RRRD }, |
| 918 | { "llc", 0x94, INSTR_RXY_RRRD }, | 1058 | { "llc", 0x94, INSTR_RXY_RRRD }, |
| 919 | { "llh", 0x95, INSTR_RXY_RRRD }, | 1059 | { "llh", 0x95, INSTR_RXY_RRRD }, |
| 1060 | { "cgh", 0x34, INSTR_RXY_RRRD }, | ||
| 1061 | { "laey", 0x75, INSTR_RXY_RRRD }, | ||
| 1062 | { "ltgf", 0x32, INSTR_RXY_RRRD }, | ||
| 1063 | { "mfy", 0x5c, INSTR_RXY_RRRD }, | ||
| 1064 | { "mhy", 0x7c, INSTR_RXY_RRRD }, | ||
| 1065 | { "pfd", 0x36, INSTR_RXY_URRD }, | ||
| 920 | #endif | 1066 | #endif |
| 921 | { "lrv", 0x1e, INSTR_RXY_RRRD }, | 1067 | { "lrv", 0x1e, INSTR_RXY_RRRD }, |
| 922 | { "lrvh", 0x1f, INSTR_RXY_RRRD }, | 1068 | { "lrvh", 0x1f, INSTR_RXY_RRRD }, |
| @@ -931,6 +1077,15 @@ static struct insn opcode_e3[] = { | |||
| 931 | static struct insn opcode_e5[] = { | 1077 | static struct insn opcode_e5[] = { |
| 932 | #ifdef CONFIG_64BIT | 1078 | #ifdef CONFIG_64BIT |
| 933 | { "strag", 0x02, INSTR_SSE_RDRD }, | 1079 | { "strag", 0x02, INSTR_SSE_RDRD }, |
| 1080 | { "chhsi", 0x54, INSTR_SIL_RDI }, | ||
| 1081 | { "chsi", 0x5c, INSTR_SIL_RDI }, | ||
| 1082 | { "cghsi", 0x58, INSTR_SIL_RDI }, | ||
| 1083 | { "clhhsi", 0x55, INSTR_SIL_RDU }, | ||
| 1084 | { "clfhsi", 0x5d, INSTR_SIL_RDU }, | ||
| 1085 | { "clghsi", 0x59, INSTR_SIL_RDU }, | ||
| 1086 | { "mvhhi", 0x44, INSTR_SIL_RDI }, | ||
| 1087 | { "mvhi", 0x4c, INSTR_SIL_RDI }, | ||
| 1088 | { "mvghi", 0x48, INSTR_SIL_RDI }, | ||
| 934 | #endif | 1089 | #endif |
| 935 | { "lasp", 0x00, INSTR_SSE_RDRD }, | 1090 | { "lasp", 0x00, INSTR_SSE_RDRD }, |
| 936 | { "tprot", 0x01, INSTR_SSE_RDRD }, | 1091 | { "tprot", 0x01, INSTR_SSE_RDRD }, |
| @@ -977,6 +1132,11 @@ static struct insn opcode_eb[] = { | |||
| 977 | { "lmy", 0x98, INSTR_RSY_RRRD }, | 1132 | { "lmy", 0x98, INSTR_RSY_RRRD }, |
| 978 | { "lamy", 0x9a, INSTR_RSY_AARD }, | 1133 | { "lamy", 0x9a, INSTR_RSY_AARD }, |
| 979 | { "stamy", 0x9b, INSTR_RSY_AARD }, | 1134 | { "stamy", 0x9b, INSTR_RSY_AARD }, |
| 1135 | { "asi", 0x6a, INSTR_SIY_IRD }, | ||
| 1136 | { "agsi", 0x7a, INSTR_SIY_IRD }, | ||
| 1137 | { "alsi", 0x6e, INSTR_SIY_IRD }, | ||
| 1138 | { "algsi", 0x7e, INSTR_SIY_IRD }, | ||
| 1139 | { "ecag", 0x4c, INSTR_RSY_RRRD }, | ||
| 980 | #endif | 1140 | #endif |
| 981 | { "rll", 0x1d, INSTR_RSY_RRRD }, | 1141 | { "rll", 0x1d, INSTR_RSY_RRRD }, |
| 982 | { "mvclu", 0x8e, INSTR_RSY_RRRD }, | 1142 | { "mvclu", 0x8e, INSTR_RSY_RRRD }, |
| @@ -988,6 +1148,30 @@ static struct insn opcode_ec[] = { | |||
| 988 | #ifdef CONFIG_64BIT | 1148 | #ifdef CONFIG_64BIT |
| 989 | { "brxhg", 0x44, INSTR_RIE_RRP }, | 1149 | { "brxhg", 0x44, INSTR_RIE_RRP }, |
| 990 | { "brxlg", 0x45, INSTR_RIE_RRP }, | 1150 | { "brxlg", 0x45, INSTR_RIE_RRP }, |
| 1151 | { "crb", 0xf6, INSTR_RRS_RRRDU }, | ||
| 1152 | { "cgrb", 0xe4, INSTR_RRS_RRRDU }, | ||
| 1153 | { "crj", 0x76, INSTR_RIE_RRPU }, | ||
| 1154 | { "cgrj", 0x64, INSTR_RIE_RRPU }, | ||
| 1155 | { "cib", 0xfe, INSTR_RIS_RURDI }, | ||
| 1156 | { "cgib", 0xfc, INSTR_RIS_RURDI }, | ||
| 1157 | { "cij", 0x7e, INSTR_RIE_RUPI }, | ||
| 1158 | { "cgij", 0x7c, INSTR_RIE_RUPI }, | ||
| 1159 | { "cit", 0x72, INSTR_RIE_R0IU }, | ||
| 1160 | { "cgit", 0x70, INSTR_RIE_R0IU }, | ||
| 1161 | { "clrb", 0xf7, INSTR_RRS_RRRDU }, | ||
| 1162 | { "clgrb", 0xe5, INSTR_RRS_RRRDU }, | ||
| 1163 | { "clrj", 0x77, INSTR_RIE_RRPU }, | ||
| 1164 | { "clgrj", 0x65, INSTR_RIE_RRPU }, | ||
| 1165 | { "clib", 0xff, INSTR_RIS_RURDU }, | ||
| 1166 | { "clgib", 0xfd, INSTR_RIS_RURDU }, | ||
| 1167 | { "clij", 0x7f, INSTR_RIE_RUPU }, | ||
| 1168 | { "clgij", 0x7d, INSTR_RIE_RUPU }, | ||
| 1169 | { "clfit", 0x73, INSTR_RIE_R0UU }, | ||
| 1170 | { "clgit", 0x71, INSTR_RIE_R0UU }, | ||
| 1171 | { "rnsbg", 0x54, INSTR_RIE_RRUUU }, | ||
| 1172 | { "rxsbg", 0x57, INSTR_RIE_RRUUU }, | ||
| 1173 | { "rosbg", 0x56, INSTR_RIE_RRUUU }, | ||
| 1174 | { "risbg", 0x55, INSTR_RIE_RRUUU }, | ||
| 991 | #endif | 1175 | #endif |
| 992 | { "", 0, INSTR_INVALID } | 1176 | { "", 0, INSTR_INVALID } |
| 993 | }; | 1177 | }; |
| @@ -1004,6 +1188,16 @@ static struct insn opcode_ed[] = { | |||
| 1004 | { "ldy", 0x65, INSTR_RXY_FRRD }, | 1188 | { "ldy", 0x65, INSTR_RXY_FRRD }, |
| 1005 | { "stey", 0x66, INSTR_RXY_FRRD }, | 1189 | { "stey", 0x66, INSTR_RXY_FRRD }, |
| 1006 | { "stdy", 0x67, INSTR_RXY_FRRD }, | 1190 | { "stdy", 0x67, INSTR_RXY_FRRD }, |
| 1191 | { "sldt", 0x40, INSTR_RXF_FRRDF }, | ||
| 1192 | { "slxt", 0x48, INSTR_RXF_FRRDF }, | ||
| 1193 | { "srdt", 0x41, INSTR_RXF_FRRDF }, | ||
| 1194 | { "srxt", 0x49, INSTR_RXF_FRRDF }, | ||
| 1195 | { "tdcet", 0x50, INSTR_RXE_FRRD }, | ||
| 1196 | { "tdcdt", 0x54, INSTR_RXE_FRRD }, | ||
| 1197 | { "tdcxt", 0x58, INSTR_RXE_FRRD }, | ||
| 1198 | { "tdget", 0x51, INSTR_RXE_FRRD }, | ||
| 1199 | { "tdgdt", 0x55, INSTR_RXE_FRRD }, | ||
| 1200 | { "tdgxt", 0x59, INSTR_RXE_FRRD }, | ||
| 1007 | #endif | 1201 | #endif |
| 1008 | { "ldeb", 0x04, INSTR_RXE_FRRD }, | 1202 | { "ldeb", 0x04, INSTR_RXE_FRRD }, |
| 1009 | { "lxdb", 0x05, INSTR_RXE_FRRD }, | 1203 | { "lxdb", 0x05, INSTR_RXE_FRRD }, |
| @@ -1037,6 +1231,7 @@ static struct insn opcode_ed[] = { | |||
| 1037 | { "mae", 0x2e, INSTR_RXF_FRRDF }, | 1231 | { "mae", 0x2e, INSTR_RXF_FRRDF }, |
| 1038 | { "mse", 0x2f, INSTR_RXF_FRRDF }, | 1232 | { "mse", 0x2f, INSTR_RXF_FRRDF }, |
| 1039 | { "sqe", 0x34, INSTR_RXE_FRRD }, | 1233 | { "sqe", 0x34, INSTR_RXE_FRRD }, |
| 1234 | { "sqd", 0x35, INSTR_RXE_FRRD }, | ||
| 1040 | { "mee", 0x37, INSTR_RXE_FRRD }, | 1235 | { "mee", 0x37, INSTR_RXE_FRRD }, |
| 1041 | { "mad", 0x3e, INSTR_RXF_FRRDF }, | 1236 | { "mad", 0x3e, INSTR_RXF_FRRDF }, |
| 1042 | { "msd", 0x3f, INSTR_RXF_FRRDF }, | 1237 | { "msd", 0x3f, INSTR_RXF_FRRDF }, |
| @@ -1117,6 +1312,12 @@ static struct insn *find_insn(unsigned char *code) | |||
| 1117 | case 0xc2: | 1312 | case 0xc2: |
| 1118 | table = opcode_c2; | 1313 | table = opcode_c2; |
| 1119 | break; | 1314 | break; |
| 1315 | case 0xc4: | ||
| 1316 | table = opcode_c4; | ||
| 1317 | break; | ||
| 1318 | case 0xc6: | ||
| 1319 | table = opcode_c6; | ||
| 1320 | break; | ||
| 1120 | case 0xc8: | 1321 | case 0xc8: |
| 1121 | table = opcode_c8; | 1322 | table = opcode_c8; |
| 1122 | break; | 1323 | break; |
