130 V::VisitUnconditionalBranch(
instr);
136 V::VisitCompareBranch(
instr);
138 V::VisitTestBranch(
instr);
145 (
instr->
Mask(0x01000010) == 0x00000010)) {
146 V::VisitUnallocated(
instr);
148 V::VisitConditionalBranch(
instr);
151 V::VisitUnallocated(
instr);
159 (
instr->
Mask(0x00E0001D) == 0x00200001) ||
160 (
instr->
Mask(0x00E0001D) == 0x00400001) ||
161 (
instr->
Mask(0x00E0001E) == 0x00200002) ||
162 (
instr->
Mask(0x00E0001E) == 0x00400002) ||
163 (
instr->
Mask(0x00E0001C) == 0x00600000) ||
164 (
instr->
Mask(0x00E0001C) == 0x00800000) ||
165 (
instr->
Mask(0x00E0001F) == 0x00A00000) ||
166 (
instr->
Mask(0x00C0001C) == 0x00C00000)) {
167 V::VisitUnallocated(
instr);
169 V::VisitException(
instr);
175 (masked_003FF0E0 == 0x00033000) ||
176 (masked_003FF0E0 == 0x003FF020) ||
177 (masked_003FF0E0 == 0x003FF060) ||
178 (masked_003FF0E0 == 0x003FF0E0) ||
179 (
instr->
Mask(0x00388000) == 0x00008000) ||
180 (
instr->
Mask(0x0038E000) == 0x00000000) ||
181 (
instr->
Mask(0x0039E000) == 0x00002000) ||
182 (
instr->
Mask(0x003AE000) == 0x00002000) ||
183 (
instr->
Mask(0x003CE000) == 0x00042000) ||
184 (
instr->
Mask(0x0038F000) == 0x00005000) ||
185 (
instr->
Mask(0x0038E000) == 0x00006000)) {
186 V::VisitUnallocated(
instr);
188 V::VisitSystem(
instr);
191 V::VisitUnallocated(
instr);
198 V::VisitUnallocated(
instr);
200 V::VisitUnconditionalBranchToRegister(
instr);
207 V::VisitUnallocated(
instr);
218 DecodeNEONLoadStore(
instr);
227 V::VisitUnallocated(
instr);
230 V::VisitUnimplemented(
instr);
232 V::VisitLoadStoreAcquireRelease(
instr);
240 (
instr->
Mask(0xC4400000) == 0x40000000)) {
241 V::VisitUnallocated(
instr);
244 if (
instr->
Mask(0xC4400000) == 0xC0400000) {
245 V::VisitUnallocated(
instr);
248 V::VisitUnimplemented(
instr);
251 V::VisitLoadStorePairPostIndex(
instr);
257 if (
instr->
Mask(0xC4000000) == 0xC4000000) {
258 V::VisitUnallocated(
instr);
260 V::VisitLoadLiteral(
instr);
263 if ((
instr->
Mask(0x44800000) == 0x44800000) ||
264 (
instr->
Mask(0x84800000) == 0x84800000)) {
265 V::VisitUnallocated(
instr);
270 V::VisitLoadStoreUnscaledOffset(
instr);
274 if (
instr->
Mask(0xC4C00000) == 0xC0800000) {
275 V::VisitUnallocated(
instr);
277 V::VisitLoadStorePostIndex(
instr);
283 V::VisitUnimplemented(
instr);
287 if (
instr->
Mask(0xC4C00000) == 0xC0800000) {
288 V::VisitUnallocated(
instr);
290 V::VisitLoadStorePreIndex(
instr);
298 V::VisitUnallocated(
instr);
300 V::VisitLoadStoreRegisterOffset(
instr);
311 V::VisitUnallocated(
instr);
313 V::VisitAtomicMemory(
instr);
316 V::VisitUnallocated(
instr);
326 V::VisitUnallocated(
instr);
329 (
instr->
Mask(0xC4400000) == 0x40000000)) {
330 V::VisitUnallocated(
instr);
333 V::VisitLoadStorePairOffset(
instr);
335 V::VisitLoadStorePairPreIndex(
instr);
341 V::VisitUnallocated(
instr);
343 if ((
instr->
Mask(0x84C00000) == 0x80C00000) ||
344 (
instr->
Mask(0x44800000) == 0x44800000) ||
345 (
instr->
Mask(0x84800000) == 0x84800000)) {
346 V::VisitUnallocated(
instr);
348 V::VisitLoadStoreUnsignedOffset(
instr);
415 if (
instr->
Mask(0x80008000) == 0x00008000) {
416 V::VisitUnallocated(
instr);
418 V::VisitLogicalShifted(
instr);
424 V::VisitUnallocated(
instr);
426 V::VisitAddSubWithCarry(
instr);
432 V::VisitUnallocated(
instr);
435 V::VisitConditionalCompareRegister(
instr);
437 V::VisitConditionalCompareImmediate(
instr);
443 if (
instr->
Mask(0x20000800) != 0x00000000) {
444 V::VisitUnallocated(
instr);
446 V::VisitConditionalSelect(
instr);
452 V::VisitUnallocated(
instr);
459 (
instr->
Mask(0x8000EC00) == 0x00004C00) ||
460 (
instr->
Mask(0x8000E800) == 0x80004000) ||
461 (
instr->
Mask(0x8000E400) == 0x80004000)) {
462 V::VisitUnallocated(
instr);
464 V::VisitDataProcessing2Source(
instr);
469 (
instr->
Mask(0xA01FFC00) == 0x00000C00) ||
470 (
instr->
Mask(0x201FF800) == 0x00001800)) {
471 V::VisitUnallocated(
instr);
473 V::VisitDataProcessing1Source(
instr);
484 V::VisitUnallocated(
instr);
492 (
instr->
Mask(0x80008000) == 0x00008000)) {
493 V::VisitUnallocated(
instr);
495 V::VisitAddSubShifted(
instr);
498 if ((
instr->
Mask(0x00C00000) != 0x00000000) ||
499 (
instr->
Mask(0x00001400) == 0x00001400) ||
500 (
instr->
Mask(0x00001800) == 0x00001800)) {
501 V::VisitUnallocated(
instr);
503 V::VisitAddSubExtended(
instr);
508 (
instr->
Mask(0xE0600000) == 0x00200000) ||
509 (
instr->
Mask(0xE0608000) == 0x00400000) ||
510 (
instr->
Mask(0x60608000) == 0x00408000) ||
511 (
instr->
Mask(0x60E00000) == 0x00E00000) ||
512 (
instr->
Mask(0x60E00000) == 0x00800000) ||
513 (
instr->
Mask(0x60E00000) == 0x00600000)) {
514 V::VisitUnallocated(
instr);
516 V::VisitDataProcessing3Source(
instr);
527 DecodeNEONVectorDataProcessing(
instr);
530 V::VisitUnallocated(
instr);
532 DecodeNEONScalarDataProcessing(
instr);
538 (
instr->
Mask(0x80008000) == 0x00000000) ||
539 (
instr->
Mask(0x000E0000) == 0x00000000) ||
540 (
instr->
Mask(0x000E0000) == 0x000A0000) ||
541 (
instr->
Mask(0x00160000) == 0x00000000) ||
542 (
instr->
Mask(0x00160000) == 0x00120000)) {
543 V::VisitUnallocated(
instr);
545 V::VisitFPFixedPointConvert(
instr);
549 V::VisitUnallocated(
instr);
552 (
instr->
Mask(0x000E0000) == 0x000A0000) ||
553 (
instr->
Mask(0x000E0000) == 0x000C0000) ||
554 (
instr->
Mask(0x00160000) == 0x00120000) ||
555 (
instr->
Mask(0x00160000) == 0x00140000) ||
556 (
instr->
Mask(0x20C40000) == 0x00800000) ||
557 (
instr->
Mask(0x20C60000) == 0x00840000) ||
558 (
instr->
Mask(0xA0C60000) == 0x80060000) ||
559 (
instr->
Mask(0xA0C60000) == 0x00860000) ||
560 (
instr->
Mask(0xA0CE0000) == 0x80860000) ||
561 (
instr->
Mask(0xA0CE0000) == 0x804E0000) ||
562 (
instr->
Mask(0xA0CE0000) == 0x000E0000) ||
563 (
instr->
Mask(0xA0D60000) == 0x00160000) ||
564 (
instr->
Mask(0xA0D60000) == 0x80560000) ||
565 (
instr->
Mask(0xA0D60000) == 0x80960000)) {
566 V::VisitUnallocated(
instr);
568 V::VisitFPIntegerConvert(
instr);
573 (masked_A0DF8000 == 0x00020000) ||
574 (masked_A0DF8000 == 0x00030000) ||
575 (masked_A0DF8000 == 0x00068000) ||
576 (masked_A0DF8000 == 0x00428000) ||
577 (masked_A0DF8000 == 0x00430000) ||
578 (masked_A0DF8000 == 0x00468000) ||
579 (
instr->
Mask(0xA0D80000) == 0x00800000) ||
580 (
instr->
Mask(0xA0DE0000) == 0x00C00000) ||
581 (
instr->
Mask(0xA0DF0000) == 0x00C30000) ||
582 (
instr->
Mask(0xA0DC0000) == 0x00C40000)) {
583 V::VisitUnallocated(
instr);
585 V::VisitFPDataProcessing1Source(
instr);
589 (
instr->
Mask(0x80800000) != 0x00000000)) {
590 V::VisitUnallocated(
instr);
592 V::VisitFPCompare(
instr);
596 (
instr->
Mask(0x80800000) != 0x00000000)) {
597 V::VisitUnallocated(
instr);
599 V::VisitFPImmediate(
instr);
602 if (
instr->
Mask(0x80800000) != 0x00000000) {
603 V::VisitUnallocated(
instr);
607 V::VisitFPConditionalCompare(
instr);
612 (
instr->
Mask(0x00009000) == 0x00009000) ||
613 (
instr->
Mask(0x0000A000) == 0x0000A000)) {
614 V::VisitUnallocated(
instr);
616 V::VisitFPDataProcessing2Source(
instr);
621 V::VisitFPConditionalSelect(
instr);
634 V::VisitUnallocated(
instr);
636 V::VisitFPDataProcessing3Source(
instr);
640 V::VisitUnallocated(
instr);