Changeset 106767 in vbox for trunk/src/VBox/Disassembler
- Timestamp:
- Oct 29, 2024 9:48:34 AM (3 months ago)
- Location:
- trunk/src/VBox/Disassembler
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Disassembler/DisasmTables-armv8-a64-ld-st.cpp.h
r106758 r106767 184 184 185 185 186 /* Atomic memory operations - Byte size variants */ 187 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_DECODER(AtomicMemoryByte) 188 DIS_ARMV8_INSN_DECODE(kDisParmParseGprZr32, 16, 5, 0 /*idxParam*/), 189 DIS_ARMV8_INSN_DECODE(kDisParmParseGprZr32, 0, 5, 1 /*idxParam*/), 190 DIS_ARMV8_INSN_DECODE(kDisParmParseAddrGprSp, 5, 5, 2 /*idxParam*/), 191 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_DECODER_ALTERNATIVE(AtomicMemoryByteThe) 192 DIS_ARMV8_INSN_DECODE(kDisParmParseGprZr64, 16, 5, 0 /*idxParam*/), 193 DIS_ARMV8_INSN_DECODE(kDisParmParseGprZr64, 0, 5, 1 /*idxParam*/), 194 DIS_ARMV8_INSN_DECODE(kDisParmParseAddrGprSp, 5, 5, 2 /*idxParam*/), 195 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_DECODER_ALTERNATIVE(AtomicMemoryByteLrcpc) 196 DIS_ARMV8_INSN_DECODE(kDisParmParseGprZr32, 0, 5, 0 /*idxParam*/), 197 DIS_ARMV8_INSN_DECODE(kDisParmParseAddrGprSp, 5, 5, 1 /*idxParam*/), 198 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_BEGIN(AtomicMemoryByte) 199 DIS_ARMV8_OP( 0x38200000, "ldaddb", OP_ARMV8_A64_LDADDB, DISOPTYPE_HARMLESS), 200 DIS_ARMV8_OP( 0x38201000, "ldclrb", OP_ARMV8_A64_LDCLRB, DISOPTYPE_HARMLESS), 201 DIS_ARMV8_OP( 0x38202000, "ldeorb", OP_ARMV8_A64_LDEORB, DISOPTYPE_HARMLESS), 202 DIS_ARMV8_OP( 0x38203000, "ldsetb", OP_ARMV8_A64_LDSETB, DISOPTYPE_HARMLESS), 203 DIS_ARMV8_OP( 0x38204000, "ldsmaxb", OP_ARMV8_A64_LDSMAXB, DISOPTYPE_HARMLESS), 204 DIS_ARMV8_OP( 0x38205000, "ldsminb", OP_ARMV8_A64_LDSMINB, DISOPTYPE_HARMLESS), 205 DIS_ARMV8_OP( 0x38206000, "ldumaxb", OP_ARMV8_A64_LDUMAXB, DISOPTYPE_HARMLESS), 206 DIS_ARMV8_OP( 0x38207000, "lduminb", OP_ARMV8_A64_LDUMINB, DISOPTYPE_HARMLESS), 207 DIS_ARMV8_OP( 0x38208000, "swpb", OP_ARMV8_A64_SWPB, DISOPTYPE_HARMLESS), 208 DIS_ARMV8_OP_ALT_DECODE(0x38209000, "rcwclr", OP_ARMV8_A64_RCWCLR, DISOPTYPE_HARMLESS, AtomicMemoryByteThe), /* FEAT_THE */ 209 DIS_ARMV8_OP_ALT_DECODE(0x3820a000, "rcwswp", OP_ARMV8_A64_RCWSWP, DISOPTYPE_HARMLESS, AtomicMemoryByteThe), /* FEAT_THE */ 210 DIS_ARMV8_OP_ALT_DECODE(0x3820b000, "rcwset", OP_ARMV8_A64_RCWSET, DISOPTYPE_HARMLESS, AtomicMemoryByteThe), /* FEAT_THE */ 211 INVALID_OPCODE, 212 INVALID_OPCODE, 213 INVALID_OPCODE, 214 INVALID_OPCODE, 215 DIS_ARMV8_OP( 0x38600000, "ldaddlb", OP_ARMV8_A64_LDADDLB, DISOPTYPE_HARMLESS), 216 DIS_ARMV8_OP( 0x38601000, "ldclrlb", OP_ARMV8_A64_LDCLRLB, DISOPTYPE_HARMLESS), 217 DIS_ARMV8_OP( 0x38602000, "ldeorlb", OP_ARMV8_A64_LDEORLB, DISOPTYPE_HARMLESS), 218 DIS_ARMV8_OP( 0x38603000, "ldsetlb", OP_ARMV8_A64_LDSETLB, DISOPTYPE_HARMLESS), 219 DIS_ARMV8_OP( 0x38604000, "ldsmaxlb", OP_ARMV8_A64_LDSMAXLB, DISOPTYPE_HARMLESS), 220 DIS_ARMV8_OP( 0x38605000, "ldsminlb", OP_ARMV8_A64_LDSMINLB, DISOPTYPE_HARMLESS), 221 DIS_ARMV8_OP( 0x38606000, "ldumaxlb", OP_ARMV8_A64_LDUMAXLB, DISOPTYPE_HARMLESS), 222 DIS_ARMV8_OP( 0x38607000, "lduminlb", OP_ARMV8_A64_LDUMINLB, DISOPTYPE_HARMLESS), 223 DIS_ARMV8_OP( 0x38608000, "swplb", OP_ARMV8_A64_SWPLB, DISOPTYPE_HARMLESS), 224 DIS_ARMV8_OP_ALT_DECODE(0x38609000, "rcwclrl", OP_ARMV8_A64_RCWCLRL, DISOPTYPE_HARMLESS, AtomicMemoryByteThe), /* FEAT_THE */ 225 DIS_ARMV8_OP_ALT_DECODE(0x3860a000, "rcwswpl", OP_ARMV8_A64_RCWSWPL, DISOPTYPE_HARMLESS, AtomicMemoryByteThe), /* FEAT_THE */ 226 DIS_ARMV8_OP_ALT_DECODE(0x3860b000, "rcwsetl", OP_ARMV8_A64_RCWSETL, DISOPTYPE_HARMLESS, AtomicMemoryByteThe), /* FEAT_THE */ 227 INVALID_OPCODE, 228 INVALID_OPCODE, 229 INVALID_OPCODE, 230 INVALID_OPCODE, 231 DIS_ARMV8_OP( 0x38a00000, "ldaddab", OP_ARMV8_A64_LDADDAB, DISOPTYPE_HARMLESS), 232 DIS_ARMV8_OP( 0x38a01000, "ldclrab", OP_ARMV8_A64_LDCLRAB, DISOPTYPE_HARMLESS), 233 DIS_ARMV8_OP( 0x38a02000, "ldeorab", OP_ARMV8_A64_LDEORAB, DISOPTYPE_HARMLESS), 234 DIS_ARMV8_OP( 0x38a03000, "ldsetab", OP_ARMV8_A64_LDSETAB, DISOPTYPE_HARMLESS), 235 DIS_ARMV8_OP( 0x38a04000, "ldsmaxab", OP_ARMV8_A64_LDSMAXAB, DISOPTYPE_HARMLESS), 236 DIS_ARMV8_OP( 0x38a05000, "ldsminab", OP_ARMV8_A64_LDSMINAB, DISOPTYPE_HARMLESS), 237 DIS_ARMV8_OP( 0x38a06000, "ldumaxab", OP_ARMV8_A64_LDUMAXAB, DISOPTYPE_HARMLESS), 238 DIS_ARMV8_OP( 0x38a07000, "lduminab", OP_ARMV8_A64_LDUMINAB, DISOPTYPE_HARMLESS), 239 DIS_ARMV8_OP( 0x38a08000, "swpab", OP_ARMV8_A64_SWPAB, DISOPTYPE_HARMLESS), 240 DIS_ARMV8_OP_ALT_DECODE(0x38a09000, "rcwclra", OP_ARMV8_A64_RCWCLRA, DISOPTYPE_HARMLESS, AtomicMemoryByteThe), /* FEAT_THE */ 241 DIS_ARMV8_OP_ALT_DECODE(0x38a0a000, "rcwswpa", OP_ARMV8_A64_RCWSWPA, DISOPTYPE_HARMLESS, AtomicMemoryByteThe), /* FEAT_THE */ 242 DIS_ARMV8_OP_ALT_DECODE(0x38a0b000, "rcwseta", OP_ARMV8_A64_RCWSETA, DISOPTYPE_HARMLESS, AtomicMemoryByteThe), /* FEAT_THE */ 243 DIS_ARMV8_OP_ALT_DECODE(0x38a0c000, "ldaprb", OP_ARMV8_A64_LDAPRB, DISOPTYPE_HARMLESS, AtomicMemoryByteLrcpc), /* FEAT_LRCPC */ /** @todo Rs == 11111 */ 244 INVALID_OPCODE, 245 INVALID_OPCODE, 246 INVALID_OPCODE, 247 DIS_ARMV8_OP( 0x38e00000, "ldaddalb", OP_ARMV8_A64_LDADDALB, DISOPTYPE_HARMLESS), 248 DIS_ARMV8_OP( 0x38e01000, "ldclralb", OP_ARMV8_A64_LDCLRALB, DISOPTYPE_HARMLESS), 249 DIS_ARMV8_OP( 0x38e02000, "ldeoralb", OP_ARMV8_A64_LDEORALB, DISOPTYPE_HARMLESS), 250 DIS_ARMV8_OP( 0x38e03000, "ldsetalb", OP_ARMV8_A64_LDSETALB, DISOPTYPE_HARMLESS), 251 DIS_ARMV8_OP( 0x38e04000, "ldsmaxalb", OP_ARMV8_A64_LDSMAXALB, DISOPTYPE_HARMLESS), 252 DIS_ARMV8_OP( 0x38e05000, "ldsminalb", OP_ARMV8_A64_LDSMINALB, DISOPTYPE_HARMLESS), 253 DIS_ARMV8_OP( 0x38e06000, "ldumaxalb", OP_ARMV8_A64_LDUMAXALB, DISOPTYPE_HARMLESS), 254 DIS_ARMV8_OP( 0x38e07000, "lduminalb", OP_ARMV8_A64_LDUMINALB, DISOPTYPE_HARMLESS), 255 DIS_ARMV8_OP( 0x38e08000, "swpalb", OP_ARMV8_A64_SWPALB, DISOPTYPE_HARMLESS), 256 DIS_ARMV8_OP_ALT_DECODE(0x38e09000, "rcwclral", OP_ARMV8_A64_RCWCLRAL, DISOPTYPE_HARMLESS, AtomicMemoryByteThe), /* FEAT_THE */ 257 DIS_ARMV8_OP_ALT_DECODE(0x38e0a000, "rcwswpal", OP_ARMV8_A64_RCWSWPAL, DISOPTYPE_HARMLESS, AtomicMemoryByteThe), /* FEAT_THE */ 258 DIS_ARMV8_OP_ALT_DECODE(0x38e0b000, "rcwsetal", OP_ARMV8_A64_RCWSETAL, DISOPTYPE_HARMLESS, AtomicMemoryByteThe), /* FEAT_THE */ 259 /* Rest of the encodings is invalid. */ 260 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_END(AtomicMemoryByte, 0xffe0fc00 /*fFixedInsn*/, 261 kDisArmV8OpcDecodeCollate, 262 /* opc */ RT_BIT_32(12) | RT_BIT_32(13) | RT_BIT_32(14) 263 /* o3 */ | RT_BIT_32(15) 264 /* R */ | RT_BIT_32(22) 265 /* A */ | RT_BIT_32(23), 12); 266 267 268 /* Atomic memory operations - Halfword size variants */ 269 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_DECODER(AtomicMemoryHalfword) 270 DIS_ARMV8_INSN_DECODE(kDisParmParseGprZr32, 16, 5, 0 /*idxParam*/), 271 DIS_ARMV8_INSN_DECODE(kDisParmParseGprZr32, 0, 5, 1 /*idxParam*/), 272 DIS_ARMV8_INSN_DECODE(kDisParmParseAddrGprSp, 5, 5, 2 /*idxParam*/), 273 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_DECODER_ALTERNATIVE(AtomicMemoryHalfwordThe) 274 DIS_ARMV8_INSN_DECODE(kDisParmParseGprZr64, 16, 5, 0 /*idxParam*/), 275 DIS_ARMV8_INSN_DECODE(kDisParmParseGprZr64, 0, 5, 1 /*idxParam*/), 276 DIS_ARMV8_INSN_DECODE(kDisParmParseAddrGprSp, 5, 5, 2 /*idxParam*/), 277 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_DECODER_ALTERNATIVE(AtomicMemoryHalfwordLrcpc) 278 DIS_ARMV8_INSN_DECODE(kDisParmParseGprZr32, 0, 5, 0 /*idxParam*/), 279 DIS_ARMV8_INSN_DECODE(kDisParmParseAddrGprSp, 5, 5, 1 /*idxParam*/), 280 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_BEGIN(AtomicMemoryHalfword) 281 DIS_ARMV8_OP( 0x78200000, "ldaddh", OP_ARMV8_A64_LDADDH, DISOPTYPE_HARMLESS), 282 DIS_ARMV8_OP( 0x78201000, "ldclrh", OP_ARMV8_A64_LDCLRH, DISOPTYPE_HARMLESS), 283 DIS_ARMV8_OP( 0x78202000, "ldeorh", OP_ARMV8_A64_LDEORH, DISOPTYPE_HARMLESS), 284 DIS_ARMV8_OP( 0x78203000, "ldseth", OP_ARMV8_A64_LDSETH, DISOPTYPE_HARMLESS), 285 DIS_ARMV8_OP( 0x78204000, "ldsmaxh", OP_ARMV8_A64_LDSMAXH, DISOPTYPE_HARMLESS), 286 DIS_ARMV8_OP( 0x78205000, "ldsminh", OP_ARMV8_A64_LDSMINH, DISOPTYPE_HARMLESS), 287 DIS_ARMV8_OP( 0x78206000, "ldumaxh", OP_ARMV8_A64_LDUMAXH, DISOPTYPE_HARMLESS), 288 DIS_ARMV8_OP( 0x78207000, "lduminh", OP_ARMV8_A64_LDUMINH, DISOPTYPE_HARMLESS), 289 DIS_ARMV8_OP( 0x78208000, "swph", OP_ARMV8_A64_SWPH, DISOPTYPE_HARMLESS), 290 DIS_ARMV8_OP_ALT_DECODE(0x78209000, "rcwsclr", OP_ARMV8_A64_RCWSCLR, DISOPTYPE_HARMLESS, AtomicMemoryHalfwordThe), /* FEAT_THE */ 291 DIS_ARMV8_OP_ALT_DECODE(0x7820a000, "rcwsswp", OP_ARMV8_A64_RCWSSWP, DISOPTYPE_HARMLESS, AtomicMemoryHalfwordThe), /* FEAT_THE */ 292 DIS_ARMV8_OP_ALT_DECODE(0x7820b000, "rcwsset", OP_ARMV8_A64_RCWSSET, DISOPTYPE_HARMLESS, AtomicMemoryHalfwordThe), /* FEAT_THE */ 293 INVALID_OPCODE, 294 INVALID_OPCODE, 295 INVALID_OPCODE, 296 INVALID_OPCODE, 297 DIS_ARMV8_OP( 0x78600000, "ldaddlh", OP_ARMV8_A64_LDADDLH, DISOPTYPE_HARMLESS), 298 DIS_ARMV8_OP( 0x78601000, "ldclrlh", OP_ARMV8_A64_LDCLRLH, DISOPTYPE_HARMLESS), 299 DIS_ARMV8_OP( 0x78602000, "ldeorlh", OP_ARMV8_A64_LDEORLH, DISOPTYPE_HARMLESS), 300 DIS_ARMV8_OP( 0x78603000, "ldsetlh", OP_ARMV8_A64_LDSETLH, DISOPTYPE_HARMLESS), 301 DIS_ARMV8_OP( 0x78604000, "ldsmaxlh", OP_ARMV8_A64_LDSMAXLH, DISOPTYPE_HARMLESS), 302 DIS_ARMV8_OP( 0x78605000, "ldsminlh", OP_ARMV8_A64_LDSMINLH, DISOPTYPE_HARMLESS), 303 DIS_ARMV8_OP( 0x78606000, "ldumaxlh", OP_ARMV8_A64_LDUMAXLH, DISOPTYPE_HARMLESS), 304 DIS_ARMV8_OP( 0x78607000, "lduminlh", OP_ARMV8_A64_LDUMINLH, DISOPTYPE_HARMLESS), 305 DIS_ARMV8_OP( 0x78608000, "swplh", OP_ARMV8_A64_SWPLH, DISOPTYPE_HARMLESS), 306 DIS_ARMV8_OP_ALT_DECODE(0x78609000, "rcwsclrl", OP_ARMV8_A64_RCWSCLRL, DISOPTYPE_HARMLESS, AtomicMemoryHalfwordThe), /* FEAT_THE */ 307 DIS_ARMV8_OP_ALT_DECODE(0x7860a000, "rcwsswpl", OP_ARMV8_A64_RCWSSWPL, DISOPTYPE_HARMLESS, AtomicMemoryHalfwordThe), /* FEAT_THE */ 308 DIS_ARMV8_OP_ALT_DECODE(0x7860b000, "rcwssetl", OP_ARMV8_A64_RCWSSETL, DISOPTYPE_HARMLESS, AtomicMemoryHalfwordThe), /* FEAT_THE */ 309 INVALID_OPCODE, 310 INVALID_OPCODE, 311 INVALID_OPCODE, 312 INVALID_OPCODE, 313 DIS_ARMV8_OP( 0x78a00000, "ldaddah", OP_ARMV8_A64_LDADDAH, DISOPTYPE_HARMLESS), 314 DIS_ARMV8_OP( 0x78a01000, "ldclrah", OP_ARMV8_A64_LDCLRAH, DISOPTYPE_HARMLESS), 315 DIS_ARMV8_OP( 0x78a02000, "ldeorah", OP_ARMV8_A64_LDEORAH, DISOPTYPE_HARMLESS), 316 DIS_ARMV8_OP( 0x78a03000, "ldsetah", OP_ARMV8_A64_LDSETAH, DISOPTYPE_HARMLESS), 317 DIS_ARMV8_OP( 0x78a04000, "ldsmaxah", OP_ARMV8_A64_LDSMAXAH, DISOPTYPE_HARMLESS), 318 DIS_ARMV8_OP( 0x78a05000, "ldsminah", OP_ARMV8_A64_LDSMINAH, DISOPTYPE_HARMLESS), 319 DIS_ARMV8_OP( 0x78a06000, "ldumaxah", OP_ARMV8_A64_LDUMAXAH, DISOPTYPE_HARMLESS), 320 DIS_ARMV8_OP( 0x78a07000, "lduminah", OP_ARMV8_A64_LDUMINAH, DISOPTYPE_HARMLESS), 321 DIS_ARMV8_OP( 0x78a08000, "swpah", OP_ARMV8_A64_SWPAH, DISOPTYPE_HARMLESS), 322 DIS_ARMV8_OP_ALT_DECODE(0x78a09000, "rcwsclra", OP_ARMV8_A64_RCWSCLRA, DISOPTYPE_HARMLESS, AtomicMemoryHalfwordThe), /* FEAT_THE */ 323 DIS_ARMV8_OP_ALT_DECODE(0x78a0a000, "rcwsswpa", OP_ARMV8_A64_RCWSSWPA, DISOPTYPE_HARMLESS, AtomicMemoryHalfwordThe), /* FEAT_THE */ 324 DIS_ARMV8_OP_ALT_DECODE(0x78a0b000, "rcwsseta", OP_ARMV8_A64_RCWSSETA, DISOPTYPE_HARMLESS, AtomicMemoryHalfwordThe), /* FEAT_THE */ 325 DIS_ARMV8_OP_ALT_DECODE(0x78a0c000, "ldaprh", OP_ARMV8_A64_LDAPRH, DISOPTYPE_HARMLESS, AtomicMemoryHalfwordLrcpc), /* FEAT_LRCPC */ /** @todo Rs == 11111 */ 326 INVALID_OPCODE, 327 INVALID_OPCODE, 328 INVALID_OPCODE, 329 DIS_ARMV8_OP( 0x78e00000, "ldaddalh", OP_ARMV8_A64_LDADDALH, DISOPTYPE_HARMLESS), 330 DIS_ARMV8_OP( 0x78e01000, "ldclralh", OP_ARMV8_A64_LDCLRALH, DISOPTYPE_HARMLESS), 331 DIS_ARMV8_OP( 0x78e02000, "ldeoralh", OP_ARMV8_A64_LDEORALH, DISOPTYPE_HARMLESS), 332 DIS_ARMV8_OP( 0x78e03000, "ldsetalh", OP_ARMV8_A64_LDSETALH, DISOPTYPE_HARMLESS), 333 DIS_ARMV8_OP( 0x78e04000, "ldsmaxalh", OP_ARMV8_A64_LDSMAXALH, DISOPTYPE_HARMLESS), 334 DIS_ARMV8_OP( 0x78e05000, "ldsminalh", OP_ARMV8_A64_LDSMINALH, DISOPTYPE_HARMLESS), 335 DIS_ARMV8_OP( 0x78e06000, "ldumaxalh", OP_ARMV8_A64_LDUMAXALH, DISOPTYPE_HARMLESS), 336 DIS_ARMV8_OP( 0x78e07000, "lduminalh", OP_ARMV8_A64_LDUMINALH, DISOPTYPE_HARMLESS), 337 DIS_ARMV8_OP( 0x78e08000, "swpalh", OP_ARMV8_A64_SWPALH, DISOPTYPE_HARMLESS), 338 DIS_ARMV8_OP_ALT_DECODE(0x78e09000, "rcwsclral", OP_ARMV8_A64_RCWSCLRAL, DISOPTYPE_HARMLESS, AtomicMemoryHalfwordThe), /* FEAT_THE */ 339 DIS_ARMV8_OP_ALT_DECODE(0x78e0a000, "rcwsswpal", OP_ARMV8_A64_RCWSSWPAL, DISOPTYPE_HARMLESS, AtomicMemoryHalfwordThe), /* FEAT_THE */ 340 DIS_ARMV8_OP_ALT_DECODE(0x78e0b000, "rcwssetal", OP_ARMV8_A64_RCWSSETAL, DISOPTYPE_HARMLESS, AtomicMemoryHalfwordThe), /* FEAT_THE */ 341 /* Rest of the encodings is invalid. */ 342 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_END(AtomicMemoryHalfword, 0xffe0fc00 /*fFixedInsn*/, 343 kDisArmV8OpcDecodeCollate, 344 /* opc */ RT_BIT_32(12) | RT_BIT_32(13) | RT_BIT_32(14) 345 /* o3 */ | RT_BIT_32(15) 346 /* R */ | RT_BIT_32(22) 347 /* A */ | RT_BIT_32(23), 12); 348 349 350 /* Atomic memory operations - Word size variants */ 351 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_DECODER(AtomicMemoryWord) 352 DIS_ARMV8_INSN_DECODE(kDisParmParseGprZr32, 16, 5, 0 /*idxParam*/), 353 DIS_ARMV8_INSN_DECODE(kDisParmParseGprZr32, 0, 5, 1 /*idxParam*/), 354 DIS_ARMV8_INSN_DECODE(kDisParmParseAddrGprSp, 5, 5, 2 /*idxParam*/), 355 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_DECODER_ALTERNATIVE(AtomicMemoryWordLrcpc) 356 DIS_ARMV8_INSN_DECODE(kDisParmParseGprZr32, 0, 5, 0 /*idxParam*/), 357 DIS_ARMV8_INSN_DECODE(kDisParmParseAddrGprSp, 5, 5, 1 /*idxParam*/), 358 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_BEGIN(AtomicMemoryWord) 359 DIS_ARMV8_OP( 0xb8200000, "ldadd", OP_ARMV8_A64_LDADD, DISOPTYPE_HARMLESS), 360 DIS_ARMV8_OP( 0xb8201000, "ldclr", OP_ARMV8_A64_LDCLR, DISOPTYPE_HARMLESS), 361 DIS_ARMV8_OP( 0xb8202000, "ldeor", OP_ARMV8_A64_LDEOR, DISOPTYPE_HARMLESS), 362 DIS_ARMV8_OP( 0xb8203000, "ldset", OP_ARMV8_A64_LDSET, DISOPTYPE_HARMLESS), 363 DIS_ARMV8_OP( 0xb8204000, "ldsmax", OP_ARMV8_A64_LDSMAX, DISOPTYPE_HARMLESS), 364 DIS_ARMV8_OP( 0xb8205000, "ldsmin", OP_ARMV8_A64_LDSMIN, DISOPTYPE_HARMLESS), 365 DIS_ARMV8_OP( 0xb8206000, "ldumax", OP_ARMV8_A64_LDUMAX, DISOPTYPE_HARMLESS), 366 DIS_ARMV8_OP( 0xb8207000, "ldumin", OP_ARMV8_A64_LDUMIN, DISOPTYPE_HARMLESS), 367 DIS_ARMV8_OP( 0xb8208000, "swp", OP_ARMV8_A64_SWP, DISOPTYPE_HARMLESS), 368 INVALID_OPCODE, 369 INVALID_OPCODE, 370 INVALID_OPCODE, 371 INVALID_OPCODE, 372 INVALID_OPCODE, 373 INVALID_OPCODE, 374 INVALID_OPCODE, 375 DIS_ARMV8_OP( 0xb8600000, "ldaddl", OP_ARMV8_A64_LDADDL, DISOPTYPE_HARMLESS), 376 DIS_ARMV8_OP( 0xb8601000, "ldclrl", OP_ARMV8_A64_LDCLRL, DISOPTYPE_HARMLESS), 377 DIS_ARMV8_OP( 0xb8602000, "ldeorl", OP_ARMV8_A64_LDEORL, DISOPTYPE_HARMLESS), 378 DIS_ARMV8_OP( 0xb8603000, "ldsetl", OP_ARMV8_A64_LDSETL, DISOPTYPE_HARMLESS), 379 DIS_ARMV8_OP( 0xb8604000, "ldsmaxl", OP_ARMV8_A64_LDSMAXL, DISOPTYPE_HARMLESS), 380 DIS_ARMV8_OP( 0xb8605000, "ldsminl", OP_ARMV8_A64_LDSMINL, DISOPTYPE_HARMLESS), 381 DIS_ARMV8_OP( 0xb8606000, "ldumaxl", OP_ARMV8_A64_LDUMAXL, DISOPTYPE_HARMLESS), 382 DIS_ARMV8_OP( 0xb8607000, "lduminl", OP_ARMV8_A64_LDUMINL, DISOPTYPE_HARMLESS), 383 DIS_ARMV8_OP( 0xb8608000, "swpl", OP_ARMV8_A64_SWPL, DISOPTYPE_HARMLESS), 384 INVALID_OPCODE, 385 INVALID_OPCODE, 386 INVALID_OPCODE, 387 INVALID_OPCODE, 388 INVALID_OPCODE, 389 INVALID_OPCODE, 390 INVALID_OPCODE, 391 DIS_ARMV8_OP( 0xb8a00000, "ldadda", OP_ARMV8_A64_LDADDA, DISOPTYPE_HARMLESS), 392 DIS_ARMV8_OP( 0xb8a01000, "ldclra", OP_ARMV8_A64_LDCLRA, DISOPTYPE_HARMLESS), 393 DIS_ARMV8_OP( 0xb8a02000, "ldeora", OP_ARMV8_A64_LDEORA, DISOPTYPE_HARMLESS), 394 DIS_ARMV8_OP( 0xb8a03000, "ldseta", OP_ARMV8_A64_LDSETA, DISOPTYPE_HARMLESS), 395 DIS_ARMV8_OP( 0xb8a04000, "ldsmaxa", OP_ARMV8_A64_LDSMAXA, DISOPTYPE_HARMLESS), 396 DIS_ARMV8_OP( 0xb8a05000, "ldsmina", OP_ARMV8_A64_LDSMINA, DISOPTYPE_HARMLESS), 397 DIS_ARMV8_OP( 0xb8a06000, "ldumaxa", OP_ARMV8_A64_LDUMAXA, DISOPTYPE_HARMLESS), 398 DIS_ARMV8_OP( 0xb8a07000, "ldumina", OP_ARMV8_A64_LDUMINA, DISOPTYPE_HARMLESS), 399 DIS_ARMV8_OP( 0xb8a08000, "swpa", OP_ARMV8_A64_SWPA, DISOPTYPE_HARMLESS), 400 INVALID_OPCODE, 401 INVALID_OPCODE, 402 INVALID_OPCODE, 403 DIS_ARMV8_OP_ALT_DECODE(0xb8a0c000, "ldapr", OP_ARMV8_A64_LDAPR, DISOPTYPE_HARMLESS, AtomicMemoryWordLrcpc), /* FEAT_LRCPC */ /** @todo Rs == 11111 */ 404 INVALID_OPCODE, 405 INVALID_OPCODE, 406 INVALID_OPCODE, 407 DIS_ARMV8_OP( 0xb8e00000, "ldaddal", OP_ARMV8_A64_LDADDAL, DISOPTYPE_HARMLESS), 408 DIS_ARMV8_OP( 0xb8e01000, "ldclral", OP_ARMV8_A64_LDCLRAL, DISOPTYPE_HARMLESS), 409 DIS_ARMV8_OP( 0xb8e02000, "ldeoral", OP_ARMV8_A64_LDEORAL, DISOPTYPE_HARMLESS), 410 DIS_ARMV8_OP( 0xb8e03000, "ldsetal", OP_ARMV8_A64_LDSETAL, DISOPTYPE_HARMLESS), 411 DIS_ARMV8_OP( 0xb8e04000, "ldsmaxal", OP_ARMV8_A64_LDSMAXAL, DISOPTYPE_HARMLESS), 412 DIS_ARMV8_OP( 0xb8e05000, "ldsminal", OP_ARMV8_A64_LDSMINAL, DISOPTYPE_HARMLESS), 413 DIS_ARMV8_OP( 0xb8e06000, "ldumaxal", OP_ARMV8_A64_LDUMAXAL, DISOPTYPE_HARMLESS), 414 DIS_ARMV8_OP( 0xb8e07000, "lduminal", OP_ARMV8_A64_LDUMINAL, DISOPTYPE_HARMLESS), 415 DIS_ARMV8_OP( 0xb8e08000, "swpal", OP_ARMV8_A64_SWPAL, DISOPTYPE_HARMLESS), 416 /* Rest of the encodings is invalid. */ 417 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_END(AtomicMemoryWord, 0xffe0fc00 /*fFixedInsn*/, 418 kDisArmV8OpcDecodeCollate, 419 /* opc */ RT_BIT_32(12) | RT_BIT_32(13) | RT_BIT_32(14) 420 /* o3 */ | RT_BIT_32(15) 421 /* R */ | RT_BIT_32(22) 422 /* A */ | RT_BIT_32(23), 12); 423 424 425 /* Atomic memory operations - Word size variants */ 426 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_DECODER(AtomicMemoryDWord) 427 DIS_ARMV8_INSN_DECODE(kDisParmParseGprZr64, 16, 5, 0 /*idxParam*/), 428 DIS_ARMV8_INSN_DECODE(kDisParmParseGprZr64, 0, 5, 1 /*idxParam*/), 429 DIS_ARMV8_INSN_DECODE(kDisParmParseAddrGprSp, 5, 5, 2 /*idxParam*/), 430 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_DECODER_ALTERNATIVE(AtomicMemoryDWordLrcpc) 431 DIS_ARMV8_INSN_DECODE(kDisParmParseGprZr64, 0, 5, 0 /*idxParam*/), 432 DIS_ARMV8_INSN_DECODE(kDisParmParseAddrGprSp, 5, 5, 1 /*idxParam*/), 433 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_BEGIN(AtomicMemoryDWord) 434 DIS_ARMV8_OP( 0xf8200000, "ldadd", OP_ARMV8_A64_LDADD, DISOPTYPE_HARMLESS), 435 DIS_ARMV8_OP( 0xf8201000, "ldclr", OP_ARMV8_A64_LDCLR, DISOPTYPE_HARMLESS), 436 DIS_ARMV8_OP( 0xf8202000, "ldeor", OP_ARMV8_A64_LDEOR, DISOPTYPE_HARMLESS), 437 DIS_ARMV8_OP( 0xf8203000, "ldset", OP_ARMV8_A64_LDSET, DISOPTYPE_HARMLESS), 438 DIS_ARMV8_OP( 0xf8204000, "ldsmax", OP_ARMV8_A64_LDSMAX, DISOPTYPE_HARMLESS), 439 DIS_ARMV8_OP( 0xf8205000, "ldsmin", OP_ARMV8_A64_LDSMIN, DISOPTYPE_HARMLESS), 440 DIS_ARMV8_OP( 0xf8206000, "ldumax", OP_ARMV8_A64_LDUMAX, DISOPTYPE_HARMLESS), 441 DIS_ARMV8_OP( 0xf8207000, "ldumin", OP_ARMV8_A64_LDUMIN, DISOPTYPE_HARMLESS), 442 DIS_ARMV8_OP( 0xf8208000, "swp", OP_ARMV8_A64_SWP, DISOPTYPE_HARMLESS), 443 INVALID_OPCODE, 444 INVALID_OPCODE, 445 INVALID_OPCODE, 446 INVALID_OPCODE, 447 INVALID_OPCODE, 448 INVALID_OPCODE, 449 INVALID_OPCODE, 450 DIS_ARMV8_OP( 0xf8600000, "ldaddl", OP_ARMV8_A64_LDADDL, DISOPTYPE_HARMLESS), 451 DIS_ARMV8_OP( 0xf8601000, "ldclrl", OP_ARMV8_A64_LDCLRL, DISOPTYPE_HARMLESS), 452 DIS_ARMV8_OP( 0xf8602000, "ldeorl", OP_ARMV8_A64_LDEORL, DISOPTYPE_HARMLESS), 453 DIS_ARMV8_OP( 0xf8603000, "ldsetl", OP_ARMV8_A64_LDSETL, DISOPTYPE_HARMLESS), 454 DIS_ARMV8_OP( 0xf8604000, "ldsmaxl", OP_ARMV8_A64_LDSMAXL, DISOPTYPE_HARMLESS), 455 DIS_ARMV8_OP( 0xf8605000, "ldsminl", OP_ARMV8_A64_LDSMINL, DISOPTYPE_HARMLESS), 456 DIS_ARMV8_OP( 0xf8606000, "ldumaxl", OP_ARMV8_A64_LDUMAXL, DISOPTYPE_HARMLESS), 457 DIS_ARMV8_OP( 0xf8607000, "lduminl", OP_ARMV8_A64_LDUMINL, DISOPTYPE_HARMLESS), 458 DIS_ARMV8_OP( 0xf8608000, "swpl", OP_ARMV8_A64_SWPL, DISOPTYPE_HARMLESS), 459 INVALID_OPCODE, /** @todo ST64B - FEAT_LS64 */ 460 INVALID_OPCODE, /** @todo ST64BV0 - FEAT_LS64_ACCDATA */ 461 INVALID_OPCODE, /** @todo ST64BV - FEAT_LS64_V */ 462 INVALID_OPCODE, 463 INVALID_OPCODE, /** @todo LD64B - FEAT_LS64 */ 464 INVALID_OPCODE, 465 INVALID_OPCODE, 466 DIS_ARMV8_OP( 0xf8a00000, "ldadda", OP_ARMV8_A64_LDADDA, DISOPTYPE_HARMLESS), 467 DIS_ARMV8_OP( 0xf8a01000, "ldclra", OP_ARMV8_A64_LDCLRA, DISOPTYPE_HARMLESS), 468 DIS_ARMV8_OP( 0xf8a02000, "ldeora", OP_ARMV8_A64_LDEORA, DISOPTYPE_HARMLESS), 469 DIS_ARMV8_OP( 0xf8a03000, "ldseta", OP_ARMV8_A64_LDSETA, DISOPTYPE_HARMLESS), 470 DIS_ARMV8_OP( 0xf8a04000, "ldsmaxa", OP_ARMV8_A64_LDSMAXA, DISOPTYPE_HARMLESS), 471 DIS_ARMV8_OP( 0xf8a05000, "ldsmina", OP_ARMV8_A64_LDSMINA, DISOPTYPE_HARMLESS), 472 DIS_ARMV8_OP( 0xf8a06000, "ldumaxa", OP_ARMV8_A64_LDUMAXA, DISOPTYPE_HARMLESS), 473 DIS_ARMV8_OP( 0xf8a07000, "ldumina", OP_ARMV8_A64_LDUMINA, DISOPTYPE_HARMLESS), 474 DIS_ARMV8_OP( 0xf8a08000, "swpa", OP_ARMV8_A64_SWPA, DISOPTYPE_HARMLESS), 475 INVALID_OPCODE, 476 INVALID_OPCODE, 477 INVALID_OPCODE, 478 DIS_ARMV8_OP_ALT_DECODE(0xf8a0c000, "ldapr", OP_ARMV8_A64_LDAPR, DISOPTYPE_HARMLESS, AtomicMemoryDWordLrcpc), /* FEAT_LRCPC */ /** @todo Rs == 11111 */ 479 INVALID_OPCODE, 480 INVALID_OPCODE, 481 INVALID_OPCODE, 482 DIS_ARMV8_OP( 0xf8e00000, "ldaddal", OP_ARMV8_A64_LDADDAL, DISOPTYPE_HARMLESS), 483 DIS_ARMV8_OP( 0xf8e01000, "ldclral", OP_ARMV8_A64_LDCLRAL, DISOPTYPE_HARMLESS), 484 DIS_ARMV8_OP( 0xf8e02000, "ldeoral", OP_ARMV8_A64_LDEORAL, DISOPTYPE_HARMLESS), 485 DIS_ARMV8_OP( 0xf8e03000, "ldsetal", OP_ARMV8_A64_LDSETAL, DISOPTYPE_HARMLESS), 486 DIS_ARMV8_OP( 0xf8e04000, "ldsmaxal", OP_ARMV8_A64_LDSMAXAL, DISOPTYPE_HARMLESS), 487 DIS_ARMV8_OP( 0xf8e05000, "ldsminal", OP_ARMV8_A64_LDSMINAL, DISOPTYPE_HARMLESS), 488 DIS_ARMV8_OP( 0xf8e06000, "ldumaxal", OP_ARMV8_A64_LDUMAXAL, DISOPTYPE_HARMLESS), 489 DIS_ARMV8_OP( 0xf8e07000, "lduminal", OP_ARMV8_A64_LDUMINAL, DISOPTYPE_HARMLESS), 490 DIS_ARMV8_OP( 0xf8e08000, "swpal", OP_ARMV8_A64_SWPAL, DISOPTYPE_HARMLESS), 491 /* Rest of the encodings is invalid. */ 492 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_END(AtomicMemoryDWord, 0xffe0fc00 /*fFixedInsn*/, 493 kDisArmV8OpcDecodeCollate, 494 /* opc */ RT_BIT_32(12) | RT_BIT_32(13) | RT_BIT_32(14) 495 /* o3 */ | RT_BIT_32(15) 496 /* R */ | RT_BIT_32(22) 497 /* A */ | RT_BIT_32(23), 12); 498 499 500 /* 501 * C4.1.94.29 - Loads and Stores - Atomic memory oeprations 502 * 503 * Differentiate further based on the size field. 504 */ 505 DIS_ARMV8_DECODE_MAP_DEFINE_BEGIN(AtomicMemory) 506 DIS_ARMV8_DECODE_MAP_ENTRY(AtomicMemoryByte), 507 DIS_ARMV8_DECODE_MAP_ENTRY(AtomicMemoryHalfword), 508 DIS_ARMV8_DECODE_MAP_ENTRY(AtomicMemoryWord), 509 DIS_ARMV8_DECODE_MAP_ENTRY(AtomicMemoryDWord), 510 DIS_ARMV8_DECODE_MAP_DEFINE_END(AtomicMemory, RT_BIT_32(30) | RT_BIT_32(31), 30); 511 512 186 513 /* 187 514 * C4.1.94 - Loads and Stores - Load/Store register variants … … 197 524 */ 198 525 DIS_ARMV8_DECODE_MAP_DEFINE_BEGIN(LdStRegOp2_11_1) 199 DIS_ARMV8_DECODE_MAP_ INVALID_ENTRY, /** @todo */526 DIS_ARMV8_DECODE_MAP_ENTRY(AtomicMemory), 200 527 DIS_ARMV8_DECODE_MAP_ENTRY(LdStRegPac), 201 528 DIS_ARMV8_DECODE_MAP_ENTRY(LdStRegOff), -
trunk/src/VBox/Disassembler/testcase/tstDisasmArmv8-1-asm.S
r106760 r106767 3090 3090 ;cnt x0, x1 - Requires FEAT_CSSC 3091 3091 3092 3093 ; Atomic memory operations 3094 3095 ldaddb w1, w2, [x0] 3096 ldaddb wzr, wzr, [sp] 3097 3098 ldclrb w1, w2, [x0] 3099 ldclrb wzr, wzr, [sp] 3100 3101 ldeorb w1, w2, [x0] 3102 ldeorb wzr, wzr, [sp] 3103 3104 ldsetb w1, w2, [x0] 3105 ldsetb wzr, wzr, [sp] 3106 3107 ldsmaxb w1, w2, [x0] 3108 ldsmaxb wzr, wzr, [sp] 3109 3110 ldsminb w1, w2, [x0] 3111 ldsminb wzr, wzr, [sp] 3112 3113 ldumaxb w1, w2, [x0] 3114 ldumaxb wzr, wzr, [sp] 3115 3116 lduminb w1, w2, [x0] 3117 lduminb wzr, wzr, [sp] 3118 3119 swpb w1, w2, [x0] 3120 swpb wzr, wzr, [sp] 3121 3122 ;rcwclr x1, x2, [x0] - Requires FEAT_THE 3123 ;rcwclr xzr, xzr, [sp] - Requires FEAT_THE 3124 3125 ;rcwswp x1, x2, [x0] - Requires FEAT_THE 3126 ;rcwswp xzr, xzr, [sp] - Requires FEAT_THE 3127 3128 ;rcwset x1, x2, [x0] - Requires FEAT_THE 3129 ;rcwset xzr, xzr, [sp] - Requires FEAT_THE 3130 3131 ldaddlb w1, w2, [x0] 3132 ldaddlb wzr, wzr, [sp] 3133 3134 ldclrlb w1, w2, [x0] 3135 ldclrlb wzr, wzr, [sp] 3136 3137 ldeorlb w1, w2, [x0] 3138 ldeorlb wzr, wzr, [sp] 3139 3140 ldsetlb w1, w2, [x0] 3141 ldsetlb wzr, wzr, [sp] 3142 3143 ldsmaxlb w1, w2, [x0] 3144 ldsmaxlb wzr, wzr, [sp] 3145 3146 ldsminlb w1, w2, [x0] 3147 ldsminlb wzr, wzr, [sp] 3148 3149 ldumaxlb w1, w2, [x0] 3150 ldumaxlb wzr, wzr, [sp] 3151 3152 lduminlb w1, w2, [x0] 3153 lduminlb wzr, wzr, [sp] 3154 3155 swplb w1, w2, [x0] 3156 swplb wzr, wzr, [sp] 3157 3158 ;rcwclrl x1, x2, [x0] - Requires FEAT_THE 3159 ;rcwclrl xzr, xzr, [sp] - Requires FEAT_THE 3160 3161 ;rcwswpl x1, x2, [x0] - Requires FEAT_THE 3162 ;rcwswpl xzr, xzr, [sp] - Requires FEAT_THE 3163 3164 ;rcwsetl x1, x2, [x0] - Requires FEAT_THE 3165 ;rcwsetl xzr, xzr, [sp] - Requires FEAT_THE 3166 3167 ldaddab w1, w2, [x0] 3168 ldaddab wzr, wzr, [sp] 3169 3170 ldclrab w1, w2, [x0] 3171 ldclrab wzr, wzr, [sp] 3172 3173 ldeorab w1, w2, [x0] 3174 ldeorab wzr, wzr, [sp] 3175 3176 ldsetab w1, w2, [x0] 3177 ldsetab wzr, wzr, [sp] 3178 3179 ldsmaxab w1, w2, [x0] 3180 ldsmaxab wzr, wzr, [sp] 3181 3182 ldsminab w1, w2, [x0] 3183 ldsminab wzr, wzr, [sp] 3184 3185 ldumaxab w1, w2, [x0] 3186 ldumaxab wzr, wzr, [sp] 3187 3188 lduminab w1, w2, [x0] 3189 lduminab wzr, wzr, [sp] 3190 3191 swpab w1, w2, [x0] 3192 swpab wzr, wzr, [sp] 3193 3194 ;rcwclra x1, x2, [x0] - Requires FEAT_THE 3195 ;rcwclra xzr, xzr, [sp] - Requires FEAT_THE 3196 3197 ;rcwswpa x1, x2, [x0] - Requires FEAT_THE 3198 ;rcwswpa xzr, xzr, [sp] - Requires FEAT_THE 3199 3200 ;rcwseta x1, x2, [x0] - Requires FEAT_THE 3201 ;rcwseta xzr, xzr, [sp] - Requires FEAT_THE 3202 3203 ldaprb w0, [x1] 3204 ldaprb wzr, [sp] 3205 3206 ldaddalb w1, w2, [x0] 3207 ldaddalb wzr, wzr, [sp] 3208 3209 ldclralb w1, w2, [x0] 3210 ldclralb wzr, wzr, [sp] 3211 3212 ldeoralb w1, w2, [x0] 3213 ldeoralb wzr, wzr, [sp] 3214 3215 ldsetalb w1, w2, [x0] 3216 ldsetalb wzr, wzr, [sp] 3217 3218 ldsmaxalb w1, w2, [x0] 3219 ldsmaxalb wzr, wzr, [sp] 3220 3221 ldsminalb w1, w2, [x0] 3222 ldsminalb wzr, wzr, [sp] 3223 3224 ldumaxalb w1, w2, [x0] 3225 ldumaxalb wzr, wzr, [sp] 3226 3227 lduminalb w1, w2, [x0] 3228 lduminalb wzr, wzr, [sp] 3229 3230 swpalb w1, w2, [x0] 3231 swpalb wzr, wzr, [sp] 3232 3233 ;rcwclral x1, x2, [x0] - Requires FEAT_THE 3234 ;rcwclral xzr, xzr, [sp] - Requires FEAT_THE 3235 3236 ;rcwswpal x1, x2, [x0] - Requires FEAT_THE 3237 ;rcwswpal xzr, xzr, [sp] - Requires FEAT_THE 3238 3239 ;rcwsetal x1, x2, [x0] - Requires FEAT_THE 3240 ;rcwsetal xzr, xzr, [sp] - Requires FEAT_THE 3241 3242 ldaddh w1, w2, [x0] 3243 ldaddh wzr, wzr, [sp] 3244 3245 ldclrh w1, w2, [x0] 3246 ldclrh wzr, wzr, [sp] 3247 3248 ldeorh w1, w2, [x0] 3249 ldeorh wzr, wzr, [sp] 3250 3251 ldseth w1, w2, [x0] 3252 ldseth wzr, wzr, [sp] 3253 3254 ldsmaxh w1, w2, [x0] 3255 ldsmaxh wzr, wzr, [sp] 3256 3257 ldsminh w1, w2, [x0] 3258 ldsminh wzr, wzr, [sp] 3259 3260 ldumaxh w1, w2, [x0] 3261 ldumaxh wzr, wzr, [sp] 3262 3263 lduminh w1, w2, [x0] 3264 lduminh wzr, wzr, [sp] 3265 3266 swph w1, w2, [x0] 3267 swph wzr, wzr, [sp] 3268 3269 ;rcwsclr x1, x2, [x0] - Requires FEAT_THE 3270 ;rcwsclr xzr, xzr, [sp] - Requires FEAT_THE 3271 3272 ;rcwsswp x1, x2, [x0] - Requires FEAT_THE 3273 ;rcwsswp xzr, xzr, [sp] - Requires FEAT_THE 3274 3275 ;rcwsset x1, x2, [x0] - Requires FEAT_THE 3276 ;rcwsset xzr, xzr, [sp] - Requires FEAT_THE 3277 3278 ldaddlh w1, w2, [x0] 3279 ldaddlh wzr, wzr, [sp] 3280 3281 ldclrlh w1, w2, [x0] 3282 ldclrlh wzr, wzr, [sp] 3283 3284 ldeorlh w1, w2, [x0] 3285 ldeorlh wzr, wzr, [sp] 3286 3287 ldsetlh w1, w2, [x0] 3288 ldsetlh wzr, wzr, [sp] 3289 3290 ldsmaxlh w1, w2, [x0] 3291 ldsmaxlh wzr, wzr, [sp] 3292 3293 ldsminlh w1, w2, [x0] 3294 ldsminlh wzr, wzr, [sp] 3295 3296 ldumaxlh w1, w2, [x0] 3297 ldumaxlh wzr, wzr, [sp] 3298 3299 lduminlh w1, w2, [x0] 3300 lduminlh wzr, wzr, [sp] 3301 3302 swplh w1, w2, [x0] 3303 swplh wzr, wzr, [sp] 3304 3305 ;rcwsclrl x1, x2, [x0] - Requires FEAT_THE 3306 ;rcwsclrl xzr, xzr, [sp] - Requires FEAT_THE 3307 3308 ;rcwsswpl x1, x2, [x0] - Requires FEAT_THE 3309 ;rcwsswpl xzr, xzr, [sp] - Requires FEAT_THE 3310 3311 ;rcwssetl x1, x2, [x0] - Requires FEAT_THE 3312 ;rcwssetl xzr, xzr, [sp] - Requires FEAT_THE 3313 3314 ldaddah w1, w2, [x0] 3315 ldaddah wzr, wzr, [sp] 3316 3317 ldclrah w1, w2, [x0] 3318 ldclrah wzr, wzr, [sp] 3319 3320 ldeorah w1, w2, [x0] 3321 ldeorah wzr, wzr, [sp] 3322 3323 ldsetah w1, w2, [x0] 3324 ldsetah wzr, wzr, [sp] 3325 3326 ldsmaxah w1, w2, [x0] 3327 ldsmaxah wzr, wzr, [sp] 3328 3329 ldsminah w1, w2, [x0] 3330 ldsminah wzr, wzr, [sp] 3331 3332 ldumaxah w1, w2, [x0] 3333 ldumaxah wzr, wzr, [sp] 3334 3335 lduminah w1, w2, [x0] 3336 lduminah wzr, wzr, [sp] 3337 3338 swpah w1, w2, [x0] 3339 swpah wzr, wzr, [sp] 3340 3341 ;rcwsclra x1, x2, [x0] - Requires FEAT_THE 3342 ;rcwsclra xzr, xzr, [sp] - Requires FEAT_THE 3343 3344 ;rcwsswpa x1, x2, [x0] - Requires FEAT_THE 3345 ;rcwsswpa xzr, xzr, [sp] - Requires FEAT_THE 3346 3347 ;rcwsseta x1, x2, [x0] - Requires FEAT_THE 3348 ;rcwsseta xzr, xzr, [sp] - Requires FEAT_THE 3349 3350 ldaprh w0, [x1] 3351 ldaprh wzr, [sp] 3352 3353 ldaddalh w1, w2, [x0] 3354 ldaddalh wzr, wzr, [sp] 3355 3356 ldclralh w1, w2, [x0] 3357 ldclralh wzr, wzr, [sp] 3358 3359 ldeoralh w1, w2, [x0] 3360 ldeoralh wzr, wzr, [sp] 3361 3362 ldsetalh w1, w2, [x0] 3363 ldsetalh wzr, wzr, [sp] 3364 3365 ldsmaxalh w1, w2, [x0] 3366 ldsmaxalh wzr, wzr, [sp] 3367 3368 ldsminalh w1, w2, [x0] 3369 ldsminalh wzr, wzr, [sp] 3370 3371 ldumaxalh w1, w2, [x0] 3372 ldumaxalh wzr, wzr, [sp] 3373 3374 lduminalh w1, w2, [x0] 3375 lduminalh wzr, wzr, [sp] 3376 3377 swpalh w1, w2, [x0] 3378 swpalh wzr, wzr, [sp] 3379 3380 ;rcwsclral x1, x2, [x0] - Requires FEAT_THE 3381 ;rcwsclral xzr, xzr, [sp] - Requires FEAT_THE 3382 3383 ;rcwsswpal x1, x2, [x0] - Requires FEAT_THE 3384 ;rcwsswpal xzr, xzr, [sp] - Requires FEAT_THE 3385 3386 ;rcwssetal x1, x2, [x0] - Requires FEAT_THE 3387 ;rcwssetal xzr, xzr, [sp] - Requires FEAT_THE 3388 3389 ldadd w1, w2, [x0] 3390 ldadd wzr, wzr, [sp] 3391 ldadd x1, x2, [x0] 3392 ldadd xzr, xzr, [sp] 3393 3394 ldclr w1, w2, [x0] 3395 ldclr wzr, wzr, [sp] 3396 ldclr x1, x2, [x0] 3397 ldclr xzr, xzr, [sp] 3398 3399 ldeor w1, w2, [x0] 3400 ldeor wzr, wzr, [sp] 3401 ldeor x1, x2, [x0] 3402 ldeor xzr, xzr, [sp] 3403 3404 ldset w1, w2, [x0] 3405 ldset wzr, wzr, [sp] 3406 ldset x1, x2, [x0] 3407 ldset xzr, xzr, [sp] 3408 3409 ldsmax w1, w2, [x0] 3410 ldsmax wzr, wzr, [sp] 3411 ldsmax x1, x2, [x0] 3412 ldsmax xzr, xzr, [sp] 3413 3414 ldsmin w1, w2, [x0] 3415 ldsmin wzr, wzr, [sp] 3416 ldsmin x1, x2, [x0] 3417 ldsmin xzr, xzr, [sp] 3418 3419 ldumax w1, w2, [x0] 3420 ldumax wzr, wzr, [sp] 3421 ldumax x1, x2, [x0] 3422 ldumax xzr, xzr, [sp] 3423 3424 ldumin w1, w2, [x0] 3425 ldumin wzr, wzr, [sp] 3426 ldumin x1, x2, [x0] 3427 ldumin xzr, xzr, [sp] 3428 3429 swp w1, w2, [x0] 3430 swp wzr, wzr, [sp] 3431 swp x1, x2, [x0] 3432 swp xzr, xzr, [sp] 3433 3434 ldaddl w1, w2, [x0] 3435 ldaddl wzr, wzr, [sp] 3436 ldaddl x1, x2, [x0] 3437 ldaddl xzr, xzr, [sp] 3438 3439 ldclrl w1, w2, [x0] 3440 ldclrl wzr, wzr, [sp] 3441 ldclrl x1, x2, [x0] 3442 ldclrl xzr, xzr, [sp] 3443 3444 ldeorl w1, w2, [x0] 3445 ldeorl wzr, wzr, [sp] 3446 ldeorl x1, x2, [x0] 3447 ldeorl xzr, xzr, [sp] 3448 3449 ldsetl w1, w2, [x0] 3450 ldsetl wzr, wzr, [sp] 3451 ldsetl x1, x2, [x0] 3452 ldsetl xzr, xzr, [sp] 3453 3454 ldsmaxl w1, w2, [x0] 3455 ldsmaxl wzr, wzr, [sp] 3456 ldsmaxl x1, x2, [x0] 3457 ldsmaxl xzr, xzr, [sp] 3458 3459 ldsminl w1, w2, [x0] 3460 ldsminl wzr, wzr, [sp] 3461 ldsminl x1, x2, [x0] 3462 ldsminl xzr, xzr, [sp] 3463 3464 ldumaxl w1, w2, [x0] 3465 ldumaxl wzr, wzr, [sp] 3466 ldumaxl x1, x2, [x0] 3467 ldumaxl xzr, xzr, [sp] 3468 3469 lduminl w1, w2, [x0] 3470 lduminl wzr, wzr, [sp] 3471 lduminl x1, x2, [x0] 3472 lduminl xzr, xzr, [sp] 3473 3474 swpl w1, w2, [x0] 3475 swpl wzr, wzr, [sp] 3476 swpl x1, x2, [x0] 3477 swpl xzr, xzr, [sp] 3478 3479 ldadda w1, w2, [x0] 3480 ldadda wzr, wzr, [sp] 3481 ldadda x1, x2, [x0] 3482 ldadda xzr, xzr, [sp] 3483 3484 ldclra w1, w2, [x0] 3485 ldclra wzr, wzr, [sp] 3486 ldclra x1, x2, [x0] 3487 ldclra xzr, xzr, [sp] 3488 3489 ldeora w1, w2, [x0] 3490 ldeora wzr, wzr, [sp] 3491 ldeora x1, x2, [x0] 3492 ldeora xzr, xzr, [sp] 3493 3494 ldseta w1, w2, [x0] 3495 ldseta wzr, wzr, [sp] 3496 ldseta x1, x2, [x0] 3497 ldseta xzr, xzr, [sp] 3498 3499 ldsmaxa w1, w2, [x0] 3500 ldsmaxa wzr, wzr, [sp] 3501 ldsmaxa x1, x2, [x0] 3502 ldsmaxa xzr, xzr, [sp] 3503 3504 ldsmina w1, w2, [x0] 3505 ldsmina wzr, wzr, [sp] 3506 ldsmina x1, x2, [x0] 3507 ldsmina xzr, xzr, [sp] 3508 3509 ldumaxa w1, w2, [x0] 3510 ldumaxa wzr, wzr, [sp] 3511 ldumaxa x1, x2, [x0] 3512 ldumaxa xzr, xzr, [sp] 3513 3514 ldumina w1, w2, [x0] 3515 ldumina wzr, wzr, [sp] 3516 ldumina x1, x2, [x0] 3517 ldumina xzr, xzr, [sp] 3518 3519 swpa w1, w2, [x0] 3520 swpa wzr, wzr, [sp] 3521 swpa x1, x2, [x0] 3522 swpa xzr, xzr, [sp] 3523 3524 ldapr w0, [x1] 3525 ldapr wzr, [sp] 3526 ldapr x0, [x1] 3527 ldapr xzr, [sp] 3528 3529 ldaddal w1, w2, [x0] 3530 ldaddal wzr, wzr, [sp] 3531 ldaddal x1, x2, [x0] 3532 ldaddal xzr, xzr, [sp] 3533 3534 ldclral w1, w2, [x0] 3535 ldclral wzr, wzr, [sp] 3536 ldclral x1, x2, [x0] 3537 ldclral xzr, xzr, [sp] 3538 3539 ldeoral w1, w2, [x0] 3540 ldeoral wzr, wzr, [sp] 3541 ldeoral x1, x2, [x0] 3542 ldeoral xzr, xzr, [sp] 3543 3544 ldsetal w1, w2, [x0] 3545 ldsetal wzr, wzr, [sp] 3546 ldsetal x1, x2, [x0] 3547 ldsetal xzr, xzr, [sp] 3548 3549 ldsmaxal w1, w2, [x0] 3550 ldsmaxal wzr, wzr, [sp] 3551 ldsmaxal x1, x2, [x0] 3552 ldsmaxal xzr, xzr, [sp] 3553 3554 ldsminal w1, w2, [x0] 3555 ldsminal wzr, wzr, [sp] 3556 ldsminal x1, x2, [x0] 3557 ldsminal xzr, xzr, [sp] 3558 3559 ldumaxal w1, w2, [x0] 3560 ldumaxal wzr, wzr, [sp] 3561 ldumaxal x1, x2, [x0] 3562 ldumaxal xzr, xzr, [sp] 3563 3564 lduminal w1, w2, [x0] 3565 lduminal wzr, wzr, [sp] 3566 lduminal x1, x2, [x0] 3567 lduminal xzr, xzr, [sp] 3568 3569 swpal w1, w2, [x0] 3570 swpal wzr, wzr, [sp] 3571 swpal x1, x2, [x0] 3572 swpal xzr, xzr, [sp] 3573 3092 3574 ; 3093 3575 ; Keep last so the testcase can catch errors in
Note:
See TracChangeset
for help on using the changeset viewer.