Lines Matching refs:instr
55 T32CodeAddressIncrementer(uint32_t instr, uint32_t* code_address)
57 increment_(Disassembler::Is16BitEncoding(instr) ? 2 : 4) {}
6974 int Disassembler::T32Size(uint32_t instr) {
6975 if ((instr & 0xe0000000) == 0xe0000000) {
6976 switch (instr & 0x08000000) {
6978 if ((instr & 0x10000000) == 0x10000000) return 4;
6989 void Disassembler::DecodeT32(uint32_t instr) {
6990 T32CodeAddressIncrementer incrementer(instr, &code_address_);
6993 switch (instr & 0xe0000000) {
6996 switch (instr & 0x18000000) {
6999 switch (instr & 0x06000000) {
7002 unsigned rd = (instr >> 16) & 0x7;
7003 unsigned rn = (instr >> 19) & 0x7;
7004 unsigned rm = (instr >> 22) & 0x7;
7025 unsigned rd = (instr >> 16) & 0x7;
7026 unsigned rn = (instr >> 19) & 0x7;
7027 unsigned rm = (instr >> 22) & 0x7;
7048 unsigned rd = (instr >> 16) & 0x7;
7049 unsigned rn = (instr >> 19) & 0x7;
7050 uint32_t imm = (instr >> 22) & 0x7;
7067 unsigned rd = (instr >> 16) & 0x7;
7068 unsigned rn = (instr >> 19) & 0x7;
7069 uint32_t imm = (instr >> 22) & 0x7;
7088 if (((instr & 0x18000000) == 0x18000000)) {
7089 UnallocatedT32(instr);
7092 if (((Uint32((instr >> 27)) & Uint32(0x3)) == Uint32(0x2)) &&
7094 unsigned rd = (instr >> 16) & 0x7;
7095 unsigned rm = (instr >> 19) & 0x7;
7096 uint32_t amount = (instr >> 22) & 0x1f;
7102 if (((Uint32((instr >> 27)) & Uint32(0x3)) == Uint32(0x2)) &&
7104 unsigned rd = (instr >> 16) & 0x7;
7105 unsigned rm = (instr >> 19) & 0x7;
7106 uint32_t amount = (instr >> 22) & 0x1f;
7112 if (((Uint32((instr >> 27)) & Uint32(0x3)) == Uint32(0x0)) &&
7113 ((instr & 0x07c00000) != 0x00000000) && InITBlock()) {
7114 unsigned rd = (instr >> 16) & 0x7;
7115 unsigned rm = (instr >> 19) & 0x7;
7116 uint32_t amount = (instr >> 22) & 0x1f;
7121 if (((Uint32((instr >> 27)) & Uint32(0x3)) == Uint32(0x0)) &&
7122 ((instr & 0x07c00000) != 0x00000000) && !InITBlock()) {
7123 unsigned rd = (instr >> 16) & 0x7;
7124 unsigned rm = (instr >> 19) & 0x7;
7125 uint32_t amount = (instr >> 22) & 0x1f;
7130 if (((Uint32((instr >> 27)) & Uint32(0x3)) == Uint32(0x1)) &&
7132 unsigned rd = (instr >> 16) & 0x7;
7133 unsigned rm = (instr >> 19) & 0x7;
7134 uint32_t amount = (instr >> 22) & 0x1f;
7140 if (((Uint32((instr >> 27)) & Uint32(0x3)) == Uint32(0x1)) &&
7142 unsigned rd = (instr >> 16) & 0x7;
7143 unsigned rm = (instr >> 19) & 0x7;
7144 uint32_t amount = (instr >> 22) & 0x1f;
7150 unsigned rd = (instr >> 16) & 0x7;
7151 unsigned rm = (instr >> 19) & 0x7;
7152 ImmediateShiftOperand shift_operand((instr >> 27) & 0x3,
7153 (instr >> 22) & 0x1f);
7179 switch (instr & 0x18000000) {
7182 unsigned rd = (instr >> 24) & 0x7;
7183 uint32_t imm = (instr >> 16) & 0xff;
7196 unsigned rn = (instr >> 24) & 0x7;
7197 uint32_t imm = (instr >> 16) & 0xff;
7204 unsigned rd = (instr >> 24) & 0x7;
7205 uint32_t imm = (instr >> 16) & 0xff;
7219 UnallocatedT32(instr);
7225 unsigned rd = (instr >> 24) & 0x7;
7226 uint32_t imm = (instr >> 16) & 0xff;
7240 UnallocatedT32(instr);
7249 switch (instr & 0x18000000) {
7252 switch (instr & 0x07000000) {
7255 switch (instr & 0x00c00000) {
7258 unsigned rd = (instr >> 16) & 0x7;
7259 unsigned rm = (instr >> 19) & 0x7;
7280 unsigned rd = (instr >> 16) & 0x7;
7281 unsigned rm = (instr >> 19) & 0x7;
7303 unsigned rd = (instr >> 16) & 0x7;
7304 unsigned rs = (instr >> 19) & 0x7;
7314 unsigned rd = (instr >> 16) & 0x7;
7315 unsigned rs = (instr >> 19) & 0x7;
7324 unsigned rd = (instr >> 16) & 0x7;
7325 unsigned rm = (instr >> 16) & 0x7;
7326 unsigned rs = (instr >> 19) & 0x7;
7346 unsigned rd = (instr >> 16) & 0x7;
7347 unsigned rs = (instr >> 19) & 0x7;
7357 unsigned rd = (instr >> 16) & 0x7;
7358 unsigned rs = (instr >> 19) & 0x7;
7367 unsigned rd = (instr >> 16) & 0x7;
7368 unsigned rm = (instr >> 16) & 0x7;
7369 unsigned rs = (instr >> 19) & 0x7;
7391 switch (instr & 0x00c00000) {
7395 unsigned rd = (instr >> 16) & 0x7;
7396 unsigned rs = (instr >> 19) & 0x7;
7406 unsigned rd = (instr >> 16) & 0x7;
7407 unsigned rs = (instr >> 19) & 0x7;
7416 unsigned rd = (instr >> 16) & 0x7;
7417 unsigned rm = (instr >> 16) & 0x7;
7418 unsigned rs = (instr >> 19) & 0x7;
7437 unsigned rd = (instr >> 16) & 0x7;
7438 unsigned rm = (instr >> 19) & 0x7;
7459 unsigned rd = (instr >> 16) & 0x7;
7460 unsigned rm = (instr >> 19) & 0x7;
7482 unsigned rd = (instr >> 16) & 0x7;
7483 unsigned rs = (instr >> 19) & 0x7;
7493 unsigned rd = (instr >> 16) & 0x7;
7494 unsigned rs = (instr >> 19) & 0x7;
7503 unsigned rd = (instr >> 16) & 0x7;
7504 unsigned rm = (instr >> 16) & 0x7;
7505 unsigned rs = (instr >> 19) & 0x7;
7527 switch (instr & 0x00c00000) {
7530 unsigned rn = (instr >> 16) & 0x7;
7531 unsigned rm = (instr >> 19) & 0x7;
7538 unsigned rd = (instr >> 16) & 0x7;
7539 unsigned rn = (instr >> 19) & 0x7;
7560 unsigned rn = (instr >> 16) & 0x7;
7561 unsigned rm = (instr >> 19) & 0x7;
7568 unsigned rn = (instr >> 16) & 0x7;
7569 unsigned rm = (instr >> 19) & 0x7;
7579 switch (instr & 0x00c00000) {
7582 unsigned rd = (instr >> 16) & 0x7;
7583 unsigned rm = (instr >> 19) & 0x7;
7604 unsigned rd = (instr >> 16) & 0x7;
7605 unsigned rn = (instr >> 19) & 0x7;
7625 unsigned rd = (instr >> 16) & 0x7;
7626 unsigned rm = (instr >> 19) & 0x7;
7647 unsigned rd = (instr >> 16) & 0x7;
7648 unsigned rm = (instr >> 19) & 0x7;
7664 switch (instr & 0x00780000) {
7667 unsigned rd = ((instr >> 16) & 0x7) | ((instr >> 20) & 0x8);
7673 switch (instr & 0x00870000) {
7676 if (((instr & 0x780000) == 0x680000)) {
7677 UnallocatedT32(instr);
7680 unsigned rm = (instr >> 19) & 0xf;
7686 if (((instr & 0x780000) == 0x680000) ||
7687 ((instr & 0x870000) == 0x850000)) {
7688 UnallocatedT32(instr);
7692 ((instr >> 16) & 0x7) | ((instr >> 20) & 0x8);
7693 unsigned rm = (instr >> 19) & 0xf;
7715 unsigned rn = ((instr >> 16) & 0x7) | ((instr >> 20) & 0x8);
7716 unsigned rm = (instr >> 19) & 0xf;
7723 unsigned rd = ((instr >> 16) & 0x7) | ((instr >> 20) & 0x8);
7724 unsigned rm = (instr >> 19) & 0xf;
7731 switch (instr & 0x00800000) {
7734 unsigned rm = (instr >> 19) & 0xf;
7737 if (((instr & 0xff870000) != 0x47000000)) {
7738 UnpredictableT32(instr);
7744 unsigned rm = (instr >> 19) & 0xf;
7747 if (((instr & 0xff870000) != 0x47800000)) {
7748 UnpredictableT32(instr);
7760 unsigned rt = (instr >> 24) & 0x7;
7761 int32_t imm = ((instr >> 16) & 0xff) << 2;
7769 switch (instr & 0x06000000) {
7772 unsigned rt = (instr >> 16) & 0x7;
7773 unsigned rn = (instr >> 19) & 0x7;
7775 unsigned rm = (instr >> 22) & 0x7;
7786 unsigned rt = (instr >> 16) & 0x7;
7787 unsigned rn = (instr >> 19) & 0x7;
7789 unsigned rm = (instr >> 22) & 0x7;
7800 unsigned rt = (instr >> 16) & 0x7;
7801 unsigned rn = (instr >> 19) & 0x7;
7803 unsigned rm = (instr >> 22) & 0x7;
7814 unsigned rt = (instr >> 16) & 0x7;
7815 unsigned rn = (instr >> 19) & 0x7;
7817 unsigned rm = (instr >> 22) & 0x7;
7831 switch (instr & 0x06000000) {
7834 unsigned rt = (instr >> 16) & 0x7;
7835 unsigned rn = (instr >> 19) & 0x7;
7837 unsigned rm = (instr >> 22) & 0x7;
7848 unsigned rt = (instr >> 16) & 0x7;
7849 unsigned rn = (instr >> 19) & 0x7;
7851 unsigned rm = (instr >> 22) & 0x7;
7862 unsigned rt = (instr >> 16) & 0x7;
7863 unsigned rn = (instr >> 19) & 0x7;
7865 unsigned rm = (instr >> 22) & 0x7;
7876 unsigned rt = (instr >> 16) & 0x7;
7877 unsigned rn = (instr >> 19) & 0x7;
7879 unsigned rm = (instr >> 22) & 0x7;
7896 switch (instr & 0x18000000) {
7899 unsigned rt = (instr >> 16) & 0x7;
7900 unsigned rn = (instr >> 19) & 0x7;
7901 int32_t offset = ((instr >> 22) & 0x1f) << 2;
7911 unsigned rt = (instr >> 16) & 0x7;
7912 unsigned rn = (instr >> 19) & 0x7;
7913 int32_t offset = ((instr >> 22) & 0x1f) << 2;
7923 unsigned rt = (instr >> 16) & 0x7;
7924 unsigned rn = (instr >> 19) & 0x7;
7925 int32_t offset = (instr >> 22) & 0x1f;
7935 unsigned rt = (instr >> 16) & 0x7;
7936 unsigned rn = (instr >> 19) & 0x7;
7937 int32_t offset = (instr >> 22) & 0x1f;
7950 switch (instr & 0x18000000) {
7953 unsigned rt = (instr >> 16) & 0x7;
7954 unsigned rn = (instr >> 19) & 0x7;
7955 int32_t offset = ((instr >> 22) & 0x1f) << 1;
7965 unsigned rt = (instr >> 16) & 0x7;
7966 unsigned rn = (instr >> 19) & 0x7;
7967 int32_t offset = ((instr >> 22) & 0x1f) << 1;
7977 unsigned rt = (instr >> 24) & 0x7;
7978 int32_t offset = ((instr >> 16) & 0xff) << 2;
7988 unsigned rt = (instr >> 24) & 0x7;
7989 int32_t offset = ((instr >> 16) & 0xff) << 2;
8002 switch (instr & 0x18000000) {
8005 unsigned rd = (instr >> 24) & 0x7;
8006 int32_t imm = ((instr >> 16) & 0xff) << 2;
8014 unsigned rd = (instr >> 24) & 0x7;
8015 uint32_t imm = ((instr >> 16) & 0xff) << 2;
8022 switch (instr & 0x04000000) {
8025 switch (instr & 0x01000000) {
8028 switch (instr & 0x02800000) {
8031 uint32_t imm = ((instr >> 16) & 0x7f) << 2;
8038 uint32_t imm = ((instr >> 16) & 0x7f) << 2;
8045 switch (instr & 0x00400000) {
8048 unsigned rd = (instr >> 16) & 0x7;
8049 unsigned rm = (instr >> 19) & 0x7;
8059 unsigned rd = (instr >> 16) & 0x7;
8060 unsigned rm = (instr >> 19) & 0x7;
8073 switch (instr & 0x00400000) {
8076 unsigned rd = (instr >> 16) & 0x7;
8077 unsigned rm = (instr >> 19) & 0x7;
8087 unsigned rd = (instr >> 16) & 0x7;
8088 unsigned rm = (instr >> 19) & 0x7;
8104 unsigned rn = (instr >> 16) & 0x7;
8106 (((instr >> 19) & 0x1f) | ((instr >> 20) & 0x20)) << 1;
8117 switch (instr & 0x02000000) {
8120 RegisterList registers((((instr >> 24) & 0x1) << kLRRegNum) |
8121 ((instr >> 16) & 0xff));
8128 switch (instr & 0x01e00000) {
8131 UnimplementedT32_16("SETEND", instr);
8136 switch (instr & 0x00100000) {
8139 UnimplementedT32_16("CPSIE", instr);
8144 UnimplementedT32_16("CPSID", instr);
8151 UnallocatedT32(instr);
8164 switch (instr & 0x04000000) {
8167 switch (instr & 0x01000000) {
8170 switch (instr & 0x02c00000) {
8173 unsigned rd = (instr >> 16) & 0x7;
8174 unsigned rm = (instr >> 19) & 0x7;
8181 unsigned rd = (instr >> 16) & 0x7;
8182 unsigned rm = (instr >> 19) & 0x7;
8189 uint32_t imm = (instr >> 16) & 0x3f;
8196 unsigned rd = (instr >> 16) & 0x7;
8197 unsigned rm = (instr >> 19) & 0x7;
8203 UnallocatedT32(instr);
8210 unsigned rn = (instr >> 16) & 0x7;
8212 (((instr >> 19) & 0x1f) | ((instr >> 20) & 0x20)) << 1;
8223 switch (instr & 0x02000000) {
8226 RegisterList registers((((instr >> 24) & 0x1) << kPCRegNum) |
8227 ((instr >> 16) & 0xff));
8234 switch (instr & 0x01000000) {
8237 uint32_t imm = (instr >> 16) & 0xff;
8244 switch (instr & 0x000f0000) {
8247 switch (instr & 0x00f00000) {
8262 UnimplementedT32_16("WFE", instr);
8267 UnimplementedT32_16("WFI", instr);
8272 UnimplementedT32_16("SEV", instr);
8277 UnimplementedT32_16("SEVL", instr);
8281 UnallocatedT32(instr);
8287 if (((instr & 0xf0000) == 0x0)) {
8288 UnallocatedT32(instr);
8291 unsigned first_cond = (instr >> 20) & 0xf;
8292 unsigned mask = (instr >> 16) & 0xf;
8299 UnpredictableT32(instr);
8320 switch (instr & 0x10000000) {
8323 switch (instr & 0x08000000) {
8326 unsigned rn = (instr >> 24) & 0x7;
8327 RegisterList registers(((instr >> 16) & 0xff));
8338 unsigned rn = (instr >> 24) & 0x7;
8339 RegisterList registers(((instr >> 16) & 0xff));
8353 switch (instr & 0x0e000000) {
8356 switch (instr & 0x01000000) {
8359 uint32_t imm = (instr >> 16) & 0xff;
8366 uint32_t imm = (instr >> 16) & 0xff;
8375 if (((instr & 0xe000000) == 0xe000000)) {
8376 UnallocatedT32(instr);
8379 Condition condition((instr >> 24) & 0xf);
8380 int32_t imm = SignExtend<int32_t>(((instr >> 16) & 0xff) << 1, 9);
8385 UnpredictableT32(instr);
8397 switch (instr & 0x08000000) {
8400 switch (instr & 0x10000000) {
8404 SignExtend<int32_t>(((instr >> 16) & 0x7ff) << 1, 12);
8409 UnpredictableT32(instr);
8415 switch (instr & 0x00008000) {
8418 switch (instr & 0x03f00000) {
8421 unsigned rd = (instr >> 8) & 0xf;
8422 unsigned rn = (instr >> 16) & 0xf;
8424 (instr & 0xff) | ((instr >> 4) & 0x700) |
8425 ((instr >> 15) & 0x800));
8436 switch (instr & 0x00000f00) {
8439 unsigned rn = (instr >> 16) & 0xf;
8441 (instr & 0xff) | ((instr >> 4) & 0x700) |
8442 ((instr >> 15) & 0x800));
8448 if (((instr & 0xf00) == 0xf00)) {
8449 UnallocatedT32(instr);
8452 unsigned rd = (instr >> 8) & 0xf;
8453 unsigned rn = (instr >> 16) & 0xf;
8455 (instr & 0xff) | ((instr >> 4) & 0x700) |
8456 ((instr >> 15) & 0x800));
8470 unsigned rd = (instr >> 8) & 0xf;
8471 unsigned rn = (instr >> 16) & 0xf;
8473 (instr & 0xff) | ((instr >> 4) & 0x700) |
8474 ((instr >> 15) & 0x800));
8481 unsigned rd = (instr >> 8) & 0xf;
8482 unsigned rn = (instr >> 16) & 0xf;
8484 (instr & 0xff) | ((instr >> 4) & 0x700) |
8485 ((instr >> 15) & 0x800));
8496 switch (instr & 0x000f0000) {
8499 unsigned rd = (instr >> 8) & 0xf;
8501 (instr & 0xff) | ((instr >> 4) & 0x700) |
8502 ((instr >> 15) & 0x800));
8504 (instr & 0x00100000) == 0x00000000 &&
8509 } else if ((instr & 0x00100000) == 0x00000000) {
8513 UnallocatedT32(instr);
8518 if (((instr & 0xf0000) == 0xf0000)) {
8519 UnallocatedT32(instr);
8522 unsigned rd = (instr >> 8) & 0xf;
8523 unsigned rn = (instr >> 16) & 0xf;
8525 (instr & 0xff) | ((instr >> 4) & 0x700) |
8526 ((instr >> 15) & 0x800));
8540 switch (instr & 0x000f0000) {
8543 unsigned rd = (instr >> 8) & 0xf;
8545 (instr & 0xff) | ((instr >> 4) & 0x700) |
8546 ((instr >> 15) & 0x800));
8548 (instr & 0x00100000) == 0x00100000 &&
8553 } else if ((instr & 0x00100000) == 0x00100000) {
8557 UnallocatedT32(instr);
8562 if (((instr & 0xf0000) == 0xf0000)) {
8563 UnallocatedT32(instr);
8566 unsigned rd = (instr >> 8) & 0xf;
8567 unsigned rn = (instr >> 16) & 0xf;
8569 (instr & 0xff) | ((instr >> 4) & 0x700) |
8570 ((instr >> 15) & 0x800));
8584 switch (instr & 0x000f0000) {
8587 unsigned rd = (instr >> 8) & 0xf;
8589 (instr & 0xff) | ((instr >> 4) & 0x700) |
8590 ((instr >> 15) & 0x800));
8596 if (((instr & 0xf0000) == 0xf0000)) {
8597 UnallocatedT32(instr);
8600 unsigned rd = (instr >> 8) & 0xf;
8601 unsigned rn = (instr >> 16) & 0xf;
8603 (instr & 0xff) | ((instr >> 4) & 0x700) |
8604 ((instr >> 15) & 0x800));
8614 switch (instr & 0x000f0000) {
8617 unsigned rd = (instr >> 8) & 0xf;
8619 (instr & 0xff) | ((instr >> 4) & 0x700) |
8620 ((instr >> 15) & 0x800));
8626 if (((instr & 0xf0000) == 0xf0000)) {
8627 UnallocatedT32(instr);
8630 unsigned rd = (instr >> 8) & 0xf;
8631 unsigned rn = (instr >> 16) & 0xf;
8633 (instr & 0xff) | ((instr >> 4) & 0x700) |
8634 ((instr >> 15) & 0x800));
8644 unsigned rd = (instr >> 8) & 0xf;
8645 unsigned rn = (instr >> 16) & 0xf;
8647 (instr & 0xff) | ((instr >> 4) & 0x700) |
8648 ((instr >> 15) & 0x800));
8655 switch (instr & 0x00000f00) {
8658 unsigned rn = (instr >> 16) & 0xf;
8660 (instr & 0xff) | ((instr >> 4) & 0x700) |
8661 ((instr >> 15) & 0x800));
8667 if (((instr & 0xf00) == 0xf00)) {
8668 UnallocatedT32(instr);
8671 unsigned rd = (instr >> 8) & 0xf;
8672 unsigned rn = (instr >> 16) & 0xf;
8674 (instr & 0xff) | ((instr >> 4) & 0x700) |
8675 ((instr >> 15) & 0x800));
8689 switch (instr & 0x000f0000) {
8692 unsigned rd = (instr >> 8) & 0xf;
8694 (instr & 0xff) | ((instr >> 4) & 0x700) |
8695 ((instr >> 15) & 0x800));
8696 if ((instr & 0x00100000) == 0x00000000 &&
8703 } else if ((instr & 0x00100000) == 0x00000000) {
8707 UnallocatedT32(instr);
8712 if (((instr & 0xf0000) == 0xd0000)) {
8713 UnallocatedT32(instr);
8716 unsigned rd = (instr >> 8) & 0xf;
8717 unsigned rn = (instr >> 16) & 0xf;
8719 (instr & 0xff) | ((instr >> 4) & 0x700) |
8720 ((instr >> 15) & 0x800));
8722 (instr & 0x00100000) == 0x00000000 &&
8734 } else if ((instr & 0x00100000) == 0x00000000) {
8742 UnallocatedT32(instr);
8751 switch (instr & 0x00000f00) {
8754 unsigned rn = (instr >> 16) & 0xf;
8756 (instr & 0xff) | ((instr >> 4) & 0x700) |
8757 ((instr >> 15) & 0x800));
8763 switch (instr & 0x000f0000) {
8766 if (((instr & 0xf00) == 0xf00)) {
8767 UnallocatedT32(instr);
8770 unsigned rd = (instr >> 8) & 0xf;
8772 (instr & 0xff) | ((instr >> 4) & 0x700) |
8773 ((instr >> 15) & 0x800));
8779 if (((instr & 0xf0000) == 0xd0000) ||
8780 ((instr & 0xf00) == 0xf00)) {
8781 UnallocatedT32(instr);
8784 unsigned rd = (instr >> 8) & 0xf;
8785 unsigned rn = (instr >> 16) & 0xf;
8787 (instr & 0xff) | ((instr >> 4) & 0x700) |
8788 ((instr >> 15) & 0x800));
8790 (instr & 0x00100000) == 0x00100000 &&
8803 } else if ((instr & 0x00100000) == 0x00100000) {
8811 UnallocatedT32(instr);
8823 unsigned rd = (instr >> 8) & 0xf;
8824 unsigned rn = (instr >> 16) & 0xf;
8826 (instr & 0xff) | ((instr >> 4) & 0x700) |
8827 ((instr >> 15) & 0x800));
8834 unsigned rd = (instr >> 8) & 0xf;
8835 unsigned rn = (instr >> 16) & 0xf;
8837 (instr & 0xff) | ((instr >> 4) & 0x700) |
8838 ((instr >> 15) & 0x800));
8849 unsigned rd = (instr >> 8) & 0xf;
8850 unsigned rn = (instr >> 16) & 0xf;
8852 (instr & 0xff) | ((instr >> 4) & 0x700) |
8853 ((instr >> 15) & 0x800));
8860 unsigned rd = (instr >> 8) & 0xf;
8861 unsigned rn = (instr >> 16) & 0xf;
8863 (instr & 0xff) | ((instr >> 4) & 0x700) |
8864 ((instr >> 15) & 0x800));
8875 switch (instr & 0x000f0000) {
8878 unsigned rd = (instr >> 8) & 0xf;
8880 (instr & 0xff) | ((instr >> 4) & 0x700) |
8881 ((instr >> 15) & 0x800));
8882 if ((instr & 0x00100000) == 0x00000000 &&
8887 } else if ((instr & 0x00100000) == 0x00000000) {
8891 UnallocatedT32(instr);
8896 if (((instr & 0xf0000) == 0xd0000)) {
8897 UnallocatedT32(instr);
8900 unsigned rd = (instr >> 8) & 0xf;
8901 unsigned rn = (instr >> 16) & 0xf;
8903 (instr & 0xff) | ((instr >> 4) & 0x700) |
8904 ((instr >> 15) & 0x800));
8906 (instr & 0x00100000) == 0x00000000 &&
8918 } else if ((instr & 0x00100000) == 0x00000000) {
8926 UnallocatedT32(instr);
8935 switch (instr & 0x00000f00) {
8938 unsigned rn = (instr >> 16) & 0xf;
8940 (instr & 0xff) | ((instr >> 4) & 0x700) |
8941 ((instr >> 15) & 0x800));
8952 switch (instr & 0x000f0000) {
8955 if (((instr & 0xf00) == 0xf00)) {
8956 UnallocatedT32(instr);
8959 unsigned rd = (instr >> 8) & 0xf;
8961 (instr & 0xff) | ((instr >> 4) & 0x700) |
8962 ((instr >> 15) & 0x800));
8968 if (((instr & 0xf0000) == 0xd0000) ||
8969 ((instr & 0xf00) == 0xf00)) {
8970 UnallocatedT32(instr);
8973 unsigned rd = (instr >> 8) & 0xf;
8974 unsigned rn = (instr >> 16) & 0xf;
8976 (instr & 0xff) | ((instr >> 4) & 0x700) |
8977 ((instr >> 15) & 0x800));
8979 (instr & 0x00100000) == 0x00100000 &&
8992 } else if ((instr & 0x00100000) == 0x00100000) {
9000 UnallocatedT32(instr);
9012 unsigned rd = (instr >> 8) & 0xf;
9013 unsigned rn = (instr >> 16) & 0xf;
9015 (instr & 0xff) | ((instr >> 4) & 0x700) |
9016 ((instr >> 15) & 0x800));
9017 if (InITBlock() && (instr & 0x00100000) == 0x00000000 &&
9027 } else if ((instr & 0x00100000) == 0x00000000) {
9035 UnallocatedT32(instr);
9041 unsigned rd = (instr >> 8) & 0xf;
9042 unsigned rn = (instr >> 16) & 0xf;
9044 (instr & 0xff) | ((instr >> 4) & 0x700) |
9045 ((instr >> 15) & 0x800));
9047 (instr & 0x00100000) == 0x00100000 && (imm == 0) &&
9056 } else if ((instr & 0x00100000) == 0x00100000) {
9064 UnallocatedT32(instr);
9070 switch (instr & 0x000d0000) {
9073 switch (instr & 0x00020000) {
9076 unsigned rd = (instr >> 8) & 0xf;
9077 uint32_t imm = (instr & 0xff) |
9078 ((instr >> 4) & 0x700) |
9079 ((instr >> 15) & 0x800);
9095 unsigned rd = (instr >> 8) & 0xf;
9096 int32_t imm = (instr & 0xff) |
9097 ((instr >> 4) & 0x700) |
9098 ((instr >> 15) & 0x800);
9116 UnallocatedT32(instr);
9124 if (((instr & 0xd0000) == 0xd0000)) {
9125 UnallocatedT32(instr);
9128 unsigned rd = (instr >> 8) & 0xf;
9129 unsigned rn = (instr >> 16) & 0xf;
9130 uint32_t imm = (instr & 0xff) |
9131 ((instr >> 4) & 0x700) |
9132 ((instr >> 15) & 0x800);
9160 unsigned rd = (instr >> 8) & 0xf;
9161 uint32_t imm = (instr & 0xff) | ((instr >> 4) & 0x700) |
9162 ((instr >> 15) & 0x800) |
9163 ((instr >> 4) & 0xf000);
9177 switch (instr & 0x000d0000) {
9180 switch (instr & 0x00020000) {
9183 unsigned rd = (instr >> 8) & 0xf;
9184 uint32_t imm = (instr & 0xff) |
9185 ((instr >> 4) & 0x700) |
9186 ((instr >> 15) & 0x800);
9200 if (((((Uint32((instr >> 26)) & Uint32(0x1))
9202 ((Uint32((instr >> 12)) & Uint32(0x7))
9204 (Uint32(instr) & Uint32(0xff))) ==
9206 unsigned rd = (instr >> 8) & 0xf;
9207 uint32_t imm = (instr & 0xff) |
9208 ((instr >> 4) & 0x700) |
9209 ((instr >> 15) & 0x800);
9214 unsigned rd = (instr >> 8) & 0xf;
9215 int32_t imm = (instr & 0xff) |
9216 ((instr >> 4) & 0x700) |
9217 ((instr >> 15) & 0x800);
9227 if (((instr & 0xd0000) == 0xd0000)) {
9228 UnallocatedT32(instr);
9231 unsigned rd = (instr >> 8) & 0xf;
9232 unsigned rn = (instr >> 16) & 0xf;
9233 uint32_t imm = (instr & 0xff) |
9234 ((instr >> 4) & 0x700) |
9235 ((instr >> 15) & 0x800);
9263 unsigned rd = (instr >> 8) & 0xf;
9264 uint32_t imm = (instr & 0xff) | ((instr >> 4) & 0x700) |
9265 ((instr >> 15) & 0x800) |
9266 ((instr >> 4) & 0xf000);
9273 unsigned rd = (instr >> 8) & 0xf;
9274 uint32_t imm = (instr & 0x1f) + 1;
9275 unsigned rn = (instr >> 16) & 0xf;
9277 ((instr >> 6) & 0x3) | ((instr >> 10) & 0x1c);
9283 if (((instr & 0xfff08020) != 0xf3000000)) {
9284 UnpredictableT32(instr);
9290 switch (instr & 0x000070c0) {
9293 unsigned rd = (instr >> 8) & 0xf;
9294 uint32_t imm = (instr & 0xf) + 1;
9295 unsigned rn = (instr >> 16) & 0xf;
9301 if (((instr & 0xfff0f0f0) != 0xf3200000)) {
9302 UnpredictableT32(instr);
9307 if (((instr & 0x70c0) == 0x0)) {
9308 UnallocatedT32(instr);
9311 unsigned rd = (instr >> 8) & 0xf;
9312 uint32_t imm = (instr & 0x1f) + 1;
9313 unsigned rn = (instr >> 16) & 0xf;
9315 ((instr >> 6) & 0x3) | ((instr >> 10) & 0x1c);
9321 if (((instr & 0xfff08020) != 0xf3200000)) {
9322 UnpredictableT32(instr);
9331 unsigned rd = (instr >> 8) & 0xf;
9332 unsigned rn = (instr >> 16) & 0xf;
9334 ((instr >> 6) & 0x3) | ((instr >> 10) & 0x1c);
9335 uint32_t widthm1 = instr & 0x1f;
9343 if (((instr & 0xfff08020) != 0xf3400000)) {
9344 UnpredictableT32(instr);
9350 switch (instr & 0x000f0000) {
9353 unsigned rd = (instr >> 8) & 0xf;
9355 ((instr >> 6) & 0x3) | ((instr >> 10) & 0x1c);
9356 uint32_t msb = instr & 0x1f;
9360 if (((instr & 0xffff8020) != 0xf36f0000)) {
9361 UnpredictableT32(instr);
9366 if (((instr & 0xf0000) == 0xf0000)) {
9367 UnallocatedT32(instr);
9370 unsigned rd = (instr >> 8) & 0xf;
9371 unsigned rn = (instr >> 16) & 0xf;
9373 ((instr >> 6) & 0x3) | ((instr >> 10) & 0x1c);
9374 uint32_t msb = instr & 0x1f;
9382 if (((instr & 0xfff08020) != 0xf3600000)) {
9383 UnpredictableT32(instr);
9392 unsigned rd = (instr >> 8) & 0xf;
9393 uint32_t imm = instr & 0x1f;
9394 unsigned rn = (instr >> 16) & 0xf;
9396 ((instr >> 6) & 0x3) | ((instr >> 10) & 0x1c);
9402 if (((instr & 0xfff08020) != 0xf3800000)) {
9403 UnpredictableT32(instr);
9409 switch (instr & 0x000070c0) {
9412 unsigned rd = (instr >> 8) & 0xf;
9413 uint32_t imm = instr & 0xf;
9414 unsigned rn = (instr >> 16) & 0xf;
9420 if (((instr & 0xfff0f0f0) != 0xf3a00000)) {
9421 UnpredictableT32(instr);
9426 if (((instr & 0x70c0) == 0x0)) {
9427 UnallocatedT32(instr);
9430 unsigned rd = (instr >> 8) & 0xf;
9431 uint32_t imm = instr & 0x1f;
9432 unsigned rn = (instr >> 16) & 0xf;
9434 ((instr >> 6) & 0x3) | ((instr >> 10) & 0x1c);
9440 if (((instr & 0xfff08020) != 0xf3a00000)) {
9441 UnpredictableT32(instr);
9450 unsigned rd = (instr >> 8) & 0xf;
9451 unsigned rn = (instr >> 16) & 0xf;
9453 ((instr >> 6) & 0x3) | ((instr >> 10) & 0x1c);
9454 uint32_t widthm1 = instr & 0x1f;
9462 if (((instr & 0xfff08020) != 0xf3c00000)) {
9463 UnpredictableT32(instr);
9468 UnallocatedT32(instr);
9475 switch (instr & 0x00005000) {
9478 switch (instr & 0x03800000) {
9481 switch (instr & 0x04600000) {
9484 switch (instr & 0x00000020) {
9487 unsigned spec_reg = ((instr >> 8) & 0xf) |
9488 ((instr >> 16) & 0x10);
9489 unsigned rn = (instr >> 16) & 0xf;
9494 if (((instr & 0xffe0f0ff) != 0xf3808000)) {
9495 UnpredictableT32(instr);
9501 UnimplementedT32_32("MSR", instr);
9509 switch (instr & 0x00100000) {
9512 switch (instr & 0x00000700) {
9515 switch (instr & 0x000000f0) {
9518 switch (instr & 0x0000000f) {
9523 if (((instr & 0xffffffff) !=
9525 UnpredictableT32(instr);
9533 if (((instr & 0xffffffff) !=
9535 UnpredictableT32(instr);
9541 UnimplementedT32_32("WFE", instr);
9546 UnimplementedT32_32("WFI", instr);
9551 UnimplementedT32_32("SEV", instr);
9557 instr);
9561 UnallocatedT32(instr);
9568 UnimplementedT32_32("DBG", instr);
9572 UnallocatedT32(instr);
9579 if ((instr & 0x000000e0) == 0x00000000) {
9580 UnimplementedT32_32("CPS", instr);
9582 UnallocatedT32(instr);
9588 if ((instr & 0x0000001f) == 0x00000000) {
9589 UnimplementedT32_32("CPSIE", instr);
9591 UnallocatedT32(instr);
9597 UnimplementedT32_32("CPSIE", instr);
9602 if ((instr & 0x0000001f) == 0x00000000) {
9603 UnimplementedT32_32("CPSID", instr);
9605 UnallocatedT32(instr);
9611 UnimplementedT32_32("CPSID", instr);
9615 UnallocatedT32(instr);
9622 switch (instr & 0x000000f0) {
9627 if (((instr & 0xffffffff) !=
9629 UnpredictableT32(instr);
9635 MemoryBarrier option(instr & 0xf);
9638 if (((instr & 0xfffffff0) !=
9640 UnpredictableT32(instr);
9646 MemoryBarrier option(instr & 0xf);
9649 if (((instr & 0xfffffff0) !=
9651 UnpredictableT32(instr);
9657 MemoryBarrier option(instr & 0xf);
9660 if (((instr & 0xfffffff0) !=
9662 UnpredictableT32(instr);
9667 UnallocatedT32(instr);
9677 switch (instr & 0x00100000) {
9680 unsigned rm = (instr >> 16) & 0xf;
9683 if (((instr & 0xfff0ffff) != 0xf3c08f00)) {
9684 UnpredictableT32(instr);
9690 switch (instr & 0x000000ff) {
9693 if ((instr & 0x000f0000) == 0x000e0000) {
9694 UnimplementedT32_32("ERET", instr);
9696 UnallocatedT32(instr);
9701 if (((instr & 0xff) == 0x0)) {
9702 UnallocatedT32(instr);
9705 uint32_t imm = instr & 0xff;
9708 if (((instr & 0xffffff00) !=
9710 UnpredictableT32(instr);
9722 switch (instr & 0x00000020) {
9725 unsigned rd = (instr >> 8) & 0xf;
9726 unsigned spec_reg = (instr >> 20) & 0x1;
9731 if (((instr & 0xffeff0ff) != 0xf3ef8000)) {
9732 UnpredictableT32(instr);
9738 UnimplementedT32_32("MRS", instr);
9746 switch (instr & 0x001f2fff) {
9749 UnimplementedT32_32("DCPS1", instr);
9754 UnimplementedT32_32("DCPS2", instr);
9759 UnimplementedT32_32("DCPS3", instr);
9763 UnallocatedT32(instr);
9770 switch (instr & 0x00102000) {
9774 (instr & 0xfff) | ((instr >> 4) & 0xf000);
9781 UnimplementedT32_32("SMC", instr);
9787 (instr & 0xfff) | ((instr >> 4) & 0xf000);
9798 UnallocatedT32(instr);
9804 UnallocatedT32(instr);
9810 if (((instr & 0x3800000) == 0x3800000)) {
9811 UnallocatedT32(instr);
9814 Condition condition((instr >> 22) & 0xf);
9816 SignExtend<int32_t>(((instr & 0x7ff) |
9817 ((instr >> 5) & 0x1f800) |
9818 ((instr << 4) & 0x20000) |
9819 ((instr << 7) & 0x40000) |
9820 ((instr >> 7) & 0x80000))
9831 UnpredictableT32(instr);
9838 UnpredictableT32(instr);
9841 UnallocatedT32(instr);
9851 (instr & 0x7ff) | ((instr >> 5) & 0x1ff800) |
9852 ((instr << 10) & 0x200000) |
9853 ((instr << 9) & 0x400000) | ((instr >> 3) & 0x800000);
9869 UnpredictableT32(instr);
9872 UnallocatedT32(instr);
9878 if ((instr & 0x00000001) == 0x00000000) {
9879 uint32_t encoded_imm = ((instr >> 1) & 0x3ff) |
9880 ((instr >> 6) & 0xffc00) |
9881 ((instr << 9) & 0x100000) |
9882 ((instr << 8) & 0x200000) |
9883 ((instr >> 4) & 0x400000);
9891 UnallocatedT32(instr);
9898 (instr & 0x7ff) | ((instr >> 5) & 0x1ff800) |
9899 ((instr << 10) & 0x200000) |
9900 ((instr << 9) & 0x400000) | ((instr >> 3) & 0x800000);
9920 switch (instr & 0x06000000) {
9923 switch (instr & 0x10100000) {
9926 switch (instr & 0x01400000) {
9929 switch (instr & 0x00800000) {
9932 UnimplementedT32_32("SRSDB", instr);
9937 unsigned rn = (instr >> 16) & 0xf;
9938 WriteBack write_back((instr >> 21) & 0x1);
9940 (((instr >> 14) & 0x1) << kLRRegNum) |
9941 (instr & 0x1fff));
9951 if (((instr & 0xffd0a000) != 0xe8800000)) {
9952 UnpredictableT32(instr);
9961 if (((instr & 0xffd0a000) != 0xe8800000)) {
9962 UnpredictableT32(instr);
9972 switch (instr & 0x00200000) {
9975 switch (instr & 0x00800000) {
9978 unsigned rd = (instr >> 8) & 0xf;
9979 unsigned rt = (instr >> 12) & 0xf;
9980 unsigned rn = (instr >> 16) & 0xf;
9981 int32_t offset = (instr & 0xff) << 2;
9994 switch (instr & 0x000000f0) {
9997 unsigned rd = instr & 0xf;
9998 unsigned rt = (instr >> 12) & 0xf;
9999 unsigned rn = (instr >> 16) & 0xf;
10005 if (((instr & 0xfff00ff0) != 0xe8c00f40)) {
10006 UnpredictableT32(instr);
10012 unsigned rd = instr & 0xf;
10013 unsigned rt = (instr >> 12) & 0xf;
10014 unsigned rn = (instr >> 16) & 0xf;
10020 if (((instr & 0xfff00ff0) != 0xe8c00f50)) {
10021 UnpredictableT32(instr);
10027 unsigned rd = instr & 0xf;
10028 unsigned rt = (instr >> 12) & 0xf;
10029 unsigned rt2 = (instr >> 8) & 0xf;
10030 unsigned rn = (instr >> 16) & 0xf;
10041 unsigned rt = (instr >> 12) & 0xf;
10042 unsigned rn = (instr >> 16) & 0xf;
10047 if (((instr & 0xfff00fff) != 0xe8c00f8f)) {
10048 UnpredictableT32(instr);
10054 unsigned rt = (instr >> 12) & 0xf;
10055 unsigned rn = (instr >> 16) & 0xf;
10060 if (((instr & 0xfff00fff) != 0xe8c00f9f)) {
10061 UnpredictableT32(instr);
10067 unsigned rt = (instr >> 12) & 0xf;
10068 unsigned rn = (instr >> 16) & 0xf;
10073 if (((instr & 0xfff00fff) != 0xe8c00faf)) {
10074 UnpredictableT32(instr);
10080 unsigned rd = instr & 0xf;
10081 unsigned rt = (instr >> 12) & 0xf;
10082 unsigned rn = (instr >> 16) & 0xf;
10088 if (((instr & 0xfff00ff0) != 0xe8c00fc0)) {
10089 UnpredictableT32(instr);
10095 unsigned rd = instr & 0xf;
10096 unsigned rt = (instr >> 12) & 0xf;
10097 unsigned rn = (instr >> 16) & 0xf;
10103 if (((instr & 0xfff00ff0) != 0xe8c00fd0)) {
10104 UnpredictableT32(instr);
10110 unsigned rd = instr & 0xf;
10111 unsigned rt = (instr >> 12) & 0xf;
10112 unsigned rn = (instr >> 16) & 0xf;
10118 if (((instr & 0xfff00ff0) != 0xe8c00fe0)) {
10119 UnpredictableT32(instr);
10125 unsigned rd = instr & 0xf;
10126 unsigned rt = (instr >> 12) & 0xf;
10127 unsigned rt2 = (instr >> 8) & 0xf;
10128 unsigned rn = (instr >> 16) & 0xf;
10138 UnallocatedT32(instr);
10148 if (((instr & 0xf0000) == 0xf0000)) {
10149 UnallocatedT32(instr);
10152 unsigned rt = (instr >> 12) & 0xf;
10153 unsigned rt2 = (instr >> 8) & 0xf;
10154 unsigned rn = (instr >> 16) & 0xf;
10155 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
10157 int32_t offset = (instr & 0xff) << 2;
10173 switch (instr & 0x00800000) {
10176 if (((Uint32((instr >> 21)) & Uint32(0x1)) ==
10178 ((Uint32((instr >> 16)) & Uint32(0xf)) ==
10180 (BitCount(((Uint32((instr >> 14)) & Uint32(0x1))
10182 (Uint32(instr) & Uint32(0x1fff))) >
10185 (((instr >> 14) & 0x1) << kLRRegNum) |
10186 (instr & 0x1fff));
10190 if (((instr & 0xffffa000) != 0xe92d0000)) {
10191 UnpredictableT32(instr);
10196 if (((instr & 0xffffa000) != 0xe92d0000)) {
10197 UnpredictableT32(instr);
10202 unsigned rn = (instr >> 16) & 0xf;
10203 WriteBack write_back((instr >> 21) & 0x1);
10205 (((instr >> 14) & 0x1) << kLRRegNum) |
10206 (instr & 0x1fff));
10213 if (((instr & 0xffd0a000) != 0xe9000000)) {
10214 UnpredictableT32(instr);
10220 UnimplementedT32_32("SRS{IA}", instr);
10228 switch (instr & 0x00200000) {
10231 if (((instr & 0xf0000) == 0xf0000)) {
10232 UnallocatedT32(instr);
10235 unsigned rt = (instr >> 12) & 0xf;
10236 unsigned rt2 = (instr >> 8) & 0xf;
10237 unsigned rn = (instr >> 16) & 0xf;
10238 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
10240 int32_t offset = (instr & 0xff) << 2;
10250 if (((instr & 0xf0000) == 0xf0000)) {
10251 UnallocatedT32(instr);
10254 unsigned rt = (instr >> 12) & 0xf;
10255 unsigned rt2 = (instr >> 8) & 0xf;
10256 unsigned rn = (instr >> 16) & 0xf;
10257 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
10259 int32_t offset = (instr & 0xff) << 2;
10278 switch (instr & 0x00400000) {
10281 switch (instr & 0x01800000) {
10284 UnimplementedT32_32("RFEDB", instr);
10289 if (((Uint32((instr >> 21)) & Uint32(0x1)) ==
10291 ((Uint32((instr >> 16)) & Uint32(0xf)) ==
10293 (BitCount(((Uint32((instr >> 15)) & Uint32(0x1))
10295 ((Uint32((instr >> 14)) & Uint32(0x1))
10297 (Uint32(instr) & Uint32(0x1fff))) >
10300 (((instr >> 15) & 0x1) << kPCRegNum) |
10301 (((instr >> 14) & 0x1) << kLRRegNum) |
10302 (instr & 0x1fff));
10306 if (((instr & 0xffff2000) != 0xe8bd0000)) {
10307 UnpredictableT32(instr);
10312 if (((instr & 0xffff2000) != 0xe8bd0000)) {
10313 UnpredictableT32(instr);
10318 unsigned rn = (instr >> 16) & 0xf;
10319 WriteBack write_back((instr >> 21) & 0x1);
10321 (((instr >> 15) & 0x1) << kPCRegNum) |
10322 (((instr >> 14) & 0x1) << kLRRegNum) |
10323 (instr & 0x1fff));
10334 if (((instr & 0xffd02000) != 0xe8900000)) {
10335 UnpredictableT32(instr);
10344 if (((instr & 0xffd02000) != 0xe8900000)) {
10345 UnpredictableT32(instr);
10352 unsigned rn = (instr >> 16) & 0xf;
10353 WriteBack write_back((instr >> 21) & 0x1);
10355 (((instr >> 15) & 0x1) << kPCRegNum) |
10356 (((instr >> 14) & 0x1) << kLRRegNum) |
10357 (instr & 0x1fff));
10363 if (((instr & 0xffd02000) != 0xe9100000)) {
10364 UnpredictableT32(instr);
10370 UnimplementedT32_32("RFE{IA}", instr);
10378 switch (instr & 0x01200000) {
10381 switch (instr & 0x00800000) {
10384 unsigned rt = (instr >> 12) & 0xf;
10385 unsigned rn = (instr >> 16) & 0xf;
10386 int32_t offset = (instr & 0xff) << 2;
10394 if (((instr & 0xfff00f00) != 0xe8500f00)) {
10395 UnpredictableT32(instr);
10401 switch (instr & 0x000000f0) {
10404 unsigned rn = (instr >> 16) & 0xf;
10405 unsigned rm = instr & 0xf;
10410 if (((instr & 0xfff0fff0) != 0xe8d0f000) ||
10412 UnpredictableT32(instr);
10418 unsigned rn = (instr >> 16) & 0xf;
10419 unsigned rm = instr & 0xf;
10424 if (((instr & 0xfff0fff0) != 0xe8d0f010) ||
10426 UnpredictableT32(instr);
10432 unsigned rt = (instr >> 12) & 0xf;
10433 unsigned rn = (instr >> 16) & 0xf;
10438 if (((instr & 0xfff00fff) != 0xe8d00f4f)) {
10439 UnpredictableT32(instr);
10445 unsigned rt = (instr >> 12) & 0xf;
10446 unsigned rn = (instr >> 16) & 0xf;
10451 if (((instr & 0xfff00fff) != 0xe8d00f5f)) {
10452 UnpredictableT32(instr);
10458 unsigned rt = (instr >> 12) & 0xf;
10459 unsigned rt2 = (instr >> 8) & 0xf;
10460 unsigned rn = (instr >> 16) & 0xf;
10466 if (((instr & 0xfff000ff) != 0xe8d0007f)) {
10467 UnpredictableT32(instr);
10473 unsigned rt = (instr >> 12) & 0xf;
10474 unsigned rn = (instr >> 16) & 0xf;
10479 if (((instr & 0xfff00fff) != 0xe8d00f8f)) {
10480 UnpredictableT32(instr);
10486 unsigned rt = (instr >> 12) & 0xf;
10487 unsigned rn = (instr >> 16) & 0xf;
10492 if (((instr & 0xfff00fff) != 0xe8d00f9f)) {
10493 UnpredictableT32(instr);
10499 unsigned rt = (instr >> 12) & 0xf;
10500 unsigned rn = (instr >> 16) & 0xf;
10505 if (((instr & 0xfff00fff) != 0xe8d00faf)) {
10506 UnpredictableT32(instr);
10512 unsigned rt = (instr >> 12) & 0xf;
10513 unsigned rn = (instr >> 16) & 0xf;
10518 if (((instr & 0xfff00fff) != 0xe8d00fcf)) {
10519 UnpredictableT32(instr);
10525 unsigned rt = (instr >> 12) & 0xf;
10526 unsigned rn = (instr >> 16) & 0xf;
10531 if (((instr & 0xfff00fff) != 0xe8d00fdf)) {
10532 UnpredictableT32(instr);
10538 unsigned rt = (instr >> 12) & 0xf;
10539 unsigned rn = (instr >> 16) & 0xf;
10544 if (((instr & 0xfff00fff) != 0xe8d00fef)) {
10545 UnpredictableT32(instr);
10551 unsigned rt = (instr >> 12) & 0xf;
10552 unsigned rt2 = (instr >> 8) & 0xf;
10553 unsigned rn = (instr >> 16) & 0xf;
10559 if (((instr & 0xfff000ff) != 0xe8d000ff)) {
10560 UnpredictableT32(instr);
10565 UnallocatedT32(instr);
10575 switch (instr & 0x000f0000) {
10578 if (((instr & 0x1200000) == 0x0)) {
10579 UnallocatedT32(instr);
10582 unsigned rt = (instr >> 12) & 0xf;
10583 unsigned rt2 = (instr >> 8) & 0xf;
10584 uint32_t U = (instr >> 23) & 0x1;
10585 int32_t imm = instr & 0xff;
10602 if (((instr & 0xff7f0000) != 0xe95f0000)) {
10603 UnpredictableT32(instr);
10608 if (((instr & 0xf0000) == 0xf0000)) {
10609 UnallocatedT32(instr);
10612 unsigned rt = (instr >> 12) & 0xf;
10613 unsigned rt2 = (instr >> 8) & 0xf;
10614 unsigned rn = (instr >> 16) & 0xf;
10615 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
10617 int32_t offset = (instr & 0xff) << 2;
10633 switch (instr & 0x000f0000) {
10636 if (((instr & 0x1200000) == 0x0)) {
10637 UnallocatedT32(instr);
10640 unsigned rt = (instr >> 12) & 0xf;
10641 unsigned rt2 = (instr >> 8) & 0xf;
10642 uint32_t U = (instr >> 23) & 0x1;
10643 int32_t imm = instr & 0xff;
10660 if (((instr & 0xff7f0000) != 0xe95f0000)) {
10661 UnpredictableT32(instr);
10666 if (((instr & 0xf0000) == 0xf0000)) {
10667 UnallocatedT32(instr);
10670 unsigned rt = (instr >> 12) & 0xf;
10671 unsigned rt2 = (instr >> 8) & 0xf;
10672 unsigned rn = (instr >> 16) & 0xf;
10673 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
10675 int32_t offset = (instr & 0xff) << 2;
10691 switch (instr & 0x000f0000) {
10694 if (((instr & 0x1200000) == 0x0)) {
10695 UnallocatedT32(instr);
10698 unsigned rt = (instr >> 12) & 0xf;
10699 unsigned rt2 = (instr >> 8) & 0xf;
10700 uint32_t U = (instr >> 23) & 0x1;
10701 int32_t imm = instr & 0xff;
10718 if (((instr & 0xff7f0000) != 0xe95f0000)) {
10719 UnpredictableT32(instr);
10724 if (((instr & 0xf0000) == 0xf0000)) {
10725 UnallocatedT32(instr);
10728 unsigned rt = (instr >> 12) & 0xf;
10729 unsigned rt2 = (instr >> 8) & 0xf;
10730 unsigned rn = (instr >> 16) & 0xf;
10731 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
10733 int32_t offset = (instr & 0xff) << 2;
10755 switch (instr & 0x01a00000) {
10758 switch (instr & 0x00400d00) {
10761 if ((instr & 0x000002c0) == 0x00000000) {
10762 if (((instr & 0xf0000) == 0xf0000)) {
10763 UnallocatedT32(instr);
10766 unsigned rt = (instr >> 12) & 0xf;
10767 unsigned rn = (instr >> 16) & 0xf;
10769 unsigned rm = instr & 0xf;
10771 uint32_t amount = (instr >> 4) & 0x3;
10799 UnallocatedT32(instr);
10805 if (((instr & 0xf0000) == 0xf0000)) {
10806 UnallocatedT32(instr);
10809 unsigned rt = (instr >> 12) & 0xf;
10810 unsigned rn = (instr >> 16) & 0xf;
10811 Sign sign((((instr >> 9) & 0x1) == 0) ? minus : plus);
10812 int32_t offset = instr & 0xff;
10825 switch (instr & 0x00000200) {
10828 if (((instr & 0xf0000) == 0xf0000)) {
10829 UnallocatedT32(instr);
10832 unsigned rt = (instr >> 12) & 0xf;
10833 unsigned rn = (instr >> 16) & 0xf;
10834 int32_t offset = instr & 0xff;
10847 if (((instr & 0xf0000) == 0xf0000)) {
10848 UnallocatedT32(instr);
10851 UnimplementedT32_32("STRBT", instr);
10859 if (((instr & 0xf0000) == 0xf0000)) {
10860 UnallocatedT32(instr);
10863 unsigned rt = (instr >> 12) & 0xf;
10864 unsigned rn = (instr >> 16) & 0xf;
10865 Sign sign((((instr >> 9) & 0x1) == 0) ? minus : plus);
10866 int32_t offset = instr & 0xff;
10879 if ((instr & 0x000002c0) == 0x00000000) {
10880 if (((instr & 0xf0000) == 0xf0000)) {
10881 UnallocatedT32(instr);
10884 unsigned rt = (instr >> 12) & 0xf;
10885 unsigned rn = (instr >> 16) & 0xf;
10887 unsigned rm = instr & 0xf;
10889 uint32_t amount = (instr >> 4) & 0x3;
10917 UnallocatedT32(instr);
10923 if (((instr & 0xf0000) == 0xf0000)) {
10924 UnallocatedT32(instr);
10927 unsigned rt = (instr >> 12) & 0xf;
10928 unsigned rn = (instr >> 16) & 0xf;
10929 Sign sign((((instr >> 9) & 0x1) == 0) ? minus : plus);
10930 int32_t offset = instr & 0xff;
10943 switch (instr & 0x00000200) {
10946 if (((instr & 0xf0000) == 0xf0000)) {
10947 UnallocatedT32(instr);
10950 unsigned rt = (instr >> 12) & 0xf;
10951 unsigned rn = (instr >> 16) & 0xf;
10952 int32_t offset = instr & 0xff;
10965 if (((instr & 0xf0000) == 0xf0000)) {
10966 UnallocatedT32(instr);
10969 UnimplementedT32_32("STRT", instr);
10977 if (((instr & 0xf0000) == 0xf0000)) {
10978 UnallocatedT32(instr);
10981 if (((Uint32((instr >> 16)) & Uint32(0xf)) ==
10983 ((Uint32((instr >> 9)) & Uint32(0x1)) ==
10985 ((Uint32(instr) & Uint32(0xff)) == Uint32(0x4))) {
10986 unsigned rt = (instr >> 12) & 0xf;
10996 unsigned rt = (instr >> 12) & 0xf;
10997 unsigned rn = (instr >> 16) & 0xf;
10998 Sign sign((((instr >> 9) & 0x1) == 0) ? minus : plus);
10999 int32_t offset = instr & 0xff;
11008 UnallocatedT32(instr);
11015 switch (instr & 0x00400d00) {
11018 if ((instr & 0x000002c0) == 0x00000000) {
11019 if (((instr & 0xf0000) == 0xf0000)) {
11020 UnallocatedT32(instr);
11023 unsigned rt = (instr >> 12) & 0xf;
11024 unsigned rn = (instr >> 16) & 0xf;
11026 unsigned rm = instr & 0xf;
11028 uint32_t amount = (instr >> 4) & 0x3;
11056 UnallocatedT32(instr);
11062 if (((instr & 0xf0000) == 0xf0000)) {
11063 UnallocatedT32(instr);
11066 unsigned rt = (instr >> 12) & 0xf;
11067 unsigned rn = (instr >> 16) & 0xf;
11068 Sign sign((((instr >> 9) & 0x1) == 0) ? minus : plus);
11069 int32_t offset = instr & 0xff;
11082 switch (instr & 0x00000200) {
11085 if (((instr & 0xf0000) == 0xf0000)) {
11086 UnallocatedT32(instr);
11089 unsigned rt = (instr >> 12) & 0xf;
11090 unsigned rn = (instr >> 16) & 0xf;
11091 int32_t offset = instr & 0xff;
11104 if (((instr & 0xf0000) == 0xf0000)) {
11105 UnallocatedT32(instr);
11108 UnimplementedT32_32("STRHT", instr);
11116 if (((instr & 0xf0000) == 0xf0000)) {
11117 UnallocatedT32(instr);
11120 unsigned rt = (instr >> 12) & 0xf;
11121 unsigned rn = (instr >> 16) & 0xf;
11122 Sign sign((((instr >> 9) & 0x1) == 0) ? minus : plus);
11123 int32_t offset = instr & 0xff;
11135 UnallocatedT32(instr);
11142 switch (instr & 0x00400000) {
11145 if (((instr & 0xf0000) == 0xf0000)) {
11146 UnallocatedT32(instr);
11149 unsigned rt = (instr >> 12) & 0xf;
11150 unsigned rn = (instr >> 16) & 0xf;
11151 int32_t offset = instr & 0xfff;
11177 if (((instr & 0xf0000) == 0xf0000)) {
11178 UnallocatedT32(instr);
11181 unsigned rt = (instr >> 12) & 0xf;
11182 unsigned rn = (instr >> 16) & 0xf;
11183 int32_t offset = instr & 0xfff;
11211 if ((instr & 0x00400000) == 0x00000000) {
11212 if (((instr & 0xf0000) == 0xf0000)) {
11213 UnallocatedT32(instr);
11216 unsigned rt = (instr >> 12) & 0xf;
11217 unsigned rn = (instr >> 16) & 0xf;
11218 int32_t offset = instr & 0xfff;
11236 UnallocatedT32(instr);
11242 switch (instr & 0x0000000d) {
11245 switch (instr & 0x00000002) {
11248 switch (instr & 0x00000f00) {
11252 Dt_size_7_Decode((instr >> 6) & 0x3);
11254 UnallocatedT32(instr);
11258 Align_align_4_Decode((instr >> 4) & 0x3);
11261 UnallocatedT32(instr);
11265 ExtractDRegister(instr, 22, 12);
11268 switch ((instr >> 8) & 0xf) {
11285 unsigned rn = (instr >> 16) & 0xf;
11301 Dt_size_7_Decode((instr >> 6) & 0x3);
11303 UnallocatedT32(instr);
11307 Align_align_4_Decode((instr >> 4) & 0x3);
11310 UnallocatedT32(instr);
11314 ExtractDRegister(instr, 22, 12);
11317 switch ((instr >> 8) & 0xf) {
11334 unsigned rn = (instr >> 16) & 0xf;
11349 if (((instr & 0xe20) == 0x620) ||
11350 ((instr & 0xf30) == 0xa30)) {
11351 UnallocatedT32(instr);
11355 Dt_size_6_Decode((instr >> 6) & 0x3);
11357 UnallocatedT32(instr);
11361 Align_align_5_Decode((instr >> 4) & 0x3);
11364 UnallocatedT32(instr);
11368 ExtractDRegister(instr, 22, 12);
11371 switch ((instr >> 8) & 0xf) {
11389 unsigned rn = (instr >> 16) & 0xf;
11404 if (((instr & 0xe30) == 0x830)) {
11405 UnallocatedT32(instr);
11409 Dt_size_7_Decode((instr >> 6) & 0x3);
11411 UnallocatedT32(instr);
11415 Align_align_2_Decode((instr >> 4) & 0x3);
11418 UnallocatedT32(instr);
11422 ExtractDRegister(instr, 22, 12);
11425 switch ((instr >> 8) & 0xf) {
11446 unsigned rn = (instr >> 16) & 0xf;
11461 if (((instr & 0x20) == 0x20)) {
11462 UnallocatedT32(instr);
11466 Dt_size_7_Decode((instr >> 6) & 0x3);
11468 UnallocatedT32(instr);
11472 Align_align_3_Decode((instr >> 4) & 0x3);
11475 UnallocatedT32(instr);
11479 ExtractDRegister(instr, 22, 12);
11482 switch ((instr >> 8) & 0xf) {
11499 unsigned rn = (instr >> 16) & 0xf;
11514 if (((instr & 0x20) == 0x20)) {
11515 UnallocatedT32(instr);
11519 Dt_size_7_Decode((instr >> 6) & 0x3);
11521 UnallocatedT32(instr);
11525 Align_align_3_Decode((instr >> 4) & 0x3);
11528 UnallocatedT32(instr);
11532 ExtractDRegister(instr, 22, 12);
11535 switch ((instr >> 8) & 0xf) {
11552 unsigned rn = (instr >> 16) & 0xf;
11567 if (((instr & 0xe20) == 0x620) ||
11568 ((instr & 0xf30) == 0xa30)) {
11569 UnallocatedT32(instr);
11573 Dt_size_6_Decode((instr >> 6) & 0x3);
11575 UnallocatedT32(instr);
11579 Align_align_5_Decode((instr >> 4) & 0x3);
11582 UnallocatedT32(instr);
11586 ExtractDRegister(instr, 22, 12);
11589 switch ((instr >> 8) & 0xf) {
11607 unsigned rn = (instr >> 16) & 0xf;
11622 if (((instr & 0xe20) == 0x620) ||
11623 ((instr & 0xf30) == 0xa30)) {
11624 UnallocatedT32(instr);
11628 Dt_size_6_Decode((instr >> 6) & 0x3);
11630 UnallocatedT32(instr);
11634 Align_align_5_Decode((instr >> 4) & 0x3);
11637 UnallocatedT32(instr);
11641 ExtractDRegister(instr, 22, 12);
11644 switch ((instr >> 8) & 0xf) {
11662 unsigned rn = (instr >> 16) & 0xf;
11677 if (((instr & 0xe30) == 0x830)) {
11678 UnallocatedT32(instr);
11682 Dt_size_7_Decode((instr >> 6) & 0x3);
11684 UnallocatedT32(instr);
11688 Align_align_2_Decode((instr >> 4) & 0x3);
11691 UnallocatedT32(instr);
11695 ExtractDRegister(instr, 22, 12);
11698 switch ((instr >> 8) & 0xf) {
11719 unsigned rn = (instr >> 16) & 0xf;
11734 if (((instr & 0xe30) == 0x830)) {
11735 UnallocatedT32(instr);
11739 Dt_size_7_Decode((instr >> 6) & 0x3);
11741 UnallocatedT32(instr);
11745 Align_align_2_Decode((instr >> 4) & 0x3);
11748 UnallocatedT32(instr);
11752 ExtractDRegister(instr, 22, 12);
11755 switch ((instr >> 8) & 0xf) {
11776 unsigned rn = (instr >> 16) & 0xf;
11791 if (((instr & 0xe20) == 0x620) ||
11792 ((instr & 0xf30) == 0xa30)) {
11793 UnallocatedT32(instr);
11797 Dt_size_6_Decode((instr >> 6) & 0x3);
11799 UnallocatedT32(instr);
11803 Align_align_5_Decode((instr >> 4) & 0x3);
11806 UnallocatedT32(instr);
11810 ExtractDRegister(instr, 22, 12);
11813 switch ((instr >> 8) & 0xf) {
11831 unsigned rn = (instr >> 16) & 0xf;
11845 UnallocatedT32(instr);
11852 switch (instr & 0x00000f00) {
11856 Dt_size_7_Decode((instr >> 6) & 0x3);
11858 UnallocatedT32(instr);
11862 Align_align_4_Decode((instr >> 4) & 0x3);
11865 UnallocatedT32(instr);
11869 ExtractDRegister(instr, 22, 12);
11872 switch ((instr >> 8) & 0xf) {
11889 unsigned rn = (instr >> 16) & 0xf;
11905 Dt_size_7_Decode((instr >> 6) & 0x3);
11907 UnallocatedT32(instr);
11911 Align_align_4_Decode((instr >> 4) & 0x3);
11914 UnallocatedT32(instr);
11918 ExtractDRegister(instr, 22, 12);
11921 switch ((instr >> 8) & 0xf) {
11938 unsigned rn = (instr >> 16) & 0xf;
11953 if (((instr & 0xe20) == 0x620) ||
11954 ((instr & 0xf30) == 0xa30)) {
11955 UnallocatedT32(instr);
11959 Dt_size_6_Decode((instr >> 6) & 0x3);
11961 UnallocatedT32(instr);
11965 Align_align_5_Decode((instr >> 4) & 0x3);
11968 UnallocatedT32(instr);
11972 ExtractDRegister(instr, 22, 12);
11975 switch ((instr >> 8) & 0xf) {
11993 unsigned rn = (instr >> 16) & 0xf;
12008 if (((instr & 0xe30) == 0x830)) {
12009 UnallocatedT32(instr);
12013 Dt_size_7_Decode((instr >> 6) & 0x3);
12015 UnallocatedT32(instr);
12019 Align_align_2_Decode((instr >> 4) & 0x3);
12022 UnallocatedT32(instr);
12026 ExtractDRegister(instr, 22, 12);
12029 switch ((instr >> 8) & 0xf) {
12050 unsigned rn = (instr >> 16) & 0xf;
12065 if (((instr & 0x20) == 0x20)) {
12066 UnallocatedT32(instr);
12070 Dt_size_7_Decode((instr >> 6) & 0x3);
12072 UnallocatedT32(instr);
12076 Align_align_3_Decode((instr >> 4) & 0x3);
12079 UnallocatedT32(instr);
12083 ExtractDRegister(instr, 22, 12);
12086 switch ((instr >> 8) & 0xf) {
12103 unsigned rn = (instr >> 16) & 0xf;
12118 if (((instr & 0x20) == 0x20)) {
12119 UnallocatedT32(instr);
12123 Dt_size_7_Decode((instr >> 6) & 0x3);
12125 UnallocatedT32(instr);
12129 Align_align_3_Decode((instr >> 4) & 0x3);
12132 UnallocatedT32(instr);
12136 ExtractDRegister(instr, 22, 12);
12139 switch ((instr >> 8) & 0xf) {
12156 unsigned rn = (instr >> 16) & 0xf;
12171 if (((instr & 0xe20) == 0x620) ||
12172 ((instr & 0xf30) == 0xa30)) {
12173 UnallocatedT32(instr);
12177 Dt_size_6_Decode((instr >> 6) & 0x3);
12179 UnallocatedT32(instr);
12183 Align_align_5_Decode((instr >> 4) & 0x3);
12186 UnallocatedT32(instr);
12190 ExtractDRegister(instr, 22, 12);
12193 switch ((instr >> 8) & 0xf) {
12211 unsigned rn = (instr >> 16) & 0xf;
12226 if (((instr & 0xe20) == 0x620) ||
12227 ((instr & 0xf30) == 0xa30)) {
12228 UnallocatedT32(instr);
12232 Dt_size_6_Decode((instr >> 6) & 0x3);
12234 UnallocatedT32(instr);
12238 Align_align_5_Decode((instr >> 4) & 0x3);
12241 UnallocatedT32(instr);
12245 ExtractDRegister(instr, 22, 12);
12248 switch ((instr >> 8) & 0xf) {
12266 unsigned rn = (instr >> 16) & 0xf;
12281 if (((instr & 0xe30) == 0x830)) {
12282 UnallocatedT32(instr);
12286 Dt_size_7_Decode((instr >> 6) & 0x3);
12288 UnallocatedT32(instr);
12292 Align_align_2_Decode((instr >> 4) & 0x3);
12295 UnallocatedT32(instr);
12299 ExtractDRegister(instr, 22, 12);
12302 switch ((instr >> 8) & 0xf) {
12323 unsigned rn = (instr >> 16) & 0xf;
12338 if (((instr & 0xe30) == 0x830)) {
12339 UnallocatedT32(instr);
12343 Dt_size_7_Decode((instr >> 6) & 0x3);
12345 UnallocatedT32(instr);
12349 Align_align_2_Decode((instr >> 4) & 0x3);
12352 UnallocatedT32(instr);
12356 ExtractDRegister(instr, 22, 12);
12359 switch ((instr >> 8) & 0xf) {
12380 unsigned rn = (instr >> 16) & 0xf;
12395 if (((instr & 0xe20) == 0x620) ||
12396 ((instr & 0xf30) == 0xa30)) {
12397 UnallocatedT32(instr);
12401 Dt_size_6_Decode((instr >> 6) & 0x3);
12403 UnallocatedT32(instr);
12407 Align_align_5_Decode((instr >> 4) & 0x3);
12410 UnallocatedT32(instr);
12414 ExtractDRegister(instr, 22, 12);
12417 switch ((instr >> 8) & 0xf) {
12435 unsigned rn = (instr >> 16) & 0xf;
12449 UnallocatedT32(instr);
12458 switch (instr & 0x00000f00) {
12461 if (((instr & 0xd) == 0xd)) {
12462 UnallocatedT32(instr);
12466 Dt_size_7_Decode((instr >> 6) & 0x3);
12468 UnallocatedT32(instr);
12472 Align_align_4_Decode((instr >> 4) & 0x3);
12475 UnallocatedT32(instr);
12478 unsigned first = ExtractDRegister(instr, 22, 12);
12481 switch ((instr >> 8) & 0xf) {
12497 unsigned rn = (instr >> 16) & 0xf;
12498 unsigned rm = instr & 0xf;
12514 if (((instr & 0xd) == 0xd)) {
12515 UnallocatedT32(instr);
12519 Dt_size_7_Decode((instr >> 6) & 0x3);
12521 UnallocatedT32(instr);
12525 Align_align_4_Decode((instr >> 4) & 0x3);
12528 UnallocatedT32(instr);
12531 unsigned first = ExtractDRegister(instr, 22, 12);
12534 switch ((instr >> 8) & 0xf) {
12550 unsigned rn = (instr >> 16) & 0xf;
12551 unsigned rm = instr & 0xf;
12567 if (((instr & 0xd) == 0xd) ||
12568 ((instr & 0xe20) == 0x620) ||
12569 ((instr & 0xf30) == 0xa30)) {
12570 UnallocatedT32(instr);
12574 Dt_size_6_Decode((instr >> 6) & 0x3);
12576 UnallocatedT32(instr);
12580 Align_align_5_Decode((instr >> 4) & 0x3);
12583 UnallocatedT32(instr);
12586 unsigned first = ExtractDRegister(instr, 22, 12);
12589 switch ((instr >> 8) & 0xf) {
12607 unsigned rn = (instr >> 16) & 0xf;
12608 unsigned rm = instr & 0xf;
12624 if (((instr & 0xd) == 0xd) ||
12625 ((instr & 0xe30) == 0x830)) {
12626 UnallocatedT32(instr);
12630 Dt_size_7_Decode((instr >> 6) & 0x3);
12632 UnallocatedT32(instr);
12636 Align_align_2_Decode((instr >> 4) & 0x3);
12639 UnallocatedT32(instr);
12642 unsigned first = ExtractDRegister(instr, 22, 12);
12645 switch ((instr >> 8) & 0xf) {
12665 unsigned rn = (instr >> 16) & 0xf;
12666 unsigned rm = instr & 0xf;
12682 if (((instr & 0xd) == 0xd) ||
12683 ((instr & 0x20) == 0x20)) {
12684 UnallocatedT32(instr);
12688 Dt_size_7_Decode((instr >> 6) & 0x3);
12690 UnallocatedT32(instr);
12694 Align_align_3_Decode((instr >> 4) & 0x3);
12697 UnallocatedT32(instr);
12700 unsigned first = ExtractDRegister(instr, 22, 12);
12703 switch ((instr >> 8) & 0xf) {
12719 unsigned rn = (instr >> 16) & 0xf;
12720 unsigned rm = instr & 0xf;
12736 if (((instr & 0xd) == 0xd) ||
12737 ((instr & 0x20) == 0x20)) {
12738 UnallocatedT32(instr);
12742 Dt_size_7_Decode((instr >> 6) & 0x3);
12744 UnallocatedT32(instr);
12748 Align_align_3_Decode((instr >> 4) & 0x3);
12751 UnallocatedT32(instr);
12754 unsigned first = ExtractDRegister(instr, 22, 12);
12757 switch ((instr >> 8) & 0xf) {
12773 unsigned rn = (instr >> 16) & 0xf;
12774 unsigned rm = instr & 0xf;
12790 if (((instr & 0xd) == 0xd) ||
12791 ((instr & 0xe20) == 0x620) ||
12792 ((instr & 0xf30) == 0xa30)) {
12793 UnallocatedT32(instr);
12797 Dt_size_6_Decode((instr >> 6) & 0x3);
12799 UnallocatedT32(instr);
12803 Align_align_5_Decode((instr >> 4) & 0x3);
12806 UnallocatedT32(instr);
12809 unsigned first = ExtractDRegister(instr, 22, 12);
12812 switch ((instr >> 8) & 0xf) {
12830 unsigned rn = (instr >> 16) & 0xf;
12831 unsigned rm = instr & 0xf;
12847 if (((instr & 0xd) == 0xd) ||
12848 ((instr & 0xe20) == 0x620) ||
12849 ((instr & 0xf30) == 0xa30)) {
12850 UnallocatedT32(instr);
12854 Dt_size_6_Decode((instr >> 6) & 0x3);
12856 UnallocatedT32(instr);
12860 Align_align_5_Decode((instr >> 4) & 0x3);
12863 UnallocatedT32(instr);
12866 unsigned first = ExtractDRegister(instr, 22, 12);
12869 switch ((instr >> 8) & 0xf) {
12887 unsigned rn = (instr >> 16) & 0xf;
12888 unsigned rm = instr & 0xf;
12904 if (((instr & 0xd) == 0xd) ||
12905 ((instr & 0xe30) == 0x830)) {
12906 UnallocatedT32(instr);
12910 Dt_size_7_Decode((instr >> 6) & 0x3);
12912 UnallocatedT32(instr);
12916 Align_align_2_Decode((instr >> 4) & 0x3);
12919 UnallocatedT32(instr);
12922 unsigned first = ExtractDRegister(instr, 22, 12);
12925 switch ((instr >> 8) & 0xf) {
12945 unsigned rn = (instr >> 16) & 0xf;
12946 unsigned rm = instr & 0xf;
12962 if (((instr & 0xd) == 0xd) ||
12963 ((instr & 0xe30) == 0x830)) {
12964 UnallocatedT32(instr);
12968 Dt_size_7_Decode((instr >> 6) & 0x3);
12970 UnallocatedT32(instr);
12974 Align_align_2_Decode((instr >> 4) & 0x3);
12977 UnallocatedT32(instr);
12980 unsigned first = ExtractDRegister(instr, 22, 12);
12983 switch ((instr >> 8) & 0xf) {
13003 unsigned rn = (instr >> 16) & 0xf;
13004 unsigned rm = instr & 0xf;
13020 if (((instr & 0xd) == 0xd) ||
13021 ((instr & 0xe20) == 0x620) ||
13022 ((instr & 0xf30) == 0xa30)) {
13023 UnallocatedT32(instr);
13027 Dt_size_6_Decode((instr >> 6) & 0x3);
13029 UnallocatedT32(instr);
13033 Align_align_5_Decode((instr >> 4) & 0x3);
13036 UnallocatedT32(instr);
13039 unsigned first = ExtractDRegister(instr, 22, 12);
13042 switch ((instr >> 8) & 0xf) {
13060 unsigned rn = (instr >> 16) & 0xf;
13061 unsigned rm = instr & 0xf;
13076 UnallocatedT32(instr);
13086 switch (instr & 0x0000000d) {
13089 switch (instr & 0x00000002) {
13092 switch (instr & 0x00000f00) {
13096 Dt_size_7_Decode((instr >> 6) & 0x3);
13098 UnallocatedT32(instr);
13102 Align_align_4_Decode((instr >> 4) & 0x3);
13105 UnallocatedT32(instr);
13109 ExtractDRegister(instr, 22, 12);
13112 switch ((instr >> 8) & 0xf) {
13129 unsigned rn = (instr >> 16) & 0xf;
13145 Dt_size_7_Decode((instr >> 6) & 0x3);
13147 UnallocatedT32(instr);
13151 Align_align_4_Decode((instr >> 4) & 0x3);
13154 UnallocatedT32(instr);
13158 ExtractDRegister(instr, 22, 12);
13161 switch ((instr >> 8) & 0xf) {
13178 unsigned rn = (instr >> 16) & 0xf;
13193 if (((instr & 0xe20) == 0x620) ||
13194 ((instr & 0xf30) == 0xa30)) {
13195 UnallocatedT32(instr);
13199 Dt_size_6_Decode((instr >> 6) & 0x3);
13201 UnallocatedT32(instr);
13205 Align_align_1_Decode((instr >> 4) & 0x3);
13208 UnallocatedT32(instr);
13212 ExtractDRegister(instr, 22, 12);
13215 switch ((instr >> 8) & 0xf) {
13233 unsigned rn = (instr >> 16) & 0xf;
13248 if (((instr & 0xe30) == 0x830)) {
13249 UnallocatedT32(instr);
13253 Dt_size_7_Decode((instr >> 6) & 0x3);
13255 UnallocatedT32(instr);
13259 Align_align_2_Decode((instr >> 4) & 0x3);
13262 UnallocatedT32(instr);
13266 ExtractDRegister(instr, 22, 12);
13269 switch ((instr >> 8) & 0xf) {
13290 unsigned rn = (instr >> 16) & 0xf;
13306 Dt_size_7_Decode((instr >> 6) & 0x3);
13308 UnallocatedT32(instr);
13312 Align_align_3_Decode((instr >> 4) & 0x3);
13315 UnallocatedT32(instr);
13319 ExtractDRegister(instr, 22, 12);
13322 switch ((instr >> 8) & 0xf) {
13339 unsigned rn = (instr >> 16) & 0xf;
13355 Dt_size_7_Decode((instr >> 6) & 0x3);
13357 UnallocatedT32(instr);
13361 Align_align_3_Decode((instr >> 4) & 0x3);
13364 UnallocatedT32(instr);
13368 ExtractDRegister(instr, 22, 12);
13371 switch ((instr >> 8) & 0xf) {
13388 unsigned rn = (instr >> 16) & 0xf;
13403 if (((instr & 0xe20) == 0x620) ||
13404 ((instr & 0xf30) == 0xa30)) {
13405 UnallocatedT32(instr);
13409 Dt_size_6_Decode((instr >> 6) & 0x3);
13411 UnallocatedT32(instr);
13415 Align_align_1_Decode((instr >> 4) & 0x3);
13418 UnallocatedT32(instr);
13422 ExtractDRegister(instr, 22, 12);
13425 switch ((instr >> 8) & 0xf) {
13443 unsigned rn = (instr >> 16) & 0xf;
13458 if (((instr & 0xe20) == 0x620) ||
13459 ((instr & 0xf30) == 0xa30)) {
13460 UnallocatedT32(instr);
13464 Dt_size_6_Decode((instr >> 6) & 0x3);
13466 UnallocatedT32(instr);
13470 Align_align_1_Decode((instr >> 4) & 0x3);
13473 UnallocatedT32(instr);
13477 ExtractDRegister(instr, 22, 12);
13480 switch ((instr >> 8) & 0xf) {
13498 unsigned rn = (instr >> 16) & 0xf;
13513 if (((instr & 0xe30) == 0x830)) {
13514 UnallocatedT32(instr);
13518 Dt_size_7_Decode((instr >> 6) & 0x3);
13520 UnallocatedT32(instr);
13524 Align_align_2_Decode((instr >> 4) & 0x3);
13527 UnallocatedT32(instr);
13531 ExtractDRegister(instr, 22, 12);
13534 switch ((instr >> 8) & 0xf) {
13555 unsigned rn = (instr >> 16) & 0xf;
13570 if (((instr & 0xe30) == 0x830)) {
13571 UnallocatedT32(instr);
13575 Dt_size_7_Decode((instr >> 6) & 0x3);
13577 UnallocatedT32(instr);
13581 Align_align_2_Decode((instr >> 4) & 0x3);
13584 UnallocatedT32(instr);
13588 ExtractDRegister(instr, 22, 12);
13591 switch ((instr >> 8) & 0xf) {
13612 unsigned rn = (instr >> 16) & 0xf;
13627 if (((instr & 0xe20) == 0x620) ||
13628 ((instr & 0xf30) == 0xa30)) {
13629 UnallocatedT32(instr);
13633 Dt_size_6_Decode((instr >> 6) & 0x3);
13635 UnallocatedT32(instr);
13639 Align_align_1_Decode((instr >> 4) & 0x3);
13642 UnallocatedT32(instr);
13646 ExtractDRegister(instr, 22, 12);
13649 switch ((instr >> 8) & 0xf) {
13667 unsigned rn = (instr >> 16) & 0xf;
13681 UnallocatedT32(instr);
13688 switch (instr & 0x00000f00) {
13692 Dt_size_7_Decode((instr >> 6) & 0x3);
13694 UnallocatedT32(instr);
13698 Align_align_4_Decode((instr >> 4) & 0x3);
13701 UnallocatedT32(instr);
13705 ExtractDRegister(instr, 22, 12);
13708 switch ((instr >> 8) & 0xf) {
13725 unsigned rn = (instr >> 16) & 0xf;
13741 Dt_size_7_Decode((instr >> 6) & 0x3);
13743 UnallocatedT32(instr);
13747 Align_align_4_Decode((instr >> 4) & 0x3);
13750 UnallocatedT32(instr);
13754 ExtractDRegister(instr, 22, 12);
13757 switch ((instr >> 8) & 0xf) {
13774 unsigned rn = (instr >> 16) & 0xf;
13789 if (((instr & 0xe20) == 0x620) ||
13790 ((instr & 0xf30) == 0xa30)) {
13791 UnallocatedT32(instr);
13795 Dt_size_6_Decode((instr >> 6) & 0x3);
13797 UnallocatedT32(instr);
13801 Align_align_1_Decode((instr >> 4) & 0x3);
13804 UnallocatedT32(instr);
13808 ExtractDRegister(instr, 22, 12);
13811 switch ((instr >> 8) & 0xf) {
13829 unsigned rn = (instr >> 16) & 0xf;
13844 if (((instr & 0xe30) == 0x830)) {
13845 UnallocatedT32(instr);
13849 Dt_size_7_Decode((instr >> 6) & 0x3);
13851 UnallocatedT32(instr);
13855 Align_align_2_Decode((instr >> 4) & 0x3);
13858 UnallocatedT32(instr);
13862 ExtractDRegister(instr, 22, 12);
13865 switch ((instr >> 8) & 0xf) {
13886 unsigned rn = (instr >> 16) & 0xf;
13902 Dt_size_7_Decode((instr >> 6) & 0x3);
13904 UnallocatedT32(instr);
13908 Align_align_3_Decode((instr >> 4) & 0x3);
13911 UnallocatedT32(instr);
13915 ExtractDRegister(instr, 22, 12);
13918 switch ((instr >> 8) & 0xf) {
13935 unsigned rn = (instr >> 16) & 0xf;
13951 Dt_size_7_Decode((instr >> 6) & 0x3);
13953 UnallocatedT32(instr);
13957 Align_align_3_Decode((instr >> 4) & 0x3);
13960 UnallocatedT32(instr);
13964 ExtractDRegister(instr, 22, 12);
13967 switch ((instr >> 8) & 0xf) {
13984 unsigned rn = (instr >> 16) & 0xf;
13999 if (((instr & 0xe20) == 0x620) ||
14000 ((instr & 0xf30) == 0xa30)) {
14001 UnallocatedT32(instr);
14005 Dt_size_6_Decode((instr >> 6) & 0x3);
14007 UnallocatedT32(instr);
14011 Align_align_1_Decode((instr >> 4) & 0x3);
14014 UnallocatedT32(instr);
14018 ExtractDRegister(instr, 22, 12);
14021 switch ((instr >> 8) & 0xf) {
14039 unsigned rn = (instr >> 16) & 0xf;
14054 if (((instr & 0xe20) == 0x620) ||
14055 ((instr & 0xf30) == 0xa30)) {
14056 UnallocatedT32(instr);
14060 Dt_size_6_Decode((instr >> 6) & 0x3);
14062 UnallocatedT32(instr);
14066 Align_align_1_Decode((instr >> 4) & 0x3);
14069 UnallocatedT32(instr);
14073 ExtractDRegister(instr, 22, 12);
14076 switch ((instr >> 8) & 0xf) {
14094 unsigned rn = (instr >> 16) & 0xf;
14109 if (((instr & 0xe30) == 0x830)) {
14110 UnallocatedT32(instr);
14114 Dt_size_7_Decode((instr >> 6) & 0x3);
14116 UnallocatedT32(instr);
14120 Align_align_2_Decode((instr >> 4) & 0x3);
14123 UnallocatedT32(instr);
14127 ExtractDRegister(instr, 22, 12);
14130 switch ((instr >> 8) & 0xf) {
14151 unsigned rn = (instr >> 16) & 0xf;
14166 if (((instr & 0xe30) == 0x830)) {
14167 UnallocatedT32(instr);
14171 Dt_size_7_Decode((instr >> 6) & 0x3);
14173 UnallocatedT32(instr);
14177 Align_align_2_Decode((instr >> 4) & 0x3);
14180 UnallocatedT32(instr);
14184 ExtractDRegister(instr, 22, 12);
14187 switch ((instr >> 8) & 0xf) {
14208 unsigned rn = (instr >> 16) & 0xf;
14223 if (((instr & 0xe20) == 0x620) ||
14224 ((instr & 0xf30) == 0xa30)) {
14225 UnallocatedT32(instr);
14229 Dt_size_6_Decode((instr >> 6) & 0x3);
14231 UnallocatedT32(instr);
14235 Align_align_1_Decode((instr >> 4) & 0x3);
14238 UnallocatedT32(instr);
14242 ExtractDRegister(instr, 22, 12);
14245 switch ((instr >> 8) & 0xf) {
14263 unsigned rn = (instr >> 16) & 0xf;
14277 UnallocatedT32(instr);
14286 switch (instr & 0x00000f00) {
14289 if (((instr & 0xd) == 0xd)) {
14290 UnallocatedT32(instr);
14294 Dt_size_7_Decode((instr >> 6) & 0x3);
14296 UnallocatedT32(instr);
14300 Align_align_4_Decode((instr >> 4) & 0x3);
14303 UnallocatedT32(instr);
14306 unsigned first = ExtractDRegister(instr, 22, 12);
14309 switch ((instr >> 8) & 0xf) {
14325 unsigned rn = (instr >> 16) & 0xf;
14326 unsigned rm = instr & 0xf;
14342 if (((instr & 0xd) == 0xd)) {
14343 UnallocatedT32(instr);
14347 Dt_size_7_Decode((instr >> 6) & 0x3);
14349 UnallocatedT32(instr);
14353 Align_align_4_Decode((instr >> 4) & 0x3);
14356 UnallocatedT32(instr);
14359 unsigned first = ExtractDRegister(instr, 22, 12);
14362 switch ((instr >> 8) & 0xf) {
14378 unsigned rn = (instr >> 16) & 0xf;
14379 unsigned rm = instr & 0xf;
14395 if (((instr & 0xd) == 0xd) ||
14396 ((instr & 0xe20) == 0x620) ||
14397 ((instr & 0xf30) == 0xa30)) {
14398 UnallocatedT32(instr);
14402 Dt_size_6_Decode((instr >> 6) & 0x3);
14404 UnallocatedT32(instr);
14408 Align_align_1_Decode((instr >> 4) & 0x3);
14411 UnallocatedT32(instr);
14414 unsigned first = ExtractDRegister(instr, 22, 12);
14417 switch ((instr >> 8) & 0xf) {
14435 unsigned rn = (instr >> 16) & 0xf;
14436 unsigned rm = instr & 0xf;
14452 if (((instr & 0xd) == 0xd) ||
14453 ((instr & 0xe30) == 0x830)) {
14454 UnallocatedT32(instr);
14458 Dt_size_7_Decode((instr >> 6) & 0x3);
14460 UnallocatedT32(instr);
14464 Align_align_2_Decode((instr >> 4) & 0x3);
14467 UnallocatedT32(instr);
14470 unsigned first = ExtractDRegister(instr, 22, 12);
14473 switch ((instr >> 8) & 0xf) {
14493 unsigned rn = (instr >> 16) & 0xf;
14494 unsigned rm = instr & 0xf;
14510 if (((instr & 0xd) == 0xd)) {
14511 UnallocatedT32(instr);
14515 Dt_size_7_Decode((instr >> 6) & 0x3);
14517 UnallocatedT32(instr);
14521 Align_align_3_Decode((instr >> 4) & 0x3);
14524 UnallocatedT32(instr);
14527 unsigned first = ExtractDRegister(instr, 22, 12);
14530 switch ((instr >> 8) & 0xf) {
14546 unsigned rn = (instr >> 16) & 0xf;
14547 unsigned rm = instr & 0xf;
14563 if (((instr & 0xd) == 0xd)) {
14564 UnallocatedT32(instr);
14568 Dt_size_7_Decode((instr >> 6) & 0x3);
14570 UnallocatedT32(instr);
14574 Align_align_3_Decode((instr >> 4) & 0x3);
14577 UnallocatedT32(instr);
14580 unsigned first = ExtractDRegister(instr, 22, 12);
14583 switch ((instr >> 8) & 0xf) {
14599 unsigned rn = (instr >> 16) & 0xf;
14600 unsigned rm = instr & 0xf;
14616 if (((instr & 0xd) == 0xd) ||
14617 ((instr & 0xe20) == 0x620) ||
14618 ((instr & 0xf30) == 0xa30)) {
14619 UnallocatedT32(instr);
14623 Dt_size_6_Decode((instr >> 6) & 0x3);
14625 UnallocatedT32(instr);
14629 Align_align_1_Decode((instr >> 4) & 0x3);
14632 UnallocatedT32(instr);
14635 unsigned first = ExtractDRegister(instr, 22, 12);
14638 switch ((instr >> 8) & 0xf) {
14656 unsigned rn = (instr >> 16) & 0xf;
14657 unsigned rm = instr & 0xf;
14673 if (((instr & 0xd) == 0xd) ||
14674 ((instr & 0xe20) == 0x620) ||
14675 ((instr & 0xf30) == 0xa30)) {
14676 UnallocatedT32(instr);
14680 Dt_size_6_Decode((instr >> 6) & 0x3);
14682 UnallocatedT32(instr);
14686 Align_align_1_Decode((instr >> 4) & 0x3);
14689 UnallocatedT32(instr);
14692 unsigned first = ExtractDRegister(instr, 22, 12);
14695 switch ((instr >> 8) & 0xf) {
14713 unsigned rn = (instr >> 16) & 0xf;
14714 unsigned rm = instr & 0xf;
14730 if (((instr & 0xd) == 0xd) ||
14731 ((instr & 0xe30) == 0x830)) {
14732 UnallocatedT32(instr);
14736 Dt_size_7_Decode((instr >> 6) & 0x3);
14738 UnallocatedT32(instr);
14742 Align_align_2_Decode((instr >> 4) & 0x3);
14745 UnallocatedT32(instr);
14748 unsigned first = ExtractDRegister(instr, 22, 12);
14751 switch ((instr >> 8) & 0xf) {
14771 unsigned rn = (instr >> 16) & 0xf;
14772 unsigned rm = instr & 0xf;
14788 if (((instr & 0xd) == 0xd) ||
14789 ((instr & 0xe30) == 0x830)) {
14790 UnallocatedT32(instr);
14794 Dt_size_7_Decode((instr >> 6) & 0x3);
14796 UnallocatedT32(instr);
14800 Align_align_2_Decode((instr >> 4) & 0x3);
14803 UnallocatedT32(instr);
14806 unsigned first = ExtractDRegister(instr, 22, 12);
14809 switch ((instr >> 8) & 0xf) {
14829 unsigned rn = (instr >> 16) & 0xf;
14830 unsigned rm = instr & 0xf;
14846 if (((instr & 0xd) == 0xd) ||
14847 ((instr & 0xe20) == 0x620) ||
14848 ((instr & 0xf30) == 0xa30)) {
14849 UnallocatedT32(instr);
14853 Dt_size_6_Decode((instr >> 6) & 0x3);
14855 UnallocatedT32(instr);
14859 Align_align_1_Decode((instr >> 4) & 0x3);
14862 UnallocatedT32(instr);
14865 unsigned first = ExtractDRegister(instr, 22, 12);
14868 switch ((instr >> 8) & 0xf) {
14886 unsigned rn = (instr >> 16) & 0xf;
14887 unsigned rm = instr & 0xf;
14902 UnallocatedT32(instr);
14912 switch (instr & 0x00000300) {
14915 switch (instr & 0x00000c00) {
14918 UnallocatedT32(instr);
14922 switch (instr & 0x0000000d) {
14925 switch (instr & 0x00000002) {
14928 if (((instr & 0xc00) == 0xc00)) {
14929 UnallocatedT32(instr);
14933 Dt_size_7_Decode((instr >> 10) & 0x3);
14935 UnallocatedT32(instr);
14939 Align_index_align_1_Decode((instr >>
14944 UnallocatedT32(instr);
14952 ExtractDRegister(instr, 22, 12);
14955 unsigned rn = (instr >> 16) & 0xf;
14970 if (((instr & 0xc00) == 0xc00)) {
14971 UnallocatedT32(instr);
14975 Dt_size_7_Decode((instr >> 10) & 0x3);
14977 UnallocatedT32(instr);
14981 Align_index_align_1_Decode((instr >>
14986 UnallocatedT32(instr);
14994 ExtractDRegister(instr, 22, 12);
14997 unsigned rn = (instr >> 16) & 0xf;
15014 if (((instr & 0xc00) == 0xc00) ||
15015 ((instr & 0xd) == 0xd)) {
15016 UnallocatedT32(instr);
15020 Dt_size_7_Decode((instr >> 10) & 0x3);
15022 UnallocatedT32(instr);
15026 Align_index_align_1_Decode((instr >> 4) &
15030 UnallocatedT32(instr);
15038 ExtractDRegister(instr, 22, 12);
15041 unsigned rn = (instr >> 16) & 0xf;
15042 unsigned rm = instr & 0xf;
15064 switch (instr & 0x00000c00) {
15067 UnallocatedT32(instr);
15071 switch (instr & 0x0000000d) {
15074 switch (instr & 0x00000002) {
15077 if (((instr & 0xc00) == 0xc00)) {
15078 UnallocatedT32(instr);
15082 Dt_size_7_Decode((instr >> 10) & 0x3);
15084 UnallocatedT32(instr);
15088 Align_index_align_2_Decode((instr >>
15093 UnallocatedT32(instr);
15101 ExtractDRegister(instr, 22, 12);
15107 unsigned rn = (instr >> 16) & 0xf;
15122 if (((instr & 0xc00) == 0xc00)) {
15123 UnallocatedT32(instr);
15127 Dt_size_7_Decode((instr >> 10) & 0x3);
15129 UnallocatedT32(instr);
15133 Align_index_align_2_Decode((instr >>
15138 UnallocatedT32(instr);
15146 ExtractDRegister(instr, 22, 12);
15152 unsigned rn = (instr >> 16) & 0xf;
15169 if (((instr & 0xc00) == 0xc00) ||
15170 ((instr & 0xd) == 0xd)) {
15171 UnallocatedT32(instr);
15175 Dt_size_7_Decode((instr >> 10) & 0x3);
15177 UnallocatedT32(instr);
15181 Align_index_align_2_Decode((instr >> 4) &
15185 UnallocatedT32(instr);
15193 ExtractDRegister(instr, 22, 12);
15199 unsigned rn = (instr >> 16) & 0xf;
15200 unsigned rm = instr & 0xf;
15222 switch (instr & 0x00000c30) {
15225 UnallocatedT32(instr);
15230 UnallocatedT32(instr);
15235 UnallocatedT32(instr);
15240 UnallocatedT32(instr);
15245 UnallocatedT32(instr);
15250 UnallocatedT32(instr);
15255 UnallocatedT32(instr);
15260 UnallocatedT32(instr);
15265 UnallocatedT32(instr);
15270 UnallocatedT32(instr);
15275 UnallocatedT32(instr);
15279 switch (instr & 0x0000000d) {
15282 switch (instr & 0x00000002) {
15285 if (((instr & 0xc00) == 0xc00) ||
15286 ((instr & 0x810) == 0x10) ||
15287 ((instr & 0xc30) == 0x810) ||
15288 ((instr & 0xc30) == 0x820) ||
15289 ((instr & 0xc30) == 0x830)) {
15290 UnallocatedT32(instr);
15294 Dt_size_7_Decode((instr >> 10) & 0x3);
15296 UnallocatedT32(instr);
15300 Index_1_Decode((instr >> 4) & 0xf,
15303 UnallocatedT32(instr);
15310 ExtractDRegister(instr, 22, 12);
15316 unsigned rn = (instr >> 16) & 0xf;
15329 if (((instr & 0xc00) == 0xc00) ||
15330 ((instr & 0x810) == 0x10) ||
15331 ((instr & 0xc30) == 0x810) ||
15332 ((instr & 0xc30) == 0x820) ||
15333 ((instr & 0xc30) == 0x830)) {
15334 UnallocatedT32(instr);
15338 Dt_size_7_Decode((instr >> 10) & 0x3);
15340 UnallocatedT32(instr);
15344 Index_1_Decode((instr >> 4) & 0xf,
15347 UnallocatedT32(instr);
15354 ExtractDRegister(instr, 22, 12);
15360 unsigned rn = (instr >> 16) & 0xf;
15375 if (((instr & 0xc00) == 0xc00) ||
15376 ((instr & 0xd) == 0xd) ||
15377 ((instr & 0x810) == 0x10) ||
15378 ((instr & 0xc30) == 0x810) ||
15379 ((instr & 0xc30) == 0x820) ||
15380 ((instr & 0xc30) == 0x830)) {
15381 UnallocatedT32(instr);
15385 Dt_size_7_Decode((instr >> 10) & 0x3);
15387 UnallocatedT32(instr);
15391 Index_1_Decode((instr >> 4) & 0xf, dt);
15393 UnallocatedT32(instr);
15400 ExtractDRegister(instr, 22, 12);
15406 unsigned rn = (instr >> 16) & 0xf;
15408 unsigned rm = instr & 0xf;
15430 switch (instr & 0x00000c00) {
15433 UnallocatedT32(instr);
15437 switch (instr & 0x0000000d) {
15440 switch (instr & 0x00000002) {
15443 if (((instr & 0xc00) == 0xc00)) {
15444 UnallocatedT32(instr);
15448 Dt_size_7_Decode((instr >> 10) & 0x3);
15450 UnallocatedT32(instr);
15454 Align_index_align_3_Decode((instr >>
15459 UnallocatedT32(instr);
15467 ExtractDRegister(instr, 22, 12);
15473 unsigned rn = (instr >> 16) & 0xf;
15488 if (((instr & 0xc00) == 0xc00)) {
15489 UnallocatedT32(instr);
15493 Dt_size_7_Decode((instr >> 10) & 0x3);
15495 UnallocatedT32(instr);
15499 Align_index_align_3_Decode((instr >>
15504 UnallocatedT32(instr);
15512 ExtractDRegister(instr, 22, 12);
15518 unsigned rn = (instr >> 16) & 0xf;
15535 if (((instr & 0xc00) == 0xc00) ||
15536 ((instr & 0xd) == 0xd)) {
15537 UnallocatedT32(instr);
15541 Dt_size_7_Decode((instr >> 10) & 0x3);
15543 UnallocatedT32(instr);
15547 Align_index_align_3_Decode((instr >> 4) &
15551 UnallocatedT32(instr);
15559 ExtractDRegister(instr, 22, 12);
15565 unsigned rn = (instr >> 16) & 0xf;
15566 unsigned rm = instr & 0xf;
15591 switch (instr & 0x00000300) {
15594 switch (instr & 0x00000c00) {
15597 switch (instr & 0x0000000d) {
15600 switch (instr & 0x00000002) {
15604 Dt_size_7_Decode((instr >> 6) & 0x3);
15606 UnallocatedT32(instr);
15610 Align_a_1_Decode((instr >> 4) & 0x1,
15614 UnallocatedT32(instr);
15618 ExtractDRegister(instr, 22, 12);
15621 switch ((instr >> 5) & 0x1) {
15633 unsigned rn = (instr >> 16) & 0xf;
15649 Dt_size_7_Decode((instr >> 6) & 0x3);
15651 UnallocatedT32(instr);
15655 Align_a_1_Decode((instr >> 4) & 0x1,
15659 UnallocatedT32(instr);
15663 ExtractDRegister(instr, 22, 12);
15666 switch ((instr >> 5) & 0x1) {
15678 unsigned rn = (instr >> 16) & 0xf;
15695 if (((instr & 0xd) == 0xd)) {
15696 UnallocatedT32(instr);
15700 Dt_size_7_Decode((instr >> 6) & 0x3);
15702 UnallocatedT32(instr);
15706 Align_a_1_Decode((instr >> 4) & 0x1, dt);
15709 UnallocatedT32(instr);
15713 ExtractDRegister(instr, 22, 12);
15716 switch ((instr >> 5) & 0x1) {
15728 unsigned rn = (instr >> 16) & 0xf;
15729 unsigned rm = instr & 0xf;
15747 switch (instr & 0x0000000d) {
15750 switch (instr & 0x00000002) {
15753 if (((instr & 0xc00) == 0xc00)) {
15754 UnallocatedT32(instr);
15758 Dt_size_7_Decode((instr >> 10) & 0x3);
15760 UnallocatedT32(instr);
15764 Align_index_align_1_Decode((instr >>
15769 UnallocatedT32(instr);
15777 ExtractDRegister(instr, 22, 12);
15780 unsigned rn = (instr >> 16) & 0xf;
15795 if (((instr & 0xc00) == 0xc00)) {
15796 UnallocatedT32(instr);
15800 Dt_size_7_Decode((instr >> 10) & 0x3);
15802 UnallocatedT32(instr);
15806 Align_index_align_1_Decode((instr >>
15811 UnallocatedT32(instr);
15819 ExtractDRegister(instr, 22, 12);
15822 unsigned rn = (instr >> 16) & 0xf;
15839 if (((instr & 0xc00) == 0xc00) ||
15840 ((instr & 0xd) == 0xd)) {
15841 UnallocatedT32(instr);
15845 Dt_size_7_Decode((instr >> 10) & 0x3);
15847 UnallocatedT32(instr);
15851 Align_index_align_1_Decode((instr >> 4) &
15855 UnallocatedT32(instr);
15863 ExtractDRegister(instr, 22, 12);
15866 unsigned rn = (instr >> 16) & 0xf;
15867 unsigned rm = instr & 0xf;
15889 switch (instr & 0x00000c00) {
15892 switch (instr & 0x0000000d) {
15895 switch (instr & 0x00000002) {
15899 Dt_size_7_Decode((instr >> 6) & 0x3);
15901 UnallocatedT32(instr);
15905 Align_a_2_Decode((instr >> 4) & 0x1,
15909 UnallocatedT32(instr);
15913 ExtractDRegister(instr, 22, 12);
15916 switch ((instr >> 5) & 0x1) {
15933 unsigned rn = (instr >> 16) & 0xf;
15949 Dt_size_7_Decode((instr >> 6) & 0x3);
15951 UnallocatedT32(instr);
15955 Align_a_2_Decode((instr >> 4) & 0x1,
15959 UnallocatedT32(instr);
15963 ExtractDRegister(instr, 22, 12);
15966 switch ((instr >> 5) & 0x1) {
15983 unsigned rn = (instr >> 16) & 0xf;
16000 if (((instr & 0xd) == 0xd)) {
16001 UnallocatedT32(instr);
16005 Dt_size_7_Decode((instr >> 6) & 0x3);
16007 UnallocatedT32(instr);
16011 Align_a_2_Decode((instr >> 4) & 0x1, dt);
16014 UnallocatedT32(instr);
16018 ExtractDRegister(instr, 22, 12);
16021 switch ((instr >> 5) & 0x1) {
16038 unsigned rn = (instr >> 16) & 0xf;
16039 unsigned rm = instr & 0xf;
16057 switch (instr & 0x0000000d) {
16060 switch (instr & 0x00000002) {
16063 if (((instr & 0xc00) == 0xc00)) {
16064 UnallocatedT32(instr);
16068 Dt_size_7_Decode((instr >> 10) & 0x3);
16070 UnallocatedT32(instr);
16074 Align_index_align_2_Decode((instr >>
16079 UnallocatedT32(instr);
16087 ExtractDRegister(instr, 22, 12);
16093 unsigned rn = (instr >> 16) & 0xf;
16108 if (((instr & 0xc00) == 0xc00)) {
16109 UnallocatedT32(instr);
16113 Dt_size_7_Decode((instr >> 10) & 0x3);
16115 UnallocatedT32(instr);
16119 Align_index_align_2_Decode((instr >>
16124 UnallocatedT32(instr);
16132 ExtractDRegister(instr, 22, 12);
16138 unsigned rn = (instr >> 16) & 0xf;
16155 if (((instr & 0xc00) == 0xc00) ||
16156 ((instr & 0xd) == 0xd)) {
16157 UnallocatedT32(instr);
16161 Dt_size_7_Decode((instr >> 10) & 0x3);
16163 UnallocatedT32(instr);
16167 Align_index_align_2_Decode((instr >> 4) &
16171 UnallocatedT32(instr);
16179 ExtractDRegister(instr, 22, 12);
16185 unsigned rn = (instr >> 16) & 0xf;
16186 unsigned rm = instr & 0xf;
16208 switch (instr & 0x00000c00) {
16211 switch (instr & 0x00000010) {
16214 switch (instr & 0x0000000d) {
16217 switch (instr & 0x00000002) {
16221 (instr >> 6) & 0x3);
16223 UnallocatedT32(instr);
16227 ExtractDRegister(instr, 22, 12);
16230 switch ((instr >> 5) & 0x1) {
16247 unsigned rn = (instr >> 16) & 0xf;
16263 (instr >> 6) & 0x3);
16265 UnallocatedT32(instr);
16269 ExtractDRegister(instr, 22, 12);
16272 switch ((instr >> 5) & 0x1) {
16289 unsigned rn = (instr >> 16) & 0xf;
16306 if (((instr & 0xd) == 0xd)) {
16307 UnallocatedT32(instr);
16311 Dt_size_7_Decode((instr >> 6) & 0x3);
16313 UnallocatedT32(instr);
16317 ExtractDRegister(instr, 22, 12);
16320 switch ((instr >> 5) & 0x1) {
16337 unsigned rn = (instr >> 16) & 0xf;
16339 unsigned rm = instr & 0xf;
16357 UnallocatedT32(instr);
16363 switch (instr & 0x0000000d) {
16366 switch (instr & 0x00000002) {
16369 if (((instr & 0xc00) == 0xc00)) {
16370 UnallocatedT32(instr);
16374 Dt_size_7_Decode((instr >> 10) & 0x3);
16376 UnallocatedT32(instr);
16380 Index_1_Decode((instr >> 4) & 0xf,
16383 UnallocatedT32(instr);
16390 ExtractDRegister(instr, 22, 12);
16396 unsigned rn = (instr >> 16) & 0xf;
16409 if (((instr & 0xc00) == 0xc00)) {
16410 UnallocatedT32(instr);
16414 Dt_size_7_Decode((instr >> 10) & 0x3);
16416 UnallocatedT32(instr);
16420 Index_1_Decode((instr >> 4) & 0xf,
16423 UnallocatedT32(instr);
16430 ExtractDRegister(instr, 22, 12);
16436 unsigned rn = (instr >> 16) & 0xf;
16451 if (((instr & 0xc00) == 0xc00) ||
16452 ((instr & 0xd) == 0xd)) {
16453 UnallocatedT32(instr);
16457 Dt_size_7_Decode((instr >> 10) & 0x3);
16459 UnallocatedT32(instr);
16463 Index_1_Decode((instr >> 4) & 0xf, dt);
16465 UnallocatedT32(instr);
16472 ExtractDRegister(instr, 22, 12);
16478 unsigned rn = (instr >> 16) & 0xf;
16480 unsigned rm = instr & 0xf;
16502 switch (instr & 0x00000c00) {
16505 switch (instr & 0x0000000d) {
16508 switch (instr & 0x00000002) {
16512 Dt_size_8_Decode((instr >> 6) & 0x3);
16514 UnallocatedT32(instr);
16518 Align_a_3_Decode((instr >> 4) & 0x1,
16520 (instr >> 6) & 0x3);
16523 UnallocatedT32(instr);
16527 ExtractDRegister(instr, 22, 12);
16530 switch ((instr >> 5) & 0x1) {
16547 unsigned rn = (instr >> 16) & 0xf;
16563 Dt_size_8_Decode((instr >> 6) & 0x3);
16565 UnallocatedT32(instr);
16569 Align_a_3_Decode((instr >> 4) & 0x1,
16571 (instr >> 6) & 0x3);
16574 UnallocatedT32(instr);
16578 ExtractDRegister(instr, 22, 12);
16581 switch ((instr >> 5) & 0x1) {
16598 unsigned rn = (instr >> 16) & 0xf;
16615 if (((instr & 0xd) == 0xd)) {
16616 UnallocatedT32(instr);
16620 Dt_size_8_Decode((instr >> 6) & 0x3);
16622 UnallocatedT32(instr);
16626 Align_a_3_Decode((instr >> 4) & 0x1,
16628 (instr >> 6) & 0x3);
16631 UnallocatedT32(instr);
16635 ExtractDRegister(instr, 22, 12);
16638 switch ((instr >> 5) & 0x1) {
16655 unsigned rn = (instr >> 16) & 0xf;
16656 unsigned rm = instr & 0xf;
16674 switch (instr & 0x0000000d) {
16677 switch (instr & 0x00000002) {
16680 if (((instr & 0xc00) == 0xc00)) {
16681 UnallocatedT32(instr);
16685 Dt_size_7_Decode((instr >> 10) & 0x3);
16687 UnallocatedT32(instr);
16691 Align_index_align_3_Decode((instr >>
16696 UnallocatedT32(instr);
16704 ExtractDRegister(instr, 22, 12);
16710 unsigned rn = (instr >> 16) & 0xf;
16725 if (((instr & 0xc00) == 0xc00)) {
16726 UnallocatedT32(instr);
16730 Dt_size_7_Decode((instr >> 10) & 0x3);
16732 UnallocatedT32(instr);
16736 Align_index_align_3_Decode((instr >>
16741 UnallocatedT32(instr);
16749 ExtractDRegister(instr, 22, 12);
16755 unsigned rn = (instr >> 16) & 0xf;
16772 if (((instr & 0xc00) == 0xc00) ||
16773 ((instr & 0xd) == 0xd)) {
16774 UnallocatedT32(instr);
16778 Dt_size_7_Decode((instr >> 10) & 0x3);
16780 UnallocatedT32(instr);
16784 Align_index_align_3_Decode((instr >> 4) &
16788 UnallocatedT32(instr);
16796 ExtractDRegister(instr, 22, 12);
16802 unsigned rn = (instr >> 16) & 0xf;
16803 unsigned rm = instr & 0xf;
16831 switch (instr & 0x01400000) {
16834 switch (instr & 0x000f0000) {
16837 switch (instr & 0x0000f000) {
16840 uint32_t U = (instr >> 23) & 0x1;
16841 int32_t imm = instr & 0xfff;
16851 if (((instr & 0xff7ff000) != 0xf81ff000)) {
16852 UnpredictableT32(instr);
16857 switch (instr & 0x00200000) {
16860 if (((instr & 0xf000) == 0xf000)) {
16861 UnallocatedT32(instr);
16864 unsigned rt = (instr >> 12) & 0xf;
16865 uint32_t U = (instr >> 23) & 0x1;
16866 int32_t imm = instr & 0xfff;
16885 if (((instr & 0xf000) == 0xf000)) {
16886 UnallocatedT32(instr);
16889 unsigned rt = (instr >> 12) & 0xf;
16890 uint32_t U = (instr >> 23) & 0x1;
16891 int32_t imm = instr & 0xfff;
16915 switch (instr & 0x00a00000) {
16918 switch (instr & 0x00000d00) {
16921 switch (instr & 0x000002c0) {
16924 switch (instr & 0x0000f000) {
16927 if (((instr & 0xf0000) == 0xf0000)) {
16928 UnallocatedT32(instr);
16931 unsigned rn = (instr >> 16) & 0xf;
16933 unsigned rm = instr & 0xf;
16935 uint32_t amount = (instr >> 4) & 0x3;
16948 if (((instr & 0xf0000) == 0xf0000) ||
16949 ((instr & 0xf000) == 0xf000)) {
16950 UnallocatedT32(instr);
16953 unsigned rt = (instr >> 12) & 0xf;
16954 unsigned rn = (instr >> 16) & 0xf;
16956 unsigned rm = instr & 0xf;
16958 uint32_t amount = (instr >> 4) & 0x3;
16991 UnallocatedT32(instr);
16998 if (((instr & 0xf0000) == 0xf0000)) {
16999 UnallocatedT32(instr);
17002 unsigned rt = (instr >> 12) & 0xf;
17003 unsigned rn = (instr >> 16) & 0xf;
17004 Sign sign((((instr >> 9) & 0x1) == 0) ? minus
17006 int32_t offset = instr & 0xff;
17019 switch (instr & 0x00000200) {
17022 switch (instr & 0x0000f000) {
17025 if (((instr & 0xf0000) == 0xf0000)) {
17026 UnallocatedT32(instr);
17029 unsigned rn = (instr >> 16) & 0xf;
17030 int32_t offset = instr & 0xff;
17040 if (((instr & 0xf0000) == 0xf0000) ||
17041 ((instr & 0xf000) == 0xf000)) {
17042 UnallocatedT32(instr);
17045 unsigned rt = (instr >> 12) & 0xf;
17046 unsigned rn = (instr >> 16) & 0xf;
17047 int32_t offset = instr & 0xff;
17063 if (((instr & 0xf0000) == 0xf0000)) {
17064 UnallocatedT32(instr);
17067 UnimplementedT32_32("LDRBT", instr);
17075 if (((instr & 0xf0000) == 0xf0000)) {
17076 UnallocatedT32(instr);
17079 unsigned rt = (instr >> 12) & 0xf;
17080 unsigned rn = (instr >> 16) & 0xf;
17081 Sign sign((((instr >> 9) & 0x1) == 0) ? minus
17083 int32_t offset = instr & 0xff;
17095 UnallocatedT32(instr);
17102 switch (instr & 0x00000d00) {
17105 switch (instr & 0x000002c0) {
17108 switch (instr & 0x0000f000) {
17111 if (((instr & 0xf0000) == 0xf0000)) {
17112 UnallocatedT32(instr);
17115 unsigned rn = (instr >> 16) & 0xf;
17117 unsigned rm = instr & 0xf;
17119 uint32_t amount = (instr >> 4) & 0x3;
17132 if (((instr & 0xf0000) == 0xf0000) ||
17133 ((instr & 0xf000) == 0xf000)) {
17134 UnallocatedT32(instr);
17137 unsigned rt = (instr >> 12) & 0xf;
17138 unsigned rn = (instr >> 16) & 0xf;
17140 unsigned rm = instr & 0xf;
17142 uint32_t amount = (instr >> 4) & 0x3;
17175 UnallocatedT32(instr);
17182 if (((instr & 0xf0000) == 0xf0000)) {
17183 UnallocatedT32(instr);
17186 unsigned rt = (instr >> 12) & 0xf;
17187 unsigned rn = (instr >> 16) & 0xf;
17188 Sign sign((((instr >> 9) & 0x1) == 0) ? minus
17190 int32_t offset = instr & 0xff;
17203 switch (instr & 0x00000200) {
17206 switch (instr & 0x0000f000) {
17209 if (((instr & 0xf0000) == 0xf0000)) {
17210 UnallocatedT32(instr);
17213 unsigned rn = (instr >> 16) & 0xf;
17214 int32_t offset = instr & 0xff;
17224 if (((instr & 0xf0000) == 0xf0000) ||
17225 ((instr & 0xf000) == 0xf000)) {
17226 UnallocatedT32(instr);
17229 unsigned rt = (instr >> 12) & 0xf;
17230 unsigned rn = (instr >> 16) & 0xf;
17231 int32_t offset = instr & 0xff;
17247 if (((instr & 0xf0000) == 0xf0000)) {
17248 UnallocatedT32(instr);
17251 UnimplementedT32_32("LDRHT", instr);
17259 if (((instr & 0xf0000) == 0xf0000)) {
17260 UnallocatedT32(instr);
17263 unsigned rt = (instr >> 12) & 0xf;
17264 unsigned rn = (instr >> 16) & 0xf;
17265 Sign sign((((instr >> 9) & 0x1) == 0) ? minus
17267 int32_t offset = instr & 0xff;
17279 UnallocatedT32(instr);
17286 switch (instr & 0x0000f000) {
17289 if (((instr & 0xf0000) == 0xf0000)) {
17290 UnallocatedT32(instr);
17293 unsigned rn = (instr >> 16) & 0xf;
17294 int32_t offset = instr & 0xfff;
17304 if (((instr & 0xf0000) == 0xf0000) ||
17305 ((instr & 0xf000) == 0xf000)) {
17306 UnallocatedT32(instr);
17309 unsigned rt = (instr >> 12) & 0xf;
17310 unsigned rn = (instr >> 16) & 0xf;
17311 int32_t offset = instr & 0xfff;
17340 switch (instr & 0x0000f000) {
17343 if (((instr & 0xf0000) == 0xf0000)) {
17344 UnallocatedT32(instr);
17347 unsigned rn = (instr >> 16) & 0xf;
17348 int32_t offset = instr & 0xfff;
17358 if (((instr & 0xf0000) == 0xf0000) ||
17359 ((instr & 0xf000) == 0xf000)) {
17360 UnallocatedT32(instr);
17363 unsigned rt = (instr >> 12) & 0xf;
17364 unsigned rn = (instr >> 16) & 0xf;
17365 int32_t offset = instr & 0xfff;
17401 switch (instr & 0x00200000) {
17404 switch (instr & 0x000f0000) {
17407 unsigned rt = (instr >> 12) & 0xf;
17408 uint32_t U = (instr >> 23) & 0x1;
17409 int32_t imm = instr & 0xfff;
17443 UnallocatedT32(instr);
17448 switch (instr & 0x00800000) {
17451 switch (instr & 0x00000d00) {
17454 if ((instr & 0x000002c0) == 0x00000000) {
17455 if (((instr & 0xf0000) == 0xf0000)) {
17456 UnallocatedT32(instr);
17459 unsigned rt = (instr >> 12) & 0xf;
17460 unsigned rn = (instr >> 16) & 0xf;
17462 unsigned rm = instr & 0xf;
17464 uint32_t amount = (instr >> 4) & 0x3;
17492 UnallocatedT32(instr);
17498 if (((instr & 0xf0000) == 0xf0000)) {
17499 UnallocatedT32(instr);
17502 if (((Uint32((instr >> 16)) &
17504 ((Uint32((instr >> 9)) &
17506 ((Uint32(instr) & Uint32(0xff)) ==
17508 unsigned rt = (instr >> 12) & 0xf;
17522 unsigned rt = (instr >> 12) & 0xf;
17523 unsigned rn = (instr >> 16) & 0xf;
17524 Sign sign((((instr >> 9) & 0x1) == 0)
17527 int32_t offset = instr & 0xff;
17540 switch (instr & 0x00000200) {
17543 if (((instr & 0xf0000) == 0xf0000)) {
17544 UnallocatedT32(instr);
17547 unsigned rt = (instr >> 12) & 0xf;
17548 unsigned rn = (instr >> 16) & 0xf;
17549 int32_t offset = instr & 0xff;
17562 if (((instr & 0xf0000) == 0xf0000)) {
17563 UnallocatedT32(instr);
17566 UnimplementedT32_32("LDRT", instr);
17574 if (((instr & 0xf0000) == 0xf0000)) {
17575 UnallocatedT32(instr);
17578 unsigned rt = (instr >> 12) & 0xf;
17579 unsigned rn = (instr >> 16) & 0xf;
17580 Sign sign((((instr >> 9) & 0x1) == 0)
17583 int32_t offset = instr & 0xff;
17595 UnallocatedT32(instr);
17602 if (((instr & 0xf0000) == 0xf0000)) {
17603 UnallocatedT32(instr);
17606 unsigned rt = (instr >> 12) & 0xf;
17607 unsigned rn = (instr >> 16) & 0xf;
17608 int32_t offset = instr & 0xfff;
17644 UnallocatedT32(instr);
17651 switch (instr & 0x00200000) {
17654 switch (instr & 0x000f0000) {
17657 switch (instr & 0x0000f000) {
17660 uint32_t U = (instr >> 23) & 0x1;
17661 int32_t imm = instr & 0xfff;
17675 if (((instr & 0xf000) == 0xf000)) {
17676 UnallocatedT32(instr);
17679 unsigned rt = (instr >> 12) & 0xf;
17680 uint32_t U = (instr >> 23) & 0x1;
17681 int32_t imm = instr & 0xfff;
17702 switch (instr & 0x00800000) {
17705 switch (instr & 0x00000d00) {
17708 switch (instr & 0x000002c0) {
17711 switch (instr & 0x0000f000) {
17714 if (((instr & 0xf0000) ==
17716 UnallocatedT32(instr);
17719 unsigned rn = (instr >> 16) & 0xf;
17721 unsigned rm = instr & 0xf;
17724 (instr >> 4) & 0x3;
17737 if (((instr & 0xf0000) ==
17739 ((instr & 0xf000) ==
17741 UnallocatedT32(instr);
17744 unsigned rt = (instr >> 12) & 0xf;
17745 unsigned rn = (instr >> 16) & 0xf;
17747 unsigned rm = instr & 0xf;
17750 (instr >> 4) & 0x3;
17787 UnallocatedT32(instr);
17794 if (((instr & 0xf0000) == 0xf0000)) {
17795 UnallocatedT32(instr);
17798 unsigned rt = (instr >> 12) & 0xf;
17799 unsigned rn = (instr >> 16) & 0xf;
17800 Sign sign((((instr >> 9) & 0x1) == 0)
17803 int32_t offset = instr & 0xff;
17816 switch (instr & 0x00000200) {
17819 switch (instr & 0x0000f000) {
17822 if (((instr & 0xf0000) ==
17824 UnallocatedT32(instr);
17827 unsigned rn = (instr >> 16) & 0xf;
17828 int32_t offset = instr & 0xff;
17838 if (((instr & 0xf0000) ==
17840 ((instr & 0xf000) ==
17842 UnallocatedT32(instr);
17845 unsigned rt = (instr >> 12) & 0xf;
17846 unsigned rn = (instr >> 16) & 0xf;
17847 int32_t offset = instr & 0xff;
17863 if (((instr & 0xf0000) == 0xf0000)) {
17864 UnallocatedT32(instr);
17867 UnimplementedT32_32("LDRSBT", instr);
17875 if (((instr & 0xf0000) == 0xf0000)) {
17876 UnallocatedT32(instr);
17879 unsigned rt = (instr >> 12) & 0xf;
17880 unsigned rn = (instr >> 16) & 0xf;
17881 Sign sign((((instr >> 9) & 0x1) == 0)
17884 int32_t offset = instr & 0xff;
17896 UnallocatedT32(instr);
17903 switch (instr & 0x0000f000) {
17906 if (((instr & 0xf0000) == 0xf0000)) {
17907 UnallocatedT32(instr);
17910 unsigned rn = (instr >> 16) & 0xf;
17911 int32_t offset = instr & 0xfff;
17921 if (((instr & 0xf0000) == 0xf0000) ||
17922 ((instr & 0xf000) == 0xf000)) {
17923 UnallocatedT32(instr);
17926 unsigned rt = (instr >> 12) & 0xf;
17927 unsigned rn = (instr >> 16) & 0xf;
17928 int32_t offset = instr & 0xfff;
17950 switch (instr & 0x000f0000) {
17953 if (((instr & 0xf000) == 0xf000)) {
17954 UnallocatedT32(instr);
17957 unsigned rt = (instr >> 12) & 0xf;
17958 uint32_t U = (instr >> 23) & 0x1;
17959 int32_t imm = instr & 0xfff;
17975 switch (instr & 0x00800000) {
17978 switch (instr & 0x00000d00) {
17981 if ((instr & 0x000002c0) == 0x00000000) {
17982 if (((instr & 0xf0000) == 0xf0000) ||
17983 ((instr & 0xf000) == 0xf000)) {
17984 UnallocatedT32(instr);
17987 unsigned rt = (instr >> 12) & 0xf;
17988 unsigned rn = (instr >> 16) & 0xf;
17990 unsigned rm = instr & 0xf;
17992 uint32_t amount = (instr >> 4) & 0x3;
18020 UnallocatedT32(instr);
18026 if (((instr & 0xf0000) == 0xf0000)) {
18027 UnallocatedT32(instr);
18030 unsigned rt = (instr >> 12) & 0xf;
18031 unsigned rn = (instr >> 16) & 0xf;
18032 Sign sign((((instr >> 9) & 0x1) == 0)
18035 int32_t offset = instr & 0xff;
18048 switch (instr & 0x00000200) {
18051 if (((instr & 0xf0000) == 0xf0000) ||
18052 ((instr & 0xf000) == 0xf000)) {
18053 UnallocatedT32(instr);
18056 unsigned rt = (instr >> 12) & 0xf;
18057 unsigned rn = (instr >> 16) & 0xf;
18058 int32_t offset = instr & 0xff;
18071 if (((instr & 0xf0000) == 0xf0000)) {
18072 UnallocatedT32(instr);
18075 UnimplementedT32_32("LDRSHT", instr);
18083 if (((instr & 0xf0000) == 0xf0000)) {
18084 UnallocatedT32(instr);
18087 unsigned rt = (instr >> 12) & 0xf;
18088 unsigned rn = (instr >> 16) & 0xf;
18089 Sign sign((((instr >> 9) & 0x1) == 0)
18092 int32_t offset = instr & 0xff;
18104 UnallocatedT32(instr);
18111 if (((instr & 0xf0000) == 0xf0000) ||
18112 ((instr & 0xf000) == 0xf000)) {
18113 UnallocatedT32(instr);
18116 unsigned rt = (instr >> 12) & 0xf;
18117 unsigned rn = (instr >> 16) & 0xf;
18118 int32_t offset = instr & 0xfff;
18139 UnallocatedT32(instr);
18149 switch (instr & 0x11900000) {
18152 switch (instr & 0x00600000) {
18155 switch (instr & 0x000070f0) {
18158 unsigned rd = (instr >> 8) & 0xf;
18159 unsigned rn = (instr >> 16) & 0xf;
18160 unsigned rm = instr & 0xf;
18167 if (((instr & 0xfff0f0f0) != 0xea000030)) {
18168 UnpredictableT32(instr);
18173 if (((instr & 0x70f0) == 0x30)) {
18174 UnallocatedT32(instr);
18177 unsigned rd = (instr >> 8) & 0xf;
18178 unsigned rn = (instr >> 16) & 0xf;
18179 unsigned rm = instr & 0xf;
18181 shift_operand((instr >> 4) & 0x3,
18182 ((instr >> 6) & 0x3) |
18183 ((instr >> 10) & 0x1c));
18185 (instr & 0x00100000) == 0x00000000 &&
18196 if (((instr & 0xfff08000) != 0xea000000)) {
18197 UnpredictableT32(instr);
18199 } else if ((instr & 0x00100000) == 0x00000000) {
18208 if (((instr & 0xfff08000) != 0xea000000)) {
18209 UnpredictableT32(instr);
18212 UnallocatedT32(instr);
18221 switch (instr & 0x000070f0) {
18224 unsigned rd = (instr >> 8) & 0xf;
18225 unsigned rn = (instr >> 16) & 0xf;
18226 unsigned rm = instr & 0xf;
18233 if (((instr & 0xfff0f0f0) != 0xea200030)) {
18234 UnpredictableT32(instr);
18239 if (((instr & 0x70f0) == 0x30)) {
18240 UnallocatedT32(instr);
18243 unsigned rd = (instr >> 8) & 0xf;
18244 unsigned rn = (instr >> 16) & 0xf;
18245 unsigned rm = instr & 0xf;
18247 shift_operand((instr >> 4) & 0x3,
18248 ((instr >> 6) & 0x3) |
18249 ((instr >> 10) & 0x1c));
18251 (instr & 0x00100000) == 0x00000000 &&
18262 if (((instr & 0xfff08000) != 0xea200000)) {
18263 UnpredictableT32(instr);
18265 } else if ((instr & 0x00100000) == 0x00000000) {
18274 if (((instr & 0xfff08000) != 0xea200000)) {
18275 UnpredictableT32(instr);
18278 UnallocatedT32(instr);
18287 switch (instr & 0x000f0000) {
18290 switch (instr & 0x000070f0) {
18293 unsigned rd = (instr >> 8) & 0xf;
18294 unsigned rm = instr & 0xf;
18297 if (((instr & 0xfffff0f0) != 0xea4f0030)) {
18298 UnpredictableT32(instr);
18303 if (((instr & 0x70f0) == 0x30)) {
18304 UnallocatedT32(instr);
18307 if (((Uint32((instr >> 4)) & Uint32(0x3)) ==
18309 unsigned rd = (instr >> 8) & 0xf;
18310 unsigned rm = instr & 0xf;
18311 uint32_t amount = ((instr >> 6) & 0x3) |
18312 ((instr >> 10) & 0x1c);
18324 if (((instr & 0xffff8030) != 0xea4f0020)) {
18325 UnpredictableT32(instr);
18334 if (((instr & 0xffff8030) != 0xea4f0020)) {
18335 UnpredictableT32(instr);
18340 if (((Uint32((instr >> 4)) & Uint32(0x3)) ==
18342 ((instr & 0x000070c0) != 0x00000000)) {
18343 unsigned rd = (instr >> 8) & 0xf;
18344 unsigned rm = instr & 0xf;
18345 uint32_t amount = ((instr >> 6) & 0x3) |
18346 ((instr >> 10) & 0x1c);
18357 if (((instr & 0xffff8030) != 0xea4f0000)) {
18358 UnpredictableT32(instr);
18367 if (((instr & 0xffff8030) != 0xea4f0000)) {
18368 UnpredictableT32(instr);
18373 if (((Uint32((instr >> 4)) & Uint32(0x3)) ==
18375 unsigned rd = (instr >> 8) & 0xf;
18376 unsigned rm = instr & 0xf;
18377 uint32_t amount = ((instr >> 6) & 0x3) |
18378 ((instr >> 10) & 0x1c);
18390 if (((instr & 0xffff8030) != 0xea4f0010)) {
18391 UnpredictableT32(instr);
18400 if (((instr & 0xffff8030) != 0xea4f0010)) {
18401 UnpredictableT32(instr);
18406 if (((Uint32((instr >> 4)) & Uint32(0x3)) ==
18408 ((instr & 0x000070c0) != 0x00000000)) {
18409 unsigned rd = (instr >> 8) & 0xf;
18410 unsigned rm = instr & 0xf;
18411 uint32_t amount = ((instr >> 6) & 0x3) |
18412 ((instr >> 10) & 0x1c);
18419 if (((instr & 0xffff8030) != 0xea4f0030)) {
18420 UnpredictableT32(instr);
18424 unsigned rd = (instr >> 8) & 0xf;
18425 unsigned rm = instr & 0xf;
18427 shift_operand((instr >> 4) & 0x3,
18428 ((instr >> 6) & 0x3) |
18429 ((instr >> 10) & 0x1c));
18430 if ((instr & 0x00100000) == 0x00000000 &&
18440 if (((instr & 0xffff8000) != 0xea4f0000)) {
18441 UnpredictableT32(instr);
18444 (instr & 0x00100000) == 0x00000000 &&
18454 if (((instr & 0xffff8000) != 0xea4f0000)) {
18455 UnpredictableT32(instr);
18457 } else if ((instr & 0x00100000) == 0x00000000) {
18465 if (((instr & 0xffff8000) != 0xea4f0000)) {
18466 UnpredictableT32(instr);
18469 UnallocatedT32(instr);
18477 switch (instr & 0x000070f0) {
18480 if (((instr & 0xf0000) == 0xf0000)) {
18481 UnallocatedT32(instr);
18484 unsigned rd = (instr >> 8) & 0xf;
18485 unsigned rn = (instr >> 16) & 0xf;
18486 unsigned rm = instr & 0xf;
18493 if (((instr & 0xfff0f0f0) != 0xea400030)) {
18494 UnpredictableT32(instr);
18499 if (((instr & 0xf0000) == 0xf0000) ||
18500 ((instr & 0x70f0) == 0x30)) {
18501 UnallocatedT32(instr);
18504 unsigned rd = (instr >> 8) & 0xf;
18505 unsigned rn = (instr >> 16) & 0xf;
18506 unsigned rm = instr & 0xf;
18508 shift_operand((instr >> 4) & 0x3,
18509 ((instr >> 6) & 0x3) |
18510 ((instr >> 10) & 0x1c));
18512 (instr & 0x00100000) == 0x00000000 &&
18524 if (((instr & 0xfff08000) != 0xea400000)) {
18525 UnpredictableT32(instr);
18527 } else if ((instr & 0x00100000) == 0x00000000) {
18536 if (((instr & 0xfff08000) != 0xea400000)) {
18537 UnpredictableT32(instr);
18540 UnallocatedT32(instr);
18552 switch (instr & 0x000f0000) {
18555 switch (instr & 0x000070f0) {
18558 unsigned rd = (instr >> 8) & 0xf;
18559 unsigned rm = instr & 0xf;
18565 if (((instr & 0xfffff0f0) != 0xea6f0030)) {
18566 UnpredictableT32(instr);
18571 if (((instr & 0x70f0) == 0x30)) {
18572 UnallocatedT32(instr);
18575 unsigned rd = (instr >> 8) & 0xf;
18576 unsigned rm = instr & 0xf;
18578 shift_operand((instr >> 4) & 0x3,
18579 ((instr >> 6) & 0x3) |
18580 ((instr >> 10) & 0x1c));
18582 (instr & 0x00100000) == 0x00000000 &&
18592 if (((instr & 0xffff8000) != 0xea6f0000)) {
18593 UnpredictableT32(instr);
18595 } else if ((instr & 0x00100000) == 0x00000000) {
18603 if (((instr & 0xffff8000) != 0xea6f0000)) {
18604 UnpredictableT32(instr);
18607 UnallocatedT32(instr);
18615 switch (instr & 0x000070f0) {
18618 if (((instr & 0xf0000) == 0xf0000)) {
18619 UnallocatedT32(instr);
18622 unsigned rd = (instr >> 8) & 0xf;
18623 unsigned rn = (instr >> 16) & 0xf;
18624 unsigned rm = instr & 0xf;
18630 if (((instr & 0xfff0f0f0) != 0xea600030)) {
18631 UnpredictableT32(instr);
18636 if (((instr & 0xf0000) == 0xf0000) ||
18637 ((instr & 0x70f0) == 0x30)) {
18638 UnallocatedT32(instr);
18641 unsigned rd = (instr >> 8) & 0xf;
18642 unsigned rn = (instr >> 16) & 0xf;
18643 unsigned rm = instr & 0xf;
18645 shift_operand((instr >> 4) & 0x3,
18646 ((instr >> 6) & 0x3) |
18647 ((instr >> 10) & 0x1c));
18655 if (((instr & 0xfff08000) != 0xea600000)) {
18656 UnpredictableT32(instr);
18671 switch (instr & 0x00600000) {
18674 switch (instr & 0x00000f00) {
18677 switch (instr & 0x000070f0) {
18680 unsigned rn = (instr >> 16) & 0xf;
18681 unsigned rm = instr & 0xf;
18687 if (((instr & 0xfff0fff0) != 0xea100f30)) {
18688 UnpredictableT32(instr);
18693 if (((instr & 0x70f0) == 0x30)) {
18694 UnallocatedT32(instr);
18697 unsigned rn = (instr >> 16) & 0xf;
18698 unsigned rm = instr & 0xf;
18700 shift_operand((instr >> 4) & 0x3,
18701 ((instr >> 6) & 0x3) |
18702 ((instr >> 10) & 0x1c));
18712 if (((instr & 0xfff08f00) != 0xea100f00)) {
18713 UnpredictableT32(instr);
18723 if (((instr & 0xfff08f00) != 0xea100f00)) {
18724 UnpredictableT32(instr);
18733 switch (instr & 0x000070f0) {
18736 if (((instr & 0xf00) == 0xf00)) {
18737 UnallocatedT32(instr);
18740 unsigned rd = (instr >> 8) & 0xf;
18741 unsigned rn = (instr >> 16) & 0xf;
18742 unsigned rm = instr & 0xf;
18749 if (((instr & 0xfff0f0f0) != 0xea100030)) {
18750 UnpredictableT32(instr);
18755 if (((instr & 0x70f0) == 0x30) ||
18756 ((instr & 0xf00) == 0xf00)) {
18757 UnallocatedT32(instr);
18760 unsigned rd = (instr >> 8) & 0xf;
18761 unsigned rn = (instr >> 16) & 0xf;
18762 unsigned rm = instr & 0xf;
18764 shift_operand((instr >> 4) & 0x3,
18765 ((instr >> 6) & 0x3) |
18766 ((instr >> 10) & 0x1c));
18768 (instr & 0x00100000) == 0x00100000 &&
18780 if (((instr & 0xfff08000) != 0xea100000)) {
18781 UnpredictableT32(instr);
18783 } else if ((instr & 0x00100000) == 0x00100000) {
18792 if (((instr & 0xfff08000) != 0xea100000)) {
18793 UnpredictableT32(instr);
18796 UnallocatedT32(instr);
18808 switch (instr & 0x000070f0) {
18811 unsigned rd = (instr >> 8) & 0xf;
18812 unsigned rn = (instr >> 16) & 0xf;
18813 unsigned rm = instr & 0xf;
18820 if (((instr & 0xfff0f0f0) != 0xea300030)) {
18821 UnpredictableT32(instr);
18826 if (((instr & 0x70f0) == 0x30)) {
18827 UnallocatedT32(instr);
18830 unsigned rd = (instr >> 8) & 0xf;
18831 unsigned rn = (instr >> 16) & 0xf;
18832 unsigned rm = instr & 0xf;
18834 shift_operand((instr >> 4) & 0x3,
18835 ((instr >> 6) & 0x3) |
18836 ((instr >> 10) & 0x1c));
18838 (instr & 0x00100000) == 0x00100000 &&
18849 if (((instr & 0xfff08000) != 0xea300000)) {
18850 UnpredictableT32(instr);
18852 } else if ((instr & 0x00100000) == 0x00100000) {
18861 if (((instr & 0xfff08000) != 0xea300000)) {
18862 UnpredictableT32(instr);
18865 UnallocatedT32(instr);
18874 switch (instr & 0x000f0000) {
18877 switch (instr & 0x000070f0) {
18880 unsigned rd = (instr >> 8) & 0xf;
18881 unsigned rm = instr & 0xf;
18884 if (((instr & 0xfffff0f0) != 0xea5f0030)) {
18885 UnpredictableT32(instr);
18890 if (((instr & 0x70f0) == 0x30)) {
18891 UnallocatedT32(instr);
18894 if (((Uint32((instr >> 4)) & Uint32(0x3)) ==
18896 unsigned rd = (instr >> 8) & 0xf;
18897 unsigned rm = instr & 0xf;
18898 uint32_t amount = ((instr >> 6) & 0x3) |
18899 ((instr >> 10) & 0x1c);
18911 if (((instr & 0xffff8030) != 0xea5f0020)) {
18912 UnpredictableT32(instr);
18921 if (((instr & 0xffff8030) != 0xea5f0020)) {
18922 UnpredictableT32(instr);
18927 if (((Uint32((instr >> 4)) & Uint32(0x3)) ==
18929 ((instr & 0x000070c0) != 0x00000000)) {
18930 unsigned rd = (instr >> 8) & 0xf;
18931 unsigned rm = instr & 0xf;
18932 uint32_t amount = ((instr >> 6) & 0x3) |
18933 ((instr >> 10) & 0x1c);
18944 if (((instr & 0xffff8030) != 0xea5f0000)) {
18945 UnpredictableT32(instr);
18954 if (((instr & 0xffff8030) != 0xea5f0000)) {
18955 UnpredictableT32(instr);
18960 if (((Uint32((instr >> 4)) & Uint32(0x3)) ==
18962 unsigned rd = (instr >> 8) & 0xf;
18963 unsigned rm = instr & 0xf;
18964 uint32_t amount = ((instr >> 6) & 0x3) |
18965 ((instr >> 10) & 0x1c);
18977 if (((instr & 0xffff8030) != 0xea5f0010)) {
18978 UnpredictableT32(instr);
18987 if (((instr & 0xffff8030) != 0xea5f0010)) {
18988 UnpredictableT32(instr);
18993 if (((Uint32((instr >> 4)) & Uint32(0x3)) ==
18995 ((instr & 0x000070c0) != 0x00000000)) {
18996 unsigned rd = (instr >> 8) & 0xf;
18997 unsigned rm = instr & 0xf;
18998 uint32_t amount = ((instr >> 6) & 0x3) |
18999 ((instr >> 10) & 0x1c);
19006 if (((instr & 0xffff8030) != 0xea5f0030)) {
19007 UnpredictableT32(instr);
19011 unsigned rd = (instr >> 8) & 0xf;
19012 unsigned rm = instr & 0xf;
19014 shift_operand((instr >> 4) & 0x3,
19015 ((instr >> 6) & 0x3) |
19016 ((instr >> 10) & 0x1c));
19018 (instr & 0x00100000) == 0x00100000 &&
19028 if (((instr & 0xffff8000) != 0xea5f0000)) {
19029 UnpredictableT32(instr);
19031 } else if ((instr & 0x00100000) == 0x00100000) {
19039 if (((instr & 0xffff8000) != 0xea5f0000)) {
19040 UnpredictableT32(instr);
19043 UnallocatedT32(instr);
19051 switch (instr & 0x000070f0) {
19054 if (((instr & 0xf0000) == 0xf0000)) {
19055 UnallocatedT32(instr);
19058 unsigned rd = (instr >> 8) & 0xf;
19059 unsigned rn = (instr >> 16) & 0xf;
19060 unsigned rm = instr & 0xf;
19067 if (((instr & 0xfff0f0f0) != 0xea500030)) {
19068 UnpredictableT32(instr);
19073 if (((instr & 0xf0000) == 0xf0000) ||
19074 ((instr & 0x70f0) == 0x30)) {
19075 UnallocatedT32(instr);
19078 unsigned rd = (instr >> 8) & 0xf;
19079 unsigned rn = (instr >> 16) & 0xf;
19080 unsigned rm = instr & 0xf;
19082 shift_operand((instr >> 4) & 0x3,
19083 ((instr >> 6) & 0x3) |
19084 ((instr >> 10) & 0x1c));
19086 (instr & 0x00100000) == 0x00100000 &&
19098 if (((instr & 0xfff08000) != 0xea500000)) {
19099 UnpredictableT32(instr);
19101 } else if ((instr & 0x00100000) == 0x00100000) {
19110 if (((instr & 0xfff08000) != 0xea500000)) {
19111 UnpredictableT32(instr);
19114 UnallocatedT32(instr);
19126 switch (instr & 0x000f0000) {
19129 switch (instr & 0x000070f0) {
19132 unsigned rd = (instr >> 8) & 0xf;
19133 unsigned rm = instr & 0xf;
19139 if (((instr & 0xfffff0f0) != 0xea7f0030)) {
19140 UnpredictableT32(instr);
19145 if (((instr & 0x70f0) == 0x30)) {
19146 UnallocatedT32(instr);
19149 unsigned rd = (instr >> 8) & 0xf;
19150 unsigned rm = instr & 0xf;
19152 shift_operand((instr >> 4) & 0x3,
19153 ((instr >> 6) & 0x3) |
19154 ((instr >> 10) & 0x1c));
19156 (instr & 0x00100000) == 0x00100000 &&
19166 if (((instr & 0xffff8000) != 0xea7f0000)) {
19167 UnpredictableT32(instr);
19169 } else if ((instr & 0x00100000) == 0x00100000) {
19177 if (((instr & 0xffff8000) != 0xea7f0000)) {
19178 UnpredictableT32(instr);
19181 UnallocatedT32(instr);
19189 switch (instr & 0x000070f0) {
19192 if (((instr & 0xf0000) == 0xf0000)) {
19193 UnallocatedT32(instr);
19196 unsigned rd = (instr >> 8) & 0xf;
19197 unsigned rn = (instr >> 16) & 0xf;
19198 unsigned rm = instr & 0xf;
19204 if (((instr & 0xfff0f0f0) != 0xea700030)) {
19205 UnpredictableT32(instr);
19210 if (((instr & 0xf0000) == 0xf0000) ||
19211 ((instr & 0x70f0) == 0x30)) {
19212 UnallocatedT32(instr);
19215 unsigned rd = (instr >> 8) & 0xf;
19216 unsigned rn = (instr >> 16) & 0xf;
19217 unsigned rm = instr & 0xf;
19219 shift_operand((instr >> 4) & 0x3,
19220 ((instr >> 6) & 0x3) |
19221 ((instr >> 10) & 0x1c));
19229 if (((instr & 0xfff08000) != 0xea700000)) {
19230 UnpredictableT32(instr);
19245 switch (instr & 0x00600000) {
19248 switch (instr & 0x000070f0) {
19251 unsigned rd = (instr >> 8) & 0xf;
19252 unsigned rn = (instr >> 16) & 0xf;
19253 unsigned rm = instr & 0xf;
19260 if (((instr & 0xfff0f0f0) != 0xea800030)) {
19261 UnpredictableT32(instr);
19266 if (((instr & 0x70f0) == 0x30)) {
19267 UnallocatedT32(instr);
19270 unsigned rd = (instr >> 8) & 0xf;
19271 unsigned rn = (instr >> 16) & 0xf;
19272 unsigned rm = instr & 0xf;
19274 shift_operand((instr >> 4) & 0x3,
19275 ((instr >> 6) & 0x3) |
19276 ((instr >> 10) & 0x1c));
19278 (instr & 0x00100000) == 0x00000000 &&
19289 if (((instr & 0xfff08000) != 0xea800000)) {
19290 UnpredictableT32(instr);
19292 } else if ((instr & 0x00100000) == 0x00000000) {
19301 if (((instr & 0xfff08000) != 0xea800000)) {
19302 UnpredictableT32(instr);
19305 UnallocatedT32(instr);
19314 switch (instr & 0x00000030) {
19317 unsigned rd = (instr >> 8) & 0xf;
19318 unsigned rn = (instr >> 16) & 0xf;
19319 unsigned rm = instr & 0xf;
19321 ((instr >> 6) & 0x3) | ((instr >> 10) & 0x1c);
19327 if (((instr & 0xfff08030) != 0xeac00000)) {
19328 UnpredictableT32(instr);
19334 unsigned rd = (instr >> 8) & 0xf;
19335 unsigned rn = (instr >> 16) & 0xf;
19336 unsigned rm = instr & 0xf;
19338 ((instr >> 6) & 0x3) | ((instr >> 10) & 0x1c);
19345 if (((instr & 0xfff08030) != 0xeac00020)) {
19346 UnpredictableT32(instr);
19351 UnallocatedT32(instr);
19357 UnallocatedT32(instr);
19364 switch (instr & 0x00600000) {
19367 switch (instr & 0x00000f00) {
19370 switch (instr & 0x000070f0) {
19373 unsigned rn = (instr >> 16) & 0xf;
19374 unsigned rm = instr & 0xf;
19379 if (((instr & 0xfff0fff0) != 0xea900f30)) {
19380 UnpredictableT32(instr);
19385 if (((instr & 0x70f0) == 0x30)) {
19386 UnallocatedT32(instr);
19389 unsigned rn = (instr >> 16) & 0xf;
19390 unsigned rm = instr & 0xf;
19392 shift_operand((instr >> 4) & 0x3,
19393 ((instr >> 6) & 0x3) |
19394 ((instr >> 10) & 0x1c));
19401 if (((instr & 0xfff08f00) != 0xea900f00)) {
19402 UnpredictableT32(instr);
19410 switch (instr & 0x000070f0) {
19413 if (((instr & 0xf00) == 0xf00)) {
19414 UnallocatedT32(instr);
19417 unsigned rd = (instr >> 8) & 0xf;
19418 unsigned rn = (instr >> 16) & 0xf;
19419 unsigned rm = instr & 0xf;
19426 if (((instr & 0xfff0f0f0) != 0xea900030)) {
19427 UnpredictableT32(instr);
19432 if (((instr & 0x70f0) == 0x30) ||
19433 ((instr & 0xf00) == 0xf00)) {
19434 UnallocatedT32(instr);
19437 unsigned rd = (instr >> 8) & 0xf;
19438 unsigned rn = (instr >> 16) & 0xf;
19439 unsigned rm = instr & 0xf;
19441 shift_operand((instr >> 4) & 0x3,
19442 ((instr >> 6) & 0x3) |
19443 ((instr >> 10) & 0x1c));
19445 (instr & 0x00100000) == 0x00100000 &&
19457 if (((instr & 0xfff08000) != 0xea900000)) {
19458 UnpredictableT32(instr);
19460 } else if ((instr & 0x00100000) == 0x00100000) {
19469 if (((instr & 0xfff08000) != 0xea900000)) {
19470 UnpredictableT32(instr);
19473 UnallocatedT32(instr);
19484 UnallocatedT32(instr);
19491 switch (instr & 0x00600000) {
19494 switch (instr & 0x000f0000) {
19497 switch (instr & 0x000070f0) {
19500 unsigned rd = (instr >> 8) & 0xf;
19501 unsigned rm = instr & 0xf;
19508 if (((instr & 0xfffff0f0) != 0xeb0d0030)) {
19509 UnpredictableT32(instr);
19514 if (((instr & 0x70f0) == 0x30)) {
19515 UnallocatedT32(instr);
19518 unsigned rd = (instr >> 8) & 0xf;
19519 unsigned rm = instr & 0xf;
19521 shift_operand((instr >> 4) & 0x3,
19522 ((instr >> 6) & 0x3) |
19523 ((instr >> 10) & 0x1c));
19524 if ((instr & 0x00100000) == 0x00000000 &&
19534 if (((instr & 0xffff8000) != 0xeb0d0000)) {
19535 UnpredictableT32(instr);
19537 } else if ((instr & 0x00100000) == 0x00000000) {
19546 if (((instr & 0xffff8000) != 0xeb0d0000)) {
19547 UnpredictableT32(instr);
19550 UnallocatedT32(instr);
19558 switch (instr & 0x000070f0) {
19561 if (((instr & 0xf0000) == 0xd0000)) {
19562 UnallocatedT32(instr);
19565 unsigned rd = (instr >> 8) & 0xf;
19566 unsigned rn = (instr >> 16) & 0xf;
19567 unsigned rm = instr & 0xf;
19574 if (((instr & 0xfff0f0f0) != 0xeb000030)) {
19575 UnpredictableT32(instr);
19580 if (((instr & 0xf0000) == 0xd0000) ||
19581 ((instr & 0x70f0) == 0x30)) {
19582 UnallocatedT32(instr);
19585 unsigned rd = (instr >> 8) & 0xf;
19586 unsigned rn = (instr >> 16) & 0xf;
19587 unsigned rm = instr & 0xf;
19589 shift_operand((instr >> 4) & 0x3,
19590 ((instr >> 6) & 0x3) |
19591 ((instr >> 10) & 0x1c));
19593 (instr & 0x00100000) == 0x00000000 &&
19605 if (((instr & 0xfff08000) != 0xeb000000)) {
19606 UnpredictableT32(instr);
19608 } else if ((instr & 0x00100000) == 0x00000000 &&
19618 if (((instr & 0xfff08000) != 0xeb000000)) {
19619 UnpredictableT32(instr);
19621 } else if ((instr & 0x00100000) == 0x00000000) {
19630 if (((instr & 0xfff08000) != 0xeb000000)) {
19631 UnpredictableT32(instr);
19634 UnallocatedT32(instr);
19646 switch (instr & 0x000070f0) {
19649 unsigned rd = (instr >> 8) & 0xf;
19650 unsigned rn = (instr >> 16) & 0xf;
19651 unsigned rm = instr & 0xf;
19658 if (((instr & 0xfff0f0f0) != 0xeb400030)) {
19659 UnpredictableT32(instr);
19664 if (((instr & 0x70f0) == 0x30)) {
19665 UnallocatedT32(instr);
19668 unsigned rd = (instr >> 8) & 0xf;
19669 unsigned rn = (instr >> 16) & 0xf;
19670 unsigned rm = instr & 0xf;
19672 shift_operand((instr >> 4) & 0x3,
19673 ((instr >> 6) & 0x3) |
19674 ((instr >> 10) & 0x1c));
19676 (instr & 0x00100000) == 0x00000000 &&
19687 if (((instr & 0xfff08000) != 0xeb400000)) {
19688 UnpredictableT32(instr);
19690 } else if ((instr & 0x00100000) == 0x00000000) {
19699 if (((instr & 0xfff08000) != 0xeb400000)) {
19700 UnpredictableT32(instr);
19703 UnallocatedT32(instr);
19712 switch (instr & 0x000070f0) {
19715 unsigned rd = (instr >> 8) & 0xf;
19716 unsigned rn = (instr >> 16) & 0xf;
19717 unsigned rm = instr & 0xf;
19724 if (((instr & 0xfff0f0f0) != 0xeb600030)) {
19725 UnpredictableT32(instr);
19730 if (((instr & 0x70f0) == 0x30)) {
19731 UnallocatedT32(instr);
19734 unsigned rd = (instr >> 8) & 0xf;
19735 unsigned rn = (instr >> 16) & 0xf;
19736 unsigned rm = instr & 0xf;
19738 shift_operand((instr >> 4) & 0x3,
19739 ((instr >> 6) & 0x3) |
19740 ((instr >> 10) & 0x1c));
19742 (instr & 0x00100000) == 0x00000000 &&
19753 if (((instr & 0xfff08000) != 0xeb600000)) {
19754 UnpredictableT32(instr);
19756 } else if ((instr & 0x00100000) == 0x00000000) {
19765 if (((instr & 0xfff08000) != 0xeb600000)) {
19766 UnpredictableT32(instr);
19769 UnallocatedT32(instr);
19777 UnallocatedT32(instr);
19784 switch (instr & 0x00600000) {
19787 switch (instr & 0x00000f00) {
19790 switch (instr & 0x000070f0) {
19793 unsigned rn = (instr >> 16) & 0xf;
19794 unsigned rm = instr & 0xf;
19800 if (((instr & 0xfff0fff0) != 0xeb100f30)) {
19801 UnpredictableT32(instr);
19806 if (((instr & 0x70f0) == 0x30)) {
19807 UnallocatedT32(instr);
19810 unsigned rn = (instr >> 16) & 0xf;
19811 unsigned rm = instr & 0xf;
19813 shift_operand((instr >> 4) & 0x3,
19814 ((instr >> 6) & 0x3) |
19815 ((instr >> 10) & 0x1c));
19825 if (((instr & 0xfff08f00) != 0xeb100f00)) {
19826 UnpredictableT32(instr);
19836 if (((instr & 0xfff08f00) != 0xeb100f00)) {
19837 UnpredictableT32(instr);
19846 switch (instr & 0x000f0000) {
19849 switch (instr & 0x000070f0) {
19852 if (((instr & 0xf00) == 0xf00)) {
19853 UnallocatedT32(instr);
19856 unsigned rd = (instr >> 8) & 0xf;
19857 unsigned rm = instr & 0xf;
19864 if (((instr & 0xfffff0f0) != 0xeb1d0030)) {
19865 UnpredictableT32(instr);
19870 if (((instr & 0x70f0) == 0x30) ||
19871 ((instr & 0xf00) == 0xf00)) {
19872 UnallocatedT32(instr);
19875 unsigned rd = (instr >> 8) & 0xf;
19876 unsigned rm = instr & 0xf;
19878 shift_operand((instr >> 4) & 0x3,
19879 ((instr >> 6) & 0x3) |
19880 ((instr >> 10) & 0x1c));
19889 if (((instr & 0xffff8000) != 0xeb1d0000)) {
19890 UnpredictableT32(instr);
19898 switch (instr & 0x000070f0) {
19901 if (((instr & 0xf0000) == 0xd0000) ||
19902 ((instr & 0xf00) == 0xf00)) {
19903 UnallocatedT32(instr);
19906 unsigned rd = (instr >> 8) & 0xf;
19907 unsigned rn = (instr >> 16) & 0xf;
19908 unsigned rm = instr & 0xf;
19915 if (((instr & 0xfff0f0f0) != 0xeb100030)) {
19916 UnpredictableT32(instr);
19921 if (((instr & 0xf0000) == 0xd0000) ||
19922 ((instr & 0x70f0) == 0x30) ||
19923 ((instr & 0xf00) == 0xf00)) {
19924 UnallocatedT32(instr);
19927 unsigned rd = (instr >> 8) & 0xf;
19928 unsigned rn = (instr >> 16) & 0xf;
19929 unsigned rm = instr & 0xf;
19931 shift_operand((instr >> 4) & 0x3,
19932 ((instr >> 6) & 0x3) |
19933 ((instr >> 10) & 0x1c));
19935 (instr & 0x00100000) == 0x00100000 &&
19947 if (((instr & 0xfff08000) != 0xeb100000)) {
19948 UnpredictableT32(instr);
19950 } else if ((instr & 0x00100000) ==
19960 if (((instr & 0xfff08000) != 0xeb100000)) {
19961 UnpredictableT32(instr);
19964 UnallocatedT32(instr);
19979 switch (instr & 0x000070f0) {
19982 unsigned rd = (instr >> 8) & 0xf;
19983 unsigned rn = (instr >> 16) & 0xf;
19984 unsigned rm = instr & 0xf;
19991 if (((instr & 0xfff0f0f0) != 0xeb500030)) {
19992 UnpredictableT32(instr);
19997 if (((instr & 0x70f0) == 0x30)) {
19998 UnallocatedT32(instr);
20001 unsigned rd = (instr >> 8) & 0xf;
20002 unsigned rn = (instr >> 16) & 0xf;
20003 unsigned rm = instr & 0xf;
20005 shift_operand((instr >> 4) & 0x3,
20006 ((instr >> 6) & 0x3) |
20007 ((instr >> 10) & 0x1c));
20009 (instr & 0x00100000) == 0x00100000 &&
20020 if (((instr & 0xfff08000) != 0xeb500000)) {
20021 UnpredictableT32(instr);
20023 } else if ((instr & 0x00100000) == 0x00100000) {
20032 if (((instr & 0xfff08000) != 0xeb500000)) {
20033 UnpredictableT32(instr);
20036 UnallocatedT32(instr);
20045 switch (instr & 0x000070f0) {
20048 unsigned rd = (instr >> 8) & 0xf;
20049 unsigned rn = (instr >> 16) & 0xf;
20050 unsigned rm = instr & 0xf;
20057 if (((instr & 0xfff0f0f0) != 0xeb700030)) {
20058 UnpredictableT32(instr);
20063 if (((instr & 0x70f0) == 0x30)) {
20064 UnallocatedT32(instr);
20067 unsigned rd = (instr >> 8) & 0xf;
20068 unsigned rn = (instr >> 16) & 0xf;
20069 unsigned rm = instr & 0xf;
20071 shift_operand((instr >> 4) & 0x3,
20072 ((instr >> 6) & 0x3) |
20073 ((instr >> 10) & 0x1c));
20075 (instr & 0x00100000) == 0x00100000 &&
20086 if (((instr & 0xfff08000) != 0xeb700000)) {
20087 UnpredictableT32(instr);
20089 } else if ((instr & 0x00100000) == 0x00100000) {
20098 if (((instr & 0xfff08000) != 0xeb700000)) {
20099 UnpredictableT32(instr);
20102 UnallocatedT32(instr);
20110 UnallocatedT32(instr);
20117 switch (instr & 0x00600000) {
20120 switch (instr & 0x000f0000) {
20123 switch (instr & 0x000070f0) {
20126 unsigned rd = (instr >> 8) & 0xf;
20127 unsigned rm = instr & 0xf;
20134 if (((instr & 0xfffff0f0) != 0xebad0030)) {
20135 UnpredictableT32(instr);
20140 if (((instr & 0x70f0) == 0x30)) {
20141 UnallocatedT32(instr);
20144 unsigned rd = (instr >> 8) & 0xf;
20145 unsigned rm = instr & 0xf;
20147 shift_operand((instr >> 4) & 0x3,
20148 ((instr >> 6) & 0x3) |
20149 ((instr >> 10) & 0x1c));
20150 if ((instr & 0x00100000) == 0x00000000 &&
20159 if (((instr & 0xffff8000) != 0xebad0000)) {
20160 UnpredictableT32(instr);
20162 } else if ((instr & 0x00100000) == 0x00000000) {
20171 if (((instr & 0xffff8000) != 0xebad0000)) {
20172 UnpredictableT32(instr);
20175 UnallocatedT32(instr);
20183 switch (instr & 0x000070f0) {
20186 if (((instr & 0xf0000) == 0xd0000)) {
20187 UnallocatedT32(instr);
20190 unsigned rd = (instr >> 8) & 0xf;
20191 unsigned rn = (instr >> 16) & 0xf;
20192 unsigned rm = instr & 0xf;
20199 if (((instr & 0xfff0f0f0) != 0xeba00030)) {
20200 UnpredictableT32(instr);
20205 if (((instr & 0xf0000) == 0xd0000) ||
20206 ((instr & 0x70f0) == 0x30)) {
20207 UnallocatedT32(instr);
20210 unsigned rd = (instr >> 8) & 0xf;
20211 unsigned rn = (instr >> 16) & 0xf;
20212 unsigned rm = instr & 0xf;
20214 shift_operand((instr >> 4) & 0x3,
20215 ((instr >> 6) & 0x3) |
20216 ((instr >> 10) & 0x1c));
20218 (instr & 0x00100000) == 0x00000000 &&
20230 if (((instr & 0xfff08000) != 0xeba00000)) {
20231 UnpredictableT32(instr);
20233 } else if ((instr & 0x00100000) == 0x00000000) {
20242 if (((instr & 0xfff08000) != 0xeba00000)) {
20243 UnpredictableT32(instr);
20246 UnallocatedT32(instr);
20258 switch (instr & 0x000070f0) {
20261 unsigned rd = (instr >> 8) & 0xf;
20262 unsigned rn = (instr >> 16) & 0xf;
20263 unsigned rm = instr & 0xf;
20270 if (((instr & 0xfff0f0f0) != 0xebc00030)) {
20271 UnpredictableT32(instr);
20276 if (((instr & 0x70f0) == 0x30)) {
20277 UnallocatedT32(instr);
20280 unsigned rd = (instr >> 8) & 0xf;
20281 unsigned rn = (instr >> 16) & 0xf;
20282 unsigned rm = instr & 0xf;
20284 shift_operand((instr >> 4) & 0x3,
20285 ((instr >> 6) & 0x3) |
20286 ((instr >> 10) & 0x1c));
20295 if (((instr & 0xfff08000) != 0xebc00000)) {
20296 UnpredictableT32(instr);
20304 UnallocatedT32(instr);
20311 switch (instr & 0x00600000) {
20314 switch (instr & 0x00000f00) {
20317 switch (instr & 0x000070f0) {
20320 unsigned rn = (instr >> 16) & 0xf;
20321 unsigned rm = instr & 0xf;
20327 if (((instr & 0xfff0fff0) != 0xebb00f30)) {
20328 UnpredictableT32(instr);
20333 if (((instr & 0x70f0) == 0x30)) {
20334 UnallocatedT32(instr);
20337 unsigned rn = (instr >> 16) & 0xf;
20338 unsigned rm = instr & 0xf;
20340 shift_operand((instr >> 4) & 0x3,
20341 ((instr >> 6) & 0x3) |
20342 ((instr >> 10) & 0x1c));
20350 if (((instr & 0xfff08f00) != 0xebb00f00)) {
20351 UnpredictableT32(instr);
20361 if (((instr & 0xfff08f00) != 0xebb00f00)) {
20362 UnpredictableT32(instr);
20371 switch (instr & 0x000f0000) {
20374 switch (instr & 0x000070f0) {
20377 if (((instr & 0xf00) == 0xf00)) {
20378 UnallocatedT32(instr);
20381 unsigned rd = (instr >> 8) & 0xf;
20382 unsigned rm = instr & 0xf;
20389 if (((instr & 0xfffff0f0) != 0xebbd0030)) {
20390 UnpredictableT32(instr);
20395 if (((instr & 0x70f0) == 0x30) ||
20396 ((instr & 0xf00) == 0xf00)) {
20397 UnallocatedT32(instr);
20400 unsigned rd = (instr >> 8) & 0xf;
20401 unsigned rm = instr & 0xf;
20403 shift_operand((instr >> 4) & 0x3,
20404 ((instr >> 6) & 0x3) |
20405 ((instr >> 10) & 0x1c));
20414 if (((instr & 0xffff8000) != 0xebbd0000)) {
20415 UnpredictableT32(instr);
20423 switch (instr & 0x000070f0) {
20426 if (((instr & 0xf0000) == 0xd0000) ||
20427 ((instr & 0xf00) == 0xf00)) {
20428 UnallocatedT32(instr);
20431 unsigned rd = (instr >> 8) & 0xf;
20432 unsigned rn = (instr >> 16) & 0xf;
20433 unsigned rm = instr & 0xf;
20440 if (((instr & 0xfff0f0f0) != 0xebb00030)) {
20441 UnpredictableT32(instr);
20446 if (((instr & 0xf0000) == 0xd0000) ||
20447 ((instr & 0x70f0) == 0x30) ||
20448 ((instr & 0xf00) == 0xf00)) {
20449 UnallocatedT32(instr);
20452 unsigned rd = (instr >> 8) & 0xf;
20453 unsigned rn = (instr >> 16) & 0xf;
20454 unsigned rm = instr & 0xf;
20456 shift_operand((instr >> 4) & 0x3,
20457 ((instr >> 6) & 0x3) |
20458 ((instr >> 10) & 0x1c));
20460 (instr & 0x00100000) == 0x00100000 &&
20472 if (((instr & 0xfff08000) != 0xebb00000)) {
20473 UnpredictableT32(instr);
20475 } else if ((instr & 0x00100000) ==
20485 if (((instr & 0xfff08000) != 0xebb00000)) {
20486 UnpredictableT32(instr);
20489 UnallocatedT32(instr);
20504 switch (instr & 0x000070f0) {
20507 unsigned rd = (instr >> 8) & 0xf;
20508 unsigned rn = (instr >> 16) & 0xf;
20509 unsigned rm = instr & 0xf;
20516 if (((instr & 0xfff0f0f0) != 0xebd00030)) {
20517 UnpredictableT32(instr);
20522 if (((instr & 0x70f0) == 0x30)) {
20523 UnallocatedT32(instr);
20526 unsigned rd = (instr >> 8) & 0xf;
20527 unsigned rn = (instr >> 16) & 0xf;
20528 unsigned rm = instr & 0xf;
20530 shift_operand((instr >> 4) & 0x3,
20531 ((instr >> 6) & 0x3) |
20532 ((instr >> 10) & 0x1c));
20541 if (((instr & 0xfff08000) != 0xebd00000)) {
20542 UnpredictableT32(instr);
20550 UnallocatedT32(instr);
20557 switch (instr & 0x0000f080) {
20560 if ((instr & 0x00000070) == 0x00000000) {
20561 if (((Uint32((instr >> 21)) & Uint32(0x3)) ==
20563 unsigned rd = (instr >> 8) & 0xf;
20564 unsigned rm = (instr >> 16) & 0xf;
20565 unsigned rs = instr & 0xf;
20585 if (((Uint32((instr >> 21)) & Uint32(0x3)) ==
20587 unsigned rd = (instr >> 8) & 0xf;
20588 unsigned rm = (instr >> 16) & 0xf;
20589 unsigned rs = instr & 0xf;
20609 if (((Uint32((instr >> 21)) & Uint32(0x3)) ==
20611 unsigned rd = (instr >> 8) & 0xf;
20612 unsigned rm = (instr >> 16) & 0xf;
20613 unsigned rs = instr & 0xf;
20633 if (((Uint32((instr >> 21)) & Uint32(0x3)) ==
20635 unsigned rd = (instr >> 8) & 0xf;
20636 unsigned rm = (instr >> 16) & 0xf;
20637 unsigned rs = instr & 0xf;
20657 unsigned rd = (instr >> 8) & 0xf;
20658 unsigned rm = (instr >> 16) & 0xf;
20659 Shift shift((instr >> 21) & 0x3);
20660 unsigned rs = instr & 0xf;
20661 if (InITBlock() && (instr & 0x00100000) == 0x00000000 &&
20672 } else if ((instr & 0x00100000) == 0x00000000) {
20681 UnallocatedT32(instr);
20684 UnallocatedT32(instr);
20690 switch (instr & 0x00600000) {
20693 switch (instr & 0x000f0000) {
20696 unsigned rd = (instr >> 8) & 0xf;
20697 unsigned rm = instr & 0xf;
20698 uint32_t amount = ((instr >> 4) & 0x3) * 8;
20707 if (((instr & 0xfffff0c0) != 0xfa0ff080)) {
20708 UnpredictableT32(instr);
20716 if (((instr & 0xfffff0c0) != 0xfa0ff080)) {
20717 UnpredictableT32(instr);
20723 if (((instr & 0xf0000) == 0xf0000)) {
20724 UnallocatedT32(instr);
20727 unsigned rd = (instr >> 8) & 0xf;
20728 unsigned rn = (instr >> 16) & 0xf;
20729 unsigned rm = instr & 0xf;
20730 uint32_t amount = ((instr >> 4) & 0x3) * 8;
20736 if (((instr & 0xfff0f0c0) != 0xfa00f080)) {
20737 UnpredictableT32(instr);
20746 switch (instr & 0x000f0000) {
20749 unsigned rd = (instr >> 8) & 0xf;
20750 unsigned rm = instr & 0xf;
20751 uint32_t amount = ((instr >> 4) & 0x3) * 8;
20756 if (((instr & 0xfffff0c0) != 0xfa2ff080)) {
20757 UnpredictableT32(instr);
20762 if (((instr & 0xf0000) == 0xf0000)) {
20763 UnallocatedT32(instr);
20766 unsigned rd = (instr >> 8) & 0xf;
20767 unsigned rn = (instr >> 16) & 0xf;
20768 unsigned rm = instr & 0xf;
20769 uint32_t amount = ((instr >> 4) & 0x3) * 8;
20775 if (((instr & 0xfff0f0c0) != 0xfa20f080)) {
20776 UnpredictableT32(instr);
20785 switch (instr & 0x000f0000) {
20788 unsigned rd = (instr >> 8) & 0xf;
20789 unsigned rm = instr & 0xf;
20790 uint32_t amount = ((instr >> 4) & 0x3) * 8;
20799 if (((instr & 0xfffff0c0) != 0xfa4ff080)) {
20800 UnpredictableT32(instr);
20808 if (((instr & 0xfffff0c0) != 0xfa4ff080)) {
20809 UnpredictableT32(instr);
20815 if (((instr & 0xf0000) == 0xf0000)) {
20816 UnallocatedT32(instr);
20819 unsigned rd = (instr >> 8) & 0xf;
20820 unsigned rn = (instr >> 16) & 0xf;
20821 unsigned rm = instr & 0xf;
20822 uint32_t amount = ((instr >> 4) & 0x3) * 8;
20828 if (((instr & 0xfff0f0c0) != 0xfa40f080)) {
20829 UnpredictableT32(instr);
20837 UnallocatedT32(instr);
20843 UnallocatedT32(instr);
20850 switch (instr & 0x0000f080) {
20853 if ((instr & 0x00000070) == 0x00000000) {
20854 if (((Uint32((instr >> 21)) & Uint32(0x3)) ==
20856 unsigned rd = (instr >> 8) & 0xf;
20857 unsigned rm = (instr >> 16) & 0xf;
20858 unsigned rs = instr & 0xf;
20878 if (((Uint32((instr >> 21)) & Uint32(0x3)) ==
20880 unsigned rd = (instr >> 8) & 0xf;
20881 unsigned rm = (instr >> 16) & 0xf;
20882 unsigned rs = instr & 0xf;
20902 if (((Uint32((instr >> 21)) & Uint32(0x3)) ==
20904 unsigned rd = (instr >> 8) & 0xf;
20905 unsigned rm = (instr >> 16) & 0xf;
20906 unsigned rs = instr & 0xf;
20926 if (((Uint32((instr >> 21)) & Uint32(0x3)) ==
20928 unsigned rd = (instr >> 8) & 0xf;
20929 unsigned rm = (instr >> 16) & 0xf;
20930 unsigned rs = instr & 0xf;
20950 unsigned rd = (instr >> 8) & 0xf;
20951 unsigned rm = (instr >> 16) & 0xf;
20952 Shift shift((instr >> 21) & 0x3);
20953 unsigned rs = instr & 0xf;
20955 (instr & 0x00100000) == 0x00100000 &&
20966 } else if ((instr & 0x00100000) == 0x00100000) {
20975 UnallocatedT32(instr);
20978 UnallocatedT32(instr);
20984 switch (instr & 0x00600000) {
20987 switch (instr & 0x000f0000) {
20990 unsigned rd = (instr >> 8) & 0xf;
20991 unsigned rm = instr & 0xf;
20992 uint32_t amount = ((instr >> 4) & 0x3) * 8;
21001 if (((instr & 0xfffff0c0) != 0xfa1ff080)) {
21002 UnpredictableT32(instr);
21010 if (((instr & 0xfffff0c0) != 0xfa1ff080)) {
21011 UnpredictableT32(instr);
21017 if (((instr & 0xf0000) == 0xf0000)) {
21018 UnallocatedT32(instr);
21021 unsigned rd = (instr >> 8) & 0xf;
21022 unsigned rn = (instr >> 16) & 0xf;
21023 unsigned rm = instr & 0xf;
21024 uint32_t amount = ((instr >> 4) & 0x3) * 8;
21030 if (((instr & 0xfff0f0c0) != 0xfa10f080)) {
21031 UnpredictableT32(instr);
21040 switch (instr & 0x000f0000) {
21043 unsigned rd = (instr >> 8) & 0xf;
21044 unsigned rm = instr & 0xf;
21045 uint32_t amount = ((instr >> 4) & 0x3) * 8;
21050 if (((instr & 0xfffff0c0) != 0xfa3ff080)) {
21051 UnpredictableT32(instr);
21056 if (((instr & 0xf0000) == 0xf0000)) {
21057 UnallocatedT32(instr);
21060 unsigned rd = (instr >> 8) & 0xf;
21061 unsigned rn = (instr >> 16) & 0xf;
21062 unsigned rm = instr & 0xf;
21063 uint32_t amount = ((instr >> 4) & 0x3) * 8;
21069 if (((instr & 0xfff0f0c0) != 0xfa30f080)) {
21070 UnpredictableT32(instr);
21079 switch (instr & 0x000f0000) {
21082 unsigned rd = (instr >> 8) & 0xf;
21083 unsigned rm = instr & 0xf;
21084 uint32_t amount = ((instr >> 4) & 0x3) * 8;
21093 if (((instr & 0xfffff0c0) != 0xfa5ff080)) {
21094 UnpredictableT32(instr);
21102 if (((instr & 0xfffff0c0) != 0xfa5ff080)) {
21103 UnpredictableT32(instr);
21109 if (((instr & 0xf0000) == 0xf0000)) {
21110 UnallocatedT32(instr);
21113 unsigned rd = (instr >> 8) & 0xf;
21114 unsigned rn = (instr >> 16) & 0xf;
21115 unsigned rm = instr & 0xf;
21116 uint32_t amount = ((instr >> 4) & 0x3) * 8;
21122 if (((instr & 0xfff0f0c0) != 0xfa50f080)) {
21123 UnpredictableT32(instr);
21131 UnallocatedT32(instr);
21137 UnallocatedT32(instr);
21144 switch (instr & 0x0060f0f0) {
21147 unsigned rd = (instr >> 8) & 0xf;
21148 unsigned rn = (instr >> 16) & 0xf;
21149 unsigned rm = instr & 0xf;
21159 unsigned rd = (instr >> 8) & 0xf;
21160 unsigned rn = (instr >> 16) & 0xf;
21161 unsigned rm = instr & 0xf;
21171 unsigned rd = (instr >> 8) & 0xf;
21172 unsigned rn = (instr >> 16) & 0xf;
21173 unsigned rm = instr & 0xf;
21183 unsigned rd = (instr >> 8) & 0xf;
21184 unsigned rn = (instr >> 16) & 0xf;
21185 unsigned rm = instr & 0xf;
21195 unsigned rd = (instr >> 8) & 0xf;
21196 unsigned rn = (instr >> 16) & 0xf;
21197 unsigned rm = instr & 0xf;
21207 unsigned rd = (instr >> 8) & 0xf;
21208 unsigned rn = (instr >> 16) & 0xf;
21209 unsigned rm = instr & 0xf;
21219 unsigned rd = (instr >> 8) & 0xf;
21220 unsigned rm = instr & 0xf;
21221 unsigned rn = (instr >> 16) & 0xf;
21231 unsigned rd = (instr >> 8) & 0xf;
21232 unsigned rm = instr & 0xf;
21233 unsigned rn = (instr >> 16) & 0xf;
21243 unsigned rd = (instr >> 8) & 0xf;
21244 unsigned rm = instr & 0xf;
21245 unsigned rn = (instr >> 16) & 0xf;
21255 unsigned rd = (instr >> 8) & 0xf;
21256 unsigned rm = instr & 0xf;
21257 unsigned rn = (instr >> 16) & 0xf;
21267 unsigned rd = (instr >> 8) & 0xf;
21268 unsigned rn = (instr >> 16) & 0xf;
21269 unsigned rm = instr & 0xf;
21279 unsigned rd = (instr >> 8) & 0xf;
21280 unsigned rn = (instr >> 16) & 0xf;
21281 unsigned rm = instr & 0xf;
21291 unsigned rd = (instr >> 8) & 0xf;
21292 unsigned rn = (instr >> 16) & 0xf;
21293 unsigned rm = instr & 0xf;
21303 unsigned rd = (instr >> 8) & 0xf;
21304 unsigned rn = (instr >> 16) & 0xf;
21305 unsigned rm = instr & 0xf;
21315 unsigned rd = (instr >> 8) & 0xf;
21316 unsigned rn = (instr >> 16) & 0xf;
21317 unsigned rm = instr & 0xf;
21327 unsigned rd = (instr >> 8) & 0xf;
21328 unsigned rn = (instr >> 16) & 0xf;
21329 unsigned rm = instr & 0xf;
21339 unsigned rd = (instr >> 8) & 0xf;
21340 unsigned rn = (instr >> 16) & 0xf;
21341 unsigned rm = instr & 0xf;
21351 unsigned rd = (instr >> 8) & 0xf;
21352 unsigned rn = (instr >> 16) & 0xf;
21353 unsigned rm = instr & 0xf;
21363 unsigned rd = (instr >> 8) & 0xf;
21364 unsigned rn = (instr >> 16) & 0xf;
21365 unsigned rm = instr & 0xf;
21375 unsigned rd = (instr >> 8) & 0xf;
21376 unsigned rn = (instr >> 16) & 0xf;
21377 unsigned rm = instr & 0xf;
21387 unsigned rd = (instr >> 8) & 0xf;
21388 unsigned rn = (instr >> 16) & 0xf;
21389 unsigned rm = instr & 0xf;
21399 unsigned rd = (instr >> 8) & 0xf;
21400 unsigned rn = (instr >> 16) & 0xf;
21401 unsigned rm = instr & 0xf;
21411 unsigned rd = (instr >> 8) & 0xf;
21412 unsigned rn = (instr >> 16) & 0xf;
21413 unsigned rm = instr & 0xf;
21423 unsigned rd = (instr >> 8) & 0xf;
21424 unsigned rn = (instr >> 16) & 0xf;
21425 unsigned rm = instr & 0xf;
21435 unsigned rd = (instr >> 8) & 0xf;
21436 unsigned rn = (instr >> 16) & 0xf;
21437 unsigned rm = instr & 0xf;
21447 unsigned rd = (instr >> 8) & 0xf;
21448 unsigned rn = (instr >> 16) & 0xf;
21449 unsigned rm = instr & 0xf;
21459 unsigned rd = (instr >> 8) & 0xf;
21460 unsigned rn = (instr >> 16) & 0xf;
21461 unsigned rm = instr & 0xf;
21471 unsigned rd = (instr >> 8) & 0xf;
21472 unsigned rn = (instr >> 16) & 0xf;
21473 unsigned rm = instr & 0xf;
21483 unsigned rd = (instr >> 8) & 0xf;
21484 unsigned rn = (instr >> 16) & 0xf;
21485 unsigned rm = instr & 0xf;
21495 unsigned rd = (instr >> 8) & 0xf;
21496 unsigned rn = (instr >> 16) & 0xf;
21497 unsigned rm = instr & 0xf;
21507 unsigned rd = (instr >> 8) & 0xf;
21508 unsigned rn = (instr >> 16) & 0xf;
21509 unsigned rm = instr & 0xf;
21519 unsigned rd = (instr >> 8) & 0xf;
21520 unsigned rn = (instr >> 16) & 0xf;
21521 unsigned rm = instr & 0xf;
21530 UnallocatedT32(instr);
21537 switch (instr & 0x0060f0f0) {
21540 unsigned rd = (instr >> 8) & 0xf;
21541 unsigned rn = (instr >> 16) & 0xf;
21542 unsigned rm = instr & 0xf;
21552 unsigned rd = (instr >> 8) & 0xf;
21553 unsigned rn = (instr >> 16) & 0xf;
21554 unsigned rm = instr & 0xf;
21564 unsigned rd = (instr >> 8) & 0xf;
21565 unsigned rn = (instr >> 16) & 0xf;
21566 unsigned rm = instr & 0xf;
21576 unsigned rd = (instr >> 8) & 0xf;
21577 unsigned rn = (instr >> 16) & 0xf;
21578 unsigned rm = instr & 0xf;
21588 unsigned rd = (instr >> 8) & 0xf;
21589 unsigned rn = (instr >> 16) & 0xf;
21590 unsigned rm = instr & 0xf;
21600 unsigned rd = (instr >> 8) & 0xf;
21601 unsigned rn = (instr >> 16) & 0xf;
21602 unsigned rm = instr & 0xf;
21612 if (((instr >> 16) & 0xf) == (instr & 0xf)) {
21613 unsigned rd = (instr >> 8) & 0xf;
21614 unsigned rm = instr & 0xf;
21624 UnallocatedT32(instr);
21630 if (((instr >> 16) & 0xf) == (instr & 0xf)) {
21631 unsigned rd = (instr >> 8) & 0xf;
21632 unsigned rm = instr & 0xf;
21648 UnallocatedT32(instr);
21654 if (((instr >> 16) & 0xf) == (instr & 0xf)) {
21655 unsigned rd = (instr >> 8) & 0xf;
21656 unsigned rm = instr & 0xf;
21660 UnallocatedT32(instr);
21666 if (((instr >> 16) & 0xf) == (instr & 0xf)) {
21667 unsigned rd = (instr >> 8) & 0xf;
21668 unsigned rm = instr & 0xf;
21684 UnallocatedT32(instr);
21690 if (((instr >> 16) & 0xf) == (instr & 0xf)) {
21691 unsigned rd = (instr >> 8) & 0xf;
21692 unsigned rm = instr & 0xf;
21696 UnallocatedT32(instr);
21702 unsigned rd = (instr >> 8) & 0xf;
21703 unsigned rn = (instr >> 16) & 0xf;
21704 unsigned rm = instr & 0xf;
21714 unsigned rd = (instr >> 8) & 0xf;
21715 unsigned rn = (instr >> 16) & 0xf;
21716 unsigned rm = instr & 0xf;
21726 unsigned rd = (instr >> 8) & 0xf;
21727 unsigned rn = (instr >> 16) & 0xf;
21728 unsigned rm = instr & 0xf;
21738 unsigned rd = (instr >> 8) & 0xf;
21739 unsigned rn = (instr >> 16) & 0xf;
21740 unsigned rm = instr & 0xf;
21750 unsigned rd = (instr >> 8) & 0xf;
21751 unsigned rn = (instr >> 16) & 0xf;
21752 unsigned rm = instr & 0xf;
21762 unsigned rd = (instr >> 8) & 0xf;
21763 unsigned rn = (instr >> 16) & 0xf;
21764 unsigned rm = instr & 0xf;
21774 unsigned rd = (instr >> 8) & 0xf;
21775 unsigned rn = (instr >> 16) & 0xf;
21776 unsigned rm = instr & 0xf;
21786 unsigned rd = (instr >> 8) & 0xf;
21787 unsigned rn = (instr >> 16) & 0xf;
21788 unsigned rm = instr & 0xf;
21798 unsigned rd = (instr >> 8) & 0xf;
21799 unsigned rn = (instr >> 16) & 0xf;
21800 unsigned rm = instr & 0xf;
21809 UnallocatedT32(instr);
21816 switch (instr & 0x006000f0) {
21819 switch (instr & 0x0000f000) {
21822 unsigned rd = (instr >> 8) & 0xf;
21823 unsigned rn = (instr >> 16) & 0xf;
21824 unsigned rm = instr & 0xf;
21845 if (((instr & 0xf000) == 0xf000)) {
21846 UnallocatedT32(instr);
21849 unsigned rd = (instr >> 8) & 0xf;
21850 unsigned rn = (instr >> 16) & 0xf;
21851 unsigned rm = instr & 0xf;
21852 unsigned ra = (instr >> 12) & 0xf;
21866 unsigned rd = (instr >> 8) & 0xf;
21867 unsigned rn = (instr >> 16) & 0xf;
21868 unsigned rm = instr & 0xf;
21869 unsigned ra = (instr >> 12) & 0xf;
21880 switch (instr & 0x0000f000) {
21883 unsigned rd = (instr >> 8) & 0xf;
21884 unsigned rn = (instr >> 16) & 0xf;
21885 unsigned rm = instr & 0xf;
21894 if (((instr & 0xf000) == 0xf000)) {
21895 UnallocatedT32(instr);
21898 unsigned rd = (instr >> 8) & 0xf;
21899 unsigned rn = (instr >> 16) & 0xf;
21900 unsigned rm = instr & 0xf;
21901 unsigned ra = (instr >> 12) & 0xf;
21915 switch (instr & 0x0000f000) {
21918 unsigned rd = (instr >> 8) & 0xf;
21919 unsigned rn = (instr >> 16) & 0xf;
21920 unsigned rm = instr & 0xf;
21929 if (((instr & 0xf000) == 0xf000)) {
21930 UnallocatedT32(instr);
21933 unsigned rd = (instr >> 8) & 0xf;
21934 unsigned rn = (instr >> 16) & 0xf;
21935 unsigned rm = instr & 0xf;
21936 unsigned ra = (instr >> 12) & 0xf;
21950 switch (instr & 0x0000f000) {
21953 unsigned rd = (instr >> 8) & 0xf;
21954 unsigned rn = (instr >> 16) & 0xf;
21955 unsigned rm = instr & 0xf;
21964 if (((instr & 0xf000) == 0xf000)) {
21965 UnallocatedT32(instr);
21968 unsigned rd = (instr >> 8) & 0xf;
21969 unsigned rn = (instr >> 16) & 0xf;
21970 unsigned rm = instr & 0xf;
21971 unsigned ra = (instr >> 12) & 0xf;
21985 switch (instr & 0x0000f000) {
21988 unsigned rd = (instr >> 8) & 0xf;
21989 unsigned rn = (instr >> 16) & 0xf;
21990 unsigned rm = instr & 0xf;
21999 if (((instr & 0xf000) == 0xf000)) {
22000 UnallocatedT32(instr);
22003 unsigned rd = (instr >> 8) & 0xf;
22004 unsigned rn = (instr >> 16) & 0xf;
22005 unsigned rm = instr & 0xf;
22006 unsigned ra = (instr >> 12) & 0xf;
22020 unsigned rd = (instr >> 8) & 0xf;
22021 unsigned rn = (instr >> 16) & 0xf;
22022 unsigned rm = instr & 0xf;
22023 unsigned ra = (instr >> 12) & 0xf;
22034 unsigned rd = (instr >> 8) & 0xf;
22035 unsigned rn = (instr >> 16) & 0xf;
22036 unsigned rm = instr & 0xf;
22037 unsigned ra = (instr >> 12) & 0xf;
22047 UnallocatedT32(instr);
22054 switch (instr & 0x006000f0) {
22057 switch (instr & 0x0000f000) {
22060 unsigned rd = (instr >> 8) & 0xf;
22061 unsigned rn = (instr >> 16) & 0xf;
22062 unsigned rm = instr & 0xf;
22071 if (((instr & 0xf000) == 0xf000)) {
22072 UnallocatedT32(instr);
22075 unsigned rd = (instr >> 8) & 0xf;
22076 unsigned rn = (instr >> 16) & 0xf;
22077 unsigned rm = instr & 0xf;
22078 unsigned ra = (instr >> 12) & 0xf;
22092 switch (instr & 0x0000f000) {
22095 unsigned rd = (instr >> 8) & 0xf;
22096 unsigned rn = (instr >> 16) & 0xf;
22097 unsigned rm = instr & 0xf;
22106 if (((instr & 0xf000) == 0xf000)) {
22107 UnallocatedT32(instr);
22110 unsigned rd = (instr >> 8) & 0xf;
22111 unsigned rn = (instr >> 16) & 0xf;
22112 unsigned rm = instr & 0xf;
22113 unsigned ra = (instr >> 12) & 0xf;
22127 switch (instr & 0x0000f000) {
22130 unsigned rd = (instr >> 8) & 0xf;
22131 unsigned rn = (instr >> 16) & 0xf;
22132 unsigned rm = instr & 0xf;
22141 if (((instr & 0xf000) == 0xf000)) {
22142 UnallocatedT32(instr);
22145 unsigned rd = (instr >> 8) & 0xf;
22146 unsigned rn = (instr >> 16) & 0xf;
22147 unsigned rm = instr & 0xf;
22148 unsigned ra = (instr >> 12) & 0xf;
22162 switch (instr & 0x0000f000) {
22165 unsigned rd = (instr >> 8) & 0xf;
22166 unsigned rn = (instr >> 16) & 0xf;
22167 unsigned rm = instr & 0xf;
22176 if (((instr & 0xf000) == 0xf000)) {
22177 UnallocatedT32(instr);
22180 unsigned rd = (instr >> 8) & 0xf;
22181 unsigned rn = (instr >> 16) & 0xf;
22182 unsigned rm = instr & 0xf;
22183 unsigned ra = (instr >> 12) & 0xf;
22197 switch (instr & 0x0000f000) {
22200 unsigned rd = (instr >> 8) & 0xf;
22201 unsigned rn = (instr >> 16) & 0xf;
22202 unsigned rm = instr & 0xf;
22211 if (((instr & 0xf000) == 0xf000)) {
22212 UnallocatedT32(instr);
22215 unsigned rd = (instr >> 8) & 0xf;
22216 unsigned rn = (instr >> 16) & 0xf;
22217 unsigned rm = instr & 0xf;
22218 unsigned ra = (instr >> 12) & 0xf;
22232 switch (instr & 0x0000f000) {
22235 unsigned rd = (instr >> 8) & 0xf;
22236 unsigned rn = (instr >> 16) & 0xf;
22237 unsigned rm = instr & 0xf;
22246 if (((instr & 0xf000) == 0xf000)) {
22247 UnallocatedT32(instr);
22250 unsigned rd = (instr >> 8) & 0xf;
22251 unsigned rn = (instr >> 16) & 0xf;
22252 unsigned rm = instr & 0xf;
22253 unsigned ra = (instr >> 12) & 0xf;
22267 switch (instr & 0x0000f000) {
22270 unsigned rd = (instr >> 8) & 0xf;
22271 unsigned rn = (instr >> 16) & 0xf;
22272 unsigned rm = instr & 0xf;
22281 if (((instr & 0xf000) == 0xf000)) {
22282 UnallocatedT32(instr);
22285 unsigned rd = (instr >> 8) & 0xf;
22286 unsigned rn = (instr >> 16) & 0xf;
22287 unsigned rm = instr & 0xf;
22288 unsigned ra = (instr >> 12) & 0xf;
22302 switch (instr & 0x0000f000) {
22305 unsigned rd = (instr >> 8) & 0xf;
22306 unsigned rn = (instr >> 16) & 0xf;
22307 unsigned rm = instr & 0xf;
22316 if (((instr & 0xf000) == 0xf000)) {
22317 UnallocatedT32(instr);
22320 unsigned rd = (instr >> 8) & 0xf;
22321 unsigned rn = (instr >> 16) & 0xf;
22322 unsigned rm = instr & 0xf;
22323 unsigned ra = (instr >> 12) & 0xf;
22337 switch (instr & 0x0000f000) {
22340 unsigned rd = (instr >> 8) & 0xf;
22341 unsigned rn = (instr >> 16) & 0xf;
22342 unsigned rm = instr & 0xf;
22351 if (((instr & 0xf000) == 0xf000)) {
22352 UnallocatedT32(instr);
22355 unsigned rd = (instr >> 8) & 0xf;
22356 unsigned rn = (instr >> 16) & 0xf;
22357 unsigned rm = instr & 0xf;
22358 unsigned ra = (instr >> 12) & 0xf;
22371 UnallocatedT32(instr);
22378 switch (instr & 0x006000f0) {
22381 unsigned rdlo = (instr >> 12) & 0xf;
22382 unsigned rdhi = (instr >> 8) & 0xf;
22383 unsigned rn = (instr >> 16) & 0xf;
22384 unsigned rm = instr & 0xf;
22395 unsigned rdlo = (instr >> 12) & 0xf;
22396 unsigned rdhi = (instr >> 8) & 0xf;
22397 unsigned rn = (instr >> 16) & 0xf;
22398 unsigned rm = instr & 0xf;
22409 unsigned rdlo = (instr >> 12) & 0xf;
22410 unsigned rdhi = (instr >> 8) & 0xf;
22411 unsigned rn = (instr >> 16) & 0xf;
22412 unsigned rm = instr & 0xf;
22423 unsigned rdlo = (instr >> 12) & 0xf;
22424 unsigned rdhi = (instr >> 8) & 0xf;
22425 unsigned rn = (instr >> 16) & 0xf;
22426 unsigned rm = instr & 0xf;
22437 unsigned rdlo = (instr >> 12) & 0xf;
22438 unsigned rdhi = (instr >> 8) & 0xf;
22439 unsigned rn = (instr >> 16) & 0xf;
22440 unsigned rm = instr & 0xf;
22451 unsigned rdlo = (instr >> 12) & 0xf;
22452 unsigned rdhi = (instr >> 8) & 0xf;
22453 unsigned rn = (instr >> 16) & 0xf;
22454 unsigned rm = instr & 0xf;
22465 unsigned rdlo = (instr >> 12) & 0xf;
22466 unsigned rdhi = (instr >> 8) & 0xf;
22467 unsigned rn = (instr >> 16) & 0xf;
22468 unsigned rm = instr & 0xf;
22479 unsigned rdlo = (instr >> 12) & 0xf;
22480 unsigned rdhi = (instr >> 8) & 0xf;
22481 unsigned rn = (instr >> 16) & 0xf;
22482 unsigned rm = instr & 0xf;
22493 unsigned rdlo = (instr >> 12) & 0xf;
22494 unsigned rdhi = (instr >> 8) & 0xf;
22495 unsigned rn = (instr >> 16) & 0xf;
22496 unsigned rm = instr & 0xf;
22507 unsigned rdlo = (instr >> 12) & 0xf;
22508 unsigned rdhi = (instr >> 8) & 0xf;
22509 unsigned rn = (instr >> 16) & 0xf;
22510 unsigned rm = instr & 0xf;
22521 unsigned rdlo = (instr >> 12) & 0xf;
22522 unsigned rdhi = (instr >> 8) & 0xf;
22523 unsigned rn = (instr >> 16) & 0xf;
22524 unsigned rm = instr & 0xf;
22534 UnallocatedT32(instr);
22541 switch (instr & 0x006000f0) {
22544 unsigned rd = (instr >> 8) & 0xf;
22545 unsigned rn = (instr >> 16) & 0xf;
22546 unsigned rm = instr & 0xf;
22552 if (((instr & 0xfff0f0f0) != 0xfb90f0f0)) {
22553 UnpredictableT32(instr);
22559 unsigned rd = (instr >> 8) & 0xf;
22560 unsigned rn = (instr >> 16) & 0xf;
22561 unsigned rm = instr & 0xf;
22567 if (((instr & 0xfff0f0f0) != 0xfbb0f0f0)) {
22568 UnpredictableT32(instr);
22574 unsigned rdlo = (instr >> 12) & 0xf;
22575 unsigned rdhi = (instr >> 8) & 0xf;
22576 unsigned rn = (instr >> 16) & 0xf;
22577 unsigned rm = instr & 0xf;
22588 unsigned rdlo = (instr >> 12) & 0xf;
22589 unsigned rdhi = (instr >> 8) & 0xf;
22590 unsigned rn = (instr >> 16) & 0xf;
22591 unsigned rm = instr & 0xf;
22601 UnallocatedT32(instr);
22611 switch (instr & 0x11100e00) {
22614 switch (instr & 0x00800100) {
22617 if ((instr & 0x006000d0) == 0x00400010) {
22618 unsigned rm = ExtractSRegister(instr, 5, 0);
22619 unsigned rt = (instr >> 12) & 0xf;
22620 unsigned rt2 = (instr >> 16) & 0xf;
22628 UnallocatedT32(instr);
22634 if ((instr & 0x006000d0) == 0x00400010) {
22635 unsigned rm = ExtractDRegister(instr, 5, 0);
22636 unsigned rt = (instr >> 12) & 0xf;
22637 unsigned rt2 = (instr >> 16) & 0xf;
22644 UnallocatedT32(instr);
22650 unsigned rn = (instr >> 16) & 0xf;
22651 WriteBack write_back((instr >> 21) & 0x1);
22652 unsigned first = ExtractSRegister(instr, 22, 12);
22653 unsigned len = instr & 0xff;
22661 UnpredictableT32(instr);
22667 switch (instr & 0x00000001) {
22670 unsigned rn = (instr >> 16) & 0xf;
22671 WriteBack write_back((instr >> 21) & 0x1);
22672 unsigned first = ExtractDRegister(instr, 22, 12);
22673 unsigned imm8 = (instr & 0xff);
22684 UnpredictableT32(instr);
22690 unsigned rn = (instr >> 16) & 0xf;
22691 WriteBack write_back((instr >> 21) & 0x1);
22692 unsigned first = ExtractDRegister(instr, 22, 12);
22693 unsigned imm8 = (instr & 0xff);
22702 UnpredictableT32(instr);
22714 switch (instr & 0x00600000) {
22717 if ((instr & 0x0080f100) == 0x00805000) {
22718 UnimplementedT32_32("STC", instr);
22720 UnallocatedT32(instr);
22726 if ((instr & 0x0000f100) == 0x00005000) {
22727 UnimplementedT32_32("STC", instr);
22729 UnallocatedT32(instr);
22735 if ((instr & 0x00800000) == 0x00000000) {
22736 UnimplementedT32_32("MCRR", instr);
22738 UnallocatedT32(instr);
22743 UnallocatedT32(instr);
22750 switch (instr & 0x00800100) {
22753 if ((instr & 0x006000d0) == 0x00400010) {
22754 unsigned rt = (instr >> 12) & 0xf;
22755 unsigned rt2 = (instr >> 16) & 0xf;
22756 unsigned rm = ExtractSRegister(instr, 5, 0);
22764 UnallocatedT32(instr);
22770 if ((instr & 0x006000d0) == 0x00400010) {
22771 unsigned rt = (instr >> 12) & 0xf;
22772 unsigned rt2 = (instr >> 16) & 0xf;
22773 unsigned rm = ExtractDRegister(instr, 5, 0);
22780 UnallocatedT32(instr);
22786 if (((Uint32((instr >> 21)) & Uint32(0x1)) ==
22788 ((Uint32((instr >> 16)) & Uint32(0xf)) ==
22790 unsigned first = ExtractSRegister(instr, 22, 12);
22791 unsigned len = instr & 0xff;
22798 UnpredictableT32(instr);
22802 unsigned rn = (instr >> 16) & 0xf;
22803 WriteBack write_back((instr >> 21) & 0x1);
22804 unsigned first = ExtractSRegister(instr, 22, 12);
22805 unsigned len = instr & 0xff;
22813 UnpredictableT32(instr);
22819 switch (instr & 0x00000001) {
22822 if (((Uint32((instr >> 21)) & Uint32(0x1)) ==
22824 ((Uint32((instr >> 16)) & Uint32(0xf)) ==
22826 unsigned first = ExtractDRegister(instr, 22, 12);
22827 unsigned imm8 = (instr & 0xff);
22836 UnpredictableT32(instr);
22840 unsigned rn = (instr >> 16) & 0xf;
22841 WriteBack write_back((instr >> 21) & 0x1);
22842 unsigned first = ExtractDRegister(instr, 22, 12);
22843 unsigned imm8 = (instr & 0xff);
22854 UnpredictableT32(instr);
22860 unsigned rn = (instr >> 16) & 0xf;
22861 WriteBack write_back((instr >> 21) & 0x1);
22862 unsigned first = ExtractDRegister(instr, 22, 12);
22863 unsigned imm8 = (instr & 0xff);
22872 UnpredictableT32(instr);
22884 switch (instr & 0x00600000) {
22887 if ((instr & 0x0080f100) == 0x00805000) {
22888 if (((instr & 0xf0000) == 0xf0000)) {
22889 UnallocatedT32(instr);
22892 UnimplementedT32_32("LDC", instr);
22894 UnallocatedT32(instr);
22900 if ((instr & 0x0000f100) == 0x00005000) {
22901 if (((instr & 0xf0000) == 0xf0000)) {
22902 UnallocatedT32(instr);
22905 UnimplementedT32_32("LDC", instr);
22907 UnallocatedT32(instr);
22913 if ((instr & 0x00800000) == 0x00000000) {
22914 UnimplementedT32_32("MRRC", instr);
22916 UnallocatedT32(instr);
22921 UnallocatedT32(instr);
22928 switch (instr & 0x00200100) {
22931 unsigned rd = ExtractSRegister(instr, 22, 12);
22932 unsigned rn = (instr >> 16) & 0xf;
22933 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
22934 int32_t offset = (instr & 0xff) << 2;
22944 unsigned rd = ExtractDRegister(instr, 22, 12);
22945 unsigned rn = (instr >> 16) & 0xf;
22946 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
22947 int32_t offset = (instr & 0xff) << 2;
22957 if ((instr & 0x00800000) == 0x00000000) {
22958 if (((Uint32((instr >> 16)) & Uint32(0xf)) ==
22960 unsigned first = ExtractSRegister(instr, 22, 12);
22961 unsigned len = instr & 0xff;
22968 UnpredictableT32(instr);
22972 unsigned rn = (instr >> 16) & 0xf;
22973 unsigned first = ExtractSRegister(instr, 22, 12);
22974 unsigned len = instr & 0xff;
22983 UnpredictableT32(instr);
22986 UnallocatedT32(instr);
22992 switch (instr & 0x00800001) {
22995 if (((Uint32((instr >> 16)) & Uint32(0xf)) ==
22997 unsigned first = ExtractDRegister(instr, 22, 12);
22998 unsigned imm8 = (instr & 0xff);
23007 UnpredictableT32(instr);
23011 unsigned rn = (instr >> 16) & 0xf;
23012 unsigned first = ExtractDRegister(instr, 22, 12);
23013 unsigned imm8 = (instr & 0xff);
23024 UnpredictableT32(instr);
23030 unsigned rn = (instr >> 16) & 0xf;
23031 unsigned first = ExtractDRegister(instr, 22, 12);
23032 unsigned imm8 = (instr & 0xff);
23041 UnpredictableT32(instr);
23046 UnallocatedT32(instr);
23056 switch (instr & 0x0060f100) {
23059 UnimplementedT32_32("STC", instr);
23064 UnimplementedT32_32("STC", instr);
23068 UnallocatedT32(instr);
23075 switch (instr & 0x00200100) {
23078 switch (instr & 0x000f0000) {
23081 unsigned rd = ExtractSRegister(instr, 22, 12);
23082 uint32_t U = (instr >> 23) & 0x1;
23083 int32_t imm = instr & 0xff;
23103 if (((instr & 0xf0000) == 0xf0000)) {
23104 UnallocatedT32(instr);
23107 unsigned rd = ExtractSRegister(instr, 22, 12);
23108 unsigned rn = (instr >> 16) & 0xf;
23109 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
23111 int32_t offset = (instr & 0xff) << 2;
23124 switch (instr & 0x000f0000) {
23127 unsigned rd = ExtractDRegister(instr, 22, 12);
23128 uint32_t U = (instr >> 23) & 0x1;
23129 int32_t imm = instr & 0xff;
23149 if (((instr & 0xf0000) == 0xf0000)) {
23150 UnallocatedT32(instr);
23153 unsigned rd = ExtractDRegister(instr, 22, 12);
23154 unsigned rn = (instr >> 16) & 0xf;
23155 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
23157 int32_t offset = (instr & 0xff) << 2;
23170 if ((instr & 0x00800000) == 0x00000000) {
23171 unsigned rn = (instr >> 16) & 0xf;
23172 unsigned first = ExtractSRegister(instr, 22, 12);
23173 unsigned len = instr & 0xff;
23182 UnpredictableT32(instr);
23185 UnallocatedT32(instr);
23191 switch (instr & 0x00800001) {
23194 unsigned rn = (instr >> 16) & 0xf;
23195 unsigned first = ExtractDRegister(instr, 22, 12);
23196 unsigned imm8 = (instr & 0xff);
23207 UnpredictableT32(instr);
23213 unsigned rn = (instr >> 16) & 0xf;
23214 unsigned first = ExtractDRegister(instr, 22, 12);
23215 unsigned imm8 = (instr & 0xff);
23224 UnpredictableT32(instr);
23229 UnallocatedT32(instr);
23239 switch (instr & 0x0060f100) {
23242 switch (instr & 0x000f0000) {
23245 UnimplementedT32_32("LDC", instr);
23249 if (((instr & 0xf0000) == 0xf0000)) {
23250 UnallocatedT32(instr);
23253 UnimplementedT32_32("LDC", instr);
23261 if (((instr & 0xf0000) == 0xf0000)) {
23262 UnallocatedT32(instr);
23265 UnimplementedT32_32("LDC", instr);
23269 UnallocatedT32(instr);
23275 UnallocatedT32(instr);
23282 switch (instr & 0x01000010) {
23285 switch (instr & 0x10b00f40) {
23288 unsigned rd = ExtractSRegister(instr, 22, 12);
23289 unsigned rn = ExtractSRegister(instr, 7, 16);
23290 unsigned rm = ExtractSRegister(instr, 5, 0);
23301 unsigned rd = ExtractSRegister(instr, 22, 12);
23302 unsigned rn = ExtractSRegister(instr, 7, 16);
23303 unsigned rm = ExtractSRegister(instr, 5, 0);
23314 unsigned rd = ExtractDRegister(instr, 22, 12);
23315 unsigned rn = ExtractDRegister(instr, 7, 16);
23316 unsigned rm = ExtractDRegister(instr, 5, 0);
23327 unsigned rd = ExtractDRegister(instr, 22, 12);
23328 unsigned rn = ExtractDRegister(instr, 7, 16);
23329 unsigned rm = ExtractDRegister(instr, 5, 0);
23340 unsigned rd = ExtractSRegister(instr, 22, 12);
23341 unsigned rn = ExtractSRegister(instr, 7, 16);
23342 unsigned rm = ExtractSRegister(instr, 5, 0);
23353 unsigned rd = ExtractSRegister(instr, 22, 12);
23354 unsigned rn = ExtractSRegister(instr, 7, 16);
23355 unsigned rm = ExtractSRegister(instr, 5, 0);
23366 unsigned rd = ExtractDRegister(instr, 22, 12);
23367 unsigned rn = ExtractDRegister(instr, 7, 16);
23368 unsigned rm = ExtractDRegister(instr, 5, 0);
23379 unsigned rd = ExtractDRegister(instr, 22, 12);
23380 unsigned rn = ExtractDRegister(instr, 7, 16);
23381 unsigned rm = ExtractDRegister(instr, 5, 0);
23392 unsigned rd = ExtractSRegister(instr, 22, 12);
23393 unsigned rn = ExtractSRegister(instr, 7, 16);
23394 unsigned rm = ExtractSRegister(instr, 5, 0);
23405 unsigned rd = ExtractSRegister(instr, 22, 12);
23406 unsigned rn = ExtractSRegister(instr, 7, 16);
23407 unsigned rm = ExtractSRegister(instr, 5, 0);
23418 unsigned rd = ExtractDRegister(instr, 22, 12);
23419 unsigned rn = ExtractDRegister(instr, 7, 16);
23420 unsigned rm = ExtractDRegister(instr, 5, 0);
23431 unsigned rd = ExtractDRegister(instr, 22, 12);
23432 unsigned rn = ExtractDRegister(instr, 7, 16);
23433 unsigned rm = ExtractDRegister(instr, 5, 0);
23444 unsigned rd = ExtractSRegister(instr, 22, 12);
23445 unsigned rn = ExtractSRegister(instr, 7, 16);
23446 unsigned rm = ExtractSRegister(instr, 5, 0);
23457 unsigned rd = ExtractSRegister(instr, 22, 12);
23458 unsigned rn = ExtractSRegister(instr, 7, 16);
23459 unsigned rm = ExtractSRegister(instr, 5, 0);
23470 unsigned rd = ExtractDRegister(instr, 22, 12);
23471 unsigned rn = ExtractDRegister(instr, 7, 16);
23472 unsigned rm = ExtractDRegister(instr, 5, 0);
23483 unsigned rd = ExtractDRegister(instr, 22, 12);
23484 unsigned rn = ExtractDRegister(instr, 7, 16);
23485 unsigned rm = ExtractDRegister(instr, 5, 0);
23496 unsigned rd = ExtractSRegister(instr, 22, 12);
23497 unsigned rn = ExtractSRegister(instr, 7, 16);
23498 unsigned rm = ExtractSRegister(instr, 5, 0);
23509 unsigned rd = ExtractDRegister(instr, 22, 12);
23510 unsigned rn = ExtractDRegister(instr, 7, 16);
23511 unsigned rm = ExtractDRegister(instr, 5, 0);
23522 unsigned rd = ExtractSRegister(instr, 22, 12);
23523 unsigned rn = ExtractSRegister(instr, 7, 16);
23524 unsigned rm = ExtractSRegister(instr, 5, 0);
23535 unsigned rd = ExtractSRegister(instr, 22, 12);
23536 unsigned rn = ExtractSRegister(instr, 7, 16);
23537 unsigned rm = ExtractSRegister(instr, 5, 0);
23548 unsigned rd = ExtractDRegister(instr, 22, 12);
23549 unsigned rn = ExtractDRegister(instr, 7, 16);
23550 unsigned rm = ExtractDRegister(instr, 5, 0);
23561 unsigned rd = ExtractDRegister(instr, 22, 12);
23562 unsigned rn = ExtractDRegister(instr, 7, 16);
23563 unsigned rm = ExtractDRegister(instr, 5, 0);
23574 unsigned rd = ExtractSRegister(instr, 22, 12);
23575 unsigned rn = ExtractSRegister(instr, 7, 16);
23576 unsigned rm = ExtractSRegister(instr, 5, 0);
23587 unsigned rd = ExtractSRegister(instr, 22, 12);
23588 unsigned rn = ExtractSRegister(instr, 7, 16);
23589 unsigned rm = ExtractSRegister(instr, 5, 0);
23600 unsigned rd = ExtractDRegister(instr, 22, 12);
23601 unsigned rn = ExtractDRegister(instr, 7, 16);
23602 unsigned rm = ExtractDRegister(instr, 5, 0);
23613 unsigned rd = ExtractDRegister(instr, 22, 12);
23614 unsigned rn = ExtractDRegister(instr, 7, 16);
23615 unsigned rm = ExtractDRegister(instr, 5, 0);
23626 unsigned rd = ExtractSRegister(instr, 22, 12);
23628 (instr & 0xf) | ((instr >> 12) & 0xf0);
23633 if (((instr & 0xffb00ff0) != 0xeeb00a00)) {
23634 UnpredictableT32(instr);
23640 switch (instr & 0x000e0000) {
23643 switch (instr & 0x00010080) {
23646 unsigned rd = ExtractSRegister(instr, 22, 12);
23647 unsigned rm = ExtractSRegister(instr, 5, 0);
23657 unsigned rd = ExtractSRegister(instr, 22, 12);
23658 unsigned rm = ExtractSRegister(instr, 5, 0);
23668 unsigned rd = ExtractSRegister(instr, 22, 12);
23669 unsigned rm = ExtractSRegister(instr, 5, 0);
23679 unsigned rd = ExtractSRegister(instr, 22, 12);
23680 unsigned rm = ExtractSRegister(instr, 5, 0);
23693 switch (instr & 0x00010080) {
23696 unsigned rd = ExtractSRegister(instr, 22, 12);
23697 unsigned rm = ExtractSRegister(instr, 5, 0);
23708 unsigned rd = ExtractSRegister(instr, 22, 12);
23709 unsigned rm = ExtractSRegister(instr, 5, 0);
23720 unsigned rd = ExtractSRegister(instr, 22, 12);
23721 unsigned rm = ExtractSRegister(instr, 5, 0);
23732 unsigned rd = ExtractSRegister(instr, 22, 12);
23733 unsigned rm = ExtractSRegister(instr, 5, 0);
23747 switch (instr & 0x00010080) {
23750 unsigned rd = ExtractSRegister(instr, 22, 12);
23751 unsigned rm = ExtractSRegister(instr, 5, 0);
23761 unsigned rd = ExtractSRegister(instr, 22, 12);
23762 unsigned rm = ExtractSRegister(instr, 5, 0);
23772 unsigned rd = ExtractSRegister(instr, 22, 12);
23775 if (((instr & 0xffbf0fff) != 0xeeb50a40)) {
23776 UnpredictableT32(instr);
23782 unsigned rd = ExtractSRegister(instr, 22, 12);
23785 if (((instr & 0xffbf0fff) != 0xeeb50ac0)) {
23786 UnpredictableT32(instr);
23795 switch (instr & 0x00010080) {
23798 unsigned rd = ExtractSRegister(instr, 22, 12);
23799 unsigned rm = ExtractSRegister(instr, 5, 0);
23809 unsigned rd = ExtractSRegister(instr, 22, 12);
23810 unsigned rm = ExtractSRegister(instr, 5, 0);
23820 unsigned rd = ExtractSRegister(instr, 22, 12);
23821 unsigned rm = ExtractSRegister(instr, 5, 0);
23831 unsigned rd = ExtractDRegister(instr, 22, 12);
23832 unsigned rm = ExtractSRegister(instr, 5, 0);
23846 if ((instr & 0x00010000) == 0x00000000) {
23847 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
23849 UnallocatedT32(instr);
23852 unsigned rd = ExtractSRegister(instr, 22, 12);
23853 unsigned rm = ExtractSRegister(instr, 5, 0);
23861 UnallocatedT32(instr);
23867 DataType dt = Dt_U_sx_1_Decode(((instr >> 7) & 0x1) |
23868 ((instr >> 15) & 0x2));
23870 UnallocatedT32(instr);
23873 unsigned rd = ExtractSRegister(instr, 22, 12);
23878 uint32_t fbits = offset - (((instr >> 5) & 0x1) |
23879 ((instr << 1) & 0x1e));
23891 switch (instr & 0x00010080) {
23894 unsigned rd = ExtractSRegister(instr, 22, 12);
23895 unsigned rm = ExtractSRegister(instr, 5, 0);
23906 unsigned rd = ExtractSRegister(instr, 22, 12);
23907 unsigned rm = ExtractSRegister(instr, 5, 0);
23918 unsigned rd = ExtractSRegister(instr, 22, 12);
23919 unsigned rm = ExtractSRegister(instr, 5, 0);
23930 unsigned rd = ExtractSRegister(instr, 22, 12);
23931 unsigned rm = ExtractSRegister(instr, 5, 0);
23945 DataType dt = Dt_U_sx_1_Decode(((instr >> 7) & 0x1) |
23946 ((instr >> 15) & 0x2));
23948 UnallocatedT32(instr);
23951 unsigned rd = ExtractSRegister(instr, 22, 12);
23956 uint32_t fbits = offset - (((instr >> 5) & 0x1) |
23957 ((instr << 1) & 0x1e));
23972 unsigned rd = ExtractDRegister(instr, 22, 12);
23974 (instr & 0xf) | ((instr >> 12) & 0xf0);
23979 if (((instr & 0xffb00ff0) != 0xeeb00b00)) {
23980 UnpredictableT32(instr);
23986 switch (instr & 0x000e0000) {
23989 switch (instr & 0x00010080) {
23992 unsigned rd = ExtractDRegister(instr, 22, 12);
23993 unsigned rm = ExtractDRegister(instr, 5, 0);
24003 unsigned rd = ExtractDRegister(instr, 22, 12);
24004 unsigned rm = ExtractDRegister(instr, 5, 0);
24014 unsigned rd = ExtractDRegister(instr, 22, 12);
24015 unsigned rm = ExtractDRegister(instr, 5, 0);
24025 unsigned rd = ExtractDRegister(instr, 22, 12);
24026 unsigned rm = ExtractDRegister(instr, 5, 0);
24039 switch (instr & 0x00010080) {
24042 unsigned rd = ExtractDRegister(instr, 22, 12);
24043 unsigned rm = ExtractSRegister(instr, 5, 0);
24054 unsigned rd = ExtractDRegister(instr, 22, 12);
24055 unsigned rm = ExtractSRegister(instr, 5, 0);
24066 unsigned rd = ExtractSRegister(instr, 22, 12);
24067 unsigned rm = ExtractDRegister(instr, 5, 0);
24078 unsigned rd = ExtractSRegister(instr, 22, 12);
24079 unsigned rm = ExtractDRegister(instr, 5, 0);
24093 switch (instr & 0x00010080) {
24096 unsigned rd = ExtractDRegister(instr, 22, 12);
24097 unsigned rm = ExtractDRegister(instr, 5, 0);
24107 unsigned rd = ExtractDRegister(instr, 22, 12);
24108 unsigned rm = ExtractDRegister(instr, 5, 0);
24118 unsigned rd = ExtractDRegister(instr, 22, 12);
24121 if (((instr & 0xffbf0fff) != 0xeeb50b40)) {
24122 UnpredictableT32(instr);
24128 unsigned rd = ExtractDRegister(instr, 22, 12);
24131 if (((instr & 0xffbf0fff) != 0xeeb50bc0)) {
24132 UnpredictableT32(instr);
24141 switch (instr & 0x00010080) {
24144 unsigned rd = ExtractDRegister(instr, 22, 12);
24145 unsigned rm = ExtractDRegister(instr, 5, 0);
24155 unsigned rd = ExtractDRegister(instr, 22, 12);
24156 unsigned rm = ExtractDRegister(instr, 5, 0);
24166 unsigned rd = ExtractDRegister(instr, 22, 12);
24167 unsigned rm = ExtractDRegister(instr, 5, 0);
24177 unsigned rd = ExtractSRegister(instr, 22, 12);
24178 unsigned rm = ExtractDRegister(instr, 5, 0);
24192 if ((instr & 0x00010000) == 0x00000000) {
24193 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
24195 UnallocatedT32(instr);
24198 unsigned rd = ExtractDRegister(instr, 22, 12);
24199 unsigned rm = ExtractSRegister(instr, 5, 0);
24207 UnallocatedT32(instr);
24213 DataType dt = Dt_U_sx_1_Decode(((instr >> 7) & 0x1) |
24214 ((instr >> 15) & 0x2));
24216 UnallocatedT32(instr);
24219 unsigned rd = ExtractDRegister(instr, 22, 12);
24224 uint32_t fbits = offset - (((instr >> 5) & 0x1) |
24225 ((instr << 1) & 0x1e));
24237 switch (instr & 0x00010080) {
24240 unsigned rd = ExtractSRegister(instr, 22, 12);
24241 unsigned rm = ExtractDRegister(instr, 5, 0);
24252 unsigned rd = ExtractSRegister(instr, 22, 12);
24253 unsigned rm = ExtractDRegister(instr, 5, 0);
24264 unsigned rd = ExtractSRegister(instr, 22, 12);
24265 unsigned rm = ExtractDRegister(instr, 5, 0);
24276 unsigned rd = ExtractSRegister(instr, 22, 12);
24277 unsigned rm = ExtractDRegister(instr, 5, 0);
24291 DataType dt = Dt_U_sx_1_Decode(((instr >> 7) & 0x1) |
24292 ((instr >> 15) & 0x2));
24294 UnallocatedT32(instr);
24297 unsigned rd = ExtractDRegister(instr, 22, 12);
24302 uint32_t fbits = offset - (((instr >> 5) & 0x1) |
24303 ((instr << 1) & 0x1e));
24318 unsigned rd = ExtractSRegister(instr, 22, 12);
24319 unsigned rn = ExtractSRegister(instr, 7, 16);
24320 unsigned rm = ExtractSRegister(instr, 5, 0);
24324 UnpredictableT32(instr);
24330 unsigned rd = ExtractDRegister(instr, 22, 12);
24331 unsigned rn = ExtractDRegister(instr, 7, 16);
24332 unsigned rm = ExtractDRegister(instr, 5, 0);
24336 UnpredictableT32(instr);
24342 unsigned rd = ExtractSRegister(instr, 22, 12);
24343 unsigned rn = ExtractSRegister(instr, 7, 16);
24344 unsigned rm = ExtractSRegister(instr, 5, 0);
24348 UnpredictableT32(instr);
24354 unsigned rd = ExtractDRegister(instr, 22, 12);
24355 unsigned rn = ExtractDRegister(instr, 7, 16);
24356 unsigned rm = ExtractDRegister(instr, 5, 0);
24360 UnpredictableT32(instr);
24366 unsigned rd = ExtractSRegister(instr, 22, 12);
24367 unsigned rn = ExtractSRegister(instr, 7, 16);
24368 unsigned rm = ExtractSRegister(instr, 5, 0);
24372 UnpredictableT32(instr);
24378 unsigned rd = ExtractDRegister(instr, 22, 12);
24379 unsigned rn = ExtractDRegister(instr, 7, 16);
24380 unsigned rm = ExtractDRegister(instr, 5, 0);
24384 UnpredictableT32(instr);
24390 unsigned rd = ExtractSRegister(instr, 22, 12);
24391 unsigned rn = ExtractSRegister(instr, 7, 16);
24392 unsigned rm = ExtractSRegister(instr, 5, 0);
24396 UnpredictableT32(instr);
24402 unsigned rd = ExtractDRegister(instr, 22, 12);
24403 unsigned rn = ExtractDRegister(instr, 7, 16);
24404 unsigned rm = ExtractDRegister(instr, 5, 0);
24408 UnpredictableT32(instr);
24414 unsigned rd = ExtractSRegister(instr, 22, 12);
24415 unsigned rn = ExtractSRegister(instr, 7, 16);
24416 unsigned rm = ExtractSRegister(instr, 5, 0);
24420 UnpredictableT32(instr);
24426 unsigned rd = ExtractSRegister(instr, 22, 12);
24427 unsigned rn = ExtractSRegister(instr, 7, 16);
24428 unsigned rm = ExtractSRegister(instr, 5, 0);
24432 UnpredictableT32(instr);
24438 unsigned rd = ExtractDRegister(instr, 22, 12);
24439 unsigned rn = ExtractDRegister(instr, 7, 16);
24440 unsigned rm = ExtractDRegister(instr, 5, 0);
24444 UnpredictableT32(instr);
24450 unsigned rd = ExtractDRegister(instr, 22, 12);
24451 unsigned rn = ExtractDRegister(instr, 7, 16);
24452 unsigned rm = ExtractDRegister(instr, 5, 0);
24456 UnpredictableT32(instr);
24462 switch (instr & 0x000f0000) {
24465 if ((instr & 0x00000080) == 0x00000000) {
24466 unsigned rd = ExtractSRegister(instr, 22, 12);
24467 unsigned rm = ExtractSRegister(instr, 5, 0);
24471 UnallocatedT32(instr);
24477 if ((instr & 0x00000080) == 0x00000000) {
24478 unsigned rd = ExtractSRegister(instr, 22, 12);
24479 unsigned rm = ExtractSRegister(instr, 5, 0);
24483 UnallocatedT32(instr);
24489 if ((instr & 0x00000080) == 0x00000000) {
24490 unsigned rd = ExtractSRegister(instr, 22, 12);
24491 unsigned rm = ExtractSRegister(instr, 5, 0);
24495 UnallocatedT32(instr);
24501 if ((instr & 0x00000080) == 0x00000000) {
24502 unsigned rd = ExtractSRegister(instr, 22, 12);
24503 unsigned rm = ExtractSRegister(instr, 5, 0);
24507 UnallocatedT32(instr);
24513 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
24515 UnallocatedT32(instr);
24518 unsigned rd = ExtractSRegister(instr, 22, 12);
24519 unsigned rm = ExtractSRegister(instr, 5, 0);
24526 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
24528 UnallocatedT32(instr);
24531 unsigned rd = ExtractSRegister(instr, 22, 12);
24532 unsigned rm = ExtractSRegister(instr, 5, 0);
24539 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
24541 UnallocatedT32(instr);
24544 unsigned rd = ExtractSRegister(instr, 22, 12);
24545 unsigned rm = ExtractSRegister(instr, 5, 0);
24552 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
24554 UnallocatedT32(instr);
24557 unsigned rd = ExtractSRegister(instr, 22, 12);
24558 unsigned rm = ExtractSRegister(instr, 5, 0);
24564 UnallocatedT32(instr);
24571 switch (instr & 0x000f0000) {
24574 if ((instr & 0x00000080) == 0x00000000) {
24575 unsigned rd = ExtractDRegister(instr, 22, 12);
24576 unsigned rm = ExtractDRegister(instr, 5, 0);
24580 UnallocatedT32(instr);
24586 if ((instr & 0x00000080) == 0x00000000) {
24587 unsigned rd = ExtractDRegister(instr, 22, 12);
24588 unsigned rm = ExtractDRegister(instr, 5, 0);
24592 UnallocatedT32(instr);
24598 if ((instr & 0x00000080) == 0x00000000) {
24599 unsigned rd = ExtractDRegister(instr, 22, 12);
24600 unsigned rm = ExtractDRegister(instr, 5, 0);
24604 UnallocatedT32(instr);
24610 if ((instr & 0x00000080) == 0x00000000) {
24611 unsigned rd = ExtractDRegister(instr, 22, 12);
24612 unsigned rm = ExtractDRegister(instr, 5, 0);
24616 UnallocatedT32(instr);
24622 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
24624 UnallocatedT32(instr);
24627 unsigned rd = ExtractSRegister(instr, 22, 12);
24628 unsigned rm = ExtractDRegister(instr, 5, 0);
24635 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
24637 UnallocatedT32(instr);
24640 unsigned rd = ExtractSRegister(instr, 22, 12);
24641 unsigned rm = ExtractDRegister(instr, 5, 0);
24648 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
24650 UnallocatedT32(instr);
24653 unsigned rd = ExtractSRegister(instr, 22, 12);
24654 unsigned rm = ExtractDRegister(instr, 5, 0);
24661 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
24663 UnallocatedT32(instr);
24666 unsigned rd = ExtractSRegister(instr, 22, 12);
24667 unsigned rm = ExtractDRegister(instr, 5, 0);
24673 UnallocatedT32(instr);
24679 UnallocatedT32(instr);
24686 switch (instr & 0x10100e00) {
24689 switch (instr & 0x00800100) {
24692 if ((instr & 0x00600000) == 0x00000000) {
24693 unsigned rn = ExtractSRegister(instr, 7, 16);
24694 unsigned rt = (instr >> 12) & 0xf;
24697 if (((instr & 0xfff00f7f) != 0xee000a10)) {
24698 UnpredictableT32(instr);
24701 UnallocatedT32(instr);
24709 Dt_opc1_opc2_1_Decode(((instr >> 5) & 0x3) |
24710 ((instr >> 19) & 0xc),
24713 UnallocatedT32(instr);
24716 unsigned rd = ExtractDRegister(instr, 7, 16);
24717 unsigned rt = (instr >> 12) & 0xf;
24723 if (((instr & 0xff900f1f) != 0xee000b10)) {
24724 UnpredictableT32(instr);
24730 if ((instr & 0x00600000) == 0x00600000) {
24731 unsigned spec_reg = (instr >> 16) & 0xf;
24732 unsigned rt = (instr >> 12) & 0xf;
24741 if (((instr & 0xfff00fff) != 0xeee00a10)) {
24742 UnpredictableT32(instr);
24747 UnallocatedT32(instr);
24751 UnallocatedT32(instr);
24757 switch (instr & 0x00200040) {
24761 ((instr >> 5) & 0x1) | ((instr >> 21) & 0x2));
24763 UnallocatedT32(instr);
24766 unsigned rd = ExtractDRegister(instr, 7, 16);
24767 unsigned rt = (instr >> 12) & 0xf;
24773 if (((instr & 0xffb00f5f) != 0xee800b10)) {
24774 UnpredictableT32(instr);
24781 ((instr >> 5) & 0x1) | ((instr >> 21) & 0x2));
24783 UnallocatedT32(instr);
24786 if (((instr >> 16) & 1) != 0) {
24787 UnallocatedT32(instr);
24790 unsigned rd = ExtractQRegister(instr, 7, 16);
24791 unsigned rt = (instr >> 12) & 0xf;
24797 if (((instr & 0xffb00f5f) != 0xeea00b10)) {
24798 UnpredictableT32(instr);
24803 UnallocatedT32(instr);
24813 UnimplementedT32_32("MCR", instr);
24818 switch (instr & 0x00000100) {
24821 switch (instr & 0x00e00000) {
24824 unsigned rt = (instr >> 12) & 0xf;
24825 unsigned rn = ExtractSRegister(instr, 7, 16);
24828 if (((instr & 0xfff00f7f) != 0xee100a10)) {
24829 UnpredictableT32(instr);
24835 unsigned rt = (instr >> 12) & 0xf;
24836 unsigned spec_reg = (instr >> 16) & 0xf;
24848 if (((instr & 0xfff00fff) != 0xeef00a10)) {
24849 UnpredictableT32(instr);
24854 UnallocatedT32(instr);
24860 UnallocatedT32(instr);
24869 Dt_U_opc1_opc2_1_Decode(((instr >> 5) & 0x3) |
24870 ((instr >> 19) &
24872 ((instr >> 19) &
24876 UnallocatedT32(instr);
24879 unsigned rt = (instr >> 12) & 0xf;
24880 unsigned rn = ExtractDRegister(instr, 7, 16);
24886 if (((instr & 0xff100f1f) != 0xee100b10)) {
24887 UnpredictableT32(instr);
24896 UnimplementedT32_32("MRC", instr);
24900 UnallocatedT32(instr);
24907 switch (instr & 0x00800000) {
24910 switch (instr & 0x00000f40) {
24914 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
24916 UnallocatedT32(instr);
24919 unsigned rd = ExtractDRegister(instr, 22, 12);
24920 unsigned rn = ExtractDRegister(instr, 7, 16);
24921 unsigned rm = ExtractDRegister(instr, 5, 0);
24933 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
24935 UnallocatedT32(instr);
24938 if (((instr >> 12) & 1) != 0) {
24939 UnallocatedT32(instr);
24942 unsigned rd = ExtractQRegister(instr, 22, 12);
24943 if (((instr >> 16) & 1) != 0) {
24944 UnallocatedT32(instr);
24947 unsigned rn = ExtractQRegister(instr, 7, 16);
24948 if ((instr & 1) != 0) {
24949 UnallocatedT32(instr);
24952 unsigned rm = ExtractQRegister(instr, 5, 0);
24964 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
24966 UnallocatedT32(instr);
24969 unsigned rd = ExtractDRegister(instr, 22, 12);
24970 unsigned rn = ExtractDRegister(instr, 7, 16);
24971 unsigned rm = ExtractDRegister(instr, 5, 0);
24983 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
24985 UnallocatedT32(instr);
24988 if (((instr >> 12) & 1) != 0) {
24989 UnallocatedT32(instr);
24992 unsigned rd = ExtractQRegister(instr, 22, 12);
24993 if (((instr >> 16) & 1) != 0) {
24994 UnallocatedT32(instr);
24997 unsigned rn = ExtractQRegister(instr, 7, 16);
24998 if ((instr & 1) != 0) {
24999 UnallocatedT32(instr);
25002 unsigned rm = ExtractQRegister(instr, 5, 0);
25014 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
25016 UnallocatedT32(instr);
25019 unsigned rd = ExtractDRegister(instr, 22, 12);
25020 unsigned rn = ExtractDRegister(instr, 7, 16);
25021 unsigned rm = ExtractDRegister(instr, 5, 0);
25033 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
25035 UnallocatedT32(instr);
25038 if (((instr >> 12) & 1) != 0) {
25039 UnallocatedT32(instr);
25042 unsigned rd = ExtractQRegister(instr, 22, 12);
25043 if (((instr >> 16) & 1) != 0) {
25044 UnallocatedT32(instr);
25047 unsigned rn = ExtractQRegister(instr, 7, 16);
25048 if ((instr & 1) != 0) {
25049 UnallocatedT32(instr);
25052 unsigned rm = ExtractQRegister(instr, 5, 0);
25064 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
25066 UnallocatedT32(instr);
25069 unsigned rd = ExtractDRegister(instr, 22, 12);
25070 unsigned rn = ExtractDRegister(instr, 7, 16);
25071 unsigned rm = ExtractDRegister(instr, 5, 0);
25083 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
25085 UnallocatedT32(instr);
25088 if (((instr >> 12) & 1) != 0) {
25089 UnallocatedT32(instr);
25092 unsigned rd = ExtractQRegister(instr, 22, 12);
25093 if (((instr >> 16) & 1) != 0) {
25094 UnallocatedT32(instr);
25097 unsigned rn = ExtractQRegister(instr, 7, 16);
25098 if ((instr & 1) != 0) {
25099 UnallocatedT32(instr);
25102 unsigned rm = ExtractQRegister(instr, 5, 0);
25114 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
25116 UnallocatedT32(instr);
25119 unsigned rd = ExtractDRegister(instr, 22, 12);
25120 unsigned rm = ExtractDRegister(instr, 5, 0);
25121 unsigned rn = ExtractDRegister(instr, 7, 16);
25133 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
25135 UnallocatedT32(instr);
25138 if (((instr >> 12) & 1) != 0) {
25139 UnallocatedT32(instr);
25142 unsigned rd = ExtractQRegister(instr, 22, 12);
25143 if ((instr & 1) != 0) {
25144 UnallocatedT32(instr);
25147 unsigned rm = ExtractQRegister(instr, 5, 0);
25148 if (((instr >> 16) & 1) != 0) {
25149 UnallocatedT32(instr);
25152 unsigned rn = ExtractQRegister(instr, 7, 16);
25164 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
25166 UnallocatedT32(instr);
25169 unsigned rd = ExtractDRegister(instr, 22, 12);
25170 unsigned rm = ExtractDRegister(instr, 5, 0);
25171 unsigned rn = ExtractDRegister(instr, 7, 16);
25183 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
25185 UnallocatedT32(instr);
25188 if (((instr >> 12) & 1) != 0) {
25189 UnallocatedT32(instr);
25192 unsigned rd = ExtractQRegister(instr, 22, 12);
25193 if ((instr & 1) != 0) {
25194 UnallocatedT32(instr);
25197 unsigned rm = ExtractQRegister(instr, 5, 0);
25198 if (((instr >> 16) & 1) != 0) {
25199 UnallocatedT32(instr);
25202 unsigned rn = ExtractQRegister(instr, 7, 16);
25214 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
25216 UnallocatedT32(instr);
25219 unsigned rd = ExtractDRegister(instr, 22, 12);
25220 unsigned rn = ExtractDRegister(instr, 7, 16);
25221 unsigned rm = ExtractDRegister(instr, 5, 0);
25233 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
25235 UnallocatedT32(instr);
25238 if (((instr >> 12) & 1) != 0) {
25239 UnallocatedT32(instr);
25242 unsigned rd = ExtractQRegister(instr, 22, 12);
25243 if (((instr >> 16) & 1) != 0) {
25244 UnallocatedT32(instr);
25247 unsigned rn = ExtractQRegister(instr, 7, 16);
25248 if ((instr & 1) != 0) {
25249 UnallocatedT32(instr);
25252 unsigned rm = ExtractQRegister(instr, 5, 0);
25264 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
25266 UnallocatedT32(instr);
25269 unsigned rd = ExtractDRegister(instr, 22, 12);
25270 unsigned rn = ExtractDRegister(instr, 7, 16);
25271 unsigned rm = ExtractDRegister(instr, 5, 0);
25283 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
25285 UnallocatedT32(instr);
25288 if (((instr >> 12) & 1) != 0) {
25289 UnallocatedT32(instr);
25292 unsigned rd = ExtractQRegister(instr, 22, 12);
25293 if (((instr >> 16) & 1) != 0) {
25294 UnallocatedT32(instr);
25297 unsigned rn = ExtractQRegister(instr, 7, 16);
25298 if ((instr & 1) != 0) {
25299 UnallocatedT32(instr);
25302 unsigned rm = ExtractQRegister(instr, 5, 0);
25313 switch (instr & 0x10000000) {
25317 Dt_size_2_Decode((instr >> 20) & 0x3);
25319 UnallocatedT32(instr);
25322 unsigned rd = ExtractDRegister(instr, 22, 12);
25323 unsigned rn = ExtractDRegister(instr, 7, 16);
25324 unsigned rm = ExtractDRegister(instr, 5, 0);
25336 Dt_size_2_Decode((instr >> 20) & 0x3);
25338 UnallocatedT32(instr);
25341 unsigned rd = ExtractDRegister(instr, 22, 12);
25342 unsigned rn = ExtractDRegister(instr, 7, 16);
25343 unsigned rm = ExtractDRegister(instr, 5, 0);
25357 switch (instr & 0x10000000) {
25361 Dt_size_2_Decode((instr >> 20) & 0x3);
25363 UnallocatedT32(instr);
25366 if (((instr >> 12) & 1) != 0) {
25367 UnallocatedT32(instr);
25370 unsigned rd = ExtractQRegister(instr, 22, 12);
25371 if (((instr >> 16) & 1) != 0) {
25372 UnallocatedT32(instr);
25375 unsigned rn = ExtractQRegister(instr, 7, 16);
25376 if ((instr & 1) != 0) {
25377 UnallocatedT32(instr);
25380 unsigned rm = ExtractQRegister(instr, 5, 0);
25392 Dt_size_2_Decode((instr >> 20) & 0x3);
25394 UnallocatedT32(instr);
25397 if (((instr >> 12) & 1) != 0) {
25398 UnallocatedT32(instr);
25401 unsigned rd = ExtractQRegister(instr, 22, 12);
25402 if (((instr >> 16) & 1) != 0) {
25403 UnallocatedT32(instr);
25406 unsigned rn = ExtractQRegister(instr, 7, 16);
25407 if ((instr & 1) != 0) {
25408 UnallocatedT32(instr);
25411 unsigned rm = ExtractQRegister(instr, 5, 0);
25425 switch (instr & 0x10000000) {
25429 Dt_size_10_Decode((instr >> 20) & 0x3);
25431 UnallocatedT32(instr);
25434 unsigned rd = ExtractDRegister(instr, 22, 12);
25435 unsigned rn = ExtractDRegister(instr, 7, 16);
25436 unsigned rm = ExtractDRegister(instr, 5, 0);
25448 Dt_size_10_Decode((instr >> 20) & 0x3);
25450 UnallocatedT32(instr);
25453 unsigned rd = ExtractDRegister(instr, 22, 12);
25454 unsigned rn = ExtractDRegister(instr, 7, 16);
25455 unsigned rm = ExtractDRegister(instr, 5, 0);
25469 switch (instr & 0x10000000) {
25473 Dt_size_10_Decode((instr >> 20) & 0x3);
25475 UnallocatedT32(instr);
25478 if (((instr >> 12) & 1) != 0) {
25479 UnallocatedT32(instr);
25482 unsigned rd = ExtractQRegister(instr, 22, 12);
25483 if (((instr >> 16) & 1) != 0) {
25484 UnallocatedT32(instr);
25487 unsigned rn = ExtractQRegister(instr, 7, 16);
25488 if ((instr & 1) != 0) {
25489 UnallocatedT32(instr);
25492 unsigned rm = ExtractQRegister(instr, 5, 0);
25504 Dt_size_10_Decode((instr >> 20) & 0x3);
25506 UnallocatedT32(instr);
25509 if (((instr >> 12) & 1) != 0) {
25510 UnallocatedT32(instr);
25513 unsigned rd = ExtractQRegister(instr, 22, 12);
25514 if (((instr >> 16) & 1) != 0) {
25515 UnallocatedT32(instr);
25518 unsigned rn = ExtractQRegister(instr, 7, 16);
25519 if ((instr & 1) != 0) {
25520 UnallocatedT32(instr);
25523 unsigned rm = ExtractQRegister(instr, 5, 0);
25538 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
25540 UnallocatedT32(instr);
25543 unsigned rd = ExtractDRegister(instr, 22, 12);
25544 unsigned rn = ExtractDRegister(instr, 7, 16);
25545 unsigned rm = ExtractDRegister(instr, 5, 0);
25556 switch (instr & 0x10000000) {
25560 Dt_size_13_Decode((instr >> 20) & 0x3);
25562 UnallocatedT32(instr);
25565 unsigned rd = ExtractDRegister(instr, 22, 12);
25566 unsigned rn = ExtractDRegister(instr, 7, 16);
25567 unsigned rm = ExtractDRegister(instr, 5, 0);
25579 Dt_size_13_Decode((instr >> 20) & 0x3);
25581 UnallocatedT32(instr);
25584 unsigned rd = ExtractDRegister(instr, 22, 12);
25585 unsigned rn = ExtractDRegister(instr, 7, 16);
25586 unsigned rm = ExtractDRegister(instr, 5, 0);
25600 switch (instr & 0x10000000) {
25604 Dt_size_13_Decode((instr >> 20) & 0x3);
25606 UnallocatedT32(instr);
25609 if (((instr >> 12) & 1) != 0) {
25610 UnallocatedT32(instr);
25613 unsigned rd = ExtractQRegister(instr, 22, 12);
25614 if (((instr >> 16) & 1) != 0) {
25615 UnallocatedT32(instr);
25618 unsigned rn = ExtractQRegister(instr, 7, 16);
25619 if ((instr & 1) != 0) {
25620 UnallocatedT32(instr);
25623 unsigned rm = ExtractQRegister(instr, 5, 0);
25635 Dt_size_13_Decode((instr >> 20) & 0x3);
25637 UnallocatedT32(instr);
25640 if (((instr >> 12) & 1) != 0) {
25641 UnallocatedT32(instr);
25644 unsigned rd = ExtractQRegister(instr, 22, 12);
25645 if (((instr >> 16) & 1) != 0) {
25646 UnallocatedT32(instr);
25649 unsigned rn = ExtractQRegister(instr, 7, 16);
25650 if ((instr & 1) != 0) {
25651 UnallocatedT32(instr);
25654 unsigned rm = ExtractQRegister(instr, 5, 0);
25668 switch (instr & 0x10300000) {
25671 UnimplementedT32_32("SHA1C", instr);
25676 UnimplementedT32_32("SHA1P", instr);
25681 UnimplementedT32_32("SHA1M", instr);
25686 UnimplementedT32_32("SHA1SU0", instr);
25691 UnimplementedT32_32("SHA256H", instr);
25696 UnimplementedT32_32("SHA256H2", instr);
25701 UnimplementedT32_32("SHA256SU1", instr);
25705 UnallocatedT32(instr);
25712 switch (instr & 0x10300000) {
25715 unsigned rd = ExtractDRegister(instr, 22, 12);
25716 unsigned rn = ExtractDRegister(instr, 7, 16);
25717 unsigned rm = ExtractDRegister(instr, 5, 0);
25728 unsigned rd = ExtractDRegister(instr, 22, 12);
25729 unsigned rn = ExtractDRegister(instr, 7, 16);
25730 unsigned rm = ExtractDRegister(instr, 5, 0);
25741 unsigned rd = ExtractDRegister(instr, 22, 12);
25742 unsigned rn = ExtractDRegister(instr, 7, 16);
25743 unsigned rm = ExtractDRegister(instr, 5, 0);
25754 unsigned rd = ExtractDRegister(instr, 22, 12);
25755 unsigned rn = ExtractDRegister(instr, 7, 16);
25756 unsigned rm = ExtractDRegister(instr, 5, 0);
25766 UnallocatedT32(instr);
25773 switch (instr & 0x10300000) {
25776 if (((instr >> 12) & 1) != 0) {
25777 UnallocatedT32(instr);
25780 unsigned rd = ExtractQRegister(instr, 22, 12);
25781 if (((instr >> 16) & 1) != 0) {
25782 UnallocatedT32(instr);
25785 unsigned rn = ExtractQRegister(instr, 7, 16);
25786 if ((instr & 1) != 0) {
25787 UnallocatedT32(instr);
25790 unsigned rm = ExtractQRegister(instr, 5, 0);
25801 if (((instr >> 12) & 1) != 0) {
25802 UnallocatedT32(instr);
25805 unsigned rd = ExtractQRegister(instr, 22, 12);
25806 if (((instr >> 16) & 1) != 0) {
25807 UnallocatedT32(instr);
25810 unsigned rn = ExtractQRegister(instr, 7, 16);
25811 if ((instr & 1) != 0) {
25812 UnallocatedT32(instr);
25815 unsigned rm = ExtractQRegister(instr, 5, 0);
25826 if (((instr >> 12) & 1) != 0) {
25827 UnallocatedT32(instr);
25830 unsigned rd = ExtractQRegister(instr, 22, 12);
25831 if (((instr >> 16) & 1) != 0) {
25832 UnallocatedT32(instr);
25835 unsigned rn = ExtractQRegister(instr, 7, 16);
25836 if ((instr & 1) != 0) {
25837 UnallocatedT32(instr);
25840 unsigned rm = ExtractQRegister(instr, 5, 0);
25850 UnallocatedT32(instr);
25857 switch (instr & 0x10200000) {
25860 DataType dt = Dt_sz_1_Decode((instr >> 20) & 0x1);
25862 UnallocatedT32(instr);
25865 unsigned rd = ExtractDRegister(instr, 22, 12);
25866 unsigned rn = ExtractDRegister(instr, 7, 16);
25867 unsigned rm = ExtractDRegister(instr, 5, 0);
25878 if ((instr & 0x00100000) == 0x00000000) {
25879 unsigned rd = ExtractDRegister(instr, 22, 12);
25880 unsigned rn = ExtractDRegister(instr, 7, 16);
25881 unsigned rm = ExtractDRegister(instr, 5, 0);
25889 UnallocatedT32(instr);
25895 if ((instr & 0x00100000) == 0x00000000) {
25896 unsigned rd = ExtractDRegister(instr, 22, 12);
25897 unsigned rn = ExtractDRegister(instr, 7, 16);
25898 unsigned rm = ExtractDRegister(instr, 5, 0);
25906 UnallocatedT32(instr);
25911 UnallocatedT32(instr);
25918 switch (instr & 0x10200000) {
25921 DataType dt = Dt_sz_1_Decode((instr >> 20) & 0x1);
25923 UnallocatedT32(instr);
25926 if (((instr >> 12) & 1) != 0) {
25927 UnallocatedT32(instr);
25930 unsigned rd = ExtractQRegister(instr, 22, 12);
25931 if (((instr >> 16) & 1) != 0) {
25932 UnallocatedT32(instr);
25935 unsigned rn = ExtractQRegister(instr, 7, 16);
25936 if ((instr & 1) != 0) {
25937 UnallocatedT32(instr);
25940 unsigned rm = ExtractQRegister(instr, 5, 0);
25951 if ((instr & 0x00100000) == 0x00000000) {
25952 if (((instr >> 12) & 1) != 0) {
25953 UnallocatedT32(instr);
25956 unsigned rd = ExtractQRegister(instr, 22, 12);
25957 if (((instr >> 16) & 1) != 0) {
25958 UnallocatedT32(instr);
25961 unsigned rn = ExtractQRegister(instr, 7, 16);
25962 if ((instr & 1) != 0) {
25963 UnallocatedT32(instr);
25966 unsigned rm = ExtractQRegister(instr, 5, 0);
25974 UnallocatedT32(instr);
25980 if ((instr & 0x00100000) == 0x00000000) {
25981 if (((instr >> 12) & 1) != 0) {
25982 UnallocatedT32(instr);
25985 unsigned rd = ExtractQRegister(instr, 22, 12);
25986 if (((instr >> 16) & 1) != 0) {
25987 UnallocatedT32(instr);
25990 unsigned rn = ExtractQRegister(instr, 7, 16);
25991 if ((instr & 1) != 0) {
25992 UnallocatedT32(instr);
25995 unsigned rm = ExtractQRegister(instr, 5, 0);
26003 UnallocatedT32(instr);
26008 UnallocatedT32(instr);
26015 switch (instr & 0x10300000) {
26018 unsigned rd = ExtractDRegister(instr, 22, 12);
26019 unsigned rn = ExtractDRegister(instr, 7, 16);
26020 unsigned rm = ExtractDRegister(instr, 5, 0);
26031 unsigned rd = ExtractDRegister(instr, 22, 12);
26032 unsigned rn = ExtractDRegister(instr, 7, 16);
26033 unsigned rm = ExtractDRegister(instr, 5, 0);
26044 unsigned rd = ExtractDRegister(instr, 22, 12);
26045 unsigned rn = ExtractDRegister(instr, 7, 16);
26046 unsigned rm = ExtractDRegister(instr, 5, 0);
26057 unsigned rd = ExtractDRegister(instr, 22, 12);
26058 unsigned rn = ExtractDRegister(instr, 7, 16);
26059 unsigned rm = ExtractDRegister(instr, 5, 0);
26069 UnallocatedT32(instr);
26076 switch (instr & 0x10300000) {
26079 if (((instr >> 12) & 1) != 0) {
26080 UnallocatedT32(instr);
26083 unsigned rd = ExtractQRegister(instr, 22, 12);
26084 if (((instr >> 16) & 1) != 0) {
26085 UnallocatedT32(instr);
26088 unsigned rn = ExtractQRegister(instr, 7, 16);
26089 if ((instr & 1) != 0) {
26090 UnallocatedT32(instr);
26093 unsigned rm = ExtractQRegister(instr, 5, 0);
26104 if (((instr >> 12) & 1) != 0) {
26105 UnallocatedT32(instr);
26108 unsigned rd = ExtractQRegister(instr, 22, 12);
26109 if (((instr >> 16) & 1) != 0) {
26110 UnallocatedT32(instr);
26113 unsigned rn = ExtractQRegister(instr, 7, 16);
26114 if ((instr & 1) != 0) {
26115 UnallocatedT32(instr);
26118 unsigned rm = ExtractQRegister(instr, 5, 0);
26128 UnallocatedT32(instr);
26134 UnallocatedT32(instr);
26141 switch (instr & 0x00300000) {
26144 switch (instr & 0x10000000) {
26147 switch (instr & 0x00000040) {
26150 if (((instr & 0x800) == 0x800)) {
26151 UnallocatedT32(instr);
26154 unsigned rd = ExtractDRegister(instr, 22, 12);
26155 unsigned rn = ExtractDRegister(instr, 7, 16);
26156 unsigned rm = ExtractDRegister(instr, 5, 0);
26157 uint32_t imm = (instr >> 8) & 0xf;
26169 if (((instr >> 12) & 1) != 0) {
26170 UnallocatedT32(instr);
26173 unsigned rd = ExtractQRegister(instr, 22, 12);
26174 if (((instr >> 16) & 1) != 0) {
26175 UnallocatedT32(instr);
26178 unsigned rn = ExtractQRegister(instr, 7, 16);
26179 if ((instr & 1) != 0) {
26180 UnallocatedT32(instr);
26183 unsigned rm = ExtractQRegister(instr, 5, 0);
26184 uint32_t imm = (instr >> 8) & 0xf;
26199 switch (instr & 0x00000800) {
26202 switch (instr & 0x00030200) {
26205 switch (instr & 0x000005c0) {
26209 (instr >> 18) & 0x3);
26211 UnallocatedT32(instr);
26215 ExtractDRegister(instr, 22, 12);
26217 ExtractDRegister(instr, 5, 0);
26228 (instr >> 18) & 0x3);
26230 UnallocatedT32(instr);
26233 if (((instr >> 12) & 1) != 0) {
26234 UnallocatedT32(instr);
26238 ExtractQRegister(instr, 22, 12);
26239 if ((instr & 1) != 0) {
26240 UnallocatedT32(instr);
26244 ExtractQRegister(instr, 5, 0);
26255 (instr >> 18) & 0x3);
26257 UnallocatedT32(instr);
26261 ExtractDRegister(instr, 22, 12);
26263 ExtractDRegister(instr, 5, 0);
26274 (instr >> 18) & 0x3);
26276 UnallocatedT32(instr);
26279 if (((instr >> 12) & 1) != 0) {
26280 UnallocatedT32(instr);
26284 ExtractQRegister(instr, 22, 12);
26285 if ((instr & 1) != 0) {
26286 UnallocatedT32(instr);
26290 ExtractQRegister(instr, 5, 0);
26301 (instr >> 18) & 0x3);
26303 UnallocatedT32(instr);
26307 ExtractDRegister(instr, 22, 12);
26309 ExtractDRegister(instr, 5, 0);
26320 (instr >> 18) & 0x3);
26322 UnallocatedT32(instr);
26325 if (((instr >> 12) & 1) != 0) {
26326 UnallocatedT32(instr);
26330 ExtractQRegister(instr, 22, 12);
26331 if ((instr & 1) != 0) {
26332 UnallocatedT32(instr);
26336 ExtractQRegister(instr, 5, 0);
26347 (instr >> 18) & 0x3);
26349 UnallocatedT32(instr);
26353 ExtractDRegister(instr, 22, 12);
26355 ExtractDRegister(instr, 5, 0);
26366 (instr >> 18) & 0x3);
26368 UnallocatedT32(instr);
26371 if (((instr >> 12) & 1) != 0) {
26372 UnallocatedT32(instr);
26376 ExtractQRegister(instr, 22, 12);
26377 if ((instr & 1) != 0) {
26378 UnallocatedT32(instr);
26382 ExtractQRegister(instr, 5, 0);
26393 (instr >> 18) & 0x3);
26395 UnallocatedT32(instr);
26399 ExtractDRegister(instr, 22, 12);
26401 ExtractDRegister(instr, 5, 0);
26412 (instr >> 18) & 0x3);
26414 UnallocatedT32(instr);
26417 if (((instr >> 12) & 1) != 0) {
26418 UnallocatedT32(instr);
26422 ExtractQRegister(instr, 22, 12);
26423 if ((instr & 1) != 0) {
26424 UnallocatedT32(instr);
26428 ExtractQRegister(instr, 5, 0);
26438 if ((instr & 0x000c0000) ==
26441 ExtractDRegister(instr, 22, 12);
26443 ExtractDRegister(instr, 5, 0);
26450 UnallocatedT32(instr);
26456 if ((instr & 0x000c0000) ==
26458 if (((instr >> 12) & 1) != 0) {
26459 UnallocatedT32(instr);
26463 ExtractQRegister(instr, 22, 12);
26464 if ((instr & 1) != 0) {
26465 UnallocatedT32(instr);
26469 ExtractQRegister(instr, 5, 0);
26476 UnallocatedT32(instr);
26482 if ((instr & 0x000c0000) ==
26485 ExtractDRegister(instr, 22, 12);
26487 ExtractDRegister(instr, 5, 0);
26494 UnallocatedT32(instr);
26500 if ((instr & 0x000c0000) ==
26502 if (((instr >> 12) & 1) != 0) {
26503 UnallocatedT32(instr);
26507 ExtractQRegister(instr, 22, 12);
26508 if ((instr & 1) != 0) {
26509 UnallocatedT32(instr);
26513 ExtractQRegister(instr, 5, 0);
26520 UnallocatedT32(instr);
26525 UnallocatedT32(instr);
26532 switch (instr & 0x00000540) {
26536 ((instr >> 18) & 0x3) |
26537 ((instr >> 5) & 0x4));
26539 UnallocatedT32(instr);
26543 ExtractDRegister(instr, 22, 12);
26545 ExtractDRegister(instr, 5, 0);
26556 ((instr >> 18) & 0x3) |
26557 ((instr >> 5) & 0x4));
26559 UnallocatedT32(instr);
26562 if (((instr >> 12) & 1) != 0) {
26563 UnallocatedT32(instr);
26567 ExtractQRegister(instr, 22, 12);
26568 if ((instr & 1) != 0) {
26569 UnallocatedT32(instr);
26573 ExtractQRegister(instr, 5, 0);
26583 switch (instr & 0x00000080) {
26587 instr);
26593 instr);
26601 switch (instr & 0x00000080) {
26605 instr);
26611 instr);
26620 ((instr >> 18) & 0x3) |
26621 ((instr >> 5) & 0x4));
26623 UnallocatedT32(instr);
26627 ExtractDRegister(instr, 22, 12);
26629 ExtractDRegister(instr, 5, 0);
26640 ((instr >> 18) & 0x3) |
26641 ((instr >> 5) & 0x4));
26643 UnallocatedT32(instr);
26646 if (((instr >> 12) & 1) != 0) {
26647 UnallocatedT32(instr);
26651 ExtractQRegister(instr, 22, 12);
26652 if ((instr & 1) != 0) {
26653 UnallocatedT32(instr);
26657 ExtractQRegister(instr, 5, 0);
26667 switch (instr & 0x00000080) {
26671 (instr >> 18) & 0x3);
26674 UnallocatedT32(instr);
26678 ExtractDRegister(instr,
26682 ExtractDRegister(instr, 5, 0);
26693 (instr >> 18) & 0x3);
26696 UnallocatedT32(instr);
26700 ExtractDRegister(instr,
26704 ExtractDRegister(instr, 5, 0);
26717 switch (instr & 0x00000080) {
26721 (instr >> 18) & 0x3);
26724 UnallocatedT32(instr);
26727 if (((instr >> 12) & 1) != 0) {
26728 UnallocatedT32(instr);
26732 ExtractQRegister(instr,
26735 if ((instr & 1) != 0) {
26736 UnallocatedT32(instr);
26740 ExtractQRegister(instr, 5, 0);
26751 (instr >> 18) & 0x3);
26754 UnallocatedT32(instr);
26757 if (((instr >> 12) & 1) != 0) {
26758 UnallocatedT32(instr);
26762 ExtractQRegister(instr,
26765 if ((instr & 1) != 0) {
26766 UnallocatedT32(instr);
26770 ExtractQRegister(instr, 5, 0);
26786 switch (instr & 0x000001c0) {
26790 ((instr >> 18) & 0x3) |
26791 ((instr >> 8) & 0x4));
26793 UnallocatedT32(instr);
26797 ExtractDRegister(instr, 22, 12);
26799 ExtractDRegister(instr, 5, 0);
26811 ((instr >> 18) & 0x3) |
26812 ((instr >> 8) & 0x4));
26814 UnallocatedT32(instr);
26817 if (((instr >> 12) & 1) != 0) {
26818 UnallocatedT32(instr);
26822 ExtractQRegister(instr, 22, 12);
26823 if ((instr & 1) != 0) {
26824 UnallocatedT32(instr);
26828 ExtractQRegister(instr, 5, 0);
26840 ((instr >> 18) & 0x3) |
26841 ((instr >> 8) & 0x4));
26843 UnallocatedT32(instr);
26847 ExtractDRegister(instr, 22, 12);
26849 ExtractDRegister(instr, 5, 0);
26861 ((instr >> 18) & 0x3) |
26862 ((instr >> 8) & 0x4));
26864 UnallocatedT32(instr);
26867 if (((instr >> 12) & 1) != 0) {
26868 UnallocatedT32(instr);
26872 ExtractQRegister(instr, 22, 12);
26873 if ((instr & 1) != 0) {
26874 UnallocatedT32(instr);
26878 ExtractQRegister(instr, 5, 0);
26890 ((instr >> 18) & 0x3) |
26891 ((instr >> 8) & 0x4));
26893 UnallocatedT32(instr);
26897 ExtractDRegister(instr, 22, 12);
26899 ExtractDRegister(instr, 5, 0);
26911 ((instr >> 18) & 0x3) |
26912 ((instr >> 8) & 0x4));
26914 UnallocatedT32(instr);
26917 if (((instr >> 12) & 1) != 0) {
26918 UnallocatedT32(instr);
26922 ExtractQRegister(instr, 22, 12);
26923 if ((instr & 1) != 0) {
26924 UnallocatedT32(instr);
26928 ExtractQRegister(instr, 5, 0);
26940 ((instr >> 18) & 0x3) |
26941 ((instr >> 8) & 0x4));
26943 UnallocatedT32(instr);
26947 ExtractDRegister(instr, 22, 12);
26949 ExtractDRegister(instr, 5, 0);
26961 ((instr >> 18) & 0x3) |
26962 ((instr >> 8) & 0x4));
26964 UnallocatedT32(instr);
26967 if (((instr >> 12) & 1) != 0) {
26968 UnallocatedT32(instr);
26972 ExtractQRegister(instr, 22, 12);
26973 if ((instr & 1) != 0) {
26974 UnallocatedT32(instr);
26978 ExtractQRegister(instr, 5, 0);
26992 switch (instr & 0x000001c0) {
26996 ((instr >> 18) & 0x3) |
26997 ((instr >> 8) & 0x4));
26999 UnallocatedT32(instr);
27003 ExtractDRegister(instr, 22, 12);
27005 ExtractDRegister(instr, 5, 0);
27017 ((instr >> 18) & 0x3) |
27018 ((instr >> 8) & 0x4));
27020 UnallocatedT32(instr);
27023 if (((instr >> 12) & 1) != 0) {
27024 UnallocatedT32(instr);
27028 ExtractQRegister(instr, 22, 12);
27029 if ((instr & 1) != 0) {
27030 UnallocatedT32(instr);
27034 ExtractQRegister(instr, 5, 0);
27045 if ((instr & 0x000c0400) ==
27047 UnimplementedT32_32("SHA1H", instr);
27049 UnallocatedT32(instr);
27056 ((instr >> 18) & 0x3) |
27057 ((instr >> 8) & 0x4));
27059 UnallocatedT32(instr);
27063 ExtractDRegister(instr, 22, 12);
27065 ExtractDRegister(instr, 5, 0);
27076 ((instr >> 18) & 0x3) |
27077 ((instr >> 8) & 0x4));
27079 UnallocatedT32(instr);
27082 if (((instr >> 12) & 1) != 0) {
27083 UnallocatedT32(instr);
27087 ExtractQRegister(instr, 22, 12);
27088 if ((instr & 1) != 0) {
27089 UnallocatedT32(instr);
27093 ExtractQRegister(instr, 5, 0);
27104 ((instr >> 18) & 0x3) |
27105 ((instr >> 8) & 0x4));
27107 UnallocatedT32(instr);
27111 ExtractDRegister(instr, 22, 12);
27113 ExtractDRegister(instr, 5, 0);
27124 ((instr >> 18) & 0x3) |
27125 ((instr >> 8) & 0x4));
27127 UnallocatedT32(instr);
27130 if (((instr >> 12) & 1) != 0) {
27131 UnallocatedT32(instr);
27135 ExtractQRegister(instr, 22, 12);
27136 if ((instr & 1) != 0) {
27137 UnallocatedT32(instr);
27141 ExtractQRegister(instr, 5, 0);
27150 UnallocatedT32(instr);
27157 switch (instr & 0x000005c0) {
27160 if ((instr & 0x000c0000) ==
27163 ExtractDRegister(instr, 22, 12);
27165 ExtractDRegister(instr, 5, 0);
27172 UnallocatedT32(instr);
27178 if ((instr & 0x000c0000) ==
27180 if (((instr >> 12) & 1) != 0) {
27181 UnallocatedT32(instr);
27185 ExtractQRegister(instr, 22, 12);
27186 if ((instr & 1) != 0) {
27187 UnallocatedT32(instr);
27191 ExtractQRegister(instr, 5, 0);
27198 UnallocatedT32(instr);
27205 (instr >> 18) & 0x3);
27207 UnallocatedT32(instr);
27211 ExtractDRegister(instr, 22, 12);
27213 ExtractDRegister(instr, 5, 0);
27224 (instr >> 18) & 0x3);
27226 UnallocatedT32(instr);
27229 if (((instr >> 12) & 1) != 0) {
27230 UnallocatedT32(instr);
27234 ExtractQRegister(instr, 22, 12);
27235 if ((instr & 1) != 0) {
27236 UnallocatedT32(instr);
27240 ExtractQRegister(instr, 5, 0);
27251 (instr >> 18) & 0x3);
27253 UnallocatedT32(instr);
27257 ExtractDRegister(instr, 22, 12);
27259 ExtractDRegister(instr, 5, 0);
27270 (instr >> 18) & 0x3);
27272 UnallocatedT32(instr);
27275 if (((instr >> 12) & 1) != 0) {
27276 UnallocatedT32(instr);
27280 ExtractQRegister(instr, 22, 12);
27281 if ((instr & 1) != 0) {
27282 UnallocatedT32(instr);
27286 ExtractQRegister(instr, 5, 0);
27297 (instr >> 18) & 0x3);
27299 UnallocatedT32(instr);
27303 ExtractDRegister(instr, 22, 12);
27305 ExtractDRegister(instr, 5, 0);
27316 (instr >> 18) & 0x3);
27318 UnallocatedT32(instr);
27321 if (((instr >> 12) & 1) != 0) {
27322 UnallocatedT32(instr);
27326 ExtractQRegister(instr, 22, 12);
27327 if ((instr & 1) != 0) {
27328 UnallocatedT32(instr);
27332 ExtractQRegister(instr, 5, 0);
27343 (instr >> 18) & 0x3);
27345 UnallocatedT32(instr);
27349 ExtractDRegister(instr, 22, 12);
27351 ExtractDRegister(instr, 5, 0);
27361 (instr >> 18) & 0x3);
27363 UnallocatedT32(instr);
27366 if (((instr >> 12) & 1) != 0) {
27367 UnallocatedT32(instr);
27371 ExtractQRegister(instr, 22, 12);
27372 if ((instr & 1) != 0) {
27373 UnallocatedT32(instr);
27377 ExtractQRegister(instr, 5, 0);
27387 (instr >> 18) & 0x3);
27389 UnallocatedT32(instr);
27393 ExtractDRegister(instr, 22, 12);
27395 ExtractDRegister(instr, 5, 0);
27406 (instr >> 18) & 0x3);
27408 UnallocatedT32(instr);
27411 if (((instr >> 12) & 1) != 0) {
27412 UnallocatedT32(instr);
27416 ExtractQRegister(instr, 22, 12);
27417 if ((instr & 1) != 0) {
27418 UnallocatedT32(instr);
27422 ExtractQRegister(instr, 5, 0);
27432 (instr >> 18) & 0x3);
27434 UnallocatedT32(instr);
27438 ExtractDRegister(instr, 22, 12);
27440 ExtractDRegister(instr, 5, 0);
27450 (instr >> 18) & 0x3);
27452 UnallocatedT32(instr);
27455 if (((instr >> 12) & 1) != 0) {
27456 UnallocatedT32(instr);
27460 ExtractQRegister(instr, 22, 12);
27461 if ((instr & 1) != 0) {
27462 UnallocatedT32(instr);
27466 ExtractQRegister(instr, 5, 0);
27476 (instr >> 18) & 0x3);
27478 UnallocatedT32(instr);
27482 ExtractDRegister(instr, 22, 12);
27484 ExtractDRegister(instr, 5, 0);
27495 (instr >> 18) & 0x3);
27497 UnallocatedT32(instr);
27500 if (((instr >> 12) & 1) != 0) {
27501 UnallocatedT32(instr);
27505 ExtractQRegister(instr, 22, 12);
27506 if ((instr & 1) != 0) {
27507 UnallocatedT32(instr);
27511 ExtractQRegister(instr, 5, 0);
27523 switch (instr & 0x00000580) {
27526 switch (instr & 0x00000040) {
27530 (instr >> 18) & 0x3);
27533 UnallocatedT32(instr);
27537 ExtractDRegister(instr,
27540 if ((instr & 1) != 0) {
27541 UnallocatedT32(instr);
27545 ExtractQRegister(instr, 5, 0);
27556 (instr >> 18) & 0x3);
27559 UnallocatedT32(instr);
27563 ExtractDRegister(instr,
27566 if ((instr & 1) != 0) {
27567 UnallocatedT32(instr);
27571 ExtractQRegister(instr, 5, 0);
27585 ((instr >> 18) & 0x3) |
27586 ((instr >> 4) & 0x4));
27588 UnallocatedT32(instr);
27592 ExtractDRegister(instr, 22, 12);
27593 if ((instr & 1) != 0) {
27594 UnallocatedT32(instr);
27598 ExtractQRegister(instr, 5, 0);
27608 if ((instr & 0x00000040) ==
27611 (instr >> 18) & 0x3);
27613 UnallocatedT32(instr);
27616 if (((instr >> 12) & 1) != 0) {
27617 UnallocatedT32(instr);
27621 ExtractQRegister(instr, 22, 12);
27623 ExtractDRegister(instr, 5, 0);
27632 UnallocatedT32(instr);
27638 switch (instr & 0x000c0040) {
27642 instr);
27648 instr);
27652 UnallocatedT32(instr);
27659 if ((instr & 0x000c0040) ==
27662 ExtractDRegister(instr, 22, 12);
27663 if ((instr & 1) != 0) {
27664 UnallocatedT32(instr);
27668 ExtractQRegister(instr, 5, 0);
27676 UnallocatedT32(instr);
27682 switch (instr & 0x00000040) {
27686 (instr >> 18) & 0x3);
27689 UnallocatedT32(instr);
27693 ExtractDRegister(instr,
27697 ExtractDRegister(instr, 5, 0);
27707 (instr >> 18) & 0x3);
27710 UnallocatedT32(instr);
27713 if (((instr >> 12) & 1) != 0) {
27714 UnallocatedT32(instr);
27718 ExtractQRegister(instr,
27721 if ((instr & 1) != 0) {
27722 UnallocatedT32(instr);
27726 ExtractQRegister(instr, 5, 0);
27738 if ((instr & 0x000c0040) ==
27740 if (((instr >> 12) & 1) != 0) {
27741 UnallocatedT32(instr);
27745 ExtractQRegister(instr, 22, 12);
27747 ExtractDRegister(instr, 5, 0);
27755 UnallocatedT32(instr);
27761 switch (instr & 0x00000040) {
27765 (instr >> 18) & 0x3);
27768 UnallocatedT32(instr);
27772 ExtractDRegister(instr,
27776 ExtractDRegister(instr, 5, 0);
27786 (instr >> 18) & 0x3);
27789 UnallocatedT32(instr);
27792 if (((instr >> 12) & 1) != 0) {
27793 UnallocatedT32(instr);
27797 ExtractQRegister(instr,
27800 if ((instr & 1) != 0) {
27801 UnallocatedT32(instr);
27805 ExtractQRegister(instr, 5, 0);
27820 switch (instr & 0x00000440) {
27823 switch (instr & 0x000c0100) {
27827 (instr >> 7) & 0x1);
27830 UnallocatedT32(instr);
27834 ExtractDRegister(instr,
27838 ExtractDRegister(instr, 5, 0);
27849 (instr >> 7) & 0x1);
27852 UnallocatedT32(instr);
27856 ExtractDRegister(instr,
27860 ExtractDRegister(instr, 5, 0);
27869 UnallocatedT32(instr);
27876 switch (instr & 0x000c0100) {
27880 (instr >> 7) & 0x1);
27883 UnallocatedT32(instr);
27886 if (((instr >> 12) & 1) != 0) {
27887 UnallocatedT32(instr);
27891 ExtractQRegister(instr,
27894 if ((instr & 1) != 0) {
27895 UnallocatedT32(instr);
27899 ExtractQRegister(instr, 5, 0);
27910 (instr >> 7) & 0x1);
27913 UnallocatedT32(instr);
27916 if (((instr >> 12) & 1) != 0) {
27917 UnallocatedT32(instr);
27921 ExtractQRegister(instr,
27924 if ((instr & 1) != 0) {
27925 UnallocatedT32(instr);
27929 ExtractQRegister(instr, 5, 0);
27938 UnallocatedT32(instr);
27945 switch (instr & 0x00000080) {
27949 ((instr >> 18) & 0x3) |
27950 ((instr >> 6) & 0x4));
27953 UnallocatedT32(instr);
27957 ExtractDRegister(instr,
27961 ExtractDRegister(instr, 5, 0);
27972 ((instr >> 18) & 0x3) |
27973 ((instr >> 6) & 0x4));
27976 UnallocatedT32(instr);
27980 ExtractDRegister(instr,
27984 ExtractDRegister(instr, 5, 0);
27997 switch (instr & 0x00000080) {
28001 ((instr >> 18) & 0x3) |
28002 ((instr >> 6) & 0x4));
28005 UnallocatedT32(instr);
28008 if (((instr >> 12) & 1) != 0) {
28009 UnallocatedT32(instr);
28013 ExtractQRegister(instr,
28016 if ((instr & 1) != 0) {
28017 UnallocatedT32(instr);
28021 ExtractQRegister(instr, 5, 0);
28032 ((instr >> 18) & 0x3) |
28033 ((instr >> 6) & 0x4));
28036 UnallocatedT32(instr);
28039 if (((instr >> 12) & 1) != 0) {
28040 UnallocatedT32(instr);
28044 ExtractQRegister(instr,
28047 if ((instr & 1) != 0) {
28048 UnallocatedT32(instr);
28052 ExtractQRegister(instr, 5, 0);
28068 switch (instr & 0x000c0440) {
28071 switch (instr & 0x00000100) {
28075 (instr >> 7) & 0x1);
28078 UnallocatedT32(instr);
28082 ExtractDRegister(instr,
28086 ExtractDRegister(instr, 5, 0);
28097 (instr >> 7) & 0x1);
28100 UnallocatedT32(instr);
28104 ExtractDRegister(instr,
28108 ExtractDRegister(instr, 5, 0);
28121 switch (instr & 0x00000100) {
28125 (instr >> 7) & 0x1);
28128 UnallocatedT32(instr);
28131 if (((instr >> 12) & 1) != 0) {
28132 UnallocatedT32(instr);
28136 ExtractQRegister(instr,
28139 if ((instr & 1) != 0) {
28140 UnallocatedT32(instr);
28144 ExtractQRegister(instr, 5, 0);
28155 (instr >> 7) & 0x1);
28158 UnallocatedT32(instr);
28161 if (((instr >> 12) & 1) != 0) {
28162 UnallocatedT32(instr);
28166 ExtractQRegister(instr,
28169 if ((instr & 1) != 0) {
28170 UnallocatedT32(instr);
28174 ExtractQRegister(instr, 5, 0);
28188 (instr >> 7) & 0x3);
28190 UnallocatedT32(instr);
28194 (instr >> 7) & 0x3);
28196 UnallocatedT32(instr);
28200 ExtractDRegister(instr, 22, 12);
28202 ExtractDRegister(instr, 5, 0);
28214 (instr >> 7) & 0x3);
28216 UnallocatedT32(instr);
28220 (instr >> 7) & 0x3);
28222 UnallocatedT32(instr);
28225 if (((instr >> 12) & 1) != 0) {
28226 UnallocatedT32(instr);
28230 ExtractQRegister(instr, 22, 12);
28231 if ((instr & 1) != 0) {
28232 UnallocatedT32(instr);
28236 ExtractQRegister(instr, 5, 0);
28246 UnallocatedT32(instr);
28256 switch (instr & 0x00000440) {
28260 ExtractDRegister(instr, 22, 12);
28262 ExtractDRegister(instr, 7, 16);
28265 switch ((instr >> 8) & 0x3) {
28284 ExtractDRegister(instr, 5, 0);
28299 ExtractDRegister(instr, 22, 12);
28301 ExtractDRegister(instr, 7, 16);
28304 switch ((instr >> 8) & 0x3) {
28323 ExtractDRegister(instr, 5, 0);
28337 if ((instr & 0x00000380) == 0x00000000) {
28340 Dt_imm4_1_Decode((instr >> 16) &
28344 UnallocatedT32(instr);
28348 ExtractDRegister(instr, 22, 12);
28350 ExtractDRegister(instr, 5, 0);
28357 UnallocatedT32(instr);
28363 if ((instr & 0x00000380) == 0x00000000) {
28366 Dt_imm4_1_Decode((instr >> 16) &
28370 UnallocatedT32(instr);
28373 if (((instr >> 12) & 1) != 0) {
28374 UnallocatedT32(instr);
28378 ExtractQRegister(instr, 22, 12);
28380 ExtractDRegister(instr, 5, 0);
28387 UnallocatedT32(instr);
28401 switch (instr & 0x00000c40) {
28404 switch (instr & 0x00000300) {
28407 if (((instr & 0x300000) == 0x300000)) {
28408 UnallocatedT32(instr);
28412 Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
28413 ((instr >> 26) & 0x4));
28415 UnallocatedT32(instr);
28418 if (((instr >> 12) & 1) != 0) {
28419 UnallocatedT32(instr);
28422 unsigned rd = ExtractQRegister(instr, 22, 12);
28423 unsigned rn = ExtractDRegister(instr, 7, 16);
28424 unsigned rm = ExtractDRegister(instr, 5, 0);
28435 if (((instr & 0x300000) == 0x300000)) {
28436 UnallocatedT32(instr);
28440 Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
28441 ((instr >> 26) & 0x4));
28443 UnallocatedT32(instr);
28446 if (((instr >> 12) & 1) != 0) {
28447 UnallocatedT32(instr);
28450 unsigned rd = ExtractQRegister(instr, 22, 12);
28451 if (((instr >> 16) & 1) != 0) {
28452 UnallocatedT32(instr);
28455 unsigned rn = ExtractQRegister(instr, 7, 16);
28456 unsigned rm = ExtractDRegister(instr, 5, 0);
28467 if (((instr & 0x300000) == 0x300000)) {
28468 UnallocatedT32(instr);
28472 Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
28473 ((instr >> 26) & 0x4));
28475 UnallocatedT32(instr);
28478 if (((instr >> 12) & 1) != 0) {
28479 UnallocatedT32(instr);
28482 unsigned rd = ExtractQRegister(instr, 22, 12);
28483 unsigned rn = ExtractDRegister(instr, 7, 16);
28484 unsigned rm = ExtractDRegister(instr, 5, 0);
28495 if (((instr & 0x300000) == 0x300000)) {
28496 UnallocatedT32(instr);
28500 Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
28501 ((instr >> 26) & 0x4));
28503 UnallocatedT32(instr);
28506 if (((instr >> 12) & 1) != 0) {
28507 UnallocatedT32(instr);
28510 unsigned rd = ExtractQRegister(instr, 22, 12);
28511 if (((instr >> 16) & 1) != 0) {
28512 UnallocatedT32(instr);
28515 unsigned rn = ExtractQRegister(instr, 7, 16);
28516 unsigned rm = ExtractDRegister(instr, 5, 0);
28530 switch (instr & 0x00000200) {
28533 switch (instr & 0x10000000) {
28536 if (((instr & 0x300000) == 0x300000)) {
28537 UnallocatedT32(instr);
28541 Dt_size_9_Decode((instr >> 20) & 0x3,
28542 (instr >> 8) & 0x1);
28544 UnallocatedT32(instr);
28548 ExtractDRegister(instr, 22, 12);
28550 ExtractDRegister(instr, 7, 16);
28553 ExtractDRegisterAndLane(instr,
28568 if (((instr & 0x300000) == 0x300000)) {
28569 UnallocatedT32(instr);
28573 Dt_size_9_Decode((instr >> 20) & 0x3,
28574 (instr >> 8) & 0x1);
28576 UnallocatedT32(instr);
28579 if (((instr >> 12) & 1) != 0) {
28580 UnallocatedT32(instr);
28584 ExtractQRegister(instr, 22, 12);
28585 if (((instr >> 16) & 1) != 0) {
28586 UnallocatedT32(instr);
28590 ExtractQRegister(instr, 7, 16);
28593 ExtractDRegisterAndLane(instr,
28611 switch (instr & 0x00000100) {
28614 if (((instr & 0x300000) == 0x300000)) {
28615 UnallocatedT32(instr);
28619 Dt_size_11_Decode((instr >> 20) & 0x3,
28620 (instr >> 28) &
28623 UnallocatedT32(instr);
28626 if (((instr >> 12) & 1) != 0) {
28627 UnallocatedT32(instr);
28631 ExtractQRegister(instr, 22, 12);
28633 ExtractDRegister(instr, 7, 16);
28636 ExtractDRegisterAndLane(instr,
28651 if ((instr & 0x10000000) == 0x00000000) {
28652 if (((instr & 0x300000) == 0x300000)) {
28653 UnallocatedT32(instr);
28657 (instr >> 20) & 0x3);
28659 UnallocatedT32(instr);
28662 if (((instr >> 12) & 1) != 0) {
28663 UnallocatedT32(instr);
28667 ExtractQRegister(instr, 22, 12);
28669 ExtractDRegister(instr, 7, 16);
28670 uint32_t mvm = (instr & 0xf) |
28671 ((instr >> 1) & 0x10);
28686 UnallocatedT32(instr);
28698 switch (instr & 0x00000300) {
28701 switch (instr & 0x10000000) {
28704 if (((instr & 0x300000) == 0x300000)) {
28705 UnallocatedT32(instr);
28709 Dt_size_3_Decode((instr >> 20) & 0x3);
28711 UnallocatedT32(instr);
28715 ExtractDRegister(instr, 22, 12);
28716 if (((instr >> 16) & 1) != 0) {
28717 UnallocatedT32(instr);
28721 ExtractQRegister(instr, 7, 16);
28722 if ((instr & 1) != 0) {
28723 UnallocatedT32(instr);
28727 ExtractQRegister(instr, 5, 0);
28738 if (((instr & 0x300000) == 0x300000)) {
28739 UnallocatedT32(instr);
28743 Dt_size_3_Decode((instr >> 20) & 0x3);
28745 UnallocatedT32(instr);
28749 ExtractDRegister(instr, 22, 12);
28750 if (((instr >> 16) & 1) != 0) {
28751 UnallocatedT32(instr);
28755 ExtractQRegister(instr, 7, 16);
28756 if ((instr & 1) != 0) {
28757 UnallocatedT32(instr);
28761 ExtractQRegister(instr, 5, 0);
28775 if (((instr & 0x300000) == 0x300000)) {
28776 UnallocatedT32(instr);
28780 Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
28781 ((instr >> 26) & 0x4));
28783 UnallocatedT32(instr);
28786 if (((instr >> 12) & 1) != 0) {
28787 UnallocatedT32(instr);
28790 unsigned rd = ExtractQRegister(instr, 22, 12);
28791 unsigned rn = ExtractDRegister(instr, 7, 16);
28792 unsigned rm = ExtractDRegister(instr, 5, 0);
28803 switch (instr & 0x10000000) {
28806 if (((instr & 0x300000) == 0x300000)) {
28807 UnallocatedT32(instr);
28811 Dt_size_3_Decode((instr >> 20) & 0x3);
28813 UnallocatedT32(instr);
28817 ExtractDRegister(instr, 22, 12);
28818 if (((instr >> 16) & 1) != 0) {
28819 UnallocatedT32(instr);
28823 ExtractQRegister(instr, 7, 16);
28824 if ((instr & 1) != 0) {
28825 UnallocatedT32(instr);
28829 ExtractQRegister(instr, 5, 0);
28840 if (((instr & 0x300000) == 0x300000)) {
28841 UnallocatedT32(instr);
28845 Dt_size_3_Decode((instr >> 20) & 0x3);
28847 UnallocatedT32(instr);
28851 ExtractDRegister(instr, 22, 12);
28852 if (((instr >> 16) & 1) != 0) {
28853 UnallocatedT32(instr);
28857 ExtractQRegister(instr, 7, 16);
28858 if ((instr & 1) != 0) {
28859 UnallocatedT32(instr);
28863 ExtractQRegister(instr, 5, 0);
28877 if (((instr & 0x300000) == 0x300000)) {
28878 UnallocatedT32(instr);
28882 Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
28883 ((instr >> 26) & 0x4));
28885 UnallocatedT32(instr);
28888 if (((instr >> 12) & 1) != 0) {
28889 UnallocatedT32(instr);
28892 unsigned rd = ExtractQRegister(instr, 22, 12);
28893 unsigned rn = ExtractDRegister(instr, 7, 16);
28894 unsigned rm = ExtractDRegister(instr, 5, 0);
28908 switch (instr & 0x00000200) {
28911 switch (instr & 0x10000000) {
28914 if (((instr & 0x300000) == 0x300000)) {
28915 UnallocatedT32(instr);
28919 Dt_size_9_Decode((instr >> 20) & 0x3,
28920 (instr >> 8) & 0x1);
28922 UnallocatedT32(instr);
28926 ExtractDRegister(instr, 22, 12);
28928 ExtractDRegister(instr, 7, 16);
28931 ExtractDRegisterAndLane(instr,
28946 if (((instr & 0x300000) == 0x300000)) {
28947 UnallocatedT32(instr);
28951 Dt_size_9_Decode((instr >> 20) & 0x3,
28952 (instr >> 8) & 0x1);
28954 UnallocatedT32(instr);
28957 if (((instr >> 12) & 1) != 0) {
28958 UnallocatedT32(instr);
28962 ExtractQRegister(instr, 22, 12);
28963 if (((instr >> 16) & 1) != 0) {
28964 UnallocatedT32(instr);
28968 ExtractQRegister(instr, 7, 16);
28971 ExtractDRegisterAndLane(instr,
28989 switch (instr & 0x00000100) {
28992 if (((instr & 0x300000) == 0x300000)) {
28993 UnallocatedT32(instr);
28997 Dt_size_11_Decode((instr >> 20) & 0x3,
28998 (instr >> 28) &
29001 UnallocatedT32(instr);
29004 if (((instr >> 12) & 1) != 0) {
29005 UnallocatedT32(instr);
29009 ExtractQRegister(instr, 22, 12);
29011 ExtractDRegister(instr, 7, 16);
29014 ExtractDRegisterAndLane(instr,
29029 if ((instr & 0x10000000) == 0x00000000) {
29030 if (((instr & 0x300000) == 0x300000)) {
29031 UnallocatedT32(instr);
29035 (instr >> 20) & 0x3);
29037 UnallocatedT32(instr);
29040 if (((instr >> 12) & 1) != 0) {
29041 UnallocatedT32(instr);
29045 ExtractQRegister(instr, 22, 12);
29047 ExtractDRegister(instr, 7, 16);
29048 uint32_t mvm = (instr & 0xf) |
29049 ((instr >> 1) & 0x10);
29064 UnallocatedT32(instr);
29076 switch (instr & 0x00000300) {
29079 if (((instr & 0x300000) == 0x300000)) {
29080 UnallocatedT32(instr);
29084 Dt_size_12_Decode((instr >> 20) & 0x3,
29085 (instr >> 28) & 0x1);
29087 UnallocatedT32(instr);
29090 if (((instr >> 12) & 1) != 0) {
29091 UnallocatedT32(instr);
29094 unsigned rd = ExtractQRegister(instr, 22, 12);
29095 unsigned rn = ExtractDRegister(instr, 7, 16);
29096 unsigned rm = ExtractDRegister(instr, 5, 0);
29107 if ((instr & 0x10000000) == 0x00000000) {
29108 if (((instr & 0x300000) == 0x300000)) {
29109 UnallocatedT32(instr);
29113 Dt_size_13_Decode((instr >> 20) & 0x3);
29115 UnallocatedT32(instr);
29118 if (((instr >> 12) & 1) != 0) {
29119 UnallocatedT32(instr);
29123 ExtractQRegister(instr, 22, 12);
29125 ExtractDRegister(instr, 7, 16);
29126 unsigned rm = ExtractDRegister(instr, 5, 0);
29134 UnallocatedT32(instr);
29140 if (((instr & 0x300000) == 0x300000)) {
29141 UnallocatedT32(instr);
29145 Dt_size_12_Decode((instr >> 20) & 0x3,
29146 (instr >> 28) & 0x1);
29148 UnallocatedT32(instr);
29151 if (((instr >> 12) & 1) != 0) {
29152 UnallocatedT32(instr);
29155 unsigned rd = ExtractQRegister(instr, 22, 12);
29156 unsigned rn = ExtractDRegister(instr, 7, 16);
29157 unsigned rm = ExtractDRegister(instr, 5, 0);
29168 if ((instr & 0x10000000) == 0x00000000) {
29169 if (((instr & 0x300000) == 0x300000)) {
29170 UnallocatedT32(instr);
29174 Dt_size_13_Decode((instr >> 20) & 0x3);
29176 UnallocatedT32(instr);
29179 if (((instr >> 12) & 1) != 0) {
29180 UnallocatedT32(instr);
29184 ExtractQRegister(instr, 22, 12);
29186 ExtractDRegister(instr, 7, 16);
29187 unsigned rm = ExtractDRegister(instr, 5, 0);
29195 UnallocatedT32(instr);
29204 switch (instr & 0x00000200) {
29207 switch (instr & 0x10000000) {
29210 if (((instr & 0x300000) == 0x300000)) {
29211 UnallocatedT32(instr);
29215 ((instr >> 20) & 0x3) |
29216 ((instr >> 6) & 0x4));
29218 UnallocatedT32(instr);
29222 ExtractDRegister(instr, 22, 12);
29224 ExtractDRegister(instr, 7, 16);
29226 (instr & 0xf) | ((instr >> 1) & 0x10);
29244 if (((instr & 0x300000) == 0x300000)) {
29245 UnallocatedT32(instr);
29249 ((instr >> 20) & 0x3) |
29250 ((instr >> 6) & 0x4));
29252 UnallocatedT32(instr);
29255 if (((instr >> 12) & 1) != 0) {
29256 UnallocatedT32(instr);
29260 ExtractQRegister(instr, 22, 12);
29261 if (((instr >> 16) & 1) != 0) {
29262 UnallocatedT32(instr);
29266 ExtractQRegister(instr, 7, 16);
29268 (instr & 0xf) | ((instr >> 1) & 0x10);
29289 switch (instr & 0x00000100) {
29292 if (((instr & 0x300000) == 0x300000)) {
29293 UnallocatedT32(instr);
29297 ((instr >> 20) & 0x3) |
29298 ((instr >> 26) & 0x4));
29300 UnallocatedT32(instr);
29303 if (((instr >> 12) & 1) != 0) {
29304 UnallocatedT32(instr);
29308 ExtractQRegister(instr, 22, 12);
29310 ExtractDRegister(instr, 7, 16);
29312 (instr & 0xf) | ((instr >> 1) & 0x10);
29330 if ((instr & 0x10000000) == 0x00000000) {
29331 if (((instr & 0x300000) == 0x300000)) {
29332 UnallocatedT32(instr);
29336 (instr >> 20) & 0x3);
29338 UnallocatedT32(instr);
29341 if (((instr >> 12) & 1) != 0) {
29342 UnallocatedT32(instr);
29346 ExtractQRegister(instr, 22, 12);
29348 ExtractDRegister(instr, 7, 16);
29351 ExtractDRegisterAndLane(instr,
29363 UnallocatedT32(instr);
29375 switch (instr & 0x00000100) {
29378 if (((instr & 0x300000) == 0x300000)) {
29379 UnallocatedT32(instr);
29383 ((instr >> 20) & 0x3) |
29384 ((instr >> 26) & 0x4) |
29385 ((instr >> 6) & 0x8));
29387 UnallocatedT32(instr);
29390 if (((instr >> 12) & 1) != 0) {
29391 UnallocatedT32(instr);
29394 unsigned rd = ExtractQRegister(instr, 22, 12);
29395 unsigned rn = ExtractDRegister(instr, 7, 16);
29396 unsigned rm = ExtractDRegister(instr, 5, 0);
29407 if ((instr & 0x10000200) == 0x00000000) {
29408 if (((instr & 0x300000) == 0x300000)) {
29409 UnallocatedT32(instr);
29413 Dt_size_13_Decode((instr >> 20) & 0x3);
29415 UnallocatedT32(instr);
29418 if (((instr >> 12) & 1) != 0) {
29419 UnallocatedT32(instr);
29423 ExtractQRegister(instr, 22, 12);
29425 ExtractDRegister(instr, 7, 16);
29426 unsigned rm = ExtractDRegister(instr, 5, 0);
29434 UnallocatedT32(instr);
29443 switch (instr & 0x10000300) {
29446 if (((instr & 0x300000) == 0x300000)) {
29447 UnallocatedT32(instr);
29451 Dt_size_13_Decode((instr >> 20) & 0x3);
29453 UnallocatedT32(instr);
29456 unsigned rd = ExtractDRegister(instr, 22, 12);
29457 unsigned rn = ExtractDRegister(instr, 7, 16);
29459 unsigned rm = ExtractDRegisterAndLane(instr,
29474 if (((instr & 0x300000) == 0x300000)) {
29475 UnallocatedT32(instr);
29479 Dt_size_13_Decode((instr >> 20) & 0x3);
29481 UnallocatedT32(instr);
29484 unsigned rd = ExtractDRegister(instr, 22, 12);
29485 unsigned rn = ExtractDRegister(instr, 7, 16);
29487 unsigned rm = ExtractDRegisterAndLane(instr,
29502 if (((instr & 0x300000) == 0x300000)) {
29503 UnallocatedT32(instr);
29507 Dt_size_13_Decode((instr >> 20) & 0x3);
29509 UnallocatedT32(instr);
29512 if (((instr >> 12) & 1) != 0) {
29513 UnallocatedT32(instr);
29516 unsigned rd = ExtractQRegister(instr, 22, 12);
29517 if (((instr >> 16) & 1) != 0) {
29518 UnallocatedT32(instr);
29521 unsigned rn = ExtractQRegister(instr, 7, 16);
29523 unsigned rm = ExtractDRegisterAndLane(instr,
29538 if (((instr & 0x300000) == 0x300000)) {
29539 UnallocatedT32(instr);
29543 Dt_size_13_Decode((instr >> 20) & 0x3);
29545 UnallocatedT32(instr);
29548 if (((instr >> 12) & 1) != 0) {
29549 UnallocatedT32(instr);
29552 unsigned rd = ExtractQRegister(instr, 22, 12);
29553 if (((instr >> 16) & 1) != 0) {
29554 UnallocatedT32(instr);
29557 unsigned rn = ExtractQRegister(instr, 7, 16);
29559 unsigned rm = ExtractDRegisterAndLane(instr,
29573 UnallocatedT32(instr);
29589 switch (instr & 0x00800040) {
29592 switch (instr & 0x00000f00) {
29596 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
29598 UnallocatedT32(instr);
29601 unsigned rd = ExtractDRegister(instr, 22, 12);
29602 unsigned rn = ExtractDRegister(instr, 7, 16);
29603 unsigned rm = ExtractDRegister(instr, 5, 0);
29614 switch (instr & 0x10300000) {
29617 unsigned rd = ExtractDRegister(instr, 22, 12);
29618 unsigned rn = ExtractDRegister(instr, 7, 16);
29619 unsigned rm = ExtractDRegister(instr, 5, 0);
29630 unsigned rd = ExtractDRegister(instr, 22, 12);
29631 unsigned rn = ExtractDRegister(instr, 7, 16);
29632 unsigned rm = ExtractDRegister(instr, 5, 0);
29643 if (((instr & 0x00000040) == 0x00000000) &&
29644 ((((Uint32((instr >> 7)) & Uint32(0x1))
29646 (Uint32((instr >> 16)) & Uint32(0xf))) ==
29647 (((Uint32((instr >> 5)) & Uint32(0x1))
29649 (Uint32(instr) & Uint32(0xf))))) {
29650 unsigned rd = ExtractDRegister(instr, 22, 12);
29651 unsigned rm = ExtractDRegister(instr, 7, 16);
29659 unsigned rd = ExtractDRegister(instr, 22, 12);
29660 unsigned rn = ExtractDRegister(instr, 7, 16);
29661 unsigned rm = ExtractDRegister(instr, 5, 0);
29672 unsigned rd = ExtractDRegister(instr, 22, 12);
29673 unsigned rn = ExtractDRegister(instr, 7, 16);
29674 unsigned rm = ExtractDRegister(instr, 5, 0);
29685 unsigned rd = ExtractDRegister(instr, 22, 12);
29686 unsigned rn = ExtractDRegister(instr, 7, 16);
29687 unsigned rm = ExtractDRegister(instr, 5, 0);
29698 unsigned rd = ExtractDRegister(instr, 22, 12);
29699 unsigned rn = ExtractDRegister(instr, 7, 16);
29700 unsigned rm = ExtractDRegister(instr, 5, 0);
29711 unsigned rd = ExtractDRegister(instr, 22, 12);
29712 unsigned rn = ExtractDRegister(instr, 7, 16);
29713 unsigned rm = ExtractDRegister(instr, 5, 0);
29724 unsigned rd = ExtractDRegister(instr, 22, 12);
29725 unsigned rn = ExtractDRegister(instr, 7, 16);
29726 unsigned rm = ExtractDRegister(instr, 5, 0);
29741 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
29743 UnallocatedT32(instr);
29746 unsigned rd = ExtractDRegister(instr, 22, 12);
29747 unsigned rn = ExtractDRegister(instr, 7, 16);
29748 unsigned rm = ExtractDRegister(instr, 5, 0);
29760 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
29762 UnallocatedT32(instr);
29765 unsigned rd = ExtractDRegister(instr, 22, 12);
29766 unsigned rn = ExtractDRegister(instr, 7, 16);
29767 unsigned rm = ExtractDRegister(instr, 5, 0);
29779 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
29781 UnallocatedT32(instr);
29784 unsigned rd = ExtractDRegister(instr, 22, 12);
29785 unsigned rm = ExtractDRegister(instr, 5, 0);
29786 unsigned rn = ExtractDRegister(instr, 7, 16);
29798 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
29800 UnallocatedT32(instr);
29803 unsigned rd = ExtractDRegister(instr, 22, 12);
29804 unsigned rm = ExtractDRegister(instr, 5, 0);
29805 unsigned rn = ExtractDRegister(instr, 7, 16);
29817 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
29819 UnallocatedT32(instr);
29822 unsigned rd = ExtractDRegister(instr, 22, 12);
29823 unsigned rn = ExtractDRegister(instr, 7, 16);
29824 unsigned rm = ExtractDRegister(instr, 5, 0);
29836 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
29838 UnallocatedT32(instr);
29841 unsigned rd = ExtractDRegister(instr, 22, 12);
29842 unsigned rn = ExtractDRegister(instr, 7, 16);
29843 unsigned rm = ExtractDRegister(instr, 5, 0);
29854 switch (instr & 0x10000000) {
29858 Dt_size_7_Decode((instr >> 20) & 0x3);
29860 UnallocatedT32(instr);
29863 unsigned rd = ExtractDRegister(instr, 22, 12);
29864 unsigned rn = ExtractDRegister(instr, 7, 16);
29865 unsigned rm = ExtractDRegister(instr, 5, 0);
29877 Dt_size_4_Decode((instr >> 20) & 0x3);
29879 UnallocatedT32(instr);
29882 unsigned rd = ExtractDRegister(instr, 22, 12);
29883 unsigned rn = ExtractDRegister(instr, 7, 16);
29884 unsigned rm = ExtractDRegister(instr, 5, 0);
29899 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
29901 UnallocatedT32(instr);
29904 unsigned rd = ExtractDRegister(instr, 22, 12);
29905 unsigned rn = ExtractDRegister(instr, 7, 16);
29906 unsigned rm = ExtractDRegister(instr, 5, 0);
29918 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
29920 UnallocatedT32(instr);
29923 unsigned rd = ExtractDRegister(instr, 22, 12);
29924 unsigned rn = ExtractDRegister(instr, 7, 16);
29925 unsigned rm = ExtractDRegister(instr, 5, 0);
29936 if ((instr & 0x10000000) == 0x00000000) {
29937 DataType dt = Dt_size_4_Decode((instr >> 20) & 0x3);
29939 UnallocatedT32(instr);
29942 unsigned rd = ExtractDRegister(instr, 22, 12);
29943 unsigned rn = ExtractDRegister(instr, 7, 16);
29944 unsigned rm = ExtractDRegister(instr, 5, 0);
29952 UnallocatedT32(instr);
29958 switch (instr & 0x10300000) {
29961 unsigned rd = ExtractDRegister(instr, 22, 12);
29962 unsigned rn = ExtractDRegister(instr, 7, 16);
29963 unsigned rm = ExtractDRegister(instr, 5, 0);
29974 unsigned rd = ExtractDRegister(instr, 22, 12);
29975 unsigned rn = ExtractDRegister(instr, 7, 16);
29976 unsigned rm = ExtractDRegister(instr, 5, 0);
29986 UnallocatedT32(instr);
29993 switch (instr & 0x10300000) {
29996 unsigned rd = ExtractDRegister(instr, 22, 12);
29997 unsigned rn = ExtractDRegister(instr, 7, 16);
29998 unsigned rm = ExtractDRegister(instr, 5, 0);
30009 unsigned rd = ExtractDRegister(instr, 22, 12);
30010 unsigned rn = ExtractDRegister(instr, 7, 16);
30011 unsigned rm = ExtractDRegister(instr, 5, 0);
30022 unsigned rd = ExtractDRegister(instr, 22, 12);
30023 unsigned rn = ExtractDRegister(instr, 7, 16);
30024 unsigned rm = ExtractDRegister(instr, 5, 0);
30034 UnallocatedT32(instr);
30041 switch (instr & 0x10300000) {
30044 unsigned rd = ExtractDRegister(instr, 22, 12);
30045 unsigned rn = ExtractDRegister(instr, 7, 16);
30046 unsigned rm = ExtractDRegister(instr, 5, 0);
30057 unsigned rd = ExtractDRegister(instr, 22, 12);
30058 unsigned rn = ExtractDRegister(instr, 7, 16);
30059 unsigned rm = ExtractDRegister(instr, 5, 0);
30069 UnallocatedT32(instr);
30076 switch (instr & 0x10300000) {
30079 unsigned rd = ExtractDRegister(instr, 22, 12);
30080 unsigned rn = ExtractDRegister(instr, 7, 16);
30081 unsigned rm = ExtractDRegister(instr, 5, 0);
30092 unsigned rd = ExtractDRegister(instr, 22, 12);
30093 unsigned rn = ExtractDRegister(instr, 7, 16);
30094 unsigned rm = ExtractDRegister(instr, 5, 0);
30105 unsigned rd = ExtractDRegister(instr, 22, 12);
30106 unsigned rn = ExtractDRegister(instr, 7, 16);
30107 unsigned rm = ExtractDRegister(instr, 5, 0);
30114 UnpredictableT32(instr);
30120 unsigned rd = ExtractDRegister(instr, 22, 12);
30121 unsigned rn = ExtractDRegister(instr, 7, 16);
30122 unsigned rm = ExtractDRegister(instr, 5, 0);
30129 UnpredictableT32(instr);
30134 UnallocatedT32(instr);
30144 switch (instr & 0x00000f00) {
30148 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
30150 UnallocatedT32(instr);
30153 if (((instr >> 12) & 1) != 0) {
30154 UnallocatedT32(instr);
30157 unsigned rd = ExtractQRegister(instr, 22, 12);
30158 if (((instr >> 16) & 1) != 0) {
30159 UnallocatedT32(instr);
30162 unsigned rn = ExtractQRegister(instr, 7, 16);
30163 if ((instr & 1) != 0) {
30164 UnallocatedT32(instr);
30167 unsigned rm = ExtractQRegister(instr, 5, 0);
30178 switch (instr & 0x10300000) {
30181 if (((instr >> 12) & 1) != 0) {
30182 UnallocatedT32(instr);
30185 unsigned rd = ExtractQRegister(instr, 22, 12);
30186 if (((instr >> 16) & 1) != 0) {
30187 UnallocatedT32(instr);
30190 unsigned rn = ExtractQRegister(instr, 7, 16);
30191 if ((instr & 1) != 0) {
30192 UnallocatedT32(instr);
30195 unsigned rm = ExtractQRegister(instr, 5, 0);
30206 if (((instr >> 12) & 1) != 0) {
30207 UnallocatedT32(instr);
30210 unsigned rd = ExtractQRegister(instr, 22, 12);
30211 if (((instr >> 16) & 1) != 0) {
30212 UnallocatedT32(instr);
30215 unsigned rn = ExtractQRegister(instr, 7, 16);
30216 if ((instr & 1) != 0) {
30217 UnallocatedT32(instr);
30220 unsigned rm = ExtractQRegister(instr, 5, 0);
30231 if (((instr & 0x00000040) == 0x00000040) &&
30232 ((((Uint32((instr >> 7)) & Uint32(0x1))
30234 (Uint32((instr >> 16)) & Uint32(0xf))) ==
30235 (((Uint32((instr >> 5)) & Uint32(0x1))
30237 (Uint32(instr) & Uint32(0xf))))) {
30238 if (((instr >> 12) & 1) != 0) {
30239 UnallocatedT32(instr);
30242 unsigned rd = ExtractQRegister(instr, 22, 12);
30243 if (((instr >> 16) & 1) != 0) {
30244 UnallocatedT32(instr);
30247 unsigned rm = ExtractQRegister(instr, 7, 16);
30255 if (((instr >> 12) & 1) != 0) {
30256 UnallocatedT32(instr);
30259 unsigned rd = ExtractQRegister(instr, 22, 12);
30260 if (((instr >> 16) & 1) != 0) {
30261 UnallocatedT32(instr);
30264 unsigned rn = ExtractQRegister(instr, 7, 16);
30265 if ((instr & 1) != 0) {
30266 UnallocatedT32(instr);
30269 unsigned rm = ExtractQRegister(instr, 5, 0);
30280 if (((instr >> 12) & 1) != 0) {
30281 UnallocatedT32(instr);
30284 unsigned rd = ExtractQRegister(instr, 22, 12);
30285 if (((instr >> 16) & 1) != 0) {
30286 UnallocatedT32(instr);
30289 unsigned rn = ExtractQRegister(instr, 7, 16);
30290 if ((instr & 1) != 0) {
30291 UnallocatedT32(instr);
30294 unsigned rm = ExtractQRegister(instr, 5, 0);
30305 if (((instr >> 12) & 1) != 0) {
30306 UnallocatedT32(instr);
30309 unsigned rd = ExtractQRegister(instr, 22, 12);
30310 if (((instr >> 16) & 1) != 0) {
30311 UnallocatedT32(instr);
30314 unsigned rn = ExtractQRegister(instr, 7, 16);
30315 if ((instr & 1) != 0) {
30316 UnallocatedT32(instr);
30319 unsigned rm = ExtractQRegister(instr, 5, 0);
30330 if (((instr >> 12) & 1) != 0) {
30331 UnallocatedT32(instr);
30334 unsigned rd = ExtractQRegister(instr, 22, 12);
30335 if (((instr >> 16) & 1) != 0) {
30336 UnallocatedT32(instr);
30339 unsigned rn = ExtractQRegister(instr, 7, 16);
30340 if ((instr & 1) != 0) {
30341 UnallocatedT32(instr);
30344 unsigned rm = ExtractQRegister(instr, 5, 0);
30355 if (((instr >> 12) & 1) != 0) {
30356 UnallocatedT32(instr);
30359 unsigned rd = ExtractQRegister(instr, 22, 12);
30360 if (((instr >> 16) & 1) != 0) {
30361 UnallocatedT32(instr);
30364 unsigned rn = ExtractQRegister(instr, 7, 16);
30365 if ((instr & 1) != 0) {
30366 UnallocatedT32(instr);
30369 unsigned rm = ExtractQRegister(instr, 5, 0);
30380 if (((instr >> 12) & 1) != 0) {
30381 UnallocatedT32(instr);
30384 unsigned rd = ExtractQRegister(instr, 22, 12);
30385 if (((instr >> 16) & 1) != 0) {
30386 UnallocatedT32(instr);
30389 unsigned rn = ExtractQRegister(instr, 7, 16);
30390 if ((instr & 1) != 0) {
30391 UnallocatedT32(instr);
30394 unsigned rm = ExtractQRegister(instr, 5, 0);
30409 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
30411 UnallocatedT32(instr);
30414 if (((instr >> 12) & 1) != 0) {
30415 UnallocatedT32(instr);
30418 unsigned rd = ExtractQRegister(instr, 22, 12);
30419 if (((instr >> 16) & 1) != 0) {
30420 UnallocatedT32(instr);
30423 unsigned rn = ExtractQRegister(instr, 7, 16);
30424 if ((instr & 1) != 0) {
30425 UnallocatedT32(instr);
30428 unsigned rm = ExtractQRegister(instr, 5, 0);
30440 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
30442 UnallocatedT32(instr);
30445 if (((instr >> 12) & 1) != 0) {
30446 UnallocatedT32(instr);
30449 unsigned rd = ExtractQRegister(instr, 22, 12);
30450 if (((instr >> 16) & 1) != 0) {
30451 UnallocatedT32(instr);
30454 unsigned rn = ExtractQRegister(instr, 7, 16);
30455 if ((instr & 1) != 0) {
30456 UnallocatedT32(instr);
30459 unsigned rm = ExtractQRegister(instr, 5, 0);
30471 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
30473 UnallocatedT32(instr);
30476 if (((instr >> 12) & 1) != 0) {
30477 UnallocatedT32(instr);
30480 unsigned rd = ExtractQRegister(instr, 22, 12);
30481 if ((instr & 1) != 0) {
30482 UnallocatedT32(instr);
30485 unsigned rm = ExtractQRegister(instr, 5, 0);
30486 if (((instr >> 16) & 1) != 0) {
30487 UnallocatedT32(instr);
30490 unsigned rn = ExtractQRegister(instr, 7, 16);
30502 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
30504 UnallocatedT32(instr);
30507 if (((instr >> 12) & 1) != 0) {
30508 UnallocatedT32(instr);
30511 unsigned rd = ExtractQRegister(instr, 22, 12);
30512 if ((instr & 1) != 0) {
30513 UnallocatedT32(instr);
30516 unsigned rm = ExtractQRegister(instr, 5, 0);
30517 if (((instr >> 16) & 1) != 0) {
30518 UnallocatedT32(instr);
30521 unsigned rn = ExtractQRegister(instr, 7, 16);
30533 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
30535 UnallocatedT32(instr);
30538 if (((instr >> 12) & 1) != 0) {
30539 UnallocatedT32(instr);
30542 unsigned rd = ExtractQRegister(instr, 22, 12);
30543 if (((instr >> 16) & 1) != 0) {
30544 UnallocatedT32(instr);
30547 unsigned rn = ExtractQRegister(instr, 7, 16);
30548 if ((instr & 1) != 0) {
30549 UnallocatedT32(instr);
30552 unsigned rm = ExtractQRegister(instr, 5, 0);
30564 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
30566 UnallocatedT32(instr);
30569 if (((instr >> 12) & 1) != 0) {
30570 UnallocatedT32(instr);
30573 unsigned rd = ExtractQRegister(instr, 22, 12);
30574 if (((instr >> 16) & 1) != 0) {
30575 UnallocatedT32(instr);
30578 unsigned rn = ExtractQRegister(instr, 7, 16);
30579 if ((instr & 1) != 0) {
30580 UnallocatedT32(instr);
30583 unsigned rm = ExtractQRegister(instr, 5, 0);
30594 switch (instr & 0x10000000) {
30598 Dt_size_7_Decode((instr >> 20) & 0x3);
30600 UnallocatedT32(instr);
30603 if (((instr >> 12) & 1) != 0) {
30604 UnallocatedT32(instr);
30607 unsigned rd = ExtractQRegister(instr, 22, 12);
30608 if (((instr >> 16) & 1) != 0) {
30609 UnallocatedT32(instr);
30612 unsigned rn = ExtractQRegister(instr, 7, 16);
30613 if ((instr & 1) != 0) {
30614 UnallocatedT32(instr);
30617 unsigned rm = ExtractQRegister(instr, 5, 0);
30629 Dt_size_4_Decode((instr >> 20) & 0x3);
30631 UnallocatedT32(instr);
30634 if (((instr >> 12) & 1) != 0) {
30635 UnallocatedT32(instr);
30638 unsigned rd = ExtractQRegister(instr, 22, 12);
30639 if (((instr >> 16) & 1) != 0) {
30640 UnallocatedT32(instr);
30643 unsigned rn = ExtractQRegister(instr, 7, 16);
30644 if ((instr & 1) != 0) {
30645 UnallocatedT32(instr);
30648 unsigned rm = ExtractQRegister(instr, 5, 0);
30663 ((instr >> 20) & 0x3) | ((instr >> 26) & 0x4));
30665 UnallocatedT32(instr);
30668 if (((instr >> 12) & 1) != 0) {
30669 UnallocatedT32(instr);
30672 unsigned rd = ExtractQRegister(instr, 22, 12);
30673 if (((instr >> 16) & 1) != 0) {
30674 UnallocatedT32(instr);
30677 unsigned rn = ExtractQRegister(instr, 7, 16);
30678 if ((instr & 1) != 0) {
30679 UnallocatedT32(instr);
30682 unsigned rm = ExtractQRegister(instr, 5, 0);
30693 switch (instr & 0x10300000) {
30696 if (((instr >> 12) & 1) != 0) {
30697 UnallocatedT32(instr);
30700 unsigned rd = ExtractQRegister(instr, 22, 12);
30701 if (((instr >> 16) & 1) != 0) {
30702 UnallocatedT32(instr);
30705 unsigned rn = ExtractQRegister(instr, 7, 16);
30706 if ((instr & 1) != 0) {
30707 UnallocatedT32(instr);
30710 unsigned rm = ExtractQRegister(instr, 5, 0);
30721 if (((instr >> 12) & 1) != 0) {
30722 UnallocatedT32(instr);
30725 unsigned rd = ExtractQRegister(instr, 22, 12);
30726 if (((instr >> 16) & 1) != 0) {
30727 UnallocatedT32(instr);
30730 unsigned rn = ExtractQRegister(instr, 7, 16);
30731 if ((instr & 1) != 0) {
30732 UnallocatedT32(instr);
30735 unsigned rm = ExtractQRegister(instr, 5, 0);
30745 UnallocatedT32(instr);
30752 switch (instr & 0x10300000) {
30755 if (((instr >> 12) & 1) != 0) {
30756 UnallocatedT32(instr);
30759 unsigned rd = ExtractQRegister(instr, 22, 12);
30760 if (((instr >> 16) & 1) != 0) {
30761 UnallocatedT32(instr);
30764 unsigned rn = ExtractQRegister(instr, 7, 16);
30765 if ((instr & 1) != 0) {
30766 UnallocatedT32(instr);
30769 unsigned rm = ExtractQRegister(instr, 5, 0);
30780 if (((instr >> 12) & 1) != 0) {
30781 UnallocatedT32(instr);
30784 unsigned rd = ExtractQRegister(instr, 22, 12);
30785 if (((instr >> 16) & 1) != 0) {
30786 UnallocatedT32(instr);
30789 unsigned rn = ExtractQRegister(instr, 7, 16);
30790 if ((instr & 1) != 0) {
30791 UnallocatedT32(instr);
30794 unsigned rm = ExtractQRegister(instr, 5, 0);
30805 if (((instr >> 12) & 1) != 0) {
30806 UnallocatedT32(instr);
30809 unsigned rd = ExtractQRegister(instr, 22, 12);
30810 if (((instr >> 16) & 1) != 0) {
30811 UnallocatedT32(instr);
30814 unsigned rn = ExtractQRegister(instr, 7, 16);
30815 if ((instr & 1) != 0) {
30816 UnallocatedT32(instr);
30819 unsigned rm = ExtractQRegister(instr, 5, 0);
30829 UnallocatedT32(instr);
30836 switch (instr & 0x10300000) {
30839 if (((instr >> 12) & 1) != 0) {
30840 UnallocatedT32(instr);
30843 unsigned rd = ExtractQRegister(instr, 22, 12);
30844 if (((instr >> 16) & 1) != 0) {
30845 UnallocatedT32(instr);
30848 unsigned rn = ExtractQRegister(instr, 7, 16);
30849 if ((instr & 1) != 0) {
30850 UnallocatedT32(instr);
30853 unsigned rm = ExtractQRegister(instr, 5, 0);
30864 if (((instr >> 12) & 1) != 0) {
30865 UnallocatedT32(instr);
30868 unsigned rd = ExtractQRegister(instr, 22, 12);
30869 if (((instr >> 16) & 1) != 0) {
30870 UnallocatedT32(instr);
30873 unsigned rn = ExtractQRegister(instr, 7, 16);
30874 if ((instr & 1) != 0) {
30875 UnallocatedT32(instr);
30878 unsigned rm = ExtractQRegister(instr, 5, 0);
30888 UnallocatedT32(instr);
30895 switch (instr & 0x10300000) {
30898 if (((instr >> 12) & 1) != 0) {
30899 UnallocatedT32(instr);
30902 unsigned rd = ExtractQRegister(instr, 22, 12);
30903 if (((instr >> 16) & 1) != 0) {
30904 UnallocatedT32(instr);
30907 unsigned rn = ExtractQRegister(instr, 7, 16);
30908 if ((instr & 1) != 0) {
30909 UnallocatedT32(instr);
30912 unsigned rm = ExtractQRegister(instr, 5, 0);
30923 if (((instr >> 12) & 1) != 0) {
30924 UnallocatedT32(instr);
30927 unsigned rd = ExtractQRegister(instr, 22, 12);
30928 if (((instr >> 16) & 1) != 0) {
30929 UnallocatedT32(instr);
30932 unsigned rn = ExtractQRegister(instr, 7, 16);
30933 if ((instr & 1) != 0) {
30934 UnallocatedT32(instr);
30937 unsigned rm = ExtractQRegister(instr, 5, 0);
30948 if (((instr >> 12) & 1) != 0) {
30949 UnallocatedT32(instr);
30952 unsigned rd = ExtractQRegister(instr, 22, 12);
30953 if (((instr >> 16) & 1) != 0) {
30954 UnallocatedT32(instr);
30957 unsigned rn = ExtractQRegister(instr, 7, 16);
30958 if ((instr & 1) != 0) {
30959 UnallocatedT32(instr);
30962 unsigned rm = ExtractQRegister(instr, 5, 0);
30969 UnpredictableT32(instr);
30975 if (((instr >> 12) & 1) != 0) {
30976 UnallocatedT32(instr);
30979 unsigned rd = ExtractQRegister(instr, 22, 12);
30980 if (((instr >> 16) & 1) != 0) {
30981 UnallocatedT32(instr);
30984 unsigned rn = ExtractQRegister(instr, 7, 16);
30985 if ((instr & 1) != 0) {
30986 UnallocatedT32(instr);
30989 unsigned rm = ExtractQRegister(instr, 5, 0);
30996 UnpredictableT32(instr);
31001 UnallocatedT32(instr);
31007 UnallocatedT32(instr);
31014 switch (instr & 0x00000c00) {
31017 switch (instr & 0x00380080) {
31020 switch (instr & 0x00000100) {
31023 switch (instr & 0x00000200) {
31025 switch (instr & 0x00000020) {
31028 if (((instr & 0xd00) == 0x100) ||
31029 ((instr & 0xd00) == 0x500) ||
31030 ((instr & 0xd00) == 0x900) ||
31031 ((instr & 0xe00) == 0xe00)) {
31032 UnallocatedT32(instr);
31035 unsigned cmode = (instr >> 8) & 0xf;
31039 UnallocatedT32(instr);
31043 ExtractDRegister(instr, 22, 12);
31047 (instr & 0xf) |
31048 ((instr >> 12) & 0x70) |
31049 ((instr >> 21) & 0x80));
31058 if (((instr & 0x920) == 0x100) ||
31059 ((instr & 0x520) == 0x100) ||
31060 ((instr & 0x820) == 0x20) ||
31061 ((instr & 0x420) == 0x20) ||
31062 ((instr & 0x220) == 0x20) ||
31063 ((instr & 0x120) == 0x120)) {
31064 UnallocatedT32(instr);
31068 ((instr >> 8) & 0xf) |
31069 ((instr >> 1) & 0x10);
31073 UnallocatedT32(instr);
31077 ExtractDRegister(instr, 22, 12);
31081 (instr & 0xf) |
31082 ((instr >> 12) & 0x70) |
31083 ((instr >> 21) & 0x80));
31099 switch (instr & 0x00000020) {
31102 if (((instr & 0x100) == 0x0) ||
31103 ((instr & 0xc00) == 0xc00)) {
31104 UnallocatedT32(instr);
31107 unsigned cmode = (instr >> 8) & 0xf;
31111 UnallocatedT32(instr);
31115 ExtractDRegister(instr, 22, 12);
31119 (instr & 0xf) |
31120 ((instr >> 12) & 0x70) |
31121 ((instr >> 21) & 0x80));
31132 if (((instr & 0x100) == 0x0) ||
31133 ((instr & 0xc00) == 0xc00)) {
31134 UnallocatedT32(instr);
31137 unsigned cmode = (instr >> 8) & 0xf;
31141 UnallocatedT32(instr);
31145 ExtractDRegister(instr, 22, 12);
31149 (instr & 0xf) |
31150 ((instr >> 12) & 0x70) |
31151 ((instr >> 21) & 0x80));
31167 switch (instr & 0x00000300) {
31170 if (((instr & 0x380080) == 0x0)) {
31171 UnallocatedT32(instr);
31175 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
31176 ((instr >> 4) &
31178 (instr >> 28) & 0x1);
31180 UnallocatedT32(instr);
31183 unsigned rd = ExtractDRegister(instr, 22, 12);
31184 unsigned rm = ExtractDRegister(instr, 5, 0);
31185 uint32_t imm6 = (instr >> 16) & 0x3f;
31200 if (((instr & 0x380080) == 0x0)) {
31201 UnallocatedT32(instr);
31205 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
31206 ((instr >> 4) &
31208 (instr >> 28) & 0x1);
31210 UnallocatedT32(instr);
31213 unsigned rd = ExtractDRegister(instr, 22, 12);
31214 unsigned rm = ExtractDRegister(instr, 5, 0);
31215 uint32_t imm6 = (instr >> 16) & 0x3f;
31230 if (((instr & 0x380080) == 0x0)) {
31231 UnallocatedT32(instr);
31235 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
31236 ((instr >> 4) &
31238 (instr >> 28) & 0x1);
31240 UnallocatedT32(instr);
31243 unsigned rd = ExtractDRegister(instr, 22, 12);
31244 unsigned rm = ExtractDRegister(instr, 5, 0);
31245 uint32_t imm6 = (instr >> 16) & 0x3f;
31260 if (((instr & 0x380080) == 0x0)) {
31261 UnallocatedT32(instr);
31265 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
31266 ((instr >> 4) &
31268 (instr >> 28) & 0x1);
31270 UnallocatedT32(instr);
31273 unsigned rd = ExtractDRegister(instr, 22, 12);
31274 unsigned rm = ExtractDRegister(instr, 5, 0);
31275 uint32_t imm6 = (instr >> 16) & 0x3f;
31296 switch (instr & 0x00380080) {
31299 switch (instr & 0x00000100) {
31302 switch (instr & 0x00000200) {
31304 switch (instr & 0x00000020) {
31307 if (((instr & 0xd00) == 0x100) ||
31308 ((instr & 0xd00) == 0x500) ||
31309 ((instr & 0xd00) == 0x900) ||
31310 ((instr & 0xe00) == 0xe00)) {
31311 UnallocatedT32(instr);
31314 unsigned cmode = (instr >> 8) & 0xf;
31318 UnallocatedT32(instr);
31322 ExtractDRegister(instr, 22, 12);
31326 (instr & 0xf) |
31327 ((instr >> 12) & 0x70) |
31328 ((instr >> 21) & 0x80));
31337 if (((instr & 0x920) == 0x100) ||
31338 ((instr & 0x520) == 0x100) ||
31339 ((instr & 0x820) == 0x20) ||
31340 ((instr & 0x420) == 0x20) ||
31341 ((instr & 0x220) == 0x20) ||
31342 ((instr & 0x120) == 0x120)) {
31343 UnallocatedT32(instr);
31347 ((instr >> 8) & 0xf) |
31348 ((instr >> 1) & 0x10);
31352 UnallocatedT32(instr);
31356 ExtractDRegister(instr, 22, 12);
31360 (instr & 0xf) |
31361 ((instr >> 12) & 0x70) |
31362 ((instr >> 21) & 0x80));
31378 switch (instr & 0x00000020) {
31381 if (((instr & 0x100) == 0x0) ||
31382 ((instr & 0xc00) == 0xc00)) {
31383 UnallocatedT32(instr);
31386 unsigned cmode = (instr >> 8) & 0xf;
31390 UnallocatedT32(instr);
31394 ExtractDRegister(instr, 22, 12);
31398 (instr & 0xf) |
31399 ((instr >> 12) & 0x70) |
31400 ((instr >> 21) & 0x80));
31411 if (((instr & 0x100) == 0x0) ||
31412 ((instr & 0xc00) == 0xc00)) {
31413 UnallocatedT32(instr);
31416 unsigned cmode = (instr >> 8) & 0xf;
31420 UnallocatedT32(instr);
31424 ExtractDRegister(instr, 22, 12);
31428 (instr & 0xf) |
31429 ((instr >> 12) & 0x70) |
31430 ((instr >> 21) & 0x80));
31446 switch (instr & 0x00000300) {
31449 if ((instr & 0x10000000) == 0x10000000) {
31450 if (((instr & 0x380080) == 0x0)) {
31451 UnallocatedT32(instr);
31455 ((instr >> 19) & 0x7) |
31456 ((instr >> 4) & 0x8));
31458 UnallocatedT32(instr);
31462 ExtractDRegister(instr, 22, 12);
31463 unsigned rm = ExtractDRegister(instr, 5, 0);
31464 uint32_t imm6 = (instr >> 16) & 0x3f;
31476 UnallocatedT32(instr);
31482 switch (instr & 0x10000000) {
31485 if (((instr & 0x380080) == 0x0)) {
31486 UnallocatedT32(instr);
31490 ((instr >> 19) & 0x7) |
31491 ((instr >> 4) & 0x8));
31493 UnallocatedT32(instr);
31497 ExtractDRegister(instr, 22, 12);
31499 ExtractDRegister(instr, 5, 0);
31500 uint32_t imm6 = (instr >> 16) & 0x3f;
31514 if (((instr & 0x380080) == 0x0)) {
31515 UnallocatedT32(instr);
31519 ((instr >> 19) & 0x7) |
31520 ((instr >> 4) & 0x8));
31522 UnallocatedT32(instr);
31526 ExtractDRegister(instr, 22, 12);
31528 ExtractDRegister(instr, 5, 0);
31529 uint32_t imm6 = (instr >> 16) & 0x3f;
31546 if (((instr & 0x380080) == 0x0)) {
31547 UnallocatedT32(instr);
31551 Dt_L_imm6_2_Decode(((instr >> 19) & 0x7) |
31552 ((instr >> 4) &
31554 (instr >> 28) & 0x1);
31556 UnallocatedT32(instr);
31559 unsigned rd = ExtractDRegister(instr, 22, 12);
31560 unsigned rm = ExtractDRegister(instr, 5, 0);
31561 uint32_t imm6 = (instr >> 16) & 0x3f;
31574 if (((instr & 0x380080) == 0x0)) {
31575 UnallocatedT32(instr);
31579 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
31580 ((instr >> 4) &
31582 (instr >> 28) & 0x1);
31584 UnallocatedT32(instr);
31587 unsigned rd = ExtractDRegister(instr, 22, 12);
31588 unsigned rm = ExtractDRegister(instr, 5, 0);
31589 uint32_t imm6 = (instr >> 16) & 0x3f;
31608 switch (instr & 0x00000080) {
31611 switch (instr & 0x00380000) {
31614 switch (instr & 0x00000100) {
31617 switch (instr & 0x00000200) {
31619 switch (instr & 0x00000020) {
31622 if (((instr & 0xd00) == 0x100) ||
31623 ((instr & 0xd00) == 0x500) ||
31624 ((instr & 0xd00) == 0x900) ||
31625 ((instr & 0xe00) == 0xe00)) {
31626 UnallocatedT32(instr);
31630 (instr >> 8) & 0xf;
31636 UnallocatedT32(instr);
31640 ExtractDRegister(instr,
31645 (instr &
31647 ((instr >>
31650 ((instr >>
31661 if (((instr & 0x920) == 0x100) ||
31662 ((instr & 0x520) == 0x100) ||
31663 ((instr & 0x820) == 0x20) ||
31664 ((instr & 0x420) == 0x20) ||
31665 ((instr & 0x220) == 0x20) ||
31666 ((instr & 0x120) == 0x120)) {
31667 UnallocatedT32(instr);
31671 ((instr >> 8) & 0xf) |
31672 ((instr >> 1) & 0x10);
31678 UnallocatedT32(instr);
31682 ExtractDRegister(instr,
31687 (instr &
31689 ((instr >>
31692 ((instr >>
31710 switch (instr & 0x00000020) {
31713 if (((instr & 0x100) == 0x0) ||
31714 ((instr & 0xc00) == 0xc00)) {
31715 UnallocatedT32(instr);
31718 unsigned cmode = (instr >> 8) & 0xf;
31722 UnallocatedT32(instr);
31726 ExtractDRegister(instr, 22, 12);
31730 (instr & 0xf) |
31731 ((instr >> 12) & 0x70) |
31732 ((instr >> 21) & 0x80));
31743 if (((instr & 0x100) == 0x0) ||
31744 ((instr & 0xc00) == 0xc00)) {
31745 UnallocatedT32(instr);
31748 unsigned cmode = (instr >> 8) & 0xf;
31752 UnallocatedT32(instr);
31756 ExtractDRegister(instr, 22, 12);
31760 (instr & 0xf) |
31761 ((instr >> 12) & 0x70) |
31762 ((instr >> 21) & 0x80));
31779 switch (instr & 0x00000300) {
31782 switch (instr & 0x10000000) {
31785 if (((instr & 0x380000) == 0x0)) {
31786 UnallocatedT32(instr);
31790 (instr >> 19) & 0x7);
31792 UnallocatedT32(instr);
31796 ExtractDRegister(instr, 22, 12);
31797 if ((instr & 1) != 0) {
31798 UnallocatedT32(instr);
31802 ExtractQRegister(instr, 5, 0);
31803 uint32_t imm6 = (instr >> 16) & 0x3f;
31815 if (((instr & 0x380000) == 0x0)) {
31816 UnallocatedT32(instr);
31820 Dt_imm6_2_Decode((instr >> 19) &
31822 (instr >> 28) &
31825 UnallocatedT32(instr);
31829 ExtractDRegister(instr, 22, 12);
31830 if ((instr & 1) != 0) {
31831 UnallocatedT32(instr);
31835 ExtractQRegister(instr, 5, 0);
31836 uint32_t imm6 = (instr >> 16) & 0x3f;
31851 if (((instr & 0x380000) == 0x0)) {
31852 UnallocatedT32(instr);
31856 Dt_imm6_1_Decode((instr >> 19) & 0x7,
31857 (instr >> 28) & 0x1);
31859 UnallocatedT32(instr);
31863 ExtractDRegister(instr, 22, 12);
31864 if ((instr & 1) != 0) {
31865 UnallocatedT32(instr);
31869 ExtractQRegister(instr, 5, 0);
31870 uint32_t imm6 = (instr >> 16) & 0x3f;
31882 if (((instr & 0x380000) == 0x0) ||
31883 ((instr & 0x3f0000) == 0x80000) ||
31884 ((instr & 0x3f0000) == 0x100000) ||
31885 ((instr & 0x3f0000) == 0x200000)) {
31886 UnallocatedT32(instr);
31890 Dt_imm6_4_Decode((instr >> 19) & 0x7,
31891 (instr >> 28) & 0x1);
31893 UnallocatedT32(instr);
31896 if (((instr >> 12) & 1) != 0) {
31897 UnallocatedT32(instr);
31901 ExtractQRegister(instr, 22, 12);
31903 ExtractDRegister(instr, 5, 0);
31904 uint32_t imm6 = (instr >> 16) & 0x3f;
31915 UnallocatedT32(instr);
31922 switch (instr & 0x00000300) {
31925 switch (instr & 0x10000000) {
31928 if (((instr & 0x380000) == 0x0)) {
31929 UnallocatedT32(instr);
31933 (instr >> 19) & 0x7);
31935 UnallocatedT32(instr);
31939 ExtractDRegister(instr, 22, 12);
31940 if ((instr & 1) != 0) {
31941 UnallocatedT32(instr);
31945 ExtractQRegister(instr, 5, 0);
31946 uint32_t imm6 = (instr >> 16) & 0x3f;
31958 if (((instr & 0x380000) == 0x0)) {
31959 UnallocatedT32(instr);
31963 Dt_imm6_2_Decode((instr >> 19) &
31965 (instr >> 28) &
31968 UnallocatedT32(instr);
31972 ExtractDRegister(instr, 22, 12);
31973 if ((instr & 1) != 0) {
31974 UnallocatedT32(instr);
31978 ExtractQRegister(instr, 5, 0);
31979 uint32_t imm6 = (instr >> 16) & 0x3f;
31994 if (((instr & 0x380000) == 0x0)) {
31995 UnallocatedT32(instr);
31999 Dt_imm6_1_Decode((instr >> 19) & 0x7,
32000 (instr >> 28) & 0x1);
32002 UnallocatedT32(instr);
32006 ExtractDRegister(instr, 22, 12);
32007 if ((instr & 1) != 0) {
32008 UnallocatedT32(instr);
32012 ExtractQRegister(instr, 5, 0);
32013 uint32_t imm6 = (instr >> 16) & 0x3f;
32025 if (((instr & 0x380000) == 0x0) ||
32026 ((instr & 0x3f0000) == 0x80000) ||
32027 ((instr & 0x3f0000) == 0x100000) ||
32028 ((instr & 0x3f0000) == 0x200000)) {
32029 UnallocatedT32(instr);
32033 Dt_imm6_4_Decode((instr >> 19) & 0x7,
32034 (instr >> 28) & 0x1);
32036 UnallocatedT32(instr);
32039 if (((instr >> 12) & 1) != 0) {
32040 UnallocatedT32(instr);
32044 ExtractQRegister(instr, 22, 12);
32046 ExtractDRegister(instr, 5, 0);
32047 uint32_t imm6 = (instr >> 16) & 0x3f;
32058 UnallocatedT32(instr);
32065 switch (instr & 0x00000300) {
32068 switch (instr & 0x10000000) {
32071 if (((instr & 0x380000) == 0x0)) {
32072 UnallocatedT32(instr);
32076 (instr >> 19) & 0x7);
32078 UnallocatedT32(instr);
32082 ExtractDRegister(instr, 22, 12);
32083 if ((instr & 1) != 0) {
32084 UnallocatedT32(instr);
32088 ExtractQRegister(instr, 5, 0);
32089 uint32_t imm6 = (instr >> 16) & 0x3f;
32101 if (((instr & 0x380000) == 0x0)) {
32102 UnallocatedT32(instr);
32106 Dt_imm6_2_Decode((instr >> 19) &
32108 (instr >> 28) &
32111 UnallocatedT32(instr);
32115 ExtractDRegister(instr, 22, 12);
32116 if ((instr & 1) != 0) {
32117 UnallocatedT32(instr);
32121 ExtractQRegister(instr, 5, 0);
32122 uint32_t imm6 = (instr >> 16) & 0x3f;
32137 if (((instr & 0x380000) == 0x0)) {
32138 UnallocatedT32(instr);
32142 Dt_imm6_1_Decode((instr >> 19) & 0x7,
32143 (instr >> 28) & 0x1);
32145 UnallocatedT32(instr);
32149 ExtractDRegister(instr, 22, 12);
32150 if ((instr & 1) != 0) {
32151 UnallocatedT32(instr);
32155 ExtractQRegister(instr, 5, 0);
32156 uint32_t imm6 = (instr >> 16) & 0x3f;
32168 if (((instr & 0x380000) == 0x0) ||
32169 ((instr & 0x3f0000) == 0x80000) ||
32170 ((instr & 0x3f0000) == 0x100000) ||
32171 ((instr & 0x3f0000) == 0x200000)) {
32172 UnallocatedT32(instr);
32176 Dt_imm6_4_Decode((instr >> 19) & 0x7,
32177 (instr >> 28) & 0x1);
32179 UnallocatedT32(instr);
32182 if (((instr >> 12) & 1) != 0) {
32183 UnallocatedT32(instr);
32187 ExtractQRegister(instr, 22, 12);
32189 ExtractDRegister(instr, 5, 0);
32190 uint32_t imm6 = (instr >> 16) & 0x3f;
32201 UnallocatedT32(instr);
32208 switch (instr & 0x00000300) {
32211 switch (instr & 0x10000000) {
32214 if (((instr & 0x380000) == 0x0)) {
32215 UnallocatedT32(instr);
32219 (instr >> 19) & 0x7);
32221 UnallocatedT32(instr);
32225 ExtractDRegister(instr, 22, 12);
32226 if ((instr & 1) != 0) {
32227 UnallocatedT32(instr);
32231 ExtractQRegister(instr, 5, 0);
32232 uint32_t imm6 = (instr >> 16) & 0x3f;
32244 if (((instr & 0x380000) == 0x0)) {
32245 UnallocatedT32(instr);
32249 Dt_imm6_2_Decode((instr >> 19) &
32251 (instr >> 28) &
32254 UnallocatedT32(instr);
32258 ExtractDRegister(instr, 22, 12);
32259 if ((instr & 1) != 0) {
32260 UnallocatedT32(instr);
32264 ExtractQRegister(instr, 5, 0);
32265 uint32_t imm6 = (instr >> 16) & 0x3f;
32280 if (((instr & 0x380000) == 0x0)) {
32281 UnallocatedT32(instr);
32285 Dt_imm6_1_Decode((instr >> 19) & 0x7,
32286 (instr >> 28) & 0x1);
32288 UnallocatedT32(instr);
32292 ExtractDRegister(instr, 22, 12);
32293 if ((instr & 1) != 0) {
32294 UnallocatedT32(instr);
32298 ExtractQRegister(instr, 5, 0);
32299 uint32_t imm6 = (instr >> 16) & 0x3f;
32311 if (((instr & 0x380000) == 0x0) ||
32312 ((instr & 0x3f0000) == 0x80000) ||
32313 ((instr & 0x3f0000) == 0x100000) ||
32314 ((instr & 0x3f0000) == 0x200000)) {
32315 UnallocatedT32(instr);
32319 Dt_imm6_4_Decode((instr >> 19) & 0x7,
32320 (instr >> 28) & 0x1);
32322 UnallocatedT32(instr);
32325 if (((instr >> 12) & 1) != 0) {
32326 UnallocatedT32(instr);
32330 ExtractQRegister(instr, 22, 12);
32332 ExtractDRegister(instr, 5, 0);
32333 uint32_t imm6 = (instr >> 16) & 0x3f;
32344 UnallocatedT32(instr);
32350 switch (instr & 0x00000300) {
32353 switch (instr & 0x10000000) {
32356 if (((instr & 0x380000) == 0x0)) {
32357 UnallocatedT32(instr);
32361 (instr >> 19) & 0x7);
32363 UnallocatedT32(instr);
32367 ExtractDRegister(instr, 22, 12);
32368 if ((instr & 1) != 0) {
32369 UnallocatedT32(instr);
32373 ExtractQRegister(instr, 5, 0);
32374 uint32_t imm6 = (instr >> 16) & 0x3f;
32386 if (((instr & 0x380000) == 0x0)) {
32387 UnallocatedT32(instr);
32391 Dt_imm6_2_Decode((instr >> 19) &
32393 (instr >> 28) &
32396 UnallocatedT32(instr);
32400 ExtractDRegister(instr, 22, 12);
32401 if ((instr & 1) != 0) {
32402 UnallocatedT32(instr);
32406 ExtractQRegister(instr, 5, 0);
32407 uint32_t imm6 = (instr >> 16) & 0x3f;
32422 if (((instr & 0x380000) == 0x0)) {
32423 UnallocatedT32(instr);
32427 Dt_imm6_1_Decode((instr >> 19) & 0x7,
32428 (instr >> 28) & 0x1);
32430 UnallocatedT32(instr);
32434 ExtractDRegister(instr, 22, 12);
32435 if ((instr & 1) != 0) {
32436 UnallocatedT32(instr);
32440 ExtractQRegister(instr, 5, 0);
32441 uint32_t imm6 = (instr >> 16) & 0x3f;
32453 switch (instr & 0x00070000) {
32456 switch (instr & 0x003f0000) {
32459 if (((instr & 0x380000) == 0x0) ||
32460 ((instr & 0x380000) ==
32462 ((instr & 0x380000) ==
32464 ((instr & 0x380000) ==
32466 ((instr & 0x380000) ==
32468 UnallocatedT32(instr);
32472 ((instr >> 19) & 0x7) |
32473 ((instr >> 25) & 0x8));
32476 UnallocatedT32(instr);
32479 if (((instr >> 12) & 1) != 0) {
32480 UnallocatedT32(instr);
32484 ExtractQRegister(instr,
32488 ExtractDRegister(instr, 5, 0);
32498 if (((instr & 0x380000) == 0x0) ||
32499 ((instr & 0x3f0000) ==
32501 ((instr & 0x3f0000) ==
32503 ((instr & 0x3f0000) ==
32505 UnallocatedT32(instr);
32509 Dt_imm6_4_Decode((instr >>
32512 (instr >>
32517 UnallocatedT32(instr);
32520 if (((instr >> 12) & 1) != 0) {
32521 UnallocatedT32(instr);
32525 ExtractQRegister(instr,
32529 ExtractDRegister(instr, 5, 0);
32531 (instr >> 16) & 0x3f;
32544 if (((instr & 0x380000) == 0x0) ||
32545 ((instr & 0x3f0000) ==
32547 ((instr & 0x3f0000) ==
32549 ((instr & 0x3f0000) ==
32551 UnallocatedT32(instr);
32555 Dt_imm6_4_Decode((instr >>
32558 (instr >>
32563 UnallocatedT32(instr);
32566 if (((instr >> 12) & 1) != 0) {
32567 UnallocatedT32(instr);
32571 ExtractQRegister(instr,
32575 ExtractDRegister(instr, 5, 0);
32577 (instr >> 16) & 0x3f;
32590 if (((instr & 0x380000) == 0x0) ||
32591 ((instr & 0x3f0000) ==
32593 ((instr & 0x3f0000) ==
32595 ((instr & 0x3f0000) ==
32597 UnallocatedT32(instr);
32601 Dt_imm6_4_Decode((instr >>
32604 (instr >>
32609 UnallocatedT32(instr);
32612 if (((instr >> 12) & 1) != 0) {
32613 UnallocatedT32(instr);
32617 ExtractQRegister(instr,
32621 ExtractDRegister(instr, 5, 0);
32623 (instr >> 16) & 0x3f;
32636 if (((instr & 0x380000) == 0x0) ||
32637 ((instr & 0x3f0000) ==
32639 ((instr & 0x3f0000) ==
32641 ((instr & 0x3f0000) ==
32643 UnallocatedT32(instr);
32647 Dt_imm6_4_Decode((instr >>
32650 (instr >>
32655 UnallocatedT32(instr);
32658 if (((instr >> 12) & 1) != 0) {
32659 UnallocatedT32(instr);
32663 ExtractQRegister(instr,
32667 ExtractDRegister(instr, 5, 0);
32669 (instr >> 16) & 0x3f;
32682 if (((instr & 0x380000) == 0x0) ||
32683 ((instr & 0x3f0000) ==
32685 ((instr & 0x3f0000) ==
32687 ((instr & 0x3f0000) ==
32689 UnallocatedT32(instr);
32693 Dt_imm6_4_Decode((instr >>
32696 (instr >>
32701 UnallocatedT32(instr);
32704 if (((instr >> 12) & 1) != 0) {
32705 UnallocatedT32(instr);
32709 ExtractQRegister(instr,
32713 ExtractDRegister(instr, 5, 0);
32715 (instr >> 16) & 0x3f;
32728 if (((instr & 0x380000) == 0x0) ||
32729 ((instr & 0x3f0000) ==
32731 ((instr & 0x3f0000) ==
32733 ((instr & 0x3f0000) ==
32735 UnallocatedT32(instr);
32739 Dt_imm6_4_Decode((instr >>
32742 (instr >>
32747 UnallocatedT32(instr);
32750 if (((instr >> 12) & 1) != 0) {
32751 UnallocatedT32(instr);
32755 ExtractQRegister(instr,
32759 ExtractDRegister(instr, 5, 0);
32761 (instr >> 16) & 0x3f;
32774 if (((instr & 0x380000) == 0x0) ||
32775 ((instr & 0x3f0000) ==
32777 ((instr & 0x3f0000) ==
32779 ((instr & 0x3f0000) ==
32781 UnallocatedT32(instr);
32785 Dt_imm6_4_Decode((instr >>
32788 (instr >>
32793 UnallocatedT32(instr);
32796 if (((instr >> 12) & 1) != 0) {
32797 UnallocatedT32(instr);
32801 ExtractQRegister(instr,
32805 ExtractDRegister(instr, 5, 0);
32807 (instr >> 16) & 0x3f;
32820 if (((instr & 0x380000) == 0x0) ||
32821 ((instr & 0x380000) ==
32823 ((instr & 0x380000) ==
32825 ((instr & 0x380000) ==
32827 ((instr & 0x380000) ==
32829 UnallocatedT32(instr);
32833 ((instr >> 19) & 0x7) |
32834 ((instr >> 25) & 0x8));
32837 UnallocatedT32(instr);
32840 if (((instr >> 12) & 1) != 0) {
32841 UnallocatedT32(instr);
32845 ExtractQRegister(instr,
32849 ExtractDRegister(instr, 5, 0);
32859 if (((instr & 0x380000) == 0x0) ||
32860 ((instr & 0x3f0000) ==
32862 ((instr & 0x3f0000) ==
32864 ((instr & 0x3f0000) ==
32866 UnallocatedT32(instr);
32870 Dt_imm6_4_Decode((instr >>
32873 (instr >>
32878 UnallocatedT32(instr);
32881 if (((instr >> 12) & 1) != 0) {
32882 UnallocatedT32(instr);
32886 ExtractQRegister(instr,
32890 ExtractDRegister(instr, 5, 0);
32892 (instr >> 16) & 0x3f;
32905 if (((instr & 0x380000) == 0x0) ||
32906 ((instr & 0x3f0000) ==
32908 ((instr & 0x3f0000) ==
32910 ((instr & 0x3f0000) ==
32912 UnallocatedT32(instr);
32916 Dt_imm6_4_Decode((instr >>
32919 (instr >>
32924 UnallocatedT32(instr);
32927 if (((instr >> 12) & 1) != 0) {
32928 UnallocatedT32(instr);
32932 ExtractQRegister(instr,
32936 ExtractDRegister(instr, 5, 0);
32938 (instr >> 16) & 0x3f;
32951 if (((instr & 0x380000) == 0x0) ||
32952 ((instr & 0x3f0000) ==
32954 ((instr & 0x3f0000) ==
32956 ((instr & 0x3f0000) ==
32958 UnallocatedT32(instr);
32962 Dt_imm6_4_Decode((instr >>
32965 (instr >>
32970 UnallocatedT32(instr);
32973 if (((instr >> 12) & 1) != 0) {
32974 UnallocatedT32(instr);
32978 ExtractQRegister(instr,
32982 ExtractDRegister(instr, 5, 0);
32984 (instr >> 16) & 0x3f;
32997 if (((instr & 0x380000) == 0x0) ||
32998 ((instr & 0x3f0000) ==
33000 ((instr & 0x3f0000) ==
33002 ((instr & 0x3f0000) ==
33004 UnallocatedT32(instr);
33008 Dt_imm6_4_Decode((instr >>
33011 (instr >>
33016 UnallocatedT32(instr);
33019 if (((instr >> 12) & 1) != 0) {
33020 UnallocatedT32(instr);
33024 ExtractQRegister(instr,
33028 ExtractDRegister(instr, 5, 0);
33030 (instr >> 16) & 0x3f;
33043 if (((instr & 0x380000) == 0x0) ||
33044 ((instr & 0x3f0000) ==
33046 ((instr & 0x3f0000) ==
33048 ((instr & 0x3f0000) ==
33050 UnallocatedT32(instr);
33054 Dt_imm6_4_Decode((instr >>
33057 (instr >>
33062 UnallocatedT32(instr);
33065 if (((instr >> 12) & 1) != 0) {
33066 UnallocatedT32(instr);
33070 ExtractQRegister(instr,
33074 ExtractDRegister(instr, 5, 0);
33076 (instr >> 16) & 0x3f;
33089 if (((instr & 0x380000) == 0x0) ||
33090 ((instr & 0x3f0000) ==
33092 ((instr & 0x3f0000) ==
33094 ((instr & 0x3f0000) ==
33096 UnallocatedT32(instr);
33100 Dt_imm6_4_Decode((instr >>
33103 (instr >>
33108 UnallocatedT32(instr);
33111 if (((instr >> 12) & 1) != 0) {
33112 UnallocatedT32(instr);
33116 ExtractQRegister(instr,
33120 ExtractDRegister(instr, 5, 0);
33122 (instr >> 16) & 0x3f;
33135 if (((instr & 0x380000) == 0x0) ||
33136 ((instr & 0x3f0000) ==
33138 ((instr & 0x3f0000) ==
33140 ((instr & 0x3f0000) ==
33142 UnallocatedT32(instr);
33146 Dt_imm6_4_Decode((instr >>
33149 (instr >>
33154 UnallocatedT32(instr);
33157 if (((instr >> 12) & 1) != 0) {
33158 UnallocatedT32(instr);
33162 ExtractQRegister(instr,
33166 ExtractDRegister(instr, 5, 0);
33168 (instr >> 16) & 0x3f;
33181 if (((instr & 0x380000) == 0x0) ||
33182 ((instr & 0x3f0000) ==
33184 ((instr & 0x3f0000) ==
33186 ((instr & 0x3f0000) ==
33188 UnallocatedT32(instr);
33192 Dt_imm6_4_Decode((instr >>
33195 (instr >>
33200 UnallocatedT32(instr);
33203 if (((instr >> 12) & 1) != 0) {
33204 UnallocatedT32(instr);
33208 ExtractQRegister(instr,
33212 ExtractDRegister(instr, 5, 0);
33214 (instr >> 16) & 0x3f;
33227 if (((instr & 0x380000) == 0x0) ||
33228 ((instr & 0x3f0000) ==
33230 ((instr & 0x3f0000) ==
33232 ((instr & 0x3f0000) ==
33234 UnallocatedT32(instr);
33238 Dt_imm6_4_Decode((instr >>
33241 (instr >>
33246 UnallocatedT32(instr);
33249 if (((instr >> 12) & 1) != 0) {
33250 UnallocatedT32(instr);
33254 ExtractQRegister(instr,
33258 ExtractDRegister(instr, 5, 0);
33260 (instr >> 16) & 0x3f;
33273 if (((instr & 0x380000) == 0x0) ||
33274 ((instr & 0x3f0000) ==
33276 ((instr & 0x3f0000) ==
33278 ((instr & 0x3f0000) ==
33280 UnallocatedT32(instr);
33284 Dt_imm6_4_Decode((instr >>
33287 (instr >>
33292 UnallocatedT32(instr);
33295 if (((instr >> 12) & 1) != 0) {
33296 UnallocatedT32(instr);
33300 ExtractQRegister(instr,
33304 ExtractDRegister(instr, 5, 0);
33306 (instr >> 16) & 0x3f;
33319 if (((instr & 0x380000) == 0x0) ||
33320 ((instr & 0x3f0000) ==
33322 ((instr & 0x3f0000) ==
33324 ((instr & 0x3f0000) ==
33326 UnallocatedT32(instr);
33330 Dt_imm6_4_Decode((instr >>
33333 (instr >>
33338 UnallocatedT32(instr);
33341 if (((instr >> 12) & 1) != 0) {
33342 UnallocatedT32(instr);
33346 ExtractQRegister(instr,
33350 ExtractDRegister(instr, 5, 0);
33352 (instr >> 16) & 0x3f;
33365 if (((instr & 0x380000) == 0x0) ||
33366 ((instr & 0x3f0000) ==
33368 ((instr & 0x3f0000) ==
33370 ((instr & 0x3f0000) ==
33372 UnallocatedT32(instr);
33376 Dt_imm6_4_Decode((instr >>
33379 (instr >>
33384 UnallocatedT32(instr);
33387 if (((instr >> 12) & 1) != 0) {
33388 UnallocatedT32(instr);
33392 ExtractQRegister(instr,
33396 ExtractDRegister(instr, 5, 0);
33398 (instr >> 16) & 0x3f;
33411 if (((instr & 0x380000) == 0x0) ||
33412 ((instr & 0x3f0000) ==
33414 ((instr & 0x3f0000) ==
33416 ((instr & 0x3f0000) ==
33418 UnallocatedT32(instr);
33422 Dt_imm6_4_Decode((instr >>
33425 (instr >>
33430 UnallocatedT32(instr);
33433 if (((instr >> 12) & 1) != 0) {
33434 UnallocatedT32(instr);
33438 ExtractQRegister(instr,
33442 ExtractDRegister(instr, 5, 0);
33444 (instr >> 16) & 0x3f;
33457 if (((instr & 0x380000) == 0x0) ||
33458 ((instr & 0x3f0000) ==
33460 ((instr & 0x3f0000) ==
33462 ((instr & 0x3f0000) ==
33464 UnallocatedT32(instr);
33468 Dt_imm6_4_Decode((instr >>
33471 (instr >>
33476 UnallocatedT32(instr);
33479 if (((instr >> 12) & 1) != 0) {
33480 UnallocatedT32(instr);
33484 ExtractQRegister(instr,
33488 ExtractDRegister(instr, 5, 0);
33490 (instr >> 16) & 0x3f;
33503 if (((instr & 0x380000) == 0x0) ||
33504 ((instr & 0x3f0000) ==
33506 ((instr & 0x3f0000) ==
33508 ((instr & 0x3f0000) ==
33510 UnallocatedT32(instr);
33514 Dt_imm6_4_Decode((instr >>
33517 (instr >>
33522 UnallocatedT32(instr);
33525 if (((instr >> 12) & 1) != 0) {
33526 UnallocatedT32(instr);
33530 ExtractQRegister(instr,
33534 ExtractDRegister(instr, 5, 0);
33536 (instr >> 16) & 0x3f;
33549 if (((instr & 0x380000) == 0x0) ||
33550 ((instr & 0x380000) ==
33552 ((instr & 0x380000) ==
33554 ((instr & 0x380000) ==
33556 ((instr & 0x380000) ==
33558 UnallocatedT32(instr);
33562 ((instr >> 19) & 0x7) |
33563 ((instr >> 25) & 0x8));
33566 UnallocatedT32(instr);
33569 if (((instr >> 12) & 1) != 0) {
33570 UnallocatedT32(instr);
33574 ExtractQRegister(instr,
33578 ExtractDRegister(instr, 5, 0);
33588 if (((instr & 0x380000) == 0x0) ||
33589 ((instr & 0x3f0000) ==
33591 ((instr & 0x3f0000) ==
33593 ((instr & 0x3f0000) ==
33595 UnallocatedT32(instr);
33599 Dt_imm6_4_Decode((instr >>
33602 (instr >>
33607 UnallocatedT32(instr);
33610 if (((instr >> 12) & 1) != 0) {
33611 UnallocatedT32(instr);
33615 ExtractQRegister(instr,
33619 ExtractDRegister(instr, 5, 0);
33621 (instr >> 16) & 0x3f;
33634 if (((instr & 0x380000) == 0x0) ||
33635 ((instr & 0x3f0000) ==
33637 ((instr & 0x3f0000) ==
33639 ((instr & 0x3f0000) ==
33641 UnallocatedT32(instr);
33645 Dt_imm6_4_Decode((instr >>
33648 (instr >>
33653 UnallocatedT32(instr);
33656 if (((instr >> 12) & 1) != 0) {
33657 UnallocatedT32(instr);
33661 ExtractQRegister(instr,
33665 ExtractDRegister(instr, 5, 0);
33667 (instr >> 16) & 0x3f;
33680 if (((instr & 0x380000) == 0x0) ||
33681 ((instr & 0x3f0000) ==
33683 ((instr & 0x3f0000) ==
33685 ((instr & 0x3f0000) ==
33687 UnallocatedT32(instr);
33691 Dt_imm6_4_Decode((instr >>
33694 (instr >>
33699 UnallocatedT32(instr);
33702 if (((instr >> 12) & 1) != 0) {
33703 UnallocatedT32(instr);
33707 ExtractQRegister(instr,
33711 ExtractDRegister(instr, 5, 0);
33713 (instr >> 16) & 0x3f;
33726 if (((instr & 0x380000) == 0x0) ||
33727 ((instr & 0x3f0000) ==
33729 ((instr & 0x3f0000) ==
33731 ((instr & 0x3f0000) ==
33733 UnallocatedT32(instr);
33737 Dt_imm6_4_Decode((instr >>
33740 (instr >>
33745 UnallocatedT32(instr);
33748 if (((instr >> 12) & 1) != 0) {
33749 UnallocatedT32(instr);
33753 ExtractQRegister(instr,
33757 ExtractDRegister(instr, 5, 0);
33759 (instr >> 16) & 0x3f;
33772 if (((instr & 0x380000) == 0x0) ||
33773 ((instr & 0x3f0000) ==
33775 ((instr & 0x3f0000) ==
33777 ((instr & 0x3f0000) ==
33779 UnallocatedT32(instr);
33783 Dt_imm6_4_Decode((instr >>
33786 (instr >>
33791 UnallocatedT32(instr);
33794 if (((instr >> 12) & 1) != 0) {
33795 UnallocatedT32(instr);
33799 ExtractQRegister(instr,
33803 ExtractDRegister(instr, 5, 0);
33805 (instr >> 16) & 0x3f;
33818 if (((instr & 0x380000) == 0x0) ||
33819 ((instr & 0x3f0000) ==
33821 ((instr & 0x3f0000) ==
33823 ((instr & 0x3f0000) ==
33825 UnallocatedT32(instr);
33829 Dt_imm6_4_Decode((instr >>
33832 (instr >>
33837 UnallocatedT32(instr);
33840 if (((instr >> 12) & 1) != 0) {
33841 UnallocatedT32(instr);
33845 ExtractQRegister(instr,
33849 ExtractDRegister(instr, 5, 0);
33851 (instr >> 16) & 0x3f;
33864 if (((instr & 0x380000) == 0x0) ||
33865 ((instr & 0x3f0000) ==
33867 ((instr & 0x3f0000) ==
33869 ((instr & 0x3f0000) ==
33871 UnallocatedT32(instr);
33875 Dt_imm6_4_Decode((instr >>
33878 (instr >>
33883 UnallocatedT32(instr);
33886 if (((instr >> 12) & 1) != 0) {
33887 UnallocatedT32(instr);
33891 ExtractQRegister(instr,
33895 ExtractDRegister(instr, 5, 0);
33897 (instr >> 16) & 0x3f;
33910 if (((instr & 0x380000) == 0x0) ||
33911 ((instr & 0x3f0000) ==
33913 ((instr & 0x3f0000) ==
33915 ((instr & 0x3f0000) ==
33917 UnallocatedT32(instr);
33921 Dt_imm6_4_Decode((instr >>
33924 (instr >>
33929 UnallocatedT32(instr);
33932 if (((instr >> 12) & 1) != 0) {
33933 UnallocatedT32(instr);
33937 ExtractQRegister(instr,
33941 ExtractDRegister(instr, 5, 0);
33943 (instr >> 16) & 0x3f;
33956 if (((instr & 0x380000) == 0x0) ||
33957 ((instr & 0x3f0000) ==
33959 ((instr & 0x3f0000) ==
33961 ((instr & 0x3f0000) ==
33963 UnallocatedT32(instr);
33967 Dt_imm6_4_Decode((instr >>
33970 (instr >>
33975 UnallocatedT32(instr);
33978 if (((instr >> 12) & 1) != 0) {
33979 UnallocatedT32(instr);
33983 ExtractQRegister(instr,
33987 ExtractDRegister(instr, 5, 0);
33989 (instr >> 16) & 0x3f;
34002 if (((instr & 0x380000) == 0x0) ||
34003 ((instr & 0x3f0000) ==
34005 ((instr & 0x3f0000) ==
34007 ((instr & 0x3f0000) ==
34009 UnallocatedT32(instr);
34013 Dt_imm6_4_Decode((instr >>
34016 (instr >>
34021 UnallocatedT32(instr);
34024 if (((instr >> 12) & 1) != 0) {
34025 UnallocatedT32(instr);
34029 ExtractQRegister(instr,
34033 ExtractDRegister(instr, 5, 0);
34035 (instr >> 16) & 0x3f;
34048 if (((instr & 0x380000) == 0x0) ||
34049 ((instr & 0x3f0000) ==
34051 ((instr & 0x3f0000) ==
34053 ((instr & 0x3f0000) ==
34055 UnallocatedT32(instr);
34059 Dt_imm6_4_Decode((instr >>
34062 (instr >>
34067 UnallocatedT32(instr);
34070 if (((instr >> 12) & 1) != 0) {
34071 UnallocatedT32(instr);
34075 ExtractQRegister(instr,
34079 ExtractDRegister(instr, 5, 0);
34081 (instr >> 16) & 0x3f;
34094 if (((instr & 0x380000) == 0x0) ||
34095 ((instr & 0x3f0000) ==
34097 ((instr & 0x3f0000) ==
34099 ((instr & 0x3f0000) ==
34101 UnallocatedT32(instr);
34105 Dt_imm6_4_Decode((instr >>
34108 (instr >>
34113 UnallocatedT32(instr);
34116 if (((instr >> 12) & 1) != 0) {
34117 UnallocatedT32(instr);
34121 ExtractQRegister(instr,
34125 ExtractDRegister(instr, 5, 0);
34127 (instr >> 16) & 0x3f;
34140 if (((instr & 0x380000) == 0x0) ||
34141 ((instr & 0x3f0000) ==
34143 ((instr & 0x3f0000) ==
34145 ((instr & 0x3f0000) ==
34147 UnallocatedT32(instr);
34151 Dt_imm6_4_Decode((instr >>
34154 (instr >>
34159 UnallocatedT32(instr);
34162 if (((instr >> 12) & 1) != 0) {
34163 UnallocatedT32(instr);
34167 ExtractQRegister(instr,
34171 ExtractDRegister(instr, 5, 0);
34173 (instr >> 16) & 0x3f;
34186 if (((instr & 0x380000) == 0x0) ||
34187 ((instr & 0x3f0000) ==
34189 ((instr & 0x3f0000) ==
34191 ((instr & 0x3f0000) ==
34193 UnallocatedT32(instr);
34197 Dt_imm6_4_Decode((instr >>
34200 (instr >>
34205 UnallocatedT32(instr);
34208 if (((instr >> 12) & 1) != 0) {
34209 UnallocatedT32(instr);
34213 ExtractQRegister(instr,
34217 ExtractDRegister(instr, 5, 0);
34219 (instr >> 16) & 0x3f;
34232 if (((instr & 0x380000) == 0x0) ||
34233 ((instr & 0x3f0000) ==
34235 ((instr & 0x3f0000) ==
34237 ((instr & 0x3f0000) ==
34239 UnallocatedT32(instr);
34243 Dt_imm6_4_Decode((instr >>
34246 (instr >>
34251 UnallocatedT32(instr);
34254 if (((instr >> 12) & 1) != 0) {
34255 UnallocatedT32(instr);
34259 ExtractQRegister(instr,
34263 ExtractDRegister(instr, 5, 0);
34265 (instr >> 16) & 0x3f;
34278 if (((instr & 0x380000) == 0x0) ||
34279 ((instr & 0x3f0000) ==
34281 ((instr & 0x3f0000) ==
34283 ((instr & 0x3f0000) ==
34285 UnallocatedT32(instr);
34289 Dt_imm6_4_Decode((instr >>
34292 (instr >>
34297 UnallocatedT32(instr);
34300 if (((instr >> 12) & 1) != 0) {
34301 UnallocatedT32(instr);
34305 ExtractQRegister(instr,
34309 ExtractDRegister(instr, 5, 0);
34311 (instr >> 16) & 0x3f;
34324 if (((instr & 0x380000) == 0x0) ||
34325 ((instr & 0x3f0000) ==
34327 ((instr & 0x3f0000) ==
34329 ((instr & 0x3f0000) ==
34331 UnallocatedT32(instr);
34335 Dt_imm6_4_Decode((instr >>
34338 (instr >>
34343 UnallocatedT32(instr);
34346 if (((instr >> 12) & 1) != 0) {
34347 UnallocatedT32(instr);
34351 ExtractQRegister(instr,
34355 ExtractDRegister(instr, 5, 0);
34357 (instr >> 16) & 0x3f;
34370 if (((instr & 0x380000) == 0x0) ||
34371 ((instr & 0x3f0000) ==
34373 ((instr & 0x3f0000) ==
34375 ((instr & 0x3f0000) ==
34377 UnallocatedT32(instr);
34381 Dt_imm6_4_Decode((instr >>
34384 (instr >>
34389 UnallocatedT32(instr);
34392 if (((instr >> 12) & 1) != 0) {
34393 UnallocatedT32(instr);
34397 ExtractQRegister(instr,
34401 ExtractDRegister(instr, 5, 0);
34403 (instr >> 16) & 0x3f;
34416 if (((instr & 0x380000) == 0x0) ||
34417 ((instr & 0x3f0000) ==
34419 ((instr & 0x3f0000) ==
34421 ((instr & 0x3f0000) ==
34423 UnallocatedT32(instr);
34427 Dt_imm6_4_Decode((instr >>
34430 (instr >>
34435 UnallocatedT32(instr);
34438 if (((instr >> 12) & 1) != 0) {
34439 UnallocatedT32(instr);
34443 ExtractQRegister(instr,
34447 ExtractDRegister(instr, 5, 0);
34449 (instr >> 16) & 0x3f;
34462 if (((instr & 0x380000) == 0x0) ||
34463 ((instr & 0x3f0000) ==
34465 ((instr & 0x3f0000) ==
34467 ((instr & 0x3f0000) ==
34469 UnallocatedT32(instr);
34473 Dt_imm6_4_Decode((instr >>
34476 (instr >>
34481 UnallocatedT32(instr);
34484 if (((instr >> 12) & 1) != 0) {
34485 UnallocatedT32(instr);
34489 ExtractQRegister(instr,
34493 ExtractDRegister(instr, 5, 0);
34495 (instr >> 16) & 0x3f;
34508 if (((instr & 0x380000) == 0x0) ||
34509 ((instr & 0x3f0000) ==
34511 ((instr & 0x3f0000) ==
34513 ((instr & 0x3f0000) ==
34515 UnallocatedT32(instr);
34519 Dt_imm6_4_Decode((instr >>
34522 (instr >>
34527 UnallocatedT32(instr);
34530 if (((instr >> 12) & 1) != 0) {
34531 UnallocatedT32(instr);
34535 ExtractQRegister(instr,
34539 ExtractDRegister(instr, 5, 0);
34541 (instr >> 16) & 0x3f;
34554 if (((instr & 0x380000) == 0x0) ||
34555 ((instr & 0x3f0000) ==
34557 ((instr & 0x3f0000) ==
34559 ((instr & 0x3f0000) ==
34561 UnallocatedT32(instr);
34565 Dt_imm6_4_Decode((instr >>
34568 (instr >>
34573 UnallocatedT32(instr);
34576 if (((instr >> 12) & 1) != 0) {
34577 UnallocatedT32(instr);
34581 ExtractQRegister(instr,
34585 ExtractDRegister(instr, 5, 0);
34587 (instr >> 16) & 0x3f;
34600 if (((instr & 0x380000) == 0x0) ||
34601 ((instr & 0x3f0000) ==
34603 ((instr & 0x3f0000) ==
34605 ((instr & 0x3f0000) ==
34607 UnallocatedT32(instr);
34611 Dt_imm6_4_Decode((instr >>
34614 (instr >>
34619 UnallocatedT32(instr);
34622 if (((instr >> 12) & 1) != 0) {
34623 UnallocatedT32(instr);
34627 ExtractQRegister(instr,
34631 ExtractDRegister(instr, 5, 0);
34633 (instr >> 16) & 0x3f;
34646 if (((instr & 0x380000) == 0x0) ||
34647 ((instr & 0x3f0000) ==
34649 ((instr & 0x3f0000) ==
34651 ((instr & 0x3f0000) ==
34653 UnallocatedT32(instr);
34657 Dt_imm6_4_Decode((instr >>
34660 (instr >>
34665 UnallocatedT32(instr);
34668 if (((instr >> 12) & 1) != 0) {
34669 UnallocatedT32(instr);
34673 ExtractQRegister(instr,
34677 ExtractDRegister(instr, 5, 0);
34679 (instr >> 16) & 0x3f;
34692 if (((instr & 0x380000) == 0x0) ||
34693 ((instr & 0x3f0000) ==
34695 ((instr & 0x3f0000) ==
34697 ((instr & 0x3f0000) ==
34699 UnallocatedT32(instr);
34703 Dt_imm6_4_Decode((instr >>
34706 (instr >>
34711 UnallocatedT32(instr);
34714 if (((instr >> 12) & 1) != 0) {
34715 UnallocatedT32(instr);
34719 ExtractQRegister(instr,
34723 ExtractDRegister(instr, 5, 0);
34725 (instr >> 16) & 0x3f;
34738 if (((instr & 0x380000) == 0x0) ||
34739 ((instr & 0x3f0000) ==
34741 ((instr & 0x3f0000) ==
34743 ((instr & 0x3f0000) ==
34745 UnallocatedT32(instr);
34749 Dt_imm6_4_Decode((instr >>
34752 (instr >>
34757 UnallocatedT32(instr);
34760 if (((instr >> 12) & 1) != 0) {
34761 UnallocatedT32(instr);
34765 ExtractQRegister(instr,
34769 ExtractDRegister(instr, 5, 0);
34771 (instr >> 16) & 0x3f;
34784 if (((instr & 0x380000) == 0x0) ||
34785 ((instr & 0x3f0000) ==
34787 ((instr & 0x3f0000) ==
34789 ((instr & 0x3f0000) ==
34791 UnallocatedT32(instr);
34795 Dt_imm6_4_Decode((instr >>
34798 (instr >>
34803 UnallocatedT32(instr);
34806 if (((instr >> 12) & 1) != 0) {
34807 UnallocatedT32(instr);
34811 ExtractQRegister(instr,
34815 ExtractDRegister(instr, 5, 0);
34817 (instr >> 16) & 0x3f;
34830 if (((instr & 0x380000) == 0x0) ||
34831 ((instr & 0x3f0000) ==
34833 ((instr & 0x3f0000) ==
34835 ((instr & 0x3f0000) ==
34837 UnallocatedT32(instr);
34841 Dt_imm6_4_Decode((instr >>
34844 (instr >>
34849 UnallocatedT32(instr);
34852 if (((instr >> 12) & 1) != 0) {
34853 UnallocatedT32(instr);
34857 ExtractQRegister(instr,
34861 ExtractDRegister(instr, 5, 0);
34863 (instr >> 16) & 0x3f;
34876 if (((instr & 0x380000) == 0x0) ||
34877 ((instr & 0x3f0000) ==
34879 ((instr & 0x3f0000) ==
34881 ((instr & 0x3f0000) ==
34883 UnallocatedT32(instr);
34887 Dt_imm6_4_Decode((instr >>
34890 (instr >>
34895 UnallocatedT32(instr);
34898 if (((instr >> 12) & 1) != 0) {
34899 UnallocatedT32(instr);
34903 ExtractQRegister(instr,
34907 ExtractDRegister(instr, 5, 0);
34909 (instr >> 16) & 0x3f;
34922 if (((instr & 0x380000) == 0x0) ||
34923 ((instr & 0x3f0000) ==
34925 ((instr & 0x3f0000) ==
34927 ((instr & 0x3f0000) ==
34929 UnallocatedT32(instr);
34933 Dt_imm6_4_Decode((instr >>
34936 (instr >>
34941 UnallocatedT32(instr);
34944 if (((instr >> 12) & 1) != 0) {
34945 UnallocatedT32(instr);
34949 ExtractQRegister(instr,
34953 ExtractDRegister(instr, 5, 0);
34955 (instr >> 16) & 0x3f;
34968 if (((instr & 0x380000) == 0x0) ||
34969 ((instr & 0x3f0000) ==
34971 ((instr & 0x3f0000) ==
34973 ((instr & 0x3f0000) ==
34975 UnallocatedT32(instr);
34979 Dt_imm6_4_Decode((instr >>
34982 (instr >>
34987 UnallocatedT32(instr);
34990 if (((instr >> 12) & 1) != 0) {
34991 UnallocatedT32(instr);
34995 ExtractQRegister(instr,
34999 ExtractDRegister(instr, 5, 0);
35001 (instr >> 16) & 0x3f;
35013 UnallocatedT32(instr);
35019 if (((instr & 0x380000) == 0x0) ||
35020 ((instr & 0x3f0000) == 0x80000) ||
35021 ((instr & 0x3f0000) ==
35023 ((instr & 0x3f0000) ==
35025 UnallocatedT32(instr);
35029 Dt_imm6_4_Decode((instr >> 19) &
35031 (instr >> 28) &
35034 UnallocatedT32(instr);
35037 if (((instr >> 12) & 1) != 0) {
35038 UnallocatedT32(instr);
35042 ExtractQRegister(instr, 22, 12);
35044 ExtractDRegister(instr, 5, 0);
35045 uint32_t imm6 = (instr >> 16) & 0x3f;
35059 UnallocatedT32(instr);
35068 UnallocatedT32(instr);
35075 switch (instr & 0x00000080) {
35078 switch (instr & 0x00200000) {
35081 switch (instr & 0x00180000) {
35084 switch (instr & 0x00000300) {
35087 if (((instr & 0x920) == 0x100) ||
35088 ((instr & 0x520) == 0x100) ||
35089 ((instr & 0x820) == 0x20) ||
35090 ((instr & 0x420) == 0x20) ||
35091 ((instr & 0x220) == 0x20) ||
35092 ((instr & 0x120) == 0x120)) {
35093 UnallocatedT32(instr);
35097 ((instr >> 8) & 0xf) |
35098 ((instr >> 1) & 0x10);
35102 UnallocatedT32(instr);
35106 ExtractDRegister(instr, 22, 12);
35110 (instr & 0xf) |
35111 ((instr >> 12) & 0x70) |
35112 ((instr >> 21) & 0x80));
35122 if (((instr & 0x920) == 0x100) ||
35123 ((instr & 0x520) == 0x100) ||
35124 ((instr & 0x820) == 0x20) ||
35125 ((instr & 0x420) == 0x20) ||
35126 ((instr & 0x220) == 0x20) ||
35127 ((instr & 0x120) == 0x120)) {
35128 UnallocatedT32(instr);
35132 ((instr >> 8) & 0xf) |
35133 ((instr >> 1) & 0x10);
35137 UnallocatedT32(instr);
35141 ExtractDRegister(instr, 22, 12);
35145 (instr & 0xf) |
35146 ((instr >> 12) & 0x70) |
35147 ((instr >> 21) & 0x80));
35156 switch (instr & 0x00000020) {
35159 switch (instr & 0x00000f20) {
35162 if (((instr & 0x920) ==
35164 ((instr & 0x520) ==
35166 ((instr & 0x820) ==
35168 ((instr & 0x420) ==
35170 ((instr & 0x220) ==
35172 ((instr & 0x120) ==
35174 UnallocatedT32(instr);
35178 ((instr >> 8) & 0xf) |
35179 ((instr >> 1) & 0x10);
35185 UnallocatedT32(instr);
35189 ExtractDRegister(instr,
35195 (instr & 0xf) |
35196 ((instr >> 12) &
35198 ((instr >> 21) &
35209 if (((instr & 0xd00) ==
35211 ((instr & 0xd00) ==
35213 ((instr & 0xd00) ==
35215 ((instr & 0xe00) ==
35217 UnallocatedT32(instr);
35221 (instr >> 8) & 0xf;
35227 UnallocatedT32(instr);
35231 ExtractDRegister(instr,
35237 (instr & 0xf) |
35238 ((instr >> 12) &
35240 ((instr >> 21) &
35251 if (((instr & 0x920) ==
35253 ((instr & 0x520) ==
35255 ((instr & 0x820) ==
35257 ((instr & 0x420) ==
35259 ((instr & 0x220) ==
35261 ((instr & 0x120) ==
35263 UnallocatedT32(instr);
35267 ((instr >> 8) & 0xf) |
35268 ((instr >> 1) & 0x10);
35274 UnallocatedT32(instr);
35278 ExtractDRegister(instr,
35284 (instr & 0xf) |
35285 ((instr >> 12) &
35287 ((instr >> 21) &
35298 if (((instr & 0xd00) ==
35300 ((instr & 0xd00) ==
35302 ((instr & 0xd00) ==
35304 ((instr & 0xe00) ==
35306 UnallocatedT32(instr);
35310 (instr >> 8) & 0xf;
35316 UnallocatedT32(instr);
35320 ExtractDRegister(instr,
35326 (instr & 0xf) |
35327 ((instr >> 12) &
35329 ((instr >> 21) &
35340 if (((instr & 0x920) ==
35342 ((instr & 0x520) ==
35344 ((instr & 0x820) ==
35346 ((instr & 0x420) ==
35348 ((instr & 0x220) ==
35350 ((instr & 0x120) ==
35352 UnallocatedT32(instr);
35356 ((instr >> 8) & 0xf) |
35357 ((instr >> 1) & 0x10);
35363 UnallocatedT32(instr);
35367 ExtractDRegister(instr,
35373 (instr & 0xf) |
35374 ((instr >> 12) &
35376 ((instr >> 21) &
35387 if (((instr & 0xd00) ==
35389 ((instr & 0xd00) ==
35391 ((instr & 0xd00) ==
35393 ((instr & 0xe00) ==
35395 UnallocatedT32(instr);
35399 (instr >> 8) & 0xf;
35405 UnallocatedT32(instr);
35409 ExtractDRegister(instr,
35415 (instr & 0xf) |
35416 ((instr >> 12) &
35418 ((instr >> 21) &
35429 if (((instr & 0x920) ==
35431 ((instr & 0x520) ==
35433 ((instr & 0x820) ==
35435 ((instr & 0x420) ==
35437 ((instr & 0x220) ==
35439 ((instr & 0x120) ==
35441 UnallocatedT32(instr);
35445 ((instr >> 8) & 0xf) |
35446 ((instr >> 1) & 0x10);
35452 UnallocatedT32(instr);
35456 ExtractDRegister(instr,
35462 (instr & 0xf) |
35463 ((instr >> 12) &
35465 ((instr >> 21) &
35476 if (((instr & 0xd00) ==
35478 ((instr & 0xd00) ==
35480 ((instr & 0xd00) ==
35482 ((instr & 0xe00) ==
35484 UnallocatedT32(instr);
35488 (instr >> 8) & 0xf;
35494 UnallocatedT32(instr);
35498 ExtractDRegister(instr,
35504 (instr & 0xf) |
35505 ((instr >> 12) &
35507 ((instr >> 21) &
35518 if (((instr & 0x920) ==
35520 ((instr & 0x520) ==
35522 ((instr & 0x820) ==
35524 ((instr & 0x420) ==
35526 ((instr & 0x220) ==
35528 ((instr & 0x120) ==
35530 UnallocatedT32(instr);
35534 ((instr >> 8) & 0xf) |
35535 ((instr >> 1) & 0x10);
35541 UnallocatedT32(instr);
35545 ExtractDRegister(instr,
35551 (instr & 0xf) |
35552 ((instr >> 12) &
35554 ((instr >> 21) &
35565 if (((instr & 0xd00) ==
35567 ((instr & 0xd00) ==
35569 ((instr & 0xd00) ==
35571 ((instr & 0xe00) ==
35573 UnallocatedT32(instr);
35577 (instr >> 8) & 0xf;
35583 UnallocatedT32(instr);
35587 ExtractDRegister(instr,
35593 (instr & 0xf) |
35594 ((instr >> 12) &
35596 ((instr >> 21) &
35607 if (((instr & 0x920) ==
35609 ((instr & 0x520) ==
35611 ((instr & 0x820) ==
35613 ((instr & 0x420) ==
35615 ((instr & 0x220) ==
35617 ((instr & 0x120) ==
35619 UnallocatedT32(instr);
35623 ((instr >> 8) & 0xf) |
35624 ((instr >> 1) & 0x10);
35630 UnallocatedT32(instr);
35634 ExtractDRegister(instr,
35640 (instr & 0xf) |
35641 ((instr >> 12) &
35643 ((instr >> 21) &
35654 if (((instr & 0xd00) ==
35656 ((instr & 0xd00) ==
35658 ((instr & 0xd00) ==
35660 ((instr & 0xe00) ==
35662 UnallocatedT32(instr);
35666 (instr >> 8) & 0xf;
35672 UnallocatedT32(instr);
35676 ExtractDRegister(instr,
35682 (instr & 0xf) |
35683 ((instr >> 12) &
35685 ((instr >> 21) &
35696 if (((instr & 0x920) ==
35698 ((instr & 0x520) ==
35700 ((instr & 0x820) ==
35702 ((instr & 0x420) ==
35704 ((instr & 0x220) ==
35706 ((instr & 0x120) ==
35708 UnallocatedT32(instr);
35712 ((instr >> 8) & 0xf) |
35713 ((instr >> 1) & 0x10);
35719 UnallocatedT32(instr);
35723 ExtractDRegister(instr,
35729 (instr & 0xf) |
35730 ((instr >> 12) &
35732 ((instr >> 21) &
35743 if (((instr & 0xd00) ==
35745 ((instr & 0xd00) ==
35747 ((instr & 0xd00) ==
35749 ((instr & 0xe00) ==
35751 UnallocatedT32(instr);
35755 (instr >> 8) & 0xf;
35761 UnallocatedT32(instr);
35765 ExtractDRegister(instr,
35771 (instr & 0xf) |
35772 ((instr >> 12) &
35774 ((instr >> 21) &
35785 if (((instr & 0x920) ==
35787 ((instr & 0x520) ==
35789 ((instr & 0x820) ==
35791 ((instr & 0x420) ==
35793 ((instr & 0x220) ==
35795 ((instr & 0x120) ==
35797 UnallocatedT32(instr);
35801 ((instr >> 8) & 0xf) |
35802 ((instr >> 1) & 0x10);
35808 UnallocatedT32(instr);
35812 ExtractDRegister(instr,
35818 (instr & 0xf) |
35819 ((instr >> 12) &
35821 ((instr >> 21) &
35832 if (((instr & 0xd00) ==
35834 ((instr & 0xd00) ==
35836 ((instr & 0xd00) ==
35838 ((instr & 0xe00) ==
35840 UnallocatedT32(instr);
35844 (instr >> 8) & 0xf;
35850 UnallocatedT32(instr);
35854 ExtractDRegister(instr,
35860 (instr & 0xf) |
35861 ((instr >> 12) &
35863 ((instr >> 21) &
35874 if (((instr & 0x920) ==
35876 ((instr & 0x520) ==
35878 ((instr & 0x820) ==
35880 ((instr & 0x420) ==
35882 ((instr & 0x220) ==
35884 ((instr & 0x120) ==
35886 UnallocatedT32(instr);
35890 ((instr >> 8) & 0xf) |
35891 ((instr >> 1) & 0x10);
35897 UnallocatedT32(instr);
35901 ExtractDRegister(instr,
35907 (instr & 0xf) |
35908 ((instr >> 12) &
35910 ((instr >> 21) &
35921 if (((instr & 0x920) ==
35923 ((instr & 0x520) ==
35925 ((instr & 0x820) ==
35927 ((instr & 0x420) ==
35929 ((instr & 0x220) ==
35931 ((instr & 0x120) ==
35933 UnallocatedT32(instr);
35937 ((instr >> 8) & 0xf) |
35938 ((instr >> 1) & 0x10);
35944 UnallocatedT32(instr);
35948 ExtractDRegister(instr,
35954 (instr & 0xf) |
35955 ((instr >> 12) &
35957 ((instr >> 21) &
35968 if (((instr & 0x920) ==
35970 ((instr & 0x520) ==
35972 ((instr & 0x820) ==
35974 ((instr & 0x420) ==
35976 ((instr & 0x220) ==
35978 ((instr & 0x120) ==
35980 UnallocatedT32(instr);
35984 ((instr >> 8) & 0xf) |
35985 ((instr >> 1) & 0x10);
35991 UnallocatedT32(instr);
35995 ExtractDRegister(instr,
36001 (instr & 0xf) |
36002 ((instr >> 12) &
36004 ((instr >> 21) &
36014 UnallocatedT32(instr);
36020 if (((instr & 0x920) == 0x100) ||
36021 ((instr & 0x520) == 0x100) ||
36022 ((instr & 0x820) == 0x20) ||
36023 ((instr & 0x420) == 0x20) ||
36024 ((instr & 0x220) == 0x20) ||
36025 ((instr & 0x120) == 0x120)) {
36026 UnallocatedT32(instr);
36030 ((instr >> 8) & 0xf) |
36031 ((instr >> 1) & 0x10);
36037 UnallocatedT32(instr);
36041 ExtractDRegister(instr,
36046 (instr &
36048 ((instr >>
36051 ((instr >>
36068 UnallocatedT32(instr);
36074 if ((instr & 0x00000200) == 0x00000200) {
36075 if (((instr & 0x200000) == 0x0)) {
36076 UnallocatedT32(instr);
36080 ((instr >> 28) & 0x1) |
36081 ((instr >> 7) & 0x2));
36083 UnallocatedT32(instr);
36087 ((instr >> 28) & 0x1) |
36088 ((instr >> 7) & 0x2));
36090 UnallocatedT32(instr);
36094 ExtractDRegister(instr, 22, 12);
36095 unsigned rm = ExtractDRegister(instr, 5, 0);
36097 64 - ((instr >> 16) & 0x3f);
36106 UnallocatedT32(instr);
36114 UnallocatedT32(instr);
36124 switch (instr & 0x00000c00) {
36127 switch (instr & 0x00380080) {
36130 switch (instr & 0x00000100) {
36133 switch (instr & 0x00000200) {
36135 switch (instr & 0x00000020) {
36138 if (((instr & 0xd00) == 0x100) ||
36139 ((instr & 0xd00) == 0x500) ||
36140 ((instr & 0xd00) == 0x900) ||
36141 ((instr & 0xe00) == 0xe00)) {
36142 UnallocatedT32(instr);
36145 unsigned cmode = (instr >> 8) & 0xf;
36149 UnallocatedT32(instr);
36152 if (((instr >> 12) & 1) != 0) {
36153 UnallocatedT32(instr);
36157 ExtractQRegister(instr, 22, 12);
36161 (instr & 0xf) |
36162 ((instr >> 12) & 0x70) |
36163 ((instr >> 21) & 0x80));
36172 if (((instr & 0x920) == 0x100) ||
36173 ((instr & 0x520) == 0x100) ||
36174 ((instr & 0x820) == 0x20) ||
36175 ((instr & 0x420) == 0x20) ||
36176 ((instr & 0x220) == 0x20) ||
36177 ((instr & 0x120) == 0x120)) {
36178 UnallocatedT32(instr);
36182 ((instr >> 8) & 0xf) |
36183 ((instr >> 1) & 0x10);
36187 UnallocatedT32(instr);
36190 if (((instr >> 12) & 1) != 0) {
36191 UnallocatedT32(instr);
36195 ExtractQRegister(instr, 22, 12);
36199 (instr & 0xf) |
36200 ((instr >> 12) & 0x70) |
36201 ((instr >> 21) & 0x80));
36217 switch (instr & 0x00000020) {
36220 if (((instr & 0x100) == 0x0) ||
36221 ((instr & 0xc00) == 0xc00)) {
36222 UnallocatedT32(instr);
36225 unsigned cmode = (instr >> 8) & 0xf;
36229 UnallocatedT32(instr);
36232 if (((instr >> 12) & 1) != 0) {
36233 UnallocatedT32(instr);
36237 ExtractQRegister(instr, 22, 12);
36241 (instr & 0xf) |
36242 ((instr >> 12) & 0x70) |
36243 ((instr >> 21) & 0x80));
36254 if (((instr & 0x100) == 0x0) ||
36255 ((instr & 0xc00) == 0xc00)) {
36256 UnallocatedT32(instr);
36259 unsigned cmode = (instr >> 8) & 0xf;
36263 UnallocatedT32(instr);
36266 if (((instr >> 12) & 1) != 0) {
36267 UnallocatedT32(instr);
36271 ExtractQRegister(instr, 22, 12);
36275 (instr & 0xf) |
36276 ((instr >> 12) & 0x70) |
36277 ((instr >> 21) & 0x80));
36293 switch (instr & 0x00000300) {
36296 if (((instr & 0x380080) == 0x0)) {
36297 UnallocatedT32(instr);
36301 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
36302 ((instr >> 4) &
36304 (instr >> 28) & 0x1);
36306 UnallocatedT32(instr);
36309 if (((instr >> 12) & 1) != 0) {
36310 UnallocatedT32(instr);
36313 unsigned rd = ExtractQRegister(instr, 22, 12);
36314 if ((instr & 1) != 0) {
36315 UnallocatedT32(instr);
36318 unsigned rm = ExtractQRegister(instr, 5, 0);
36319 uint32_t imm6 = (instr >> 16) & 0x3f;
36334 if (((instr & 0x380080) == 0x0)) {
36335 UnallocatedT32(instr);
36339 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
36340 ((instr >> 4) &
36342 (instr >> 28) & 0x1);
36344 UnallocatedT32(instr);
36347 if (((instr >> 12) & 1) != 0) {
36348 UnallocatedT32(instr);
36351 unsigned rd = ExtractQRegister(instr, 22, 12);
36352 if ((instr & 1) != 0) {
36353 UnallocatedT32(instr);
36356 unsigned rm = ExtractQRegister(instr, 5, 0);
36357 uint32_t imm6 = (instr >> 16) & 0x3f;
36372 if (((instr & 0x380080) == 0x0)) {
36373 UnallocatedT32(instr);
36377 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
36378 ((instr >> 4) &
36380 (instr >> 28) & 0x1);
36382 UnallocatedT32(instr);
36385 if (((instr >> 12) & 1) != 0) {
36386 UnallocatedT32(instr);
36389 unsigned rd = ExtractQRegister(instr, 22, 12);
36390 if ((instr & 1) != 0) {
36391 UnallocatedT32(instr);
36394 unsigned rm = ExtractQRegister(instr, 5, 0);
36395 uint32_t imm6 = (instr >> 16) & 0x3f;
36410 if (((instr & 0x380080) == 0x0)) {
36411 UnallocatedT32(instr);
36415 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
36416 ((instr >> 4) &
36418 (instr >> 28) & 0x1);
36420 UnallocatedT32(instr);
36423 if (((instr >> 12) & 1) != 0) {
36424 UnallocatedT32(instr);
36427 unsigned rd = ExtractQRegister(instr, 22, 12);
36428 if ((instr & 1) != 0) {
36429 UnallocatedT32(instr);
36432 unsigned rm = ExtractQRegister(instr, 5, 0);
36433 uint32_t imm6 = (instr >> 16) & 0x3f;
36454 switch (instr & 0x00380080) {
36457 switch (instr & 0x00000100) {
36460 switch (instr & 0x00000200) {
36462 switch (instr & 0x00000020) {
36465 if (((instr & 0xd00) == 0x100) ||
36466 ((instr & 0xd00) == 0x500) ||
36467 ((instr & 0xd00) == 0x900) ||
36468 ((instr & 0xe00) == 0xe00)) {
36469 UnallocatedT32(instr);
36472 unsigned cmode = (instr >> 8) & 0xf;
36476 UnallocatedT32(instr);
36479 if (((instr >> 12) & 1) != 0) {
36480 UnallocatedT32(instr);
36484 ExtractQRegister(instr, 22, 12);
36488 (instr & 0xf) |
36489 ((instr >> 12) & 0x70) |
36490 ((instr >> 21) & 0x80));
36499 if (((instr & 0x920) == 0x100) ||
36500 ((instr & 0x520) == 0x100) ||
36501 ((instr & 0x820) == 0x20) ||
36502 ((instr & 0x420) == 0x20) ||
36503 ((instr & 0x220) == 0x20) ||
36504 ((instr & 0x120) == 0x120)) {
36505 UnallocatedT32(instr);
36509 ((instr >> 8) & 0xf) |
36510 ((instr >> 1) & 0x10);
36514 UnallocatedT32(instr);
36517 if (((instr >> 12) & 1) != 0) {
36518 UnallocatedT32(instr);
36522 ExtractQRegister(instr, 22, 12);
36526 (instr & 0xf) |
36527 ((instr >> 12) & 0x70) |
36528 ((instr >> 21) & 0x80));
36544 switch (instr & 0x00000020) {
36547 if (((instr & 0x100) == 0x0) ||
36548 ((instr & 0xc00) == 0xc00)) {
36549 UnallocatedT32(instr);
36552 unsigned cmode = (instr >> 8) & 0xf;
36556 UnallocatedT32(instr);
36559 if (((instr >> 12) & 1) != 0) {
36560 UnallocatedT32(instr);
36564 ExtractQRegister(instr, 22, 12);
36568 (instr & 0xf) |
36569 ((instr >> 12) & 0x70) |
36570 ((instr >> 21) & 0x80));
36581 if (((instr & 0x100) == 0x0) ||
36582 ((instr & 0xc00) == 0xc00)) {
36583 UnallocatedT32(instr);
36586 unsigned cmode = (instr >> 8) & 0xf;
36590 UnallocatedT32(instr);
36593 if (((instr >> 12) & 1) != 0) {
36594 UnallocatedT32(instr);
36598 ExtractQRegister(instr, 22, 12);
36602 (instr & 0xf) |
36603 ((instr >> 12) & 0x70) |
36604 ((instr >> 21) & 0x80));
36620 switch (instr & 0x00000300) {
36623 if ((instr & 0x10000000) == 0x10000000) {
36624 if (((instr & 0x380080) == 0x0)) {
36625 UnallocatedT32(instr);
36629 ((instr >> 19) & 0x7) |
36630 ((instr >> 4) & 0x8));
36632 UnallocatedT32(instr);
36635 if (((instr >> 12) & 1) != 0) {
36636 UnallocatedT32(instr);
36640 ExtractQRegister(instr, 22, 12);
36641 if ((instr & 1) != 0) {
36642 UnallocatedT32(instr);
36645 unsigned rm = ExtractQRegister(instr, 5, 0);
36646 uint32_t imm6 = (instr >> 16) & 0x3f;
36658 UnallocatedT32(instr);
36664 switch (instr & 0x10000000) {
36667 if (((instr & 0x380080) == 0x0)) {
36668 UnallocatedT32(instr);
36672 ((instr >> 19) & 0x7) |
36673 ((instr >> 4) & 0x8));
36675 UnallocatedT32(instr);
36678 if (((instr >> 12) & 1) != 0) {
36679 UnallocatedT32(instr);
36683 ExtractQRegister(instr, 22, 12);
36684 if ((instr & 1) != 0) {
36685 UnallocatedT32(instr);
36689 ExtractQRegister(instr, 5, 0);
36690 uint32_t imm6 = (instr >> 16) & 0x3f;
36704 if (((instr & 0x380080) == 0x0)) {
36705 UnallocatedT32(instr);
36709 ((instr >> 19) & 0x7) |
36710 ((instr >> 4) & 0x8));
36712 UnallocatedT32(instr);
36715 if (((instr >> 12) & 1) != 0) {
36716 UnallocatedT32(instr);
36720 ExtractQRegister(instr, 22, 12);
36721 if ((instr & 1) != 0) {
36722 UnallocatedT32(instr);
36726 ExtractQRegister(instr, 5, 0);
36727 uint32_t imm6 = (instr >> 16) & 0x3f;
36744 if (((instr & 0x380080) == 0x0)) {
36745 UnallocatedT32(instr);
36749 Dt_L_imm6_2_Decode(((instr >> 19) & 0x7) |
36750 ((instr >> 4) &
36752 (instr >> 28) & 0x1);
36754 UnallocatedT32(instr);
36757 if (((instr >> 12) & 1) != 0) {
36758 UnallocatedT32(instr);
36761 unsigned rd = ExtractQRegister(instr, 22, 12);
36762 if ((instr & 1) != 0) {
36763 UnallocatedT32(instr);
36766 unsigned rm = ExtractQRegister(instr, 5, 0);
36767 uint32_t imm6 = (instr >> 16) & 0x3f;
36780 if (((instr & 0x380080) == 0x0)) {
36781 UnallocatedT32(instr);
36785 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
36786 ((instr >> 4) &
36788 (instr >> 28) & 0x1);
36790 UnallocatedT32(instr);
36793 if (((instr >> 12) & 1) != 0) {
36794 UnallocatedT32(instr);
36797 unsigned rd = ExtractQRegister(instr, 22, 12);
36798 if ((instr & 1) != 0) {
36799 UnallocatedT32(instr);
36802 unsigned rm = ExtractQRegister(instr, 5, 0);
36803 uint32_t imm6 = (instr >> 16) & 0x3f;
36822 switch (instr & 0x00000080) {
36825 switch (instr & 0x00380000) {
36828 switch (instr & 0x00000100) {
36831 switch (instr & 0x00000200) {
36833 switch (instr & 0x00000020) {
36836 if (((instr & 0xd00) == 0x100) ||
36837 ((instr & 0xd00) == 0x500) ||
36838 ((instr & 0xd00) == 0x900) ||
36839 ((instr & 0xe00) == 0xe00)) {
36840 UnallocatedT32(instr);
36844 (instr >> 8) & 0xf;
36850 UnallocatedT32(instr);
36853 if (((instr >> 12) & 1) != 0) {
36854 UnallocatedT32(instr);
36858 ExtractQRegister(instr,
36863 (instr &
36865 ((instr >>
36868 ((instr >>
36879 if (((instr & 0x920) == 0x100) ||
36880 ((instr & 0x520) == 0x100) ||
36881 ((instr & 0x820) == 0x20) ||
36882 ((instr & 0x420) == 0x20) ||
36883 ((instr & 0x220) == 0x20) ||
36884 ((instr & 0x120) == 0x120)) {
36885 UnallocatedT32(instr);
36889 ((instr >> 8) & 0xf) |
36890 ((instr >> 1) & 0x10);
36896 UnallocatedT32(instr);
36899 if (((instr >> 12) & 1) != 0) {
36900 UnallocatedT32(instr);
36904 ExtractQRegister(instr,
36909 (instr &
36911 ((instr >>
36914 ((instr >>
36932 switch (instr & 0x00000020) {
36935 if (((instr & 0x100) == 0x0) ||
36936 ((instr & 0xc00) == 0xc00)) {
36937 UnallocatedT32(instr);
36940 unsigned cmode = (instr >> 8) & 0xf;
36944 UnallocatedT32(instr);
36947 if (((instr >> 12) & 1) != 0) {
36948 UnallocatedT32(instr);
36952 ExtractQRegister(instr, 22, 12);
36956 (instr & 0xf) |
36957 ((instr >> 12) & 0x70) |
36958 ((instr >> 21) & 0x80));
36969 if (((instr & 0x100) == 0x0) ||
36970 ((instr & 0xc00) == 0xc00)) {
36971 UnallocatedT32(instr);
36974 unsigned cmode = (instr >> 8) & 0xf;
36978 UnallocatedT32(instr);
36981 if (((instr >> 12) & 1) != 0) {
36982 UnallocatedT32(instr);
36986 ExtractQRegister(instr, 22, 12);
36990 (instr & 0xf) |
36991 ((instr >> 12) & 0x70) |
36992 ((instr >> 21) & 0x80));
37008 switch (instr & 0x00000300) {
37011 switch (instr & 0x10000000) {
37014 if (((instr & 0x380000) == 0x0)) {
37015 UnallocatedT32(instr);
37019 (instr >> 19) & 0x7);
37021 UnallocatedT32(instr);
37025 ExtractDRegister(instr, 22, 12);
37026 if ((instr & 1) != 0) {
37027 UnallocatedT32(instr);
37031 ExtractQRegister(instr, 5, 0);
37032 uint32_t imm6 = (instr >> 16) & 0x3f;
37044 if (((instr & 0x380000) == 0x0)) {
37045 UnallocatedT32(instr);
37049 Dt_imm6_2_Decode((instr >> 19) &
37051 (instr >> 28) &
37054 UnallocatedT32(instr);
37058 ExtractDRegister(instr, 22, 12);
37059 if ((instr & 1) != 0) {
37060 UnallocatedT32(instr);
37064 ExtractQRegister(instr, 5, 0);
37065 uint32_t imm6 = (instr >> 16) & 0x3f;
37080 if (((instr & 0x380000) == 0x0)) {
37081 UnallocatedT32(instr);
37085 Dt_imm6_1_Decode((instr >> 19) & 0x7,
37086 (instr >> 28) & 0x1);
37088 UnallocatedT32(instr);
37092 ExtractDRegister(instr, 22, 12);
37093 if ((instr & 1) != 0) {
37094 UnallocatedT32(instr);
37098 ExtractQRegister(instr, 5, 0);
37099 uint32_t imm6 = (instr >> 16) & 0x3f;
37110 UnallocatedT32(instr);
37119 UnallocatedT32(instr);
37126 switch (instr & 0x00000080) {
37129 switch (instr & 0x00200000) {
37132 switch (instr & 0x00180000) {
37135 switch (instr & 0x00000300) {
37138 if (((instr & 0x920) == 0x100) ||
37139 ((instr & 0x520) == 0x100) ||
37140 ((instr & 0x820) == 0x20) ||
37141 ((instr & 0x420) == 0x20) ||
37142 ((instr & 0x220) == 0x20) ||
37143 ((instr & 0x120) == 0x120)) {
37144 UnallocatedT32(instr);
37148 ((instr >> 8) & 0xf) |
37149 ((instr >> 1) & 0x10);
37153 UnallocatedT32(instr);
37156 if (((instr >> 12) & 1) != 0) {
37157 UnallocatedT32(instr);
37161 ExtractQRegister(instr, 22, 12);
37165 (instr & 0xf) |
37166 ((instr >> 12) & 0x70) |
37167 ((instr >> 21) & 0x80));
37177 if (((instr & 0x920) == 0x100) ||
37178 ((instr & 0x520) == 0x100) ||
37179 ((instr & 0x820) == 0x20) ||
37180 ((instr & 0x420) == 0x20) ||
37181 ((instr & 0x220) == 0x20) ||
37182 ((instr & 0x120) == 0x120)) {
37183 UnallocatedT32(instr);
37187 ((instr >> 8) & 0xf) |
37188 ((instr >> 1) & 0x10);
37192 UnallocatedT32(instr);
37195 if (((instr >> 12) & 1) != 0) {
37196 UnallocatedT32(instr);
37200 ExtractQRegister(instr, 22, 12);
37204 (instr & 0xf) |
37205 ((instr >> 12) & 0x70) |
37206 ((instr >> 21) & 0x80));
37215 switch (instr & 0x00000020) {
37218 switch (instr & 0x00000f20) {
37221 if (((instr & 0x920) ==
37223 ((instr & 0x520) ==
37225 ((instr & 0x820) ==
37227 ((instr & 0x420) ==
37229 ((instr & 0x220) ==
37231 ((instr & 0x120) ==
37233 UnallocatedT32(instr);
37237 ((instr >> 8) & 0xf) |
37238 ((instr >> 1) & 0x10);
37244 UnallocatedT32(instr);
37247 if (((instr >> 12) & 1) !=
37249 UnallocatedT32(instr);
37253 ExtractQRegister(instr,
37259 (instr & 0xf) |
37260 ((instr >> 12) &
37262 ((instr >> 21) &
37273 if (((instr & 0xd00) ==
37275 ((instr & 0xd00) ==
37277 ((instr & 0xd00) ==
37279 ((instr & 0xe00) ==
37281 UnallocatedT32(instr);
37285 (instr >> 8) & 0xf;
37291 UnallocatedT32(instr);
37294 if (((instr >> 12) & 1) !=
37296 UnallocatedT32(instr);
37300 ExtractQRegister(instr,
37306 (instr & 0xf) |
37307 ((instr >> 12) &
37309 ((instr >> 21) &
37320 if (((instr & 0x920) ==
37322 ((instr & 0x520) ==
37324 ((instr & 0x820) ==
37326 ((instr & 0x420) ==
37328 ((instr & 0x220) ==
37330 ((instr & 0x120) ==
37332 UnallocatedT32(instr);
37336 ((instr >> 8) & 0xf) |
37337 ((instr >> 1) & 0x10);
37343 UnallocatedT32(instr);
37346 if (((instr >> 12) & 1) !=
37348 UnallocatedT32(instr);
37352 ExtractQRegister(instr,
37358 (instr & 0xf) |
37359 ((instr >> 12) &
37361 ((instr >> 21) &
37372 if (((instr & 0xd00) ==
37374 ((instr & 0xd00) ==
37376 ((instr & 0xd00) ==
37378 ((instr & 0xe00) ==
37380 UnallocatedT32(instr);
37384 (instr >> 8) & 0xf;
37390 UnallocatedT32(instr);
37393 if (((instr >> 12) & 1) !=
37395 UnallocatedT32(instr);
37399 ExtractQRegister(instr,
37405 (instr & 0xf) |
37406 ((instr >> 12) &
37408 ((instr >> 21) &
37419 if (((instr & 0x920) ==
37421 ((instr & 0x520) ==
37423 ((instr & 0x820) ==
37425 ((instr & 0x420) ==
37427 ((instr & 0x220) ==
37429 ((instr & 0x120) ==
37431 UnallocatedT32(instr);
37435 ((instr >> 8) & 0xf) |
37436 ((instr >> 1) & 0x10);
37442 UnallocatedT32(instr);
37445 if (((instr >> 12) & 1) !=
37447 UnallocatedT32(instr);
37451 ExtractQRegister(instr,
37457 (instr & 0xf) |
37458 ((instr >> 12) &
37460 ((instr >> 21) &
37471 if (((instr & 0xd00) ==
37473 ((instr & 0xd00) ==
37475 ((instr & 0xd00) ==
37477 ((instr & 0xe00) ==
37479 UnallocatedT32(instr);
37483 (instr >> 8) & 0xf;
37489 UnallocatedT32(instr);
37492 if (((instr >> 12) & 1) !=
37494 UnallocatedT32(instr);
37498 ExtractQRegister(instr,
37504 (instr & 0xf) |
37505 ((instr >> 12) &
37507 ((instr >> 21) &
37518 if (((instr & 0x920) ==
37520 ((instr & 0x520) ==
37522 ((instr & 0x820) ==
37524 ((instr & 0x420) ==
37526 ((instr & 0x220) ==
37528 ((instr & 0x120) ==
37530 UnallocatedT32(instr);
37534 ((instr >> 8) & 0xf) |
37535 ((instr >> 1) & 0x10);
37541 UnallocatedT32(instr);
37544 if (((instr >> 12) & 1) !=
37546 UnallocatedT32(instr);
37550 ExtractQRegister(instr,
37556 (instr & 0xf) |
37557 ((instr >> 12) &
37559 ((instr >> 21) &
37570 if (((instr & 0xd00) ==
37572 ((instr & 0xd00) ==
37574 ((instr & 0xd00) ==
37576 ((instr & 0xe00) ==
37578 UnallocatedT32(instr);
37582 (instr >> 8) & 0xf;
37588 UnallocatedT32(instr);
37591 if (((instr >> 12) & 1) !=
37593 UnallocatedT32(instr);
37597 ExtractQRegister(instr,
37603 (instr & 0xf) |
37604 ((instr >> 12) &
37606 ((instr >> 21) &
37617 if (((instr & 0x920) ==
37619 ((instr & 0x520) ==
37621 ((instr & 0x820) ==
37623 ((instr & 0x420) ==
37625 ((instr & 0x220) ==
37627 ((instr & 0x120) ==
37629 UnallocatedT32(instr);
37633 ((instr >> 8) & 0xf) |
37634 ((instr >> 1) & 0x10);
37640 UnallocatedT32(instr);
37643 if (((instr >> 12) & 1) !=
37645 UnallocatedT32(instr);
37649 ExtractQRegister(instr,
37655 (instr & 0xf) |
37656 ((instr >> 12) &
37658 ((instr >> 21) &
37669 if (((instr & 0xd00) ==
37671 ((instr & 0xd00) ==
37673 ((instr & 0xd00) ==
37675 ((instr & 0xe00) ==
37677 UnallocatedT32(instr);
37681 (instr >> 8) & 0xf;
37687 UnallocatedT32(instr);
37690 if (((instr >> 12) & 1) !=
37692 UnallocatedT32(instr);
37696 ExtractQRegister(instr,
37702 (instr & 0xf) |
37703 ((instr >> 12) &
37705 ((instr >> 21) &
37716 if (((instr & 0x920) ==
37718 ((instr & 0x520) ==
37720 ((instr & 0x820) ==
37722 ((instr & 0x420) ==
37724 ((instr & 0x220) ==
37726 ((instr & 0x120) ==
37728 UnallocatedT32(instr);
37732 ((instr >> 8) & 0xf) |
37733 ((instr >> 1) & 0x10);
37739 UnallocatedT32(instr);
37742 if (((instr >> 12) & 1) !=
37744 UnallocatedT32(instr);
37748 ExtractQRegister(instr,
37754 (instr & 0xf) |
37755 ((instr >> 12) &
37757 ((instr >> 21) &
37768 if (((instr & 0xd00) ==
37770 ((instr & 0xd00) ==
37772 ((instr & 0xd00) ==
37774 ((instr & 0xe00) ==
37776 UnallocatedT32(instr);
37780 (instr >> 8) & 0xf;
37786 UnallocatedT32(instr);
37789 if (((instr >> 12) & 1) !=
37791 UnallocatedT32(instr);
37795 ExtractQRegister(instr,
37801 (instr & 0xf) |
37802 ((instr >> 12) &
37804 ((instr >> 21) &
37815 if (((instr & 0x920) ==
37817 ((instr & 0x520) ==
37819 ((instr & 0x820) ==
37821 ((instr & 0x420) ==
37823 ((instr & 0x220) ==
37825 ((instr & 0x120) ==
37827 UnallocatedT32(instr);
37831 ((instr >> 8) & 0xf) |
37832 ((instr >> 1) & 0x10);
37838 UnallocatedT32(instr);
37841 if (((instr >> 12) & 1) !=
37843 UnallocatedT32(instr);
37847 ExtractQRegister(instr,
37853 (instr & 0xf) |
37854 ((instr >> 12) &
37856 ((instr >> 21) &
37867 if (((instr & 0xd00) ==
37869 ((instr & 0xd00) ==
37871 ((instr & 0xd00) ==
37873 ((instr & 0xe00) ==
37875 UnallocatedT32(instr);
37879 (instr >> 8) & 0xf;
37885 UnallocatedT32(instr);
37888 if (((instr >> 12) & 1) !=
37890 UnallocatedT32(instr);
37894 ExtractQRegister(instr,
37900 (instr & 0xf) |
37901 ((instr >> 12) &
37903 ((instr >> 21) &
37914 if (((instr & 0x920) ==
37916 ((instr & 0x520) ==
37918 ((instr & 0x820) ==
37920 ((instr & 0x420) ==
37922 ((instr & 0x220) ==
37924 ((instr & 0x120) ==
37926 UnallocatedT32(instr);
37930 ((instr >> 8) & 0xf) |
37931 ((instr >> 1) & 0x10);
37937 UnallocatedT32(instr);
37940 if (((instr >> 12) & 1) !=
37942 UnallocatedT32(instr);
37946 ExtractQRegister(instr,
37952 (instr & 0xf) |
37953 ((instr >> 12) &
37955 ((instr >> 21) &
37966 if (((instr & 0xd00) ==
37968 ((instr & 0xd00) ==
37970 ((instr & 0xd00) ==
37972 ((instr & 0xe00) ==
37974 UnallocatedT32(instr);
37978 (instr >> 8) & 0xf;
37984 UnallocatedT32(instr);
37987 if (((instr >> 12) & 1) !=
37989 UnallocatedT32(instr);
37993 ExtractQRegister(instr,
37999 (instr & 0xf) |
38000 ((instr >> 12) &
38002 ((instr >> 21) &
38013 if (((instr & 0x920) ==
38015 ((instr & 0x520) ==
38017 ((instr & 0x820) ==
38019 ((instr & 0x420) ==
38021 ((instr & 0x220) ==
38023 ((instr & 0x120) ==
38025 UnallocatedT32(instr);
38029 ((instr >> 8) & 0xf) |
38030 ((instr >> 1) & 0x10);
38036 UnallocatedT32(instr);
38039 if (((instr >> 12) & 1) !=
38041 UnallocatedT32(instr);
38045 ExtractQRegister(instr,
38051 (instr & 0xf) |
38052 ((instr >> 12) &
38054 ((instr >> 21) &
38065 if (((instr & 0x920) ==
38067 ((instr & 0x520) ==
38069 ((instr & 0x820) ==
38071 ((instr & 0x420) ==
38073 ((instr & 0x220) ==
38075 ((instr & 0x120) ==
38077 UnallocatedT32(instr);
38081 ((instr >> 8) & 0xf) |
38082 ((instr >> 1) & 0x10);
38088 UnallocatedT32(instr);
38091 if (((instr >> 12) & 1) !=
38093 UnallocatedT32(instr);
38097 ExtractQRegister(instr,
38103 (instr & 0xf) |
38104 ((instr >> 12) &
38106 ((instr >> 21) &
38117 if (((instr & 0x920) ==
38119 ((instr & 0x520) ==
38121 ((instr & 0x820) ==
38123 ((instr & 0x420) ==
38125 ((instr & 0x220) ==
38127 ((instr & 0x120) ==
38129 UnallocatedT32(instr);
38133 ((instr >> 8) & 0xf) |
38134 ((instr >> 1) & 0x10);
38140 UnallocatedT32(instr);
38143 if (((instr >> 12) & 1) !=
38145 UnallocatedT32(instr);
38149 ExtractQRegister(instr,
38155 (instr & 0xf) |
38156 ((instr >> 12) &
38158 ((instr >> 21) &
38168 UnallocatedT32(instr);
38174 if (((instr & 0x920) == 0x100) ||
38175 ((instr & 0x520) == 0x100) ||
38176 ((instr & 0x820) == 0x20) ||
38177 ((instr & 0x420) == 0x20) ||
38178 ((instr & 0x220) == 0x20) ||
38179 ((instr & 0x120) == 0x120)) {
38180 UnallocatedT32(instr);
38184 ((instr >> 8) & 0xf) |
38185 ((instr >> 1) & 0x10);
38191 UnallocatedT32(instr);
38194 if (((instr >> 12) & 1) != 0) {
38195 UnallocatedT32(instr);
38199 ExtractQRegister(instr,
38204 (instr &
38206 ((instr >>
38209 ((instr >>
38226 UnallocatedT32(instr);
38232 if ((instr & 0x00000200) == 0x00000200) {
38233 if (((instr & 0x200000) == 0x0)) {
38234 UnallocatedT32(instr);
38238 ((instr >> 28) & 0x1) |
38239 ((instr >> 7) & 0x2));
38241 UnallocatedT32(instr);
38245 ((instr >> 28) & 0x1) |
38246 ((instr >> 7) & 0x2));
38248 UnallocatedT32(instr);
38251 if (((instr >> 12) & 1) != 0) {
38252 UnallocatedT32(instr);
38256 ExtractQRegister(instr, 22, 12);
38257 if ((instr & 1) != 0) {
38258 UnallocatedT32(instr);
38261 unsigned rm = ExtractQRegister(instr, 5, 0);
38263 64 - ((instr >> 16) & 0x3f);
38272 UnallocatedT32(instr);
38280 UnallocatedT32(instr);
38303 void Disassembler::DecodeA32(uint32_t instr) {
38305 if ((instr & 0xf0000000) == 0xf0000000) {
38306 switch (instr & 0x0e000000) {
38309 switch (instr & 0x01f10020) {
38312 switch (instr & 0x000e0000) {
38315 if ((instr & 0x000001c0) == 0x00000000) {
38316 UnimplementedA32("CPS", instr);
38318 UnallocatedA32(instr);
38324 if ((instr & 0x0000001f) == 0x00000000) {
38325 UnimplementedA32("CPSIE", instr);
38327 UnallocatedA32(instr);
38333 UnimplementedA32("CPSIE", instr);
38338 if ((instr & 0x0000001f) == 0x00000000) {
38339 UnimplementedA32("CPSID", instr);
38341 UnallocatedA32(instr);
38347 UnimplementedA32("CPSID", instr);
38351 UnallocatedA32(instr);
38358 if ((instr & 0x000000d0) == 0x00000000) {
38359 UnimplementedA32("SETEND", instr);
38361 UnallocatedA32(instr);
38366 UnallocatedA32(instr);
38373 switch (instr & 0x00800010) {
38376 switch (instr & 0x00000f40) {
38379 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
38380 ((instr >> 22) & 0x4));
38382 UnallocatedA32(instr);
38385 unsigned rd = ExtractDRegister(instr, 22, 12);
38386 unsigned rn = ExtractDRegister(instr, 7, 16);
38387 unsigned rm = ExtractDRegister(instr, 5, 0);
38394 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
38395 ((instr >> 22) & 0x4));
38397 UnallocatedA32(instr);
38400 if (((instr >> 12) & 1) != 0) {
38401 UnallocatedA32(instr);
38404 unsigned rd = ExtractQRegister(instr, 22, 12);
38405 if (((instr >> 16) & 1) != 0) {
38406 UnallocatedA32(instr);
38409 unsigned rn = ExtractQRegister(instr, 7, 16);
38410 if ((instr & 1) != 0) {
38411 UnallocatedA32(instr);
38414 unsigned rm = ExtractQRegister(instr, 5, 0);
38421 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
38422 ((instr >> 22) & 0x4));
38424 UnallocatedA32(instr);
38427 unsigned rd = ExtractDRegister(instr, 22, 12);
38428 unsigned rn = ExtractDRegister(instr, 7, 16);
38429 unsigned rm = ExtractDRegister(instr, 5, 0);
38436 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
38437 ((instr >> 22) & 0x4));
38439 UnallocatedA32(instr);
38442 if (((instr >> 12) & 1) != 0) {
38443 UnallocatedA32(instr);
38446 unsigned rd = ExtractQRegister(instr, 22, 12);
38447 if (((instr >> 16) & 1) != 0) {
38448 UnallocatedA32(instr);
38451 unsigned rn = ExtractQRegister(instr, 7, 16);
38452 if ((instr & 1) != 0) {
38453 UnallocatedA32(instr);
38456 unsigned rm = ExtractQRegister(instr, 5, 0);
38463 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
38464 ((instr >> 22) & 0x4));
38466 UnallocatedA32(instr);
38469 unsigned rd = ExtractDRegister(instr, 22, 12);
38470 unsigned rn = ExtractDRegister(instr, 7, 16);
38471 unsigned rm = ExtractDRegister(instr, 5, 0);
38478 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
38479 ((instr >> 22) & 0x4));
38481 UnallocatedA32(instr);
38484 if (((instr >> 12) & 1) != 0) {
38485 UnallocatedA32(instr);
38488 unsigned rd = ExtractQRegister(instr, 22, 12);
38489 if (((instr >> 16) & 1) != 0) {
38490 UnallocatedA32(instr);
38493 unsigned rn = ExtractQRegister(instr, 7, 16);
38494 if ((instr & 1) != 0) {
38495 UnallocatedA32(instr);
38498 unsigned rm = ExtractQRegister(instr, 5, 0);
38505 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
38506 ((instr >> 22) & 0x4));
38508 UnallocatedA32(instr);
38511 unsigned rd = ExtractDRegister(instr, 22, 12);
38512 unsigned rn = ExtractDRegister(instr, 7, 16);
38513 unsigned rm = ExtractDRegister(instr, 5, 0);
38520 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
38521 ((instr >> 22) & 0x4));
38523 UnallocatedA32(instr);
38526 if (((instr >> 12) & 1) != 0) {
38527 UnallocatedA32(instr);
38530 unsigned rd = ExtractQRegister(instr, 22, 12);
38531 if (((instr >> 16) & 1) != 0) {
38532 UnallocatedA32(instr);
38535 unsigned rn = ExtractQRegister(instr, 7, 16);
38536 if ((instr & 1) != 0) {
38537 UnallocatedA32(instr);
38540 unsigned rm = ExtractQRegister(instr, 5, 0);
38547 DataType dt = Dt_U_size_3_Decode(((instr >> 20) & 0x3) |
38548 ((instr >> 22) & 0x4));
38550 UnallocatedA32(instr);
38553 unsigned rd = ExtractDRegister(instr, 22, 12);
38554 unsigned rm = ExtractDRegister(instr, 5, 0);
38555 unsigned rn = ExtractDRegister(instr, 7, 16);
38562 DataType dt = Dt_U_size_3_Decode(((instr >> 20) & 0x3) |
38563 ((instr >> 22) & 0x4));
38565 UnallocatedA32(instr);
38568 if (((instr >> 12) & 1) != 0) {
38569 UnallocatedA32(instr);
38572 unsigned rd = ExtractQRegister(instr, 22, 12);
38573 if ((instr & 1) != 0) {
38574 UnallocatedA32(instr);
38577 unsigned rm = ExtractQRegister(instr, 5, 0);
38578 if (((instr >> 16) & 1) != 0) {
38579 UnallocatedA32(instr);
38582 unsigned rn = ExtractQRegister(instr, 7, 16);
38589 DataType dt = Dt_U_size_3_Decode(((instr >> 20) & 0x3) |
38590 ((instr >> 22) & 0x4));
38592 UnallocatedA32(instr);
38595 unsigned rd = ExtractDRegister(instr, 22, 12);
38596 unsigned rm = ExtractDRegister(instr, 5, 0);
38597 unsigned rn = ExtractDRegister(instr, 7, 16);
38604 DataType dt = Dt_U_size_3_Decode(((instr >> 20) & 0x3) |
38605 ((instr >> 22) & 0x4));
38607 UnallocatedA32(instr);
38610 if (((instr >> 12) & 1) != 0) {
38611 UnallocatedA32(instr);
38614 unsigned rd = ExtractQRegister(instr, 22, 12);
38615 if ((instr & 1) != 0) {
38616 UnallocatedA32(instr);
38619 unsigned rm = ExtractQRegister(instr, 5, 0);
38620 if (((instr >> 16) & 1) != 0) {
38621 UnallocatedA32(instr);
38624 unsigned rn = ExtractQRegister(instr, 7, 16);
38631 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
38632 ((instr >> 22) & 0x4));
38634 UnallocatedA32(instr);
38637 unsigned rd = ExtractDRegister(instr, 22, 12);
38638 unsigned rn = ExtractDRegister(instr, 7, 16);
38639 unsigned rm = ExtractDRegister(instr, 5, 0);
38646 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
38647 ((instr >> 22) & 0x4));
38649 UnallocatedA32(instr);
38652 if (((instr >> 12) & 1) != 0) {
38653 UnallocatedA32(instr);
38656 unsigned rd = ExtractQRegister(instr, 22, 12);
38657 if (((instr >> 16) & 1) != 0) {
38658 UnallocatedA32(instr);
38661 unsigned rn = ExtractQRegister(instr, 7, 16);
38662 if ((instr & 1) != 0) {
38663 UnallocatedA32(instr);
38666 unsigned rm = ExtractQRegister(instr, 5, 0);
38673 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
38674 ((instr >> 22) & 0x4));
38676 UnallocatedA32(instr);
38679 unsigned rd = ExtractDRegister(instr, 22, 12);
38680 unsigned rn = ExtractDRegister(instr, 7, 16);
38681 unsigned rm = ExtractDRegister(instr, 5, 0);
38688 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
38689 ((instr >> 22) & 0x4));
38691 UnallocatedA32(instr);
38694 if (((instr >> 12) & 1) != 0) {
38695 UnallocatedA32(instr);
38698 unsigned rd = ExtractQRegister(instr, 22, 12);
38699 if (((instr >> 16) & 1) != 0) {
38700 UnallocatedA32(instr);
38703 unsigned rn = ExtractQRegister(instr, 7, 16);
38704 if ((instr & 1) != 0) {
38705 UnallocatedA32(instr);
38708 unsigned rm = ExtractQRegister(instr, 5, 0);
38715 switch (instr & 0x01000000) {
38718 DataType dt = Dt_size_2_Decode((instr >> 20) & 0x3);
38720 UnallocatedA32(instr);
38723 unsigned rd = ExtractDRegister(instr, 22, 12);
38724 unsigned rn = ExtractDRegister(instr, 7, 16);
38725 unsigned rm = ExtractDRegister(instr, 5, 0);
38732 DataType dt = Dt_size_2_Decode((instr >> 20) & 0x3);
38734 UnallocatedA32(instr);
38737 unsigned rd = ExtractDRegister(instr, 22, 12);
38738 unsigned rn = ExtractDRegister(instr, 7, 16);
38739 unsigned rm = ExtractDRegister(instr, 5, 0);
38749 switch (instr & 0x01000000) {
38752 DataType dt = Dt_size_2_Decode((instr >> 20) & 0x3);
38754 UnallocatedA32(instr);
38757 if (((instr >> 12) & 1) != 0) {
38758 UnallocatedA32(instr);
38761 unsigned rd = ExtractQRegister(instr, 22, 12);
38762 if (((instr >> 16) & 1) != 0) {
38763 UnallocatedA32(instr);
38766 unsigned rn = ExtractQRegister(instr, 7, 16);
38767 if ((instr & 1) != 0) {
38768 UnallocatedA32(instr);
38771 unsigned rm = ExtractQRegister(instr, 5, 0);
38778 DataType dt = Dt_size_2_Decode((instr >> 20) & 0x3);
38780 UnallocatedA32(instr);
38783 if (((instr >> 12) & 1) != 0) {
38784 UnallocatedA32(instr);
38787 unsigned rd = ExtractQRegister(instr, 22, 12);
38788 if (((instr >> 16) & 1) != 0) {
38789 UnallocatedA32(instr);
38792 unsigned rn = ExtractQRegister(instr, 7, 16);
38793 if ((instr & 1) != 0) {
38794 UnallocatedA32(instr);
38797 unsigned rm = ExtractQRegister(instr, 5, 0);
38807 switch (instr & 0x01000000) {
38810 DataType dt = Dt_size_10_Decode((instr >> 20) & 0x3);
38812 UnallocatedA32(instr);
38815 unsigned rd = ExtractDRegister(instr, 22, 12);
38816 unsigned rn = ExtractDRegister(instr, 7, 16);
38817 unsigned rm = ExtractDRegister(instr, 5, 0);
38824 DataType dt = Dt_size_10_Decode((instr >> 20) & 0x3);
38826 UnallocatedA32(instr);
38829 unsigned rd = ExtractDRegister(instr, 22, 12);
38830 unsigned rn = ExtractDRegister(instr, 7, 16);
38831 unsigned rm = ExtractDRegister(instr, 5, 0);
38841 switch (instr & 0x01000000) {
38844 DataType dt = Dt_size_10_Decode((instr >> 20) & 0x3);
38846 UnallocatedA32(instr);
38849 if (((instr >> 12) & 1) != 0) {
38850 UnallocatedA32(instr);
38853 unsigned rd = ExtractQRegister(instr, 22, 12);
38854 if (((instr >> 16) & 1) != 0) {
38855 UnallocatedA32(instr);
38858 unsigned rn = ExtractQRegister(instr, 7, 16);
38859 if ((instr & 1) != 0) {
38860 UnallocatedA32(instr);
38863 unsigned rm = ExtractQRegister(instr, 5, 0);
38870 DataType dt = Dt_size_10_Decode((instr >> 20) & 0x3);
38872 UnallocatedA32(instr);
38875 if (((instr >> 12) & 1) != 0) {
38876 UnallocatedA32(instr);
38879 unsigned rd = ExtractQRegister(instr, 22, 12);
38880 if (((instr >> 16) & 1) != 0) {
38881 UnallocatedA32(instr);
38884 unsigned rn = ExtractQRegister(instr, 7, 16);
38885 if ((instr & 1) != 0) {
38886 UnallocatedA32(instr);
38889 unsigned rm = ExtractQRegister(instr, 5, 0);
38899 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
38900 ((instr >> 22) & 0x4));
38902 UnallocatedA32(instr);
38905 unsigned rd = ExtractDRegister(instr, 22, 12);
38906 unsigned rn = ExtractDRegister(instr, 7, 16);
38907 unsigned rm = ExtractDRegister(instr, 5, 0);
38914 switch (instr & 0x01000000) {
38917 DataType dt = Dt_size_13_Decode((instr >> 20) & 0x3);
38919 UnallocatedA32(instr);
38922 unsigned rd = ExtractDRegister(instr, 22, 12);
38923 unsigned rn = ExtractDRegister(instr, 7, 16);
38924 unsigned rm = ExtractDRegister(instr, 5, 0);
38935 DataType dt = Dt_size_13_Decode((instr >> 20) & 0x3);
38937 UnallocatedA32(instr);
38940 unsigned rd = ExtractDRegister(instr, 22, 12);
38941 unsigned rn = ExtractDRegister(instr, 7, 16);
38942 unsigned rm = ExtractDRegister(instr, 5, 0);
38956 switch (instr & 0x01000000) {
38959 DataType dt = Dt_size_13_Decode((instr >> 20) & 0x3);
38961 UnallocatedA32(instr);
38964 if (((instr >> 12) & 1) != 0) {
38965 UnallocatedA32(instr);
38968 unsigned rd = ExtractQRegister(instr, 22, 12);
38969 if (((instr >> 16) & 1) != 0) {
38970 UnallocatedA32(instr);
38973 unsigned rn = ExtractQRegister(instr, 7, 16);
38974 if ((instr & 1) != 0) {
38975 UnallocatedA32(instr);
38978 unsigned rm = ExtractQRegister(instr, 5, 0);
38989 DataType dt = Dt_size_13_Decode((instr >> 20) & 0x3);
38991 UnallocatedA32(instr);
38994 if (((instr >> 12) & 1) != 0) {
38995 UnallocatedA32(instr);
38998 unsigned rd = ExtractQRegister(instr, 22, 12);
38999 if (((instr >> 16) & 1) != 0) {
39000 UnallocatedA32(instr);
39003 unsigned rn = ExtractQRegister(instr, 7, 16);
39004 if ((instr & 1) != 0) {
39005 UnallocatedA32(instr);
39008 unsigned rm = ExtractQRegister(instr, 5, 0);
39022 switch (instr & 0x01300000) {
39025 UnimplementedA32("SHA1C", instr);
39030 UnimplementedA32("SHA1P", instr);
39035 UnimplementedA32("SHA1M", instr);
39040 UnimplementedA32("SHA1SU0", instr);
39045 UnimplementedA32("SHA256H", instr);
39050 UnimplementedA32("SHA256H2", instr);
39055 UnimplementedA32("SHA256SU1", instr);
39059 UnallocatedA32(instr);
39066 switch (instr & 0x01300000) {
39069 unsigned rd = ExtractDRegister(instr, 22, 12);
39070 unsigned rn = ExtractDRegister(instr, 7, 16);
39071 unsigned rm = ExtractDRegister(instr, 5, 0);
39078 unsigned rd = ExtractDRegister(instr, 22, 12);
39079 unsigned rn = ExtractDRegister(instr, 7, 16);
39080 unsigned rm = ExtractDRegister(instr, 5, 0);
39087 unsigned rd = ExtractDRegister(instr, 22, 12);
39088 unsigned rn = ExtractDRegister(instr, 7, 16);
39089 unsigned rm = ExtractDRegister(instr, 5, 0);
39096 unsigned rd = ExtractDRegister(instr, 22, 12);
39097 unsigned rn = ExtractDRegister(instr, 7, 16);
39098 unsigned rm = ExtractDRegister(instr, 5, 0);
39104 UnallocatedA32(instr);
39111 switch (instr & 0x01300000) {
39114 if (((instr >> 12) & 1) != 0) {
39115 UnallocatedA32(instr);
39118 unsigned rd = ExtractQRegister(instr, 22, 12);
39119 if (((instr >> 16) & 1) != 0) {
39120 UnallocatedA32(instr);
39123 unsigned rn = ExtractQRegister(instr, 7, 16);
39124 if ((instr & 1) != 0) {
39125 UnallocatedA32(instr);
39128 unsigned rm = ExtractQRegister(instr, 5, 0);
39135 if (((instr >> 12) & 1) != 0) {
39136 UnallocatedA32(instr);
39139 unsigned rd = ExtractQRegister(instr, 22, 12);
39140 if (((instr >> 16) & 1) != 0) {
39141 UnallocatedA32(instr);
39144 unsigned rn = ExtractQRegister(instr, 7, 16);
39145 if ((instr & 1) != 0) {
39146 UnallocatedA32(instr);
39149 unsigned rm = ExtractQRegister(instr, 5, 0);
39156 if (((instr >> 12) & 1) != 0) {
39157 UnallocatedA32(instr);
39160 unsigned rd = ExtractQRegister(instr, 22, 12);
39161 if (((instr >> 16) & 1) != 0) {
39162 UnallocatedA32(instr);
39165 unsigned rn = ExtractQRegister(instr, 7, 16);
39166 if ((instr & 1) != 0) {
39167 UnallocatedA32(instr);
39170 unsigned rm = ExtractQRegister(instr, 5, 0);
39176 UnallocatedA32(instr);
39183 switch (instr & 0x01200000) {
39186 DataType dt = Dt_sz_1_Decode((instr >> 20) & 0x1);
39188 UnallocatedA32(instr);
39191 unsigned rd = ExtractDRegister(instr, 22, 12);
39192 unsigned rn = ExtractDRegister(instr, 7, 16);
39193 unsigned rm = ExtractDRegister(instr, 5, 0);
39200 if ((instr & 0x00100000) == 0x00000000) {
39201 unsigned rd = ExtractDRegister(instr, 22, 12);
39202 unsigned rn = ExtractDRegister(instr, 7, 16);
39203 unsigned rm = ExtractDRegister(instr, 5, 0);
39211 UnallocatedA32(instr);
39217 if ((instr & 0x00100000) == 0x00000000) {
39218 unsigned rd = ExtractDRegister(instr, 22, 12);
39219 unsigned rn = ExtractDRegister(instr, 7, 16);
39220 unsigned rm = ExtractDRegister(instr, 5, 0);
39228 UnallocatedA32(instr);
39233 UnallocatedA32(instr);
39240 switch (instr & 0x01200000) {
39243 DataType dt = Dt_sz_1_Decode((instr >> 20) & 0x1);
39245 UnallocatedA32(instr);
39248 if (((instr >> 12) & 1) != 0) {
39249 UnallocatedA32(instr);
39252 unsigned rd = ExtractQRegister(instr, 22, 12);
39253 if (((instr >> 16) & 1) != 0) {
39254 UnallocatedA32(instr);
39257 unsigned rn = ExtractQRegister(instr, 7, 16);
39258 if ((instr & 1) != 0) {
39259 UnallocatedA32(instr);
39262 unsigned rm = ExtractQRegister(instr, 5, 0);
39269 if ((instr & 0x00100000) == 0x00000000) {
39270 if (((instr >> 12) & 1) != 0) {
39271 UnallocatedA32(instr);
39274 unsigned rd = ExtractQRegister(instr, 22, 12);
39275 if (((instr >> 16) & 1) != 0) {
39276 UnallocatedA32(instr);
39279 unsigned rn = ExtractQRegister(instr, 7, 16);
39280 if ((instr & 1) != 0) {
39281 UnallocatedA32(instr);
39284 unsigned rm = ExtractQRegister(instr, 5, 0);
39292 UnallocatedA32(instr);
39298 if ((instr & 0x00100000) == 0x00000000) {
39299 if (((instr >> 12) & 1) != 0) {
39300 UnallocatedA32(instr);
39303 unsigned rd = ExtractQRegister(instr, 22, 12);
39304 if (((instr >> 16) & 1) != 0) {
39305 UnallocatedA32(instr);
39308 unsigned rn = ExtractQRegister(instr, 7, 16);
39309 if ((instr & 1) != 0) {
39310 UnallocatedA32(instr);
39313 unsigned rm = ExtractQRegister(instr, 5, 0);
39321 UnallocatedA32(instr);
39326 UnallocatedA32(instr);
39333 switch (instr & 0x01300000) {
39336 unsigned rd = ExtractDRegister(instr, 22, 12);
39337 unsigned rn = ExtractDRegister(instr, 7, 16);
39338 unsigned rm = ExtractDRegister(instr, 5, 0);
39345 unsigned rd = ExtractDRegister(instr, 22, 12);
39346 unsigned rn = ExtractDRegister(instr, 7, 16);
39347 unsigned rm = ExtractDRegister(instr, 5, 0);
39354 unsigned rd = ExtractDRegister(instr, 22, 12);
39355 unsigned rn = ExtractDRegister(instr, 7, 16);
39356 unsigned rm = ExtractDRegister(instr, 5, 0);
39363 unsigned rd = ExtractDRegister(instr, 22, 12);
39364 unsigned rn = ExtractDRegister(instr, 7, 16);
39365 unsigned rm = ExtractDRegister(instr, 5, 0);
39371 UnallocatedA32(instr);
39378 switch (instr & 0x01300000) {
39381 if (((instr >> 12) & 1) != 0) {
39382 UnallocatedA32(instr);
39385 unsigned rd = ExtractQRegister(instr, 22, 12);
39386 if (((instr >> 16) & 1) != 0) {
39387 UnallocatedA32(instr);
39390 unsigned rn = ExtractQRegister(instr, 7, 16);
39391 if ((instr & 1) != 0) {
39392 UnallocatedA32(instr);
39395 unsigned rm = ExtractQRegister(instr, 5, 0);
39402 if (((instr >> 12) & 1) != 0) {
39403 UnallocatedA32(instr);
39406 unsigned rd = ExtractQRegister(instr, 22, 12);
39407 if (((instr >> 16) & 1) != 0) {
39408 UnallocatedA32(instr);
39411 unsigned rn = ExtractQRegister(instr, 7, 16);
39412 if ((instr & 1) != 0) {
39413 UnallocatedA32(instr);
39416 unsigned rm = ExtractQRegister(instr, 5, 0);
39422 UnallocatedA32(instr);
39428 UnallocatedA32(instr);
39435 switch (instr & 0x00000f40) {
39438 DataType dt = Dt_U_size_3_Decode(((instr >> 20) & 0x3) |
39439 ((instr >> 22) & 0x4));
39441 UnallocatedA32(instr);
39444 unsigned rd = ExtractDRegister(instr, 22, 12);
39445 unsigned rn = ExtractDRegister(instr, 7, 16);
39446 unsigned rm = ExtractDRegister(instr, 5, 0);
39453 DataType dt = Dt_U_size_3_Decode(((instr >> 20) & 0x3) |
39454 ((instr >> 22) & 0x4));
39456 UnallocatedA32(instr);
39459 if (((instr >> 12) & 1) != 0) {
39460 UnallocatedA32(instr);
39463 unsigned rd = ExtractQRegister(instr, 22, 12);
39464 if (((instr >> 16) & 1) != 0) {
39465 UnallocatedA32(instr);
39468 unsigned rn = ExtractQRegister(instr, 7, 16);
39469 if ((instr & 1) != 0) {
39470 UnallocatedA32(instr);
39473 unsigned rm = ExtractQRegister(instr, 5, 0);
39480 switch (instr & 0x01300000) {
39483 unsigned rd = ExtractDRegister(instr, 22, 12);
39484 unsigned rn = ExtractDRegister(instr, 7, 16);
39485 unsigned rm = ExtractDRegister(instr, 5, 0);
39496 unsigned rd = ExtractDRegister(instr, 22, 12);
39497 unsigned rn = ExtractDRegister(instr, 7, 16);
39498 unsigned rm = ExtractDRegister(instr, 5, 0);
39509 if (((instr & 0x00000040) == 0x00000000) &&
39510 ((((Uint32((instr >> 7)) & Uint32(0x1)) << 4) |
39511 (Uint32((instr >> 16)) & Uint32(0xf))) ==
39512 (((Uint32((instr >> 5)) & Uint32(0x1)) << 4) |
39513 (Uint32(instr) & Uint32(0xf))))) {
39514 unsigned rd = ExtractDRegister(instr, 22, 12);
39515 unsigned rm = ExtractDRegister(instr, 7, 16);
39523 unsigned rd = ExtractDRegister(instr, 22, 12);
39524 unsigned rn = ExtractDRegister(instr, 7, 16);
39525 unsigned rm = ExtractDRegister(instr, 5, 0);
39536 unsigned rd = ExtractDRegister(instr, 22, 12);
39537 unsigned rn = ExtractDRegister(instr, 7, 16);
39538 unsigned rm = ExtractDRegister(instr, 5, 0);
39549 unsigned rd = ExtractDRegister(instr, 22, 12);
39550 unsigned rn = ExtractDRegister(instr, 7, 16);
39551 unsigned rm = ExtractDRegister(instr, 5, 0);
39562 unsigned rd = ExtractDRegister(instr, 22, 12);
39563 unsigned rn = ExtractDRegister(instr, 7, 16);
39564 unsigned rm = ExtractDRegister(instr, 5, 0);
39575 unsigned rd = ExtractDRegister(instr, 22, 12);
39576 unsigned rn = ExtractDRegister(instr, 7, 16);
39577 unsigned rm = ExtractDRegister(instr, 5, 0);
39588 unsigned rd = ExtractDRegister(instr, 22, 12);
39589 unsigned rn = ExtractDRegister(instr, 7, 16);
39590 unsigned rm = ExtractDRegister(instr, 5, 0);
39604 switch (instr & 0x01300000) {
39607 if (((instr >> 12) & 1) != 0) {
39608 UnallocatedA32(instr);
39611 unsigned rd = ExtractQRegister(instr, 22, 12);
39612 if (((instr >> 16) & 1) != 0) {
39613 UnallocatedA32(instr);
39616 unsigned rn = ExtractQRegister(instr, 7, 16);
39617 if ((instr & 1) != 0) {
39618 UnallocatedA32(instr);
39621 unsigned rm = ExtractQRegister(instr, 5, 0);
39632 if (((instr >> 12) & 1) != 0) {
39633 UnallocatedA32(instr);
39636 unsigned rd = ExtractQRegister(instr, 22, 12);
39637 if (((instr >> 16) & 1) != 0) {
39638 UnallocatedA32(instr);
39641 unsigned rn = ExtractQRegister(instr, 7, 16);
39642 if ((instr & 1) != 0) {
39643 UnallocatedA32(instr);
39646 unsigned rm = ExtractQRegister(instr, 5, 0);
39657 if (((instr & 0x00000040) == 0x00000040) &&
39658 ((((Uint32((instr >> 7)) & Uint32(0x1)) << 4) |
39659 (Uint32((instr >> 16)) & Uint32(0xf))) ==
39660 (((Uint32((instr >> 5)) & Uint32(0x1)) << 4) |
39661 (Uint32(instr) & Uint32(0xf))))) {
39662 if (((instr >> 12) & 1) != 0) {
39663 UnallocatedA32(instr);
39666 unsigned rd = ExtractQRegister(instr, 22, 12);
39667 if (((instr >> 16) & 1) != 0) {
39668 UnallocatedA32(instr);
39671 unsigned rm = ExtractQRegister(instr, 7, 16);
39679 if (((instr >> 12) & 1) != 0) {
39680 UnallocatedA32(instr);
39683 unsigned rd = ExtractQRegister(instr, 22, 12);
39684 if (((instr >> 16) & 1) != 0) {
39685 UnallocatedA32(instr);
39688 unsigned rn = ExtractQRegister(instr, 7, 16);
39689 if ((instr & 1) != 0) {
39690 UnallocatedA32(instr);
39693 unsigned rm = ExtractQRegister(instr, 5, 0);
39704 if (((instr >> 12) & 1) != 0) {
39705 UnallocatedA32(instr);
39708 unsigned rd = ExtractQRegister(instr, 22, 12);
39709 if (((instr >> 16) & 1) != 0) {
39710 UnallocatedA32(instr);
39713 unsigned rn = ExtractQRegister(instr, 7, 16);
39714 if ((instr & 1) != 0) {
39715 UnallocatedA32(instr);
39718 unsigned rm = ExtractQRegister(instr, 5, 0);
39729 if (((instr >> 12) & 1) != 0) {
39730 UnallocatedA32(instr);
39733 unsigned rd = ExtractQRegister(instr, 22, 12);
39734 if (((instr >> 16) & 1) != 0) {
39735 UnallocatedA32(instr);
39738 unsigned rn = ExtractQRegister(instr, 7, 16);
39739 if ((instr & 1) != 0) {
39740 UnallocatedA32(instr);
39743 unsigned rm = ExtractQRegister(instr, 5, 0);
39754 if (((instr >> 12) & 1) != 0) {
39755 UnallocatedA32(instr);
39758 unsigned rd = ExtractQRegister(instr, 22, 12);
39759 if (((instr >> 16) & 1) != 0) {
39760 UnallocatedA32(instr);
39763 unsigned rn = ExtractQRegister(instr, 7, 16);
39764 if ((instr & 1) != 0) {
39765 UnallocatedA32(instr);
39768 unsigned rm = ExtractQRegister(instr, 5, 0);
39779 if (((instr >> 12) & 1) != 0) {
39780 UnallocatedA32(instr);
39783 unsigned rd = ExtractQRegister(instr, 22, 12);
39784 if (((instr >> 16) & 1) != 0) {
39785 UnallocatedA32(instr);
39788 unsigned rn = ExtractQRegister(instr, 7, 16);
39789 if ((instr & 1) != 0) {
39790 UnallocatedA32(instr);
39793 unsigned rm = ExtractQRegister(instr, 5, 0);
39804 if (((instr >> 12) & 1) != 0) {
39805 UnallocatedA32(instr);
39808 unsigned rd = ExtractQRegister(instr, 22, 12);
39809 if (((instr >> 16) & 1) != 0) {
39810 UnallocatedA32(instr);
39813 unsigned rn = ExtractQRegister(instr, 7, 16);
39814 if ((instr & 1) != 0) {
39815 UnallocatedA32(instr);
39818 unsigned rm = ExtractQRegister(instr, 5, 0);
39832 DataType dt = Dt_U_size_3_Decode(((instr >> 20) & 0x3) |
39833 ((instr >> 22) & 0x4));
39835 UnallocatedA32(instr);
39838 unsigned rd = ExtractDRegister(instr, 22, 12);
39839 unsigned rn = ExtractDRegister(instr, 7, 16);
39840 unsigned rm = ExtractDRegister(instr, 5, 0);
39847 DataType dt = Dt_U_size_3_Decode(((instr >> 20) & 0x3) |
39848 ((instr >> 22) & 0x4));
39850 UnallocatedA32(instr);
39853 if (((instr >> 12) & 1) != 0) {
39854 UnallocatedA32(instr);
39857 unsigned rd = ExtractQRegister(instr, 22, 12);
39858 if (((instr >> 16) & 1) != 0) {
39859 UnallocatedA32(instr);
39862 unsigned rn = ExtractQRegister(instr, 7, 16);
39863 if ((instr & 1) != 0) {
39864 UnallocatedA32(instr);
39867 unsigned rm = ExtractQRegister(instr, 5, 0);
39874 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
39875 ((instr >> 22) & 0x4));
39877 UnallocatedA32(instr);
39880 unsigned rd = ExtractDRegister(instr, 22, 12);
39881 unsigned rn = ExtractDRegister(instr, 7, 16);
39882 unsigned rm = ExtractDRegister(instr, 5, 0);
39889 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
39890 ((instr >> 22) & 0x4));
39892 UnallocatedA32(instr);
39895 if (((instr >> 12) & 1) != 0) {
39896 UnallocatedA32(instr);
39899 unsigned rd = ExtractQRegister(instr, 22, 12);
39900 if (((instr >> 16) & 1) != 0) {
39901 UnallocatedA32(instr);
39904 unsigned rn = ExtractQRegister(instr, 7, 16);
39905 if ((instr & 1) != 0) {
39906 UnallocatedA32(instr);
39909 unsigned rm = ExtractQRegister(instr, 5, 0);
39916 DataType dt = Dt_U_size_3_Decode(((instr >> 20) & 0x3) |
39917 ((instr >> 22) & 0x4));
39919 UnallocatedA32(instr);
39922 unsigned rd = ExtractDRegister(instr, 22, 12);
39923 unsigned rm = ExtractDRegister(instr, 5, 0);
39924 unsigned rn = ExtractDRegister(instr, 7, 16);
39931 DataType dt = Dt_U_size_3_Decode(((instr >> 20) & 0x3) |
39932 ((instr >> 22) & 0x4));
39934 UnallocatedA32(instr);
39937 if (((instr >> 12) & 1) != 0) {
39938 UnallocatedA32(instr);
39941 unsigned rd = ExtractQRegister(instr, 22, 12);
39942 if ((instr & 1) != 0) {
39943 UnallocatedA32(instr);
39946 unsigned rm = ExtractQRegister(instr, 5, 0);
39947 if (((instr >> 16) & 1) != 0) {
39948 UnallocatedA32(instr);
39951 unsigned rn = ExtractQRegister(instr, 7, 16);
39958 DataType dt = Dt_U_size_3_Decode(((instr >> 20) & 0x3) |
39959 ((instr >> 22) & 0x4));
39961 UnallocatedA32(instr);
39964 unsigned rd = ExtractDRegister(instr, 22, 12);
39965 unsigned rm = ExtractDRegister(instr, 5, 0);
39966 unsigned rn = ExtractDRegister(instr, 7, 16);
39973 DataType dt = Dt_U_size_3_Decode(((instr >> 20) & 0x3) |
39974 ((instr >> 22) & 0x4));
39976 UnallocatedA32(instr);
39979 if (((instr >> 12) & 1) != 0) {
39980 UnallocatedA32(instr);
39983 unsigned rd = ExtractQRegister(instr, 22, 12);
39984 if ((instr & 1) != 0) {
39985 UnallocatedA32(instr);
39988 unsigned rm = ExtractQRegister(instr, 5, 0);
39989 if (((instr >> 16) & 1) != 0) {
39990 UnallocatedA32(instr);
39993 unsigned rn = ExtractQRegister(instr, 7, 16);
40000 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
40001 ((instr >> 22) & 0x4));
40003 UnallocatedA32(instr);
40006 unsigned rd = ExtractDRegister(instr, 22, 12);
40007 unsigned rn = ExtractDRegister(instr, 7, 16);
40008 unsigned rm = ExtractDRegister(instr, 5, 0);
40015 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
40016 ((instr >> 22) & 0x4));
40018 UnallocatedA32(instr);
40021 if (((instr >> 12) & 1) != 0) {
40022 UnallocatedA32(instr);
40025 unsigned rd = ExtractQRegister(instr, 22, 12);
40026 if (((instr >> 16) & 1) != 0) {
40027 UnallocatedA32(instr);
40030 unsigned rn = ExtractQRegister(instr, 7, 16);
40031 if ((instr & 1) != 0) {
40032 UnallocatedA32(instr);
40035 unsigned rm = ExtractQRegister(instr, 5, 0);
40042 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
40043 ((instr >> 22) & 0x4));
40045 UnallocatedA32(instr);
40048 unsigned rd = ExtractDRegister(instr, 22, 12);
40049 unsigned rn = ExtractDRegister(instr, 7, 16);
40050 unsigned rm = ExtractDRegister(instr, 5, 0);
40057 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
40058 ((instr >> 22) & 0x4));
40060 UnallocatedA32(instr);
40063 if (((instr >> 12) & 1) != 0) {
40064 UnallocatedA32(instr);
40067 unsigned rd = ExtractQRegister(instr, 22, 12);
40068 if (((instr >> 16) & 1) != 0) {
40069 UnallocatedA32(instr);
40072 unsigned rn = ExtractQRegister(instr, 7, 16);
40073 if ((instr & 1) != 0) {
40074 UnallocatedA32(instr);
40077 unsigned rm = ExtractQRegister(instr, 5, 0);
40084 switch (instr & 0x01000000) {
40087 DataType dt = Dt_size_7_Decode((instr >> 20) & 0x3);
40089 UnallocatedA32(instr);
40092 unsigned rd = ExtractDRegister(instr, 22, 12);
40093 unsigned rn = ExtractDRegister(instr, 7, 16);
40094 unsigned rm = ExtractDRegister(instr, 5, 0);
40101 DataType dt = Dt_size_4_Decode((instr >> 20) & 0x3);
40103 UnallocatedA32(instr);
40106 unsigned rd = ExtractDRegister(instr, 22, 12);
40107 unsigned rn = ExtractDRegister(instr, 7, 16);
40108 unsigned rm = ExtractDRegister(instr, 5, 0);
40118 switch (instr & 0x01000000) {
40121 DataType dt = Dt_size_7_Decode((instr >> 20) & 0x3);
40123 UnallocatedA32(instr);
40126 if (((instr >> 12) & 1) != 0) {
40127 UnallocatedA32(instr);
40130 unsigned rd = ExtractQRegister(instr, 22, 12);
40131 if (((instr >> 16) & 1) != 0) {
40132 UnallocatedA32(instr);
40135 unsigned rn = ExtractQRegister(instr, 7, 16);
40136 if ((instr & 1) != 0) {
40137 UnallocatedA32(instr);
40140 unsigned rm = ExtractQRegister(instr, 5, 0);
40147 DataType dt = Dt_size_4_Decode((instr >> 20) & 0x3);
40149 UnallocatedA32(instr);
40152 if (((instr >> 12) & 1) != 0) {
40153 UnallocatedA32(instr);
40156 unsigned rd = ExtractQRegister(instr, 22, 12);
40157 if (((instr >> 16) & 1) != 0) {
40158 UnallocatedA32(instr);
40161 unsigned rn = ExtractQRegister(instr, 7, 16);
40162 if ((instr & 1) != 0) {
40163 UnallocatedA32(instr);
40166 unsigned rm = ExtractQRegister(instr, 5, 0);
40176 DataType dt = Dt_op_size_1_Decode(((instr >> 20) & 0x3) |
40177 ((instr >> 22) & 0x4));
40179 UnallocatedA32(instr);
40182 unsigned rd = ExtractDRegister(instr, 22, 12);
40183 unsigned rn = ExtractDRegister(instr, 7, 16);
40184 unsigned rm = ExtractDRegister(instr, 5, 0);
40191 DataType dt = Dt_op_size_1_Decode(((instr >> 20) & 0x3) |
40192 ((instr >> 22) & 0x4));
40194 UnallocatedA32(instr);
40197 if (((instr >> 12) & 1) != 0) {
40198 UnallocatedA32(instr);
40201 unsigned rd = ExtractQRegister(instr, 22, 12);
40202 if (((instr >> 16) & 1) != 0) {
40203 UnallocatedA32(instr);
40206 unsigned rn = ExtractQRegister(instr, 7, 16);
40207 if ((instr & 1) != 0) {
40208 UnallocatedA32(instr);
40211 unsigned rm = ExtractQRegister(instr, 5, 0);
40218 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
40219 ((instr >> 22) & 0x4));
40221 UnallocatedA32(instr);
40224 unsigned rd = ExtractDRegister(instr, 22, 12);
40225 unsigned rn = ExtractDRegister(instr, 7, 16);
40226 unsigned rm = ExtractDRegister(instr, 5, 0);
40233 if ((instr & 0x01000000) == 0x00000000) {
40234 DataType dt = Dt_size_4_Decode((instr >> 20) & 0x3);
40236 UnallocatedA32(instr);
40239 unsigned rd = ExtractDRegister(instr, 22, 12);
40240 unsigned rn = ExtractDRegister(instr, 7, 16);
40241 unsigned rm = ExtractDRegister(instr, 5, 0);
40245 UnallocatedA32(instr);
40251 switch (instr & 0x01300000) {
40254 unsigned rd = ExtractDRegister(instr, 22, 12);
40255 unsigned rn = ExtractDRegister(instr, 7, 16);
40256 unsigned rm = ExtractDRegister(instr, 5, 0);
40263 unsigned rd = ExtractDRegister(instr, 22, 12);
40264 unsigned rn = ExtractDRegister(instr, 7, 16);
40265 unsigned rm = ExtractDRegister(instr, 5, 0);
40271 UnallocatedA32(instr);
40278 switch (instr & 0x01300000) {
40281 if (((instr >> 12) & 1) != 0) {
40282 UnallocatedA32(instr);
40285 unsigned rd = ExtractQRegister(instr, 22, 12);
40286 if (((instr >> 16) & 1) != 0) {
40287 UnallocatedA32(instr);
40290 unsigned rn = ExtractQRegister(instr, 7, 16);
40291 if ((instr & 1) != 0) {
40292 UnallocatedA32(instr);
40295 unsigned rm = ExtractQRegister(instr, 5, 0);
40302 if (((instr >> 12) & 1) != 0) {
40303 UnallocatedA32(instr);
40306 unsigned rd = ExtractQRegister(instr, 22, 12);
40307 if (((instr >> 16) & 1) != 0) {
40308 UnallocatedA32(instr);
40311 unsigned rn = ExtractQRegister(instr, 7, 16);
40312 if ((instr & 1) != 0) {
40313 UnallocatedA32(instr);
40316 unsigned rm = ExtractQRegister(instr, 5, 0);
40322 UnallocatedA32(instr);
40329 switch (instr & 0x01300000) {
40332 unsigned rd = ExtractDRegister(instr, 22, 12);
40333 unsigned rn = ExtractDRegister(instr, 7, 16);
40334 unsigned rm = ExtractDRegister(instr, 5, 0);
40341 unsigned rd = ExtractDRegister(instr, 22, 12);
40342 unsigned rn = ExtractDRegister(instr, 7, 16);
40343 unsigned rm = ExtractDRegister(instr, 5, 0);
40350 unsigned rd = ExtractDRegister(instr, 22, 12);
40351 unsigned rn = ExtractDRegister(instr, 7, 16);
40352 unsigned rm = ExtractDRegister(instr, 5, 0);
40358 UnallocatedA32(instr);
40365 switch (instr & 0x01300000) {
40368 if (((instr >> 12) & 1) != 0) {
40369 UnallocatedA32(instr);
40372 unsigned rd = ExtractQRegister(instr, 22, 12);
40373 if (((instr >> 16) & 1) != 0) {
40374 UnallocatedA32(instr);
40377 unsigned rn = ExtractQRegister(instr, 7, 16);
40378 if ((instr & 1) != 0) {
40379 UnallocatedA32(instr);
40382 unsigned rm = ExtractQRegister(instr, 5, 0);
40389 if (((instr >> 12) & 1) != 0) {
40390 UnallocatedA32(instr);
40393 unsigned rd = ExtractQRegister(instr, 22, 12);
40394 if (((instr >> 16) & 1) != 0) {
40395 UnallocatedA32(instr);
40398 unsigned rn = ExtractQRegister(instr, 7, 16);
40399 if ((instr & 1) != 0) {
40400 UnallocatedA32(instr);
40403 unsigned rm = ExtractQRegister(instr, 5, 0);
40410 if (((instr >> 12) & 1) != 0) {
40411 UnallocatedA32(instr);
40414 unsigned rd = ExtractQRegister(instr, 22, 12);
40415 if (((instr >> 16) & 1) != 0) {
40416 UnallocatedA32(instr);
40419 unsigned rn = ExtractQRegister(instr, 7, 16);
40420 if ((instr & 1) != 0) {
40421 UnallocatedA32(instr);
40424 unsigned rm = ExtractQRegister(instr, 5, 0);
40430 UnallocatedA32(instr);
40437 switch (instr & 0x01300000) {
40440 unsigned rd = ExtractDRegister(instr, 22, 12);
40441 unsigned rn = ExtractDRegister(instr, 7, 16);
40442 unsigned rm = ExtractDRegister(instr, 5, 0);
40449 unsigned rd = ExtractDRegister(instr, 22, 12);
40450 unsigned rn = ExtractDRegister(instr, 7, 16);
40451 unsigned rm = ExtractDRegister(instr, 5, 0);
40457 UnallocatedA32(instr);
40464 switch (instr & 0x01300000) {
40467 if (((instr >> 12) & 1) != 0) {
40468 UnallocatedA32(instr);
40471 unsigned rd = ExtractQRegister(instr, 22, 12);
40472 if (((instr >> 16) & 1) != 0) {
40473 UnallocatedA32(instr);
40476 unsigned rn = ExtractQRegister(instr, 7, 16);
40477 if ((instr & 1) != 0) {
40478 UnallocatedA32(instr);
40481 unsigned rm = ExtractQRegister(instr, 5, 0);
40488 if (((instr >> 12) & 1) != 0) {
40489 UnallocatedA32(instr);
40492 unsigned rd = ExtractQRegister(instr, 22, 12);
40493 if (((instr >> 16) & 1) != 0) {
40494 UnallocatedA32(instr);
40497 unsigned rn = ExtractQRegister(instr, 7, 16);
40498 if ((instr & 1) != 0) {
40499 UnallocatedA32(instr);
40502 unsigned rm = ExtractQRegister(instr, 5, 0);
40508 UnallocatedA32(instr);
40515 switch (instr & 0x01300000) {
40518 unsigned rd = ExtractDRegister(instr, 22, 12);
40519 unsigned rn = ExtractDRegister(instr, 7, 16);
40520 unsigned rm = ExtractDRegister(instr, 5, 0);
40531 unsigned rd = ExtractDRegister(instr, 22, 12);
40532 unsigned rn = ExtractDRegister(instr, 7, 16);
40533 unsigned rm = ExtractDRegister(instr, 5, 0);
40544 unsigned rd = ExtractDRegister(instr, 22, 12);
40545 unsigned rn = ExtractDRegister(instr, 7, 16);
40546 unsigned rm = ExtractDRegister(instr, 5, 0);
40553 unsigned rd = ExtractDRegister(instr, 22, 12);
40554 unsigned rn = ExtractDRegister(instr, 7, 16);
40555 unsigned rm = ExtractDRegister(instr, 5, 0);
40561 UnallocatedA32(instr);
40568 switch (instr & 0x01300000) {
40571 if (((instr >> 12) & 1) != 0) {
40572 UnallocatedA32(instr);
40575 unsigned rd = ExtractQRegister(instr, 22, 12);
40576 if (((instr >> 16) & 1) != 0) {
40577 UnallocatedA32(instr);
40580 unsigned rn = ExtractQRegister(instr, 7, 16);
40581 if ((instr & 1) != 0) {
40582 UnallocatedA32(instr);
40585 unsigned rm = ExtractQRegister(instr, 5, 0);
40596 if (((instr >> 12) & 1) != 0) {
40597 UnallocatedA32(instr);
40600 unsigned rd = ExtractQRegister(instr, 22, 12);
40601 if (((instr >> 16) & 1) != 0) {
40602 UnallocatedA32(instr);
40605 unsigned rn = ExtractQRegister(instr, 7, 16);
40606 if ((instr & 1) != 0) {
40607 UnallocatedA32(instr);
40610 unsigned rm = ExtractQRegister(instr, 5, 0);
40621 if (((instr >> 12) & 1) != 0) {
40622 UnallocatedA32(instr);
40625 unsigned rd = ExtractQRegister(instr, 22, 12);
40626 if (((instr >> 16) & 1) != 0) {
40627 UnallocatedA32(instr);
40630 unsigned rn = ExtractQRegister(instr, 7, 16);
40631 if ((instr & 1) != 0) {
40632 UnallocatedA32(instr);
40635 unsigned rm = ExtractQRegister(instr, 5, 0);
40642 if (((instr >> 12) & 1) != 0) {
40643 UnallocatedA32(instr);
40646 unsigned rd = ExtractQRegister(instr, 22, 12);
40647 if (((instr >> 16) & 1) != 0) {
40648 UnallocatedA32(instr);
40651 unsigned rn = ExtractQRegister(instr, 7, 16);
40652 if ((instr & 1) != 0) {
40653 UnallocatedA32(instr);
40656 unsigned rm = ExtractQRegister(instr, 5, 0);
40662 UnallocatedA32(instr);
40668 UnallocatedA32(instr);
40675 switch (instr & 0x00300000) {
40678 switch (instr & 0x01000000) {
40681 switch (instr & 0x00000040) {
40684 if (((instr & 0x800) == 0x800)) {
40685 UnallocatedA32(instr);
40688 unsigned rd = ExtractDRegister(instr, 22, 12);
40689 unsigned rn = ExtractDRegister(instr, 7, 16);
40690 unsigned rm = ExtractDRegister(instr, 5, 0);
40691 uint32_t imm = (instr >> 8) & 0xf;
40703 if (((instr >> 12) & 1) != 0) {
40704 UnallocatedA32(instr);
40707 unsigned rd = ExtractQRegister(instr, 22, 12);
40708 if (((instr >> 16) & 1) != 0) {
40709 UnallocatedA32(instr);
40712 unsigned rn = ExtractQRegister(instr, 7, 16);
40713 if ((instr & 1) != 0) {
40714 UnallocatedA32(instr);
40717 unsigned rm = ExtractQRegister(instr, 5, 0);
40718 uint32_t imm = (instr >> 8) & 0xf;
40733 switch (instr & 0x00000800) {
40736 switch (instr & 0x00030200) {
40739 switch (instr & 0x000005c0) {
40743 Dt_size_7_Decode((instr >> 18) & 0x3);
40745 UnallocatedA32(instr);
40748 unsigned rd = ExtractDRegister(instr, 22, 12);
40749 unsigned rm = ExtractDRegister(instr, 5, 0);
40757 Dt_size_7_Decode((instr >> 18) & 0x3);
40759 UnallocatedA32(instr);
40762 if (((instr >> 12) & 1) != 0) {
40763 UnallocatedA32(instr);
40766 unsigned rd = ExtractQRegister(instr, 22, 12);
40767 if ((instr & 1) != 0) {
40768 UnallocatedA32(instr);
40771 unsigned rm = ExtractQRegister(instr, 5, 0);
40779 Dt_size_15_Decode((instr >> 18) & 0x3);
40781 UnallocatedA32(instr);
40784 unsigned rd = ExtractDRegister(instr, 22, 12);
40785 unsigned rm = ExtractDRegister(instr, 5, 0);
40793 Dt_size_15_Decode((instr >> 18) & 0x3);
40795 UnallocatedA32(instr);
40798 if (((instr >> 12) & 1) != 0) {
40799 UnallocatedA32(instr);
40802 unsigned rd = ExtractQRegister(instr, 22, 12);
40803 if ((instr & 1) != 0) {
40804 UnallocatedA32(instr);
40807 unsigned rm = ExtractQRegister(instr, 5, 0);
40815 Dt_size_1_Decode((instr >> 18) & 0x3);
40817 UnallocatedA32(instr);
40820 unsigned rd = ExtractDRegister(instr, 22, 12);
40821 unsigned rm = ExtractDRegister(instr, 5, 0);
40829 Dt_size_1_Decode((instr >> 18) & 0x3);
40831 UnallocatedA32(instr);
40834 if (((instr >> 12) & 1) != 0) {
40835 UnallocatedA32(instr);
40838 unsigned rd = ExtractQRegister(instr, 22, 12);
40839 if ((instr & 1) != 0) {
40840 UnallocatedA32(instr);
40843 unsigned rm = ExtractQRegister(instr, 5, 0);
40851 Dt_size_5_Decode((instr >> 18) & 0x3);
40853 UnallocatedA32(instr);
40856 unsigned rd = ExtractDRegister(instr, 22, 12);
40857 unsigned rm = ExtractDRegister(instr, 5, 0);
40865 Dt_size_5_Decode((instr >> 18) & 0x3);
40867 UnallocatedA32(instr);
40870 if (((instr >> 12) & 1) != 0) {
40871 UnallocatedA32(instr);
40874 unsigned rd = ExtractQRegister(instr, 22, 12);
40875 if ((instr & 1) != 0) {
40876 UnallocatedA32(instr);
40879 unsigned rm = ExtractQRegister(instr, 5, 0);
40887 Dt_size_4_Decode((instr >> 18) & 0x3);
40889 UnallocatedA32(instr);
40892 unsigned rd = ExtractDRegister(instr, 22, 12);
40893 unsigned rm = ExtractDRegister(instr, 5, 0);
40901 Dt_size_4_Decode((instr >> 18) & 0x3);
40903 UnallocatedA32(instr);
40906 if (((instr >> 12) & 1) != 0) {
40907 UnallocatedA32(instr);
40910 unsigned rd = ExtractQRegister(instr, 22, 12);
40911 if ((instr & 1) != 0) {
40912 UnallocatedA32(instr);
40915 unsigned rm = ExtractQRegister(instr, 5, 0);
40922 if ((instr & 0x000c0000) == 0x00000000) {
40923 unsigned rd = ExtractDRegister(instr, 22, 12);
40924 unsigned rm = ExtractDRegister(instr, 5, 0);
40931 UnallocatedA32(instr);
40937 if ((instr & 0x000c0000) == 0x00000000) {
40938 if (((instr >> 12) & 1) != 0) {
40939 UnallocatedA32(instr);
40942 unsigned rd = ExtractQRegister(instr, 22, 12);
40943 if ((instr & 1) != 0) {
40944 UnallocatedA32(instr);
40947 unsigned rm = ExtractQRegister(instr, 5, 0);
40954 UnallocatedA32(instr);
40960 if ((instr & 0x000c0000) == 0x00000000) {
40961 unsigned rd = ExtractDRegister(instr, 22, 12);
40962 unsigned rm = ExtractDRegister(instr, 5, 0);
40969 UnallocatedA32(instr);
40975 if ((instr & 0x000c0000) == 0x00000000) {
40976 if (((instr >> 12) & 1) != 0) {
40977 UnallocatedA32(instr);
40980 unsigned rd = ExtractQRegister(instr, 22, 12);
40981 if ((instr & 1) != 0) {
40982 UnallocatedA32(instr);
40985 unsigned rm = ExtractQRegister(instr, 5, 0);
40992 UnallocatedA32(instr);
40997 UnallocatedA32(instr);
41004 switch (instr & 0x00000540) {
41008 Dt_op_size_2_Decode(((instr >> 18) & 0x3) |
41009 ((instr >> 5) & 0x4));
41011 UnallocatedA32(instr);
41014 unsigned rd = ExtractDRegister(instr, 22, 12);
41015 unsigned rm = ExtractDRegister(instr, 5, 0);
41023 Dt_op_size_2_Decode(((instr >> 18) & 0x3) |
41024 ((instr >> 5) & 0x4));
41026 UnallocatedA32(instr);
41029 if (((instr >> 12) & 1) != 0) {
41030 UnallocatedA32(instr);
41033 unsigned rd = ExtractQRegister(instr, 22, 12);
41034 if ((instr & 1) != 0) {
41035 UnallocatedA32(instr);
41038 unsigned rm = ExtractQRegister(instr, 5, 0);
41045 switch (instr & 0x00000080) {
41048 UnimplementedA32("AESE", instr);
41053 UnimplementedA32("AESMC", instr);
41061 switch (instr & 0x00000080) {
41064 UnimplementedA32("AESD", instr);
41069 UnimplementedA32("AESIMC", instr);
41078 Dt_op_size_2_Decode(((instr >> 18) & 0x3) |
41079 ((instr >> 5) & 0x4));
41081 UnallocatedA32(instr);
41084 unsigned rd = ExtractDRegister(instr, 22, 12);
41085 unsigned rm = ExtractDRegister(instr, 5, 0);
41093 Dt_op_size_2_Decode(((instr >> 18) & 0x3) |
41094 ((instr >> 5) & 0x4));
41096 UnallocatedA32(instr);
41099 if (((instr >> 12) & 1) != 0) {
41100 UnallocatedA32(instr);
41103 unsigned rd = ExtractQRegister(instr, 22, 12);
41104 if ((instr & 1) != 0) {
41105 UnallocatedA32(instr);
41108 unsigned rm = ExtractQRegister(instr, 5, 0);
41115 switch (instr & 0x00000080) {
41119 Dt_size_5_Decode((instr >> 18) & 0x3);
41121 UnallocatedA32(instr);
41125 ExtractDRegister(instr, 22, 12);
41126 unsigned rm = ExtractDRegister(instr, 5, 0);
41134 Dt_size_5_Decode((instr >> 18) & 0x3);
41136 UnallocatedA32(instr);
41140 ExtractDRegister(instr, 22, 12);
41141 unsigned rm = ExtractDRegister(instr, 5, 0);
41151 switch (instr & 0x00000080) {
41155 Dt_size_5_Decode((instr >> 18) & 0x3);
41157 UnallocatedA32(instr);
41160 if (((instr >> 12) & 1) != 0) {
41161 UnallocatedA32(instr);
41165 ExtractQRegister(instr, 22, 12);
41166 if ((instr & 1) != 0) {
41167 UnallocatedA32(instr);
41170 unsigned rm = ExtractQRegister(instr, 5, 0);
41178 Dt_size_5_Decode((instr >> 18) & 0x3);
41180 UnallocatedA32(instr);
41183 if (((instr >> 12) & 1) != 0) {
41184 UnallocatedA32(instr);
41188 ExtractQRegister(instr, 22, 12);
41189 if ((instr & 1) != 0) {
41190 UnallocatedA32(instr);
41193 unsigned rm = ExtractQRegister(instr, 5, 0);
41206 switch (instr & 0x000001c0) {
41210 Dt_F_size_1_Decode(((instr >> 18) & 0x3) |
41211 ((instr >> 8) & 0x4));
41213 UnallocatedA32(instr);
41216 unsigned rd = ExtractDRegister(instr, 22, 12);
41217 unsigned rm = ExtractDRegister(instr, 5, 0);
41229 Dt_F_size_1_Decode(((instr >> 18) & 0x3) |
41230 ((instr >> 8) & 0x4));
41232 UnallocatedA32(instr);
41235 if (((instr >> 12) & 1) != 0) {
41236 UnallocatedA32(instr);
41239 unsigned rd = ExtractQRegister(instr, 22, 12);
41240 if ((instr & 1) != 0) {
41241 UnallocatedA32(instr);
41244 unsigned rm = ExtractQRegister(instr, 5, 0);
41256 Dt_F_size_1_Decode(((instr >> 18) & 0x3) |
41257 ((instr >> 8) & 0x4));
41259 UnallocatedA32(instr);
41262 unsigned rd = ExtractDRegister(instr, 22, 12);
41263 unsigned rm = ExtractDRegister(instr, 5, 0);
41275 Dt_F_size_1_Decode(((instr >> 18) & 0x3) |
41276 ((instr >> 8) & 0x4));
41278 UnallocatedA32(instr);
41281 if (((instr >> 12) & 1) != 0) {
41282 UnallocatedA32(instr);
41285 unsigned rd = ExtractQRegister(instr, 22, 12);
41286 if ((instr & 1) != 0) {
41287 UnallocatedA32(instr);
41290 unsigned rm = ExtractQRegister(instr, 5, 0);
41302 Dt_F_size_2_Decode(((instr >> 18) & 0x3) |
41303 ((instr >> 8) & 0x4));
41305 UnallocatedA32(instr);
41308 unsigned rd = ExtractDRegister(instr, 22, 12);
41309 unsigned rm = ExtractDRegister(instr, 5, 0);
41321 Dt_F_size_2_Decode(((instr >> 18) & 0x3) |
41322 ((instr >> 8) & 0x4));
41324 UnallocatedA32(instr);
41327 if (((instr >> 12) & 1) != 0) {
41328 UnallocatedA32(instr);
41331 unsigned rd = ExtractQRegister(instr, 22, 12);
41332 if ((instr & 1) != 0) {
41333 UnallocatedA32(instr);
41336 unsigned rm = ExtractQRegister(instr, 5, 0);
41348 Dt_F_size_1_Decode(((instr >> 18) & 0x3) |
41349 ((instr >> 8) & 0x4));
41351 UnallocatedA32(instr);
41354 unsigned rd = ExtractDRegister(instr, 22, 12);
41355 unsigned rm = ExtractDRegister(instr, 5, 0);
41367 Dt_F_size_1_Decode(((instr >> 18) & 0x3) |
41368 ((instr >> 8) & 0x4));
41370 UnallocatedA32(instr);
41373 if (((instr >> 12) & 1) != 0) {
41374 UnallocatedA32(instr);
41377 unsigned rd = ExtractQRegister(instr, 22, 12);
41378 if ((instr & 1) != 0) {
41379 UnallocatedA32(instr);
41382 unsigned rm = ExtractQRegister(instr, 5, 0);
41396 switch (instr & 0x000001c0) {
41400 Dt_F_size_1_Decode(((instr >> 18) & 0x3) |
41401 ((instr >> 8) & 0x4));
41403 UnallocatedA32(instr);
41406 unsigned rd = ExtractDRegister(instr, 22, 12);
41407 unsigned rm = ExtractDRegister(instr, 5, 0);
41419 Dt_F_size_1_Decode(((instr >> 18) & 0x3) |
41420 ((instr >> 8) & 0x4));
41422 UnallocatedA32(instr);
41425 if (((instr >> 12) & 1) != 0) {
41426 UnallocatedA32(instr);
41429 unsigned rd = ExtractQRegister(instr, 22, 12);
41430 if ((instr & 1) != 0) {
41431 UnallocatedA32(instr);
41434 unsigned rm = ExtractQRegister(instr, 5, 0);
41445 if ((instr & 0x000c0400) == 0x00080000) {
41446 UnimplementedA32("SHA1H", instr);
41448 UnallocatedA32(instr);
41455 Dt_F_size_1_Decode(((instr >> 18) & 0x3) |
41456 ((instr >> 8) & 0x4));
41458 UnallocatedA32(instr);
41461 unsigned rd = ExtractDRegister(instr, 22, 12);
41462 unsigned rm = ExtractDRegister(instr, 5, 0);
41470 Dt_F_size_1_Decode(((instr >> 18) & 0x3) |
41471 ((instr >> 8) & 0x4));
41473 UnallocatedA32(instr);
41476 if (((instr >> 12) & 1) != 0) {
41477 UnallocatedA32(instr);
41480 unsigned rd = ExtractQRegister(instr, 22, 12);
41481 if ((instr & 1) != 0) {
41482 UnallocatedA32(instr);
41485 unsigned rm = ExtractQRegister(instr, 5, 0);
41493 Dt_F_size_1_Decode(((instr >> 18) & 0x3) |
41494 ((instr >> 8) & 0x4));
41496 UnallocatedA32(instr);
41499 unsigned rd = ExtractDRegister(instr, 22, 12);
41500 unsigned rm = ExtractDRegister(instr, 5, 0);
41508 Dt_F_size_1_Decode(((instr >> 18) & 0x3) |
41509 ((instr >> 8) & 0x4));
41511 UnallocatedA32(instr);
41514 if (((instr >> 12) & 1) != 0) {
41515 UnallocatedA32(instr);
41518 unsigned rd = ExtractQRegister(instr, 22, 12);
41519 if ((instr & 1) != 0) {
41520 UnallocatedA32(instr);
41523 unsigned rm = ExtractQRegister(instr, 5, 0);
41529 UnallocatedA32(instr);
41536 switch (instr & 0x000005c0) {
41539 if ((instr & 0x000c0000) == 0x00000000) {
41540 unsigned rd = ExtractDRegister(instr, 22, 12);
41541 unsigned rm = ExtractDRegister(instr, 5, 0);
41548 UnallocatedA32(instr);
41554 if ((instr & 0x000c0000) == 0x00000000) {
41555 if (((instr >> 12) & 1) != 0) {
41556 UnallocatedA32(instr);
41559 unsigned rd = ExtractQRegister(instr, 22, 12);
41560 if ((instr & 1) != 0) {
41561 UnallocatedA32(instr);
41564 unsigned rm = ExtractQRegister(instr, 5, 0);
41571 UnallocatedA32(instr);
41578 Dt_size_7_Decode((instr >> 18) & 0x3);
41580 UnallocatedA32(instr);
41583 unsigned rd = ExtractDRegister(instr, 22, 12);
41584 unsigned rm = ExtractDRegister(instr, 5, 0);
41592 Dt_size_7_Decode((instr >> 18) & 0x3);
41594 UnallocatedA32(instr);
41597 if (((instr >> 12) & 1) != 0) {
41598 UnallocatedA32(instr);
41601 unsigned rd = ExtractQRegister(instr, 22, 12);
41602 if ((instr & 1) != 0) {
41603 UnallocatedA32(instr);
41606 unsigned rm = ExtractQRegister(instr, 5, 0);
41614 Dt_size_15_Decode((instr >> 18) & 0x3);
41616 UnallocatedA32(instr);
41619 unsigned rd = ExtractDRegister(instr, 22, 12);
41620 unsigned rm = ExtractDRegister(instr, 5, 0);
41628 Dt_size_7_Decode((instr >> 18) & 0x3);
41630 UnallocatedA32(instr);
41633 if (((instr >> 12) & 1) != 0) {
41634 UnallocatedA32(instr);
41637 unsigned rd = ExtractQRegister(instr, 22, 12);
41638 if ((instr & 1) != 0) {
41639 UnallocatedA32(instr);
41642 unsigned rm = ExtractQRegister(instr, 5, 0);
41650 Dt_size_15_Decode((instr >> 18) & 0x3);
41652 UnallocatedA32(instr);
41655 unsigned rd = ExtractDRegister(instr, 22, 12);
41656 unsigned rm = ExtractDRegister(instr, 5, 0);
41664 Dt_size_7_Decode((instr >> 18) & 0x3);
41666 UnallocatedA32(instr);
41669 if (((instr >> 12) & 1) != 0) {
41670 UnallocatedA32(instr);
41673 unsigned rd = ExtractQRegister(instr, 22, 12);
41674 if ((instr & 1) != 0) {
41675 UnallocatedA32(instr);
41678 unsigned rm = ExtractQRegister(instr, 5, 0);
41686 Dt_size_16_Decode((instr >> 18) & 0x3);
41688 UnallocatedA32(instr);
41691 unsigned rd = ExtractDRegister(instr, 22, 12);
41692 unsigned rm = ExtractDRegister(instr, 5, 0);
41700 Dt_size_16_Decode((instr >> 18) & 0x3);
41702 UnallocatedA32(instr);
41705 if (((instr >> 12) & 1) != 0) {
41706 UnallocatedA32(instr);
41709 unsigned rd = ExtractQRegister(instr, 22, 12);
41710 if ((instr & 1) != 0) {
41711 UnallocatedA32(instr);
41714 unsigned rm = ExtractQRegister(instr, 5, 0);
41722 Dt_size_16_Decode((instr >> 18) & 0x3);
41724 UnallocatedA32(instr);
41727 unsigned rd = ExtractDRegister(instr, 22, 12);
41728 unsigned rm = ExtractDRegister(instr, 5, 0);
41736 Dt_size_16_Decode((instr >> 18) & 0x3);
41738 UnallocatedA32(instr);
41741 if (((instr >> 12) & 1) != 0) {
41742 UnallocatedA32(instr);
41745 unsigned rd = ExtractQRegister(instr, 22, 12);
41746 if ((instr & 1) != 0) {
41747 UnallocatedA32(instr);
41750 unsigned rm = ExtractQRegister(instr, 5, 0);
41758 Dt_size_16_Decode((instr >> 18) & 0x3);
41760 UnallocatedA32(instr);
41763 unsigned rd = ExtractDRegister(instr, 22, 12);
41764 unsigned rm = ExtractDRegister(instr, 5, 0);
41772 Dt_size_16_Decode((instr >> 18) & 0x3);
41774 UnallocatedA32(instr);
41777 if (((instr >> 12) & 1) != 0) {
41778 UnallocatedA32(instr);
41781 unsigned rd = ExtractQRegister(instr, 22, 12);
41782 if ((instr & 1) != 0) {
41783 UnallocatedA32(instr);
41786 unsigned rm = ExtractQRegister(instr, 5, 0);
41794 Dt_size_16_Decode((instr >> 18) & 0x3);
41796 UnallocatedA32(instr);
41799 unsigned rd = ExtractDRegister(instr, 22, 12);
41800 unsigned rm = ExtractDRegister(instr, 5, 0);
41808 Dt_size_16_Decode((instr >> 18) & 0x3);
41810 UnallocatedA32(instr);
41813 if (((instr >> 12) & 1) != 0) {
41814 UnallocatedA32(instr);
41817 unsigned rd = ExtractQRegister(instr, 22, 12);
41818 if ((instr & 1) != 0) {
41819 UnallocatedA32(instr);
41822 unsigned rm = ExtractQRegister(instr, 5, 0);
41832 switch (instr & 0x00000580) {
41835 switch (instr & 0x00000040) {
41839 Dt_size_3_Decode((instr >> 18) & 0x3);
41841 UnallocatedA32(instr);
41845 ExtractDRegister(instr, 22, 12);
41846 if ((instr & 1) != 0) {
41847 UnallocatedA32(instr);
41850 unsigned rm = ExtractQRegister(instr, 5, 0);
41858 Dt_size_14_Decode((instr >> 18) & 0x3);
41860 UnallocatedA32(instr);
41864 ExtractDRegister(instr, 22, 12);
41865 if ((instr & 1) != 0) {
41866 UnallocatedA32(instr);
41869 unsigned rm = ExtractQRegister(instr, 5, 0);
41883 Dt_op_size_3_Decode(((instr >> 18) & 0x3) |
41884 ((instr >> 4) & 0x4));
41886 UnallocatedA32(instr);
41889 unsigned rd = ExtractDRegister(instr, 22, 12);
41890 if ((instr & 1) != 0) {
41891 UnallocatedA32(instr);
41894 unsigned rm = ExtractQRegister(instr, 5, 0);
41901 if ((instr & 0x00000040) == 0x00000000) {
41903 Dt_size_17_Decode((instr >> 18) & 0x3);
41905 UnallocatedA32(instr);
41908 if (((instr >> 12) & 1) != 0) {
41909 UnallocatedA32(instr);
41912 unsigned rd = ExtractQRegister(instr, 22, 12);
41913 unsigned rm = ExtractDRegister(instr, 5, 0);
41922 UnallocatedA32(instr);
41928 switch (instr & 0x000c0040) {
41931 UnimplementedA32("SHA1SU1", instr);
41936 UnimplementedA32("SHA256SU0", instr);
41940 UnallocatedA32(instr);
41947 if ((instr & 0x000c0040) == 0x00040000) {
41948 unsigned rd = ExtractDRegister(instr, 22, 12);
41949 if ((instr & 1) != 0) {
41950 UnallocatedA32(instr);
41953 unsigned rm = ExtractQRegister(instr, 5, 0);
41961 UnallocatedA32(instr);
41967 switch (instr & 0x00000040) {
41971 Dt_size_16_Decode((instr >> 18) & 0x3);
41973 UnallocatedA32(instr);
41977 ExtractDRegister(instr, 22, 12);
41978 unsigned rm = ExtractDRegister(instr, 5, 0);
41986 Dt_size_16_Decode((instr >> 18) & 0x3);
41988 UnallocatedA32(instr);
41991 if (((instr >> 12) & 1) != 0) {
41992 UnallocatedA32(instr);
41996 ExtractQRegister(instr, 22, 12);
41997 if ((instr & 1) != 0) {
41998 UnallocatedA32(instr);
42001 unsigned rm = ExtractQRegister(instr, 5, 0);
42011 if ((instr & 0x000c0040) == 0x00040000) {
42012 if (((instr >> 12) & 1) != 0) {
42013 UnallocatedA32(instr);
42016 unsigned rd = ExtractQRegister(instr, 22, 12);
42017 unsigned rm = ExtractDRegister(instr, 5, 0);
42025 UnallocatedA32(instr);
42031 switch (instr & 0x00000040) {
42035 Dt_size_16_Decode((instr >> 18) & 0x3);
42037 UnallocatedA32(instr);
42041 ExtractDRegister(instr, 22, 12);
42042 unsigned rm = ExtractDRegister(instr, 5, 0);
42050 Dt_size_16_Decode((instr >> 18) & 0x3);
42052 UnallocatedA32(instr);
42055 if (((instr >> 12) & 1) != 0) {
42056 UnallocatedA32(instr);
42060 ExtractQRegister(instr, 22, 12);
42061 if ((instr & 1) != 0) {
42062 UnallocatedA32(instr);
42065 unsigned rm = ExtractQRegister(instr, 5, 0);
42078 switch (instr & 0x00000440) {
42081 switch (instr & 0x000c0100) {
42085 Dt_op_3_Decode((instr >> 7) & 0x1);
42087 UnallocatedA32(instr);
42091 ExtractDRegister(instr, 22, 12);
42092 unsigned rm = ExtractDRegister(instr, 5, 0);
42103 Dt_op_3_Decode((instr >> 7) & 0x1);
42105 UnallocatedA32(instr);
42109 ExtractDRegister(instr, 22, 12);
42110 unsigned rm = ExtractDRegister(instr, 5, 0);
42119 UnallocatedA32(instr);
42126 switch (instr & 0x000c0100) {
42130 Dt_op_3_Decode((instr >> 7) & 0x1);
42132 UnallocatedA32(instr);
42135 if (((instr >> 12) & 1) != 0) {
42136 UnallocatedA32(instr);
42140 ExtractQRegister(instr, 22, 12);
42141 if ((instr & 1) != 0) {
42142 UnallocatedA32(instr);
42145 unsigned rm = ExtractQRegister(instr, 5, 0);
42156 Dt_op_3_Decode((instr >> 7) & 0x1);
42158 UnallocatedA32(instr);
42161 if (((instr >> 12) & 1) != 0) {
42162 UnallocatedA32(instr);
42166 ExtractQRegister(instr, 22, 12);
42167 if ((instr & 1) != 0) {
42168 UnallocatedA32(instr);
42171 unsigned rm = ExtractQRegister(instr, 5, 0);
42180 UnallocatedA32(instr);
42187 switch (instr & 0x00000080) {
42191 ((instr >> 18) & 0x3) |
42192 ((instr >> 6) & 0x4));
42194 UnallocatedA32(instr);
42198 ExtractDRegister(instr, 22, 12);
42199 unsigned rm = ExtractDRegister(instr, 5, 0);
42210 ((instr >> 18) & 0x3) |
42211 ((instr >> 6) & 0x4));
42213 UnallocatedA32(instr);
42217 ExtractDRegister(instr, 22, 12);
42218 unsigned rm = ExtractDRegister(instr, 5, 0);
42231 switch (instr & 0x00000080) {
42235 ((instr >> 18) & 0x3) |
42236 ((instr >> 6) & 0x4));
42238 UnallocatedA32(instr);
42241 if (((instr >> 12) & 1) != 0) {
42242 UnallocatedA32(instr);
42246 ExtractQRegister(instr, 22, 12);
42247 if ((instr & 1) != 0) {
42248 UnallocatedA32(instr);
42251 unsigned rm = ExtractQRegister(instr, 5, 0);
42262 ((instr >> 18) & 0x3) |
42263 ((instr >> 6) & 0x4));
42265 UnallocatedA32(instr);
42268 if (((instr >> 12) & 1) != 0) {
42269 UnallocatedA32(instr);
42273 ExtractQRegister(instr, 22, 12);
42274 if ((instr & 1) != 0) {
42275 UnallocatedA32(instr);
42278 unsigned rm = ExtractQRegister(instr, 5, 0);
42294 switch (instr & 0x000c0440) {
42297 switch (instr & 0x00000100) {
42301 Dt_op_3_Decode((instr >> 7) & 0x1);
42303 UnallocatedA32(instr);
42307 ExtractDRegister(instr, 22, 12);
42308 unsigned rm = ExtractDRegister(instr, 5, 0);
42319 Dt_op_3_Decode((instr >> 7) & 0x1);
42321 UnallocatedA32(instr);
42325 ExtractDRegister(instr, 22, 12);
42326 unsigned rm = ExtractDRegister(instr, 5, 0);
42339 switch (instr & 0x00000100) {
42343 Dt_op_3_Decode((instr >> 7) & 0x1);
42345 UnallocatedA32(instr);
42348 if (((instr >> 12) & 1) != 0) {
42349 UnallocatedA32(instr);
42353 ExtractQRegister(instr, 22, 12);
42354 if ((instr & 1) != 0) {
42355 UnallocatedA32(instr);
42358 unsigned rm = ExtractQRegister(instr, 5, 0);
42369 Dt_op_3_Decode((instr >> 7) & 0x1);
42371 UnallocatedA32(instr);
42374 if (((instr >> 12) & 1) != 0) {
42375 UnallocatedA32(instr);
42379 ExtractQRegister(instr, 22, 12);
42380 if ((instr & 1) != 0) {
42381 UnallocatedA32(instr);
42384 unsigned rm = ExtractQRegister(instr, 5, 0);
42398 Dt_op_1_Decode1((instr >> 7) & 0x3);
42400 UnallocatedA32(instr);
42404 Dt_op_1_Decode2((instr >> 7) & 0x3);
42406 UnallocatedA32(instr);
42409 unsigned rd = ExtractDRegister(instr, 22, 12);
42410 unsigned rm = ExtractDRegister(instr, 5, 0);
42422 Dt_op_1_Decode1((instr >> 7) & 0x3);
42424 UnallocatedA32(instr);
42428 Dt_op_1_Decode2((instr >> 7) & 0x3);
42430 UnallocatedA32(instr);
42433 if (((instr >> 12) & 1) != 0) {
42434 UnallocatedA32(instr);
42437 unsigned rd = ExtractQRegister(instr, 22, 12);
42438 if ((instr & 1) != 0) {
42439 UnallocatedA32(instr);
42442 unsigned rm = ExtractQRegister(instr, 5, 0);
42452 UnallocatedA32(instr);
42462 switch (instr & 0x00000440) {
42465 unsigned rd = ExtractDRegister(instr, 22, 12);
42466 unsigned first = ExtractDRegister(instr, 7, 16);
42469 switch ((instr >> 8) & 0x3) {
42487 unsigned rm = ExtractDRegister(instr, 5, 0);
42501 unsigned rd = ExtractDRegister(instr, 22, 12);
42502 unsigned first = ExtractDRegister(instr, 7, 16);
42505 switch ((instr >> 8) & 0x3) {
42523 unsigned rm = ExtractDRegister(instr, 5, 0);
42537 if ((instr & 0x00000380) == 0x00000000) {
42540 Dt_imm4_1_Decode((instr >> 16) & 0xf, &lane);
42542 UnallocatedA32(instr);
42545 unsigned rd = ExtractDRegister(instr, 22, 12);
42546 unsigned rm = ExtractDRegister(instr, 5, 0);
42553 UnallocatedA32(instr);
42559 if ((instr & 0x00000380) == 0x00000000) {
42562 Dt_imm4_1_Decode((instr >> 16) & 0xf, &lane);
42564 UnallocatedA32(instr);
42567 if (((instr >> 12) & 1) != 0) {
42568 UnallocatedA32(instr);
42571 unsigned rd = ExtractQRegister(instr, 22, 12);
42572 unsigned rm = ExtractDRegister(instr, 5, 0);
42579 UnallocatedA32(instr);
42593 switch (instr & 0x00000c40) {
42596 switch (instr & 0x00000300) {
42599 if (((instr & 0x300000) == 0x300000)) {
42600 UnallocatedA32(instr);
42603 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
42604 ((instr >> 22) & 0x4));
42606 UnallocatedA32(instr);
42609 if (((instr >> 12) & 1) != 0) {
42610 UnallocatedA32(instr);
42613 unsigned rd = ExtractQRegister(instr, 22, 12);
42614 unsigned rn = ExtractDRegister(instr, 7, 16);
42615 unsigned rm = ExtractDRegister(instr, 5, 0);
42626 if (((instr & 0x300000) == 0x300000)) {
42627 UnallocatedA32(instr);
42630 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
42631 ((instr >> 22) & 0x4));
42633 UnallocatedA32(instr);
42636 if (((instr >> 12) & 1) != 0) {
42637 UnallocatedA32(instr);
42640 unsigned rd = ExtractQRegister(instr, 22, 12);
42641 if (((instr >> 16) & 1) != 0) {
42642 UnallocatedA32(instr);
42645 unsigned rn = ExtractQRegister(instr, 7, 16);
42646 unsigned rm = ExtractDRegister(instr, 5, 0);
42657 if (((instr & 0x300000) == 0x300000)) {
42658 UnallocatedA32(instr);
42661 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
42662 ((instr >> 22) & 0x4));
42664 UnallocatedA32(instr);
42667 if (((instr >> 12) & 1) != 0) {
42668 UnallocatedA32(instr);
42671 unsigned rd = ExtractQRegister(instr, 22, 12);
42672 unsigned rn = ExtractDRegister(instr, 7, 16);
42673 unsigned rm = ExtractDRegister(instr, 5, 0);
42684 if (((instr & 0x300000) == 0x300000)) {
42685 UnallocatedA32(instr);
42688 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
42689 ((instr >> 22) & 0x4));
42691 UnallocatedA32(instr);
42694 if (((instr >> 12) & 1) != 0) {
42695 UnallocatedA32(instr);
42698 unsigned rd = ExtractQRegister(instr, 22, 12);
42699 if (((instr >> 16) & 1) != 0) {
42700 UnallocatedA32(instr);
42703 unsigned rn = ExtractQRegister(instr, 7, 16);
42704 unsigned rm = ExtractDRegister(instr, 5, 0);
42718 switch (instr & 0x00000200) {
42721 switch (instr & 0x01000000) {
42724 if (((instr & 0x300000) == 0x300000)) {
42725 UnallocatedA32(instr);
42728 DataType dt = Dt_size_9_Decode((instr >> 20) & 0x3,
42729 (instr >> 8) & 0x1);
42731 UnallocatedA32(instr);
42734 unsigned rd = ExtractDRegister(instr, 22, 12);
42735 unsigned rn = ExtractDRegister(instr, 7, 16);
42738 ExtractDRegisterAndLane(instr, dt, 5, 0, &lane);
42749 if (((instr & 0x300000) == 0x300000)) {
42750 UnallocatedA32(instr);
42753 DataType dt = Dt_size_9_Decode((instr >> 20) & 0x3,
42754 (instr >> 8) & 0x1);
42756 UnallocatedA32(instr);
42759 if (((instr >> 12) & 1) != 0) {
42760 UnallocatedA32(instr);
42763 unsigned rd = ExtractQRegister(instr, 22, 12);
42764 if (((instr >> 16) & 1) != 0) {
42765 UnallocatedA32(instr);
42768 unsigned rn = ExtractQRegister(instr, 7, 16);
42771 ExtractDRegisterAndLane(instr, dt, 5, 0, &lane);
42785 switch (instr & 0x00000100) {
42788 if (((instr & 0x300000) == 0x300000)) {
42789 UnallocatedA32(instr);
42793 Dt_size_11_Decode((instr >> 20) & 0x3,
42794 (instr >> 24) & 0x1);
42796 UnallocatedA32(instr);
42799 if (((instr >> 12) & 1) != 0) {
42800 UnallocatedA32(instr);
42803 unsigned rd = ExtractQRegister(instr, 22, 12);
42804 unsigned rn = ExtractDRegister(instr, 7, 16);
42807 ExtractDRegisterAndLane(instr, dt, 5, 0, &lane);
42818 if ((instr & 0x01000000) == 0x00000000) {
42819 if (((instr & 0x300000) == 0x300000)) {
42820 UnallocatedA32(instr);
42824 Dt_size_13_Decode((instr >> 20) & 0x3);
42826 UnallocatedA32(instr);
42829 if (((instr >> 12) & 1) != 0) {
42830 UnallocatedA32(instr);
42833 unsigned rd = ExtractQRegister(instr, 22, 12);
42834 unsigned rn = ExtractDRegister(instr, 7, 16);
42836 (instr & 0xf) | ((instr >> 1) & 0x10);
42851 UnallocatedA32(instr);
42863 switch (instr & 0x00000300) {
42866 switch (instr & 0x01000000) {
42869 if (((instr & 0x300000) == 0x300000)) {
42870 UnallocatedA32(instr);
42873 DataType dt = Dt_size_3_Decode((instr >> 20) & 0x3);
42875 UnallocatedA32(instr);
42878 unsigned rd = ExtractDRegister(instr, 22, 12);
42879 if (((instr >> 16) & 1) != 0) {
42880 UnallocatedA32(instr);
42883 unsigned rn = ExtractQRegister(instr, 7, 16);
42884 if ((instr & 1) != 0) {
42885 UnallocatedA32(instr);
42888 unsigned rm = ExtractQRegister(instr, 5, 0);
42899 if (((instr & 0x300000) == 0x300000)) {
42900 UnallocatedA32(instr);
42903 DataType dt = Dt_size_3_Decode((instr >> 20) & 0x3);
42905 UnallocatedA32(instr);
42908 unsigned rd = ExtractDRegister(instr, 22, 12);
42909 if (((instr >> 16) & 1) != 0) {
42910 UnallocatedA32(instr);
42913 unsigned rn = ExtractQRegister(instr, 7, 16);
42914 if ((instr & 1) != 0) {
42915 UnallocatedA32(instr);
42918 unsigned rm = ExtractQRegister(instr, 5, 0);
42932 if (((instr & 0x300000) == 0x300000)) {
42933 UnallocatedA32(instr);
42936 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
42937 ((instr >> 22) & 0x4));
42939 UnallocatedA32(instr);
42942 if (((instr >> 12) & 1) != 0) {
42943 UnallocatedA32(instr);
42946 unsigned rd = ExtractQRegister(instr, 22, 12);
42947 unsigned rn = ExtractDRegister(instr, 7, 16);
42948 unsigned rm = ExtractDRegister(instr, 5, 0);
42959 switch (instr & 0x01000000) {
42962 if (((instr & 0x300000) == 0x300000)) {
42963 UnallocatedA32(instr);
42966 DataType dt = Dt_size_3_Decode((instr >> 20) & 0x3);
42968 UnallocatedA32(instr);
42971 unsigned rd = ExtractDRegister(instr, 22, 12);
42972 if (((instr >> 16) & 1) != 0) {
42973 UnallocatedA32(instr);
42976 unsigned rn = ExtractQRegister(instr, 7, 16);
42977 if ((instr & 1) != 0) {
42978 UnallocatedA32(instr);
42981 unsigned rm = ExtractQRegister(instr, 5, 0);
42992 if (((instr & 0x300000) == 0x300000)) {
42993 UnallocatedA32(instr);
42996 DataType dt = Dt_size_3_Decode((instr >> 20) & 0x3);
42998 UnallocatedA32(instr);
43001 unsigned rd = ExtractDRegister(instr, 22, 12);
43002 if (((instr >> 16) & 1) != 0) {
43003 UnallocatedA32(instr);
43006 unsigned rn = ExtractQRegister(instr, 7, 16);
43007 if ((instr & 1) != 0) {
43008 UnallocatedA32(instr);
43011 unsigned rm = ExtractQRegister(instr, 5, 0);
43025 if (((instr & 0x300000) == 0x300000)) {
43026 UnallocatedA32(instr);
43029 DataType dt = Dt_U_size_1_Decode(((instr >> 20) & 0x3) |
43030 ((instr >> 22) & 0x4));
43032 UnallocatedA32(instr);
43035 if (((instr >> 12) & 1) != 0) {
43036 UnallocatedA32(instr);
43039 unsigned rd = ExtractQRegister(instr, 22, 12);
43040 unsigned rn = ExtractDRegister(instr, 7, 16);
43041 unsigned rm = ExtractDRegister(instr, 5, 0);
43055 switch (instr & 0x00000200) {
43058 switch (instr & 0x01000000) {
43061 if (((instr & 0x300000) == 0x300000)) {
43062 UnallocatedA32(instr);
43065 DataType dt = Dt_size_9_Decode((instr >> 20) & 0x3,
43066 (instr >> 8) & 0x1);
43068 UnallocatedA32(instr);
43071 unsigned rd = ExtractDRegister(instr, 22, 12);
43072 unsigned rn = ExtractDRegister(instr, 7, 16);
43075 ExtractDRegisterAndLane(instr, dt, 5, 0, &lane);
43086 if (((instr & 0x300000) == 0x300000)) {
43087 UnallocatedA32(instr);
43090 DataType dt = Dt_size_9_Decode((instr >> 20) & 0x3,
43091 (instr >> 8) & 0x1);
43093 UnallocatedA32(instr);
43096 if (((instr >> 12) & 1) != 0) {
43097 UnallocatedA32(instr);
43100 unsigned rd = ExtractQRegister(instr, 22, 12);
43101 if (((instr >> 16) & 1) != 0) {
43102 UnallocatedA32(instr);
43105 unsigned rn = ExtractQRegister(instr, 7, 16);
43108 ExtractDRegisterAndLane(instr, dt, 5, 0, &lane);
43122 switch (instr & 0x00000100) {
43125 if (((instr & 0x300000) == 0x300000)) {
43126 UnallocatedA32(instr);
43130 Dt_size_11_Decode((instr >> 20) & 0x3,
43131 (instr >> 24) & 0x1);
43133 UnallocatedA32(instr);
43136 if (((instr >> 12) & 1) != 0) {
43137 UnallocatedA32(instr);
43140 unsigned rd = ExtractQRegister(instr, 22, 12);
43141 unsigned rn = ExtractDRegister(instr, 7, 16);
43144 ExtractDRegisterAndLane(instr, dt, 5, 0, &lane);
43155 if ((instr & 0x01000000) == 0x00000000) {
43156 if (((instr & 0x300000) == 0x300000)) {
43157 UnallocatedA32(instr);
43161 Dt_size_13_Decode((instr >> 20) & 0x3);
43163 UnallocatedA32(instr);
43166 if (((instr >> 12) & 1) != 0) {
43167 UnallocatedA32(instr);
43170 unsigned rd = ExtractQRegister(instr, 22, 12);
43171 unsigned rn = ExtractDRegister(instr, 7, 16);
43173 (instr & 0xf) | ((instr >> 1) & 0x10);
43188 UnallocatedA32(instr);
43200 switch (instr & 0x00000300) {
43203 if (((instr & 0x300000) == 0x300000)) {
43204 UnallocatedA32(instr);
43207 DataType dt = Dt_size_12_Decode((instr >> 20) & 0x3,
43208 (instr >> 24) & 0x1);
43210 UnallocatedA32(instr);
43213 if (((instr >> 12) & 1) != 0) {
43214 UnallocatedA32(instr);
43217 unsigned rd = ExtractQRegister(instr, 22, 12);
43218 unsigned rn = ExtractDRegister(instr, 7, 16);
43219 unsigned rm = ExtractDRegister(instr, 5, 0);
43230 if ((instr & 0x01000000) == 0x00000000) {
43231 if (((instr & 0x300000) == 0x300000)) {
43232 UnallocatedA32(instr);
43235 DataType dt = Dt_size_13_Decode((instr >> 20) & 0x3);
43237 UnallocatedA32(instr);
43240 if (((instr >> 12) & 1) != 0) {
43241 UnallocatedA32(instr);
43244 unsigned rd = ExtractQRegister(instr, 22, 12);
43245 unsigned rn = ExtractDRegister(instr, 7, 16);
43246 unsigned rm = ExtractDRegister(instr, 5, 0);
43254 UnallocatedA32(instr);
43260 if (((instr & 0x300000) == 0x300000)) {
43261 UnallocatedA32(instr);
43264 DataType dt = Dt_size_12_Decode((instr >> 20) & 0x3,
43265 (instr >> 24) & 0x1);
43267 UnallocatedA32(instr);
43270 if (((instr >> 12) & 1) != 0) {
43271 UnallocatedA32(instr);
43274 unsigned rd = ExtractQRegister(instr, 22, 12);
43275 unsigned rn = ExtractDRegister(instr, 7, 16);
43276 unsigned rm = ExtractDRegister(instr, 5, 0);
43287 if ((instr & 0x01000000) == 0x00000000) {
43288 if (((instr & 0x300000) == 0x300000)) {
43289 UnallocatedA32(instr);
43292 DataType dt = Dt_size_13_Decode((instr >> 20) & 0x3);
43294 UnallocatedA32(instr);
43297 if (((instr >> 12) & 1) != 0) {
43298 UnallocatedA32(instr);
43301 unsigned rd = ExtractQRegister(instr, 22, 12);
43302 unsigned rn = ExtractDRegister(instr, 7, 16);
43303 unsigned rm = ExtractDRegister(instr, 5, 0);
43311 UnallocatedA32(instr);
43320 switch (instr & 0x00000200) {
43323 switch (instr & 0x01000000) {
43326 if (((instr & 0x300000) == 0x300000)) {
43327 UnallocatedA32(instr);
43331 ((instr >> 20) & 0x3) | ((instr >> 6) & 0x4));
43333 UnallocatedA32(instr);
43336 unsigned rd = ExtractDRegister(instr, 22, 12);
43337 unsigned rn = ExtractDRegister(instr, 7, 16);
43339 (instr & 0xf) | ((instr >> 1) & 0x10);
43357 if (((instr & 0x300000) == 0x300000)) {
43358 UnallocatedA32(instr);
43362 ((instr >> 20) & 0x3) | ((instr >> 6) & 0x4));
43364 UnallocatedA32(instr);
43367 if (((instr >> 12) & 1) != 0) {
43368 UnallocatedA32(instr);
43371 unsigned rd = ExtractQRegister(instr, 22, 12);
43372 if (((instr >> 16) & 1) != 0) {
43373 UnallocatedA32(instr);
43376 unsigned rn = ExtractQRegister(instr, 7, 16);
43378 (instr & 0xf) | ((instr >> 1) & 0x10);
43399 switch (instr & 0x00000100) {
43402 if (((instr & 0x300000) == 0x300000)) {
43403 UnallocatedA32(instr);
43407 ((instr >> 20) & 0x3) | ((instr >> 22) & 0x4));
43409 UnallocatedA32(instr);
43412 if (((instr >> 12) & 1) != 0) {
43413 UnallocatedA32(instr);
43416 unsigned rd = ExtractQRegister(instr, 22, 12);
43417 unsigned rn = ExtractDRegister(instr, 7, 16);
43419 (instr & 0xf) | ((instr >> 1) & 0x10);
43437 if ((instr & 0x01000000) == 0x00000000) {
43438 if (((instr & 0x300000) == 0x300000)) {
43439 UnallocatedA32(instr);
43443 Dt_size_13_Decode((instr >> 20) & 0x3);
43445 UnallocatedA32(instr);
43448 if (((instr >> 12) & 1) != 0) {
43449 UnallocatedA32(instr);
43452 unsigned rd = ExtractQRegister(instr, 22, 12);
43453 unsigned rn = ExtractDRegister(instr, 7, 16);
43455 unsigned rm = ExtractDRegisterAndLane(instr,
43467 UnallocatedA32(instr);
43479 switch (instr & 0x00000100) {
43482 if (((instr & 0x300000) == 0x300000)) {
43483 UnallocatedA32(instr);
43487 ((instr >> 20) & 0x3) | ((instr >> 22) & 0x4) |
43488 ((instr >> 6) & 0x8));
43490 UnallocatedA32(instr);
43493 if (((instr >> 12) & 1) != 0) {
43494 UnallocatedA32(instr);
43497 unsigned rd = ExtractQRegister(instr, 22, 12);
43498 unsigned rn = ExtractDRegister(instr, 7, 16);
43499 unsigned rm = ExtractDRegister(instr, 5, 0);
43510 if ((instr & 0x01000200) == 0x00000000) {
43511 if (((instr & 0x300000) == 0x300000)) {
43512 UnallocatedA32(instr);
43515 DataType dt = Dt_size_13_Decode((instr >> 20) & 0x3);
43517 UnallocatedA32(instr);
43520 if (((instr >> 12) & 1) != 0) {
43521 UnallocatedA32(instr);
43524 unsigned rd = ExtractQRegister(instr, 22, 12);
43525 unsigned rn = ExtractDRegister(instr, 7, 16);
43526 unsigned rm = ExtractDRegister(instr, 5, 0);
43534 UnallocatedA32(instr);
43543 switch (instr & 0x01000300) {
43546 if (((instr & 0x300000) == 0x300000)) {
43547 UnallocatedA32(instr);
43550 DataType dt = Dt_size_13_Decode((instr >> 20) & 0x3);
43552 UnallocatedA32(instr);
43555 unsigned rd = ExtractDRegister(instr, 22, 12);
43556 unsigned rn = ExtractDRegister(instr, 7, 16);
43559 ExtractDRegisterAndLane(instr, dt, 5, 0, &lane);
43570 if (((instr & 0x300000) == 0x300000)) {
43571 UnallocatedA32(instr);
43574 DataType dt = Dt_size_13_Decode((instr >> 20) & 0x3);
43576 UnallocatedA32(instr);
43579 unsigned rd = ExtractDRegister(instr, 22, 12);
43580 unsigned rn = ExtractDRegister(instr, 7, 16);
43583 ExtractDRegisterAndLane(instr, dt, 5, 0, &lane);
43594 if (((instr & 0x300000) == 0x300000)) {
43595 UnallocatedA32(instr);
43598 DataType dt = Dt_size_13_Decode((instr >> 20) & 0x3);
43600 UnallocatedA32(instr);
43603 if (((instr >> 12) & 1) != 0) {
43604 UnallocatedA32(instr);
43607 unsigned rd = ExtractQRegister(instr, 22, 12);
43608 if (((instr >> 16) & 1) != 0) {
43609 UnallocatedA32(instr);
43612 unsigned rn = ExtractQRegister(instr, 7, 16);
43615 ExtractDRegisterAndLane(instr, dt, 5, 0, &lane);
43626 if (((instr & 0x300000) == 0x300000)) {
43627 UnallocatedA32(instr);
43630 DataType dt = Dt_size_13_Decode((instr >> 20) & 0x3);
43632 UnallocatedA32(instr);
43635 if (((instr >> 12) & 1) != 0) {
43636 UnallocatedA32(instr);
43639 unsigned rd = ExtractQRegister(instr, 22, 12);
43640 if (((instr >> 16) & 1) != 0) {
43641 UnallocatedA32(instr);
43644 unsigned rn = ExtractQRegister(instr, 7, 16);
43647 ExtractDRegisterAndLane(instr, dt, 5, 0, &lane);
43657 UnallocatedA32(instr);
43670 switch (instr & 0x00000040) {
43673 switch (instr & 0x00000c00) {
43676 switch (instr & 0x00380080) {
43679 switch (instr & 0x00000100) {
43682 switch (instr & 0x00000200) {
43684 switch (instr & 0x00000020) {
43687 if (((instr & 0xd00) == 0x100) ||
43688 ((instr & 0xd00) == 0x500) ||
43689 ((instr & 0xd00) == 0x900) ||
43690 ((instr & 0xe00) == 0xe00)) {
43691 UnallocatedA32(instr);
43694 unsigned cmode = (instr >> 8) & 0xf;
43698 UnallocatedA32(instr);
43702 ExtractDRegister(instr, 22, 12);
43706 (instr & 0xf) |
43707 ((instr >> 12) & 0x70) |
43708 ((instr >> 17) & 0x80));
43714 if (((instr & 0x920) == 0x100) ||
43715 ((instr & 0x520) == 0x100) ||
43716 ((instr & 0x820) == 0x20) ||
43717 ((instr & 0x420) == 0x20) ||
43718 ((instr & 0x220) == 0x20) ||
43719 ((instr & 0x120) == 0x120)) {
43720 UnallocatedA32(instr);
43723 unsigned cmode = ((instr >> 8) & 0xf) |
43724 ((instr >> 1) & 0x10);
43728 UnallocatedA32(instr);
43732 ExtractDRegister(instr, 22, 12);
43736 (instr & 0xf) |
43737 ((instr >> 12) & 0x70) |
43738 ((instr >> 17) & 0x80));
43751 switch (instr & 0x00000020) {
43754 if (((instr & 0x100) == 0x0) ||
43755 ((instr & 0xc00) == 0xc00)) {
43756 UnallocatedA32(instr);
43759 unsigned cmode = (instr >> 8) & 0xf;
43762 UnallocatedA32(instr);
43765 unsigned rd = ExtractDRegister(instr, 22, 12);
43768 (instr & 0xf) | ((instr >> 12) & 0x70) |
43769 ((instr >> 17) & 0x80));
43776 if (((instr & 0x100) == 0x0) ||
43777 ((instr & 0xc00) == 0xc00)) {
43778 UnallocatedA32(instr);
43781 unsigned cmode = (instr >> 8) & 0xf;
43784 UnallocatedA32(instr);
43787 unsigned rd = ExtractDRegister(instr, 22, 12);
43790 (instr & 0xf) | ((instr >> 12) & 0x70) |
43791 ((instr >> 17) & 0x80));
43803 switch (instr & 0x00000300) {
43806 if (((instr & 0x380080) == 0x0)) {
43807 UnallocatedA32(instr);
43811 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
43812 ((instr >> 4) & 0x8),
43813 (instr >> 24) & 0x1);
43815 UnallocatedA32(instr);
43818 unsigned rd = ExtractDRegister(instr, 22, 12);
43819 unsigned rm = ExtractDRegister(instr, 5, 0);
43820 uint32_t imm6 = (instr >> 16) & 0x3f;
43830 if (((instr & 0x380080) == 0x0)) {
43831 UnallocatedA32(instr);
43835 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
43836 ((instr >> 4) & 0x8),
43837 (instr >> 24) & 0x1);
43839 UnallocatedA32(instr);
43842 unsigned rd = ExtractDRegister(instr, 22, 12);
43843 unsigned rm = ExtractDRegister(instr, 5, 0);
43844 uint32_t imm6 = (instr >> 16) & 0x3f;
43854 if (((instr & 0x380080) == 0x0)) {
43855 UnallocatedA32(instr);
43859 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
43860 ((instr >> 4) & 0x8),
43861 (instr >> 24) & 0x1);
43863 UnallocatedA32(instr);
43866 unsigned rd = ExtractDRegister(instr, 22, 12);
43867 unsigned rm = ExtractDRegister(instr, 5, 0);
43868 uint32_t imm6 = (instr >> 16) & 0x3f;
43878 if (((instr & 0x380080) == 0x0)) {
43879 UnallocatedA32(instr);
43883 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
43884 ((instr >> 4) & 0x8),
43885 (instr >> 24) & 0x1);
43887 UnallocatedA32(instr);
43890 unsigned rd = ExtractDRegister(instr, 22, 12);
43891 unsigned rm = ExtractDRegister(instr, 5, 0);
43892 uint32_t imm6 = (instr >> 16) & 0x3f;
43908 switch (instr & 0x00380080) {
43911 switch (instr & 0x00000100) {
43914 switch (instr & 0x00000200) {
43916 switch (instr & 0x00000020) {
43919 if (((instr & 0xd00) == 0x100) ||
43920 ((instr & 0xd00) == 0x500) ||
43921 ((instr & 0xd00) == 0x900) ||
43922 ((instr & 0xe00) == 0xe00)) {
43923 UnallocatedA32(instr);
43926 unsigned cmode = (instr >> 8) & 0xf;
43930 UnallocatedA32(instr);
43934 ExtractDRegister(instr, 22, 12);
43938 (instr & 0xf) |
43939 ((instr >> 12) & 0x70) |
43940 ((instr >> 17) & 0x80));
43946 if (((instr & 0x920) == 0x100) ||
43947 ((instr & 0x520) == 0x100) ||
43948 ((instr & 0x820) == 0x20) ||
43949 ((instr & 0x420) == 0x20) ||
43950 ((instr & 0x220) == 0x20) ||
43951 ((instr & 0x120) == 0x120)) {
43952 UnallocatedA32(instr);
43955 unsigned cmode = ((instr >> 8) & 0xf) |
43956 ((instr >> 1) & 0x10);
43960 UnallocatedA32(instr);
43964 ExtractDRegister(instr, 22, 12);
43968 (instr & 0xf) |
43969 ((instr >> 12) & 0x70) |
43970 ((instr >> 17) & 0x80));
43983 switch (instr & 0x00000020) {
43986 if (((instr & 0x100) == 0x0) ||
43987 ((instr & 0xc00) == 0xc00)) {
43988 UnallocatedA32(instr);
43991 unsigned cmode = (instr >> 8) & 0xf;
43994 UnallocatedA32(instr);
43997 unsigned rd = ExtractDRegister(instr, 22, 12);
44000 (instr & 0xf) | ((instr >> 12) & 0x70) |
44001 ((instr >> 17) & 0x80));
44008 if (((instr & 0x100) == 0x0) ||
44009 ((instr & 0xc00) == 0xc00)) {
44010 UnallocatedA32(instr);
44013 unsigned cmode = (instr >> 8) & 0xf;
44016 UnallocatedA32(instr);
44019 unsigned rd = ExtractDRegister(instr, 22, 12);
44022 (instr & 0xf) | ((instr >> 12) & 0x70) |
44023 ((instr >> 17) & 0x80));
44035 switch (instr & 0x00000300) {
44038 if ((instr & 0x01000000) == 0x01000000) {
44039 if (((instr & 0x380080) == 0x0)) {
44040 UnallocatedA32(instr);
44044 ((instr >> 19) & 0x7) | ((instr >> 4) & 0x8));
44046 UnallocatedA32(instr);
44049 unsigned rd = ExtractDRegister(instr, 22, 12);
44050 unsigned rm = ExtractDRegister(instr, 5, 0);
44051 uint32_t imm6 = (instr >> 16) & 0x3f;
44058 UnallocatedA32(instr);
44064 switch (instr & 0x01000000) {
44067 if (((instr & 0x380080) == 0x0)) {
44068 UnallocatedA32(instr);
44072 Dt_L_imm6_3_Decode(((instr >> 19) & 0x7) |
44073 ((instr >> 4) & 0x8));
44075 UnallocatedA32(instr);
44078 unsigned rd = ExtractDRegister(instr, 22, 12);
44079 unsigned rm = ExtractDRegister(instr, 5, 0);
44080 uint32_t imm6 = (instr >> 16) & 0x3f;
44089 if (((instr & 0x380080) == 0x0)) {
44090 UnallocatedA32(instr);
44094 Dt_L_imm6_4_Decode(((instr >> 19) & 0x7) |
44095 ((instr >> 4) & 0x8));
44097 UnallocatedA32(instr);
44100 unsigned rd = ExtractDRegister(instr, 22, 12);
44101 unsigned rm = ExtractDRegister(instr, 5, 0);
44102 uint32_t imm6 = (instr >> 16) & 0x3f;
44114 if (((instr & 0x380080) == 0x0)) {
44115 UnallocatedA32(instr);
44119 Dt_L_imm6_2_Decode(((instr >> 19) & 0x7) |
44120 ((instr >> 4) & 0x8),
44121 (instr >> 24) & 0x1);
44123 UnallocatedA32(instr);
44126 unsigned rd = ExtractDRegister(instr, 22, 12);
44127 unsigned rm = ExtractDRegister(instr, 5, 0);
44128 uint32_t imm6 = (instr >> 16) & 0x3f;
44137 if (((instr & 0x380080) == 0x0)) {
44138 UnallocatedA32(instr);
44142 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
44143 ((instr >> 4) & 0x8),
44144 (instr >> 24) & 0x1);
44146 UnallocatedA32(instr);
44149 unsigned rd = ExtractDRegister(instr, 22, 12);
44150 unsigned rm = ExtractDRegister(instr, 5, 0);
44151 uint32_t imm6 = (instr >> 16) & 0x3f;
44166 switch (instr & 0x00000080) {
44169 switch (instr & 0x00380000) {
44172 switch (instr & 0x00000100) {
44175 switch (instr & 0x00000200) {
44177 switch (instr & 0x00000020) {
44180 if (((instr & 0xd00) == 0x100) ||
44181 ((instr & 0xd00) == 0x500) ||
44182 ((instr & 0xd00) == 0x900) ||
44183 ((instr & 0xe00) == 0xe00)) {
44184 UnallocatedA32(instr);
44187 unsigned cmode = (instr >> 8) & 0xf;
44191 UnallocatedA32(instr);
44195 ExtractDRegister(instr, 22, 12);
44199 (instr & 0xf) |
44200 ((instr >> 12) & 0x70) |
44201 ((instr >> 17) & 0x80));
44207 if (((instr & 0x920) == 0x100) ||
44208 ((instr & 0x520) == 0x100) ||
44209 ((instr & 0x820) == 0x20) ||
44210 ((instr & 0x420) == 0x20) ||
44211 ((instr & 0x220) == 0x20) ||
44212 ((instr & 0x120) == 0x120)) {
44213 UnallocatedA32(instr);
44216 unsigned cmode = ((instr >> 8) & 0xf) |
44217 ((instr >> 1) & 0x10);
44221 UnallocatedA32(instr);
44225 ExtractDRegister(instr, 22, 12);
44229 (instr & 0xf) |
44230 ((instr >> 12) & 0x70) |
44231 ((instr >> 17) & 0x80));
44244 switch (instr & 0x00000020) {
44247 if (((instr & 0x100) == 0x0) ||
44248 ((instr & 0xc00) == 0xc00)) {
44249 UnallocatedA32(instr);
44252 unsigned cmode = (instr >> 8) & 0xf;
44256 UnallocatedA32(instr);
44260 ExtractDRegister(instr, 22, 12);
44264 (instr & 0xf) |
44265 ((instr >> 12) & 0x70) |
44266 ((instr >> 17) & 0x80));
44277 if (((instr & 0x100) == 0x0) ||
44278 ((instr & 0xc00) == 0xc00)) {
44279 UnallocatedA32(instr);
44282 unsigned cmode = (instr >> 8) & 0xf;
44286 UnallocatedA32(instr);
44290 ExtractDRegister(instr, 22, 12);
44294 (instr & 0xf) |
44295 ((instr >> 12) & 0x70) |
44296 ((instr >> 17) & 0x80));
44313 switch (instr & 0x00000300) {
44316 switch (instr & 0x01000000) {
44319 if (((instr & 0x380000) == 0x0)) {
44320 UnallocatedA32(instr);
44324 Dt_imm6_3_Decode((instr >> 19) & 0x7);
44326 UnallocatedA32(instr);
44330 ExtractDRegister(instr, 22, 12);
44331 if ((instr & 1) != 0) {
44332 UnallocatedA32(instr);
44335 unsigned rm = ExtractQRegister(instr, 5, 0);
44336 uint32_t imm6 = (instr >> 16) & 0x3f;
44348 if (((instr & 0x380000) == 0x0)) {
44349 UnallocatedA32(instr);
44353 Dt_imm6_2_Decode((instr >> 19) & 0x7,
44354 (instr >> 24) & 0x1);
44356 UnallocatedA32(instr);
44360 ExtractDRegister(instr, 22, 12);
44361 if ((instr & 1) != 0) {
44362 UnallocatedA32(instr);
44365 unsigned rm = ExtractQRegister(instr, 5, 0);
44366 uint32_t imm6 = (instr >> 16) & 0x3f;
44381 if (((instr & 0x380000) == 0x0)) {
44382 UnallocatedA32(instr);
44386 Dt_imm6_1_Decode((instr >> 19) & 0x7,
44387 (instr >> 24) & 0x1);
44389 UnallocatedA32(instr);
44392 unsigned rd = ExtractDRegister(instr, 22, 12);
44393 if ((instr & 1) != 0) {
44394 UnallocatedA32(instr);
44397 unsigned rm = ExtractQRegister(instr, 5, 0);
44398 uint32_t imm6 = (instr >> 16) & 0x3f;
44410 if (((instr & 0x380000) == 0x0) ||
44411 ((instr & 0x3f0000) == 0x80000) ||
44412 ((instr & 0x3f0000) == 0x100000) ||
44413 ((instr & 0x3f0000) == 0x200000)) {
44414 UnallocatedA32(instr);
44418 Dt_imm6_4_Decode((instr >> 19) & 0x7,
44419 (instr >> 24) & 0x1);
44421 UnallocatedA32(instr);
44424 if (((instr >> 12) & 1) != 0) {
44425 UnallocatedA32(instr);
44428 unsigned rd = ExtractQRegister(instr, 22, 12);
44429 unsigned rm = ExtractDRegister(instr, 5, 0);
44430 uint32_t imm6 = (instr >> 16) & 0x3f;
44441 UnallocatedA32(instr);
44448 switch (instr & 0x00000300) {
44451 switch (instr & 0x01000000) {
44454 if (((instr & 0x380000) == 0x0)) {
44455 UnallocatedA32(instr);
44459 Dt_imm6_3_Decode((instr >> 19) & 0x7);
44461 UnallocatedA32(instr);
44465 ExtractDRegister(instr, 22, 12);
44466 if ((instr & 1) != 0) {
44467 UnallocatedA32(instr);
44470 unsigned rm = ExtractQRegister(instr, 5, 0);
44471 uint32_t imm6 = (instr >> 16) & 0x3f;
44483 if (((instr & 0x380000) == 0x0)) {
44484 UnallocatedA32(instr);
44488 Dt_imm6_2_Decode((instr >> 19) & 0x7,
44489 (instr >> 24) & 0x1);
44491 UnallocatedA32(instr);
44495 ExtractDRegister(instr, 22, 12);
44496 if ((instr & 1) != 0) {
44497 UnallocatedA32(instr);
44500 unsigned rm = ExtractQRegister(instr, 5, 0);
44501 uint32_t imm6 = (instr >> 16) & 0x3f;
44516 if (((instr & 0x380000) == 0x0)) {
44517 UnallocatedA32(instr);
44521 Dt_imm6_1_Decode((instr >> 19) & 0x7,
44522 (instr >> 24) & 0x1);
44524 UnallocatedA32(instr);
44527 unsigned rd = ExtractDRegister(instr, 22, 12);
44528 if ((instr & 1) != 0) {
44529 UnallocatedA32(instr);
44532 unsigned rm = ExtractQRegister(instr, 5, 0);
44533 uint32_t imm6 = (instr >> 16) & 0x3f;
44545 if (((instr & 0x380000) == 0x0) ||
44546 ((instr & 0x3f0000) == 0x80000) ||
44547 ((instr & 0x3f0000) == 0x100000) ||
44548 ((instr & 0x3f0000) == 0x200000)) {
44549 UnallocatedA32(instr);
44553 Dt_imm6_4_Decode((instr >> 19) & 0x7,
44554 (instr >> 24) & 0x1);
44556 UnallocatedA32(instr);
44559 if (((instr >> 12) & 1) != 0) {
44560 UnallocatedA32(instr);
44563 unsigned rd = ExtractQRegister(instr, 22, 12);
44564 unsigned rm = ExtractDRegister(instr, 5, 0);
44565 uint32_t imm6 = (instr >> 16) & 0x3f;
44576 UnallocatedA32(instr);
44583 switch (instr & 0x00000300) {
44586 switch (instr & 0x01000000) {
44589 if (((instr & 0x380000) == 0x0)) {
44590 UnallocatedA32(instr);
44594 Dt_imm6_3_Decode((instr >> 19) & 0x7);
44596 UnallocatedA32(instr);
44600 ExtractDRegister(instr, 22, 12);
44601 if ((instr & 1) != 0) {
44602 UnallocatedA32(instr);
44605 unsigned rm = ExtractQRegister(instr, 5, 0);
44606 uint32_t imm6 = (instr >> 16) & 0x3f;
44618 if (((instr & 0x380000) == 0x0)) {
44619 UnallocatedA32(instr);
44623 Dt_imm6_2_Decode((instr >> 19) & 0x7,
44624 (instr >> 24) & 0x1);
44626 UnallocatedA32(instr);
44630 ExtractDRegister(instr, 22, 12);
44631 if ((instr & 1) != 0) {
44632 UnallocatedA32(instr);
44635 unsigned rm = ExtractQRegister(instr, 5, 0);
44636 uint32_t imm6 = (instr >> 16) & 0x3f;
44651 if (((instr & 0x380000) == 0x0)) {
44652 UnallocatedA32(instr);
44656 Dt_imm6_1_Decode((instr >> 19) & 0x7,
44657 (instr >> 24) & 0x1);
44659 UnallocatedA32(instr);
44662 unsigned rd = ExtractDRegister(instr, 22, 12);
44663 if ((instr & 1) != 0) {
44664 UnallocatedA32(instr);
44667 unsigned rm = ExtractQRegister(instr, 5, 0);
44668 uint32_t imm6 = (instr >> 16) & 0x3f;
44680 if (((instr & 0x380000) == 0x0) ||
44681 ((instr & 0x3f0000) == 0x80000) ||
44682 ((instr & 0x3f0000) == 0x100000) ||
44683 ((instr & 0x3f0000) == 0x200000)) {
44684 UnallocatedA32(instr);
44688 Dt_imm6_4_Decode((instr >> 19) & 0x7,
44689 (instr >> 24) & 0x1);
44691 UnallocatedA32(instr);
44694 if (((instr >> 12) & 1) != 0) {
44695 UnallocatedA32(instr);
44698 unsigned rd = ExtractQRegister(instr, 22, 12);
44699 unsigned rm = ExtractDRegister(instr, 5, 0);
44700 uint32_t imm6 = (instr >> 16) & 0x3f;
44711 UnallocatedA32(instr);
44718 switch (instr & 0x00000300) {
44721 switch (instr & 0x01000000) {
44724 if (((instr & 0x380000) == 0x0)) {
44725 UnallocatedA32(instr);
44729 Dt_imm6_3_Decode((instr >> 19) & 0x7);
44731 UnallocatedA32(instr);
44735 ExtractDRegister(instr, 22, 12);
44736 if ((instr & 1) != 0) {
44737 UnallocatedA32(instr);
44740 unsigned rm = ExtractQRegister(instr, 5, 0);
44741 uint32_t imm6 = (instr >> 16) & 0x3f;
44753 if (((instr & 0x380000) == 0x0)) {
44754 UnallocatedA32(instr);
44758 Dt_imm6_2_Decode((instr >> 19) & 0x7,
44759 (instr >> 24) & 0x1);
44761 UnallocatedA32(instr);
44765 ExtractDRegister(instr, 22, 12);
44766 if ((instr & 1) != 0) {
44767 UnallocatedA32(instr);
44770 unsigned rm = ExtractQRegister(instr, 5, 0);
44771 uint32_t imm6 = (instr >> 16) & 0x3f;
44786 if (((instr & 0x380000) == 0x0)) {
44787 UnallocatedA32(instr);
44791 Dt_imm6_1_Decode((instr >> 19) & 0x7,
44792 (instr >> 24) & 0x1);
44794 UnallocatedA32(instr);
44797 unsigned rd = ExtractDRegister(instr, 22, 12);
44798 if ((instr & 1) != 0) {
44799 UnallocatedA32(instr);
44802 unsigned rm = ExtractQRegister(instr, 5, 0);
44803 uint32_t imm6 = (instr >> 16) & 0x3f;
44815 if (((instr & 0x380000) == 0x0) ||
44816 ((instr & 0x3f0000) == 0x80000) ||
44817 ((instr & 0x3f0000) == 0x100000) ||
44818 ((instr & 0x3f0000) == 0x200000)) {
44819 UnallocatedA32(instr);
44823 Dt_imm6_4_Decode((instr >> 19) & 0x7,
44824 (instr >> 24) & 0x1);
44826 UnallocatedA32(instr);
44829 if (((instr >> 12) & 1) != 0) {
44830 UnallocatedA32(instr);
44833 unsigned rd = ExtractQRegister(instr, 22, 12);
44834 unsigned rm = ExtractDRegister(instr, 5, 0);
44835 uint32_t imm6 = (instr >> 16) & 0x3f;
44846 UnallocatedA32(instr);
44852 switch (instr & 0x00000300) {
44855 switch (instr & 0x01000000) {
44858 if (((instr & 0x380000) == 0x0)) {
44859 UnallocatedA32(instr);
44863 Dt_imm6_3_Decode((instr >> 19) & 0x7);
44865 UnallocatedA32(instr);
44869 ExtractDRegister(instr, 22, 12);
44870 if ((instr & 1) != 0) {
44871 UnallocatedA32(instr);
44874 unsigned rm = ExtractQRegister(instr, 5, 0);
44875 uint32_t imm6 = (instr >> 16) & 0x3f;
44887 if (((instr & 0x380000) == 0x0)) {
44888 UnallocatedA32(instr);
44892 Dt_imm6_2_Decode((instr >> 19) & 0x7,
44893 (instr >> 24) & 0x1);
44895 UnallocatedA32(instr);
44899 ExtractDRegister(instr, 22, 12);
44900 if ((instr & 1) != 0) {
44901 UnallocatedA32(instr);
44904 unsigned rm = ExtractQRegister(instr, 5, 0);
44905 uint32_t imm6 = (instr >> 16) & 0x3f;
44920 if (((instr & 0x380000) == 0x0)) {
44921 UnallocatedA32(instr);
44925 Dt_imm6_1_Decode((instr >> 19) & 0x7,
44926 (instr >> 24) & 0x1);
44928 UnallocatedA32(instr);
44931 unsigned rd = ExtractDRegister(instr, 22, 12);
44932 if ((instr & 1) != 0) {
44933 UnallocatedA32(instr);
44936 unsigned rm = ExtractQRegister(instr, 5, 0);
44937 uint32_t imm6 = (instr >> 16) & 0x3f;
44949 switch (instr & 0x00070000) {
44952 switch (instr & 0x003f0000) {
44955 if (((instr & 0x380000) == 0x0) ||
44956 ((instr & 0x380000) == 0x180000) ||
44957 ((instr & 0x380000) == 0x280000) ||
44958 ((instr & 0x380000) == 0x300000) ||
44959 ((instr & 0x380000) == 0x380000)) {
44960 UnallocatedA32(instr);
44964 ((instr >> 19) & 0x7) |
44965 ((instr >> 21) & 0x8));
44967 UnallocatedA32(instr);
44970 if (((instr >> 12) & 1) != 0) {
44971 UnallocatedA32(instr);
44975 ExtractQRegister(instr, 22, 12);
44977 ExtractDRegister(instr, 5, 0);
44987 if (((instr & 0x380000) == 0x0) ||
44988 ((instr & 0x3f0000) == 0x80000) ||
44989 ((instr & 0x3f0000) == 0x100000) ||
44990 ((instr & 0x3f0000) == 0x200000)) {
44991 UnallocatedA32(instr);
44995 Dt_imm6_4_Decode((instr >> 19) &
44997 (instr >> 24) &
45000 UnallocatedA32(instr);
45003 if (((instr >> 12) & 1) != 0) {
45004 UnallocatedA32(instr);
45008 ExtractQRegister(instr, 22, 12);
45010 ExtractDRegister(instr, 5, 0);
45011 uint32_t imm6 = (instr >> 16) & 0x3f;
45023 if (((instr & 0x380000) == 0x0) ||
45024 ((instr & 0x3f0000) == 0x80000) ||
45025 ((instr & 0x3f0000) == 0x100000) ||
45026 ((instr & 0x3f0000) == 0x200000)) {
45027 UnallocatedA32(instr);
45031 Dt_imm6_4_Decode((instr >> 19) &
45033 (instr >> 24) &
45036 UnallocatedA32(instr);
45039 if (((instr >> 12) & 1) != 0) {
45040 UnallocatedA32(instr);
45044 ExtractQRegister(instr, 22, 12);
45046 ExtractDRegister(instr, 5, 0);
45047 uint32_t imm6 = (instr >> 16) & 0x3f;
45059 if (((instr & 0x380000) == 0x0) ||
45060 ((instr & 0x3f0000) == 0x80000) ||
45061 ((instr & 0x3f0000) == 0x100000) ||
45062 ((instr & 0x3f0000) == 0x200000)) {
45063 UnallocatedA32(instr);
45067 Dt_imm6_4_Decode((instr >> 19) &
45069 (instr >> 24) &
45072 UnallocatedA32(instr);
45075 if (((instr >> 12) & 1) != 0) {
45076 UnallocatedA32(instr);
45080 ExtractQRegister(instr, 22, 12);
45082 ExtractDRegister(instr, 5, 0);
45083 uint32_t imm6 = (instr >> 16) & 0x3f;
45095 if (((instr & 0x380000) == 0x0) ||
45096 ((instr & 0x3f0000) == 0x80000) ||
45097 ((instr & 0x3f0000) == 0x100000) ||
45098 ((instr & 0x3f0000) == 0x200000)) {
45099 UnallocatedA32(instr);
45103 Dt_imm6_4_Decode((instr >> 19) &
45105 (instr >> 24) &
45108 UnallocatedA32(instr);
45111 if (((instr >> 12) & 1) != 0) {
45112 UnallocatedA32(instr);
45116 ExtractQRegister(instr, 22, 12);
45118 ExtractDRegister(instr, 5, 0);
45119 uint32_t imm6 = (instr >> 16) & 0x3f;
45131 if (((instr & 0x380000) == 0x0) ||
45132 ((instr & 0x3f0000) == 0x80000) ||
45133 ((instr & 0x3f0000) == 0x100000) ||
45134 ((instr & 0x3f0000) == 0x200000)) {
45135 UnallocatedA32(instr);
45139 Dt_imm6_4_Decode((instr >> 19) &
45141 (instr >> 24) &
45144 UnallocatedA32(instr);
45147 if (((instr >> 12) & 1) != 0) {
45148 UnallocatedA32(instr);
45152 ExtractQRegister(instr, 22, 12);
45154 ExtractDRegister(instr, 5, 0);
45155 uint32_t imm6 = (instr >> 16) & 0x3f;
45167 if (((instr & 0x380000) == 0x0) ||
45168 ((instr & 0x3f0000) == 0x80000) ||
45169 ((instr & 0x3f0000) == 0x100000) ||
45170 ((instr & 0x3f0000) == 0x200000)) {
45171 UnallocatedA32(instr);
45175 Dt_imm6_4_Decode((instr >> 19) &
45177 (instr >> 24) &
45180 UnallocatedA32(instr);
45183 if (((instr >> 12) & 1) != 0) {
45184 UnallocatedA32(instr);
45188 ExtractQRegister(instr, 22, 12);
45190 ExtractDRegister(instr, 5, 0);
45191 uint32_t imm6 = (instr >> 16) & 0x3f;
45203 if (((instr & 0x380000) == 0x0) ||
45204 ((instr & 0x3f0000) == 0x80000) ||
45205 ((instr & 0x3f0000) == 0x100000) ||
45206 ((instr & 0x3f0000) == 0x200000)) {
45207 UnallocatedA32(instr);
45211 Dt_imm6_4_Decode((instr >> 19) &
45213 (instr >> 24) &
45216 UnallocatedA32(instr);
45219 if (((instr >> 12) & 1) != 0) {
45220 UnallocatedA32(instr);
45224 ExtractQRegister(instr, 22, 12);
45226 ExtractDRegister(instr, 5, 0);
45227 uint32_t imm6 = (instr >> 16) & 0x3f;
45239 if (((instr & 0x380000) == 0x0) ||
45240 ((instr & 0x380000) == 0x180000) ||
45241 ((instr & 0x380000) == 0x280000) ||
45242 ((instr & 0x380000) == 0x300000) ||
45243 ((instr & 0x380000) == 0x380000)) {
45244 UnallocatedA32(instr);
45248 ((instr >> 19) & 0x7) |
45249 ((instr >> 21) & 0x8));
45251 UnallocatedA32(instr);
45254 if (((instr >> 12) & 1) != 0) {
45255 UnallocatedA32(instr);
45259 ExtractQRegister(instr, 22, 12);
45261 ExtractDRegister(instr, 5, 0);
45271 if (((instr & 0x380000) == 0x0) ||
45272 ((instr & 0x3f0000) == 0x80000) ||
45273 ((instr & 0x3f0000) == 0x100000) ||
45274 ((instr & 0x3f0000) == 0x200000)) {
45275 UnallocatedA32(instr);
45279 Dt_imm6_4_Decode((instr >> 19) &
45281 (instr >> 24) &
45284 UnallocatedA32(instr);
45287 if (((instr >> 12) & 1) != 0) {
45288 UnallocatedA32(instr);
45292 ExtractQRegister(instr, 22, 12);
45294 ExtractDRegister(instr, 5, 0);
45295 uint32_t imm6 = (instr >> 16) & 0x3f;
45307 if (((instr & 0x380000) == 0x0) ||
45308 ((instr & 0x3f0000) == 0x80000) ||
45309 ((instr & 0x3f0000) == 0x100000) ||
45310 ((instr & 0x3f0000) == 0x200000)) {
45311 UnallocatedA32(instr);
45315 Dt_imm6_4_Decode((instr >> 19) &
45317 (instr >> 24) &
45320 UnallocatedA32(instr);
45323 if (((instr >> 12) & 1) != 0) {
45324 UnallocatedA32(instr);
45328 ExtractQRegister(instr, 22, 12);
45330 ExtractDRegister(instr, 5, 0);
45331 uint32_t imm6 = (instr >> 16) & 0x3f;
45343 if (((instr & 0x380000) == 0x0) ||
45344 ((instr & 0x3f0000) == 0x80000) ||
45345 ((instr & 0x3f0000) == 0x100000) ||
45346 ((instr & 0x3f0000) == 0x200000)) {
45347 UnallocatedA32(instr);
45351 Dt_imm6_4_Decode((instr >> 19) &
45353 (instr >> 24) &
45356 UnallocatedA32(instr);
45359 if (((instr >> 12) & 1) != 0) {
45360 UnallocatedA32(instr);
45364 ExtractQRegister(instr, 22, 12);
45366 ExtractDRegister(instr, 5, 0);
45367 uint32_t imm6 = (instr >> 16) & 0x3f;
45379 if (((instr & 0x380000) == 0x0) ||
45380 ((instr & 0x3f0000) == 0x80000) ||
45381 ((instr & 0x3f0000) == 0x100000) ||
45382 ((instr & 0x3f0000) == 0x200000)) {
45383 UnallocatedA32(instr);
45387 Dt_imm6_4_Decode((instr >> 19) &
45389 (instr >> 24) &
45392 UnallocatedA32(instr);
45395 if (((instr >> 12) & 1) != 0) {
45396 UnallocatedA32(instr);
45400 ExtractQRegister(instr, 22, 12);
45402 ExtractDRegister(instr, 5, 0);
45403 uint32_t imm6 = (instr >> 16) & 0x3f;
45415 if (((instr & 0x380000) == 0x0) ||
45416 ((instr & 0x3f0000) == 0x80000) ||
45417 ((instr & 0x3f0000) == 0x100000) ||
45418 ((instr & 0x3f0000) == 0x200000)) {
45419 UnallocatedA32(instr);
45423 Dt_imm6_4_Decode((instr >> 19) &
45425 (instr >> 24) &
45428 UnallocatedA32(instr);
45431 if (((instr >> 12) & 1) != 0) {
45432 UnallocatedA32(instr);
45436 ExtractQRegister(instr, 22, 12);
45438 ExtractDRegister(instr, 5, 0);
45439 uint32_t imm6 = (instr >> 16) & 0x3f;
45451 if (((instr & 0x380000) == 0x0) ||
45452 ((instr & 0x3f0000) == 0x80000) ||
45453 ((instr & 0x3f0000) == 0x100000) ||
45454 ((instr & 0x3f0000) == 0x200000)) {
45455 UnallocatedA32(instr);
45459 Dt_imm6_4_Decode((instr >> 19) &
45461 (instr >> 24) &
45464 UnallocatedA32(instr);
45467 if (((instr >> 12) & 1) != 0) {
45468 UnallocatedA32(instr);
45472 ExtractQRegister(instr, 22, 12);
45474 ExtractDRegister(instr, 5, 0);
45475 uint32_t imm6 = (instr >> 16) & 0x3f;
45487 if (((instr & 0x380000) == 0x0) ||
45488 ((instr & 0x3f0000) == 0x80000) ||
45489 ((instr & 0x3f0000) == 0x100000) ||
45490 ((instr & 0x3f0000) == 0x200000)) {
45491 UnallocatedA32(instr);
45495 Dt_imm6_4_Decode((instr >> 19) &
45497 (instr >> 24) &
45500 UnallocatedA32(instr);
45503 if (((instr >> 12) & 1) != 0) {
45504 UnallocatedA32(instr);
45508 ExtractQRegister(instr, 22, 12);
45510 ExtractDRegister(instr, 5, 0);
45511 uint32_t imm6 = (instr >> 16) & 0x3f;
45523 if (((instr & 0x380000) == 0x0) ||
45524 ((instr & 0x3f0000) == 0x80000) ||
45525 ((instr & 0x3f0000) == 0x100000) ||
45526 ((instr & 0x3f0000) == 0x200000)) {
45527 UnallocatedA32(instr);
45531 Dt_imm6_4_Decode((instr >> 19) &
45533 (instr >> 24) &
45536 UnallocatedA32(instr);
45539 if (((instr >> 12) & 1) != 0) {
45540 UnallocatedA32(instr);
45544 ExtractQRegister(instr, 22, 12);
45546 ExtractDRegister(instr, 5, 0);
45547 uint32_t imm6 = (instr >> 16) & 0x3f;
45559 if (((instr & 0x380000) == 0x0) ||
45560 ((instr & 0x3f0000) == 0x80000) ||
45561 ((instr & 0x3f0000) == 0x100000) ||
45562 ((instr & 0x3f0000) == 0x200000)) {
45563 UnallocatedA32(instr);
45567 Dt_imm6_4_Decode((instr >> 19) &
45569 (instr >> 24) &
45572 UnallocatedA32(instr);
45575 if (((instr >> 12) & 1) != 0) {
45576 UnallocatedA32(instr);
45580 ExtractQRegister(instr, 22, 12);
45582 ExtractDRegister(instr, 5, 0);
45583 uint32_t imm6 = (instr >> 16) & 0x3f;
45595 if (((instr & 0x380000) == 0x0) ||
45596 ((instr & 0x3f0000) == 0x80000) ||
45597 ((instr & 0x3f0000) == 0x100000) ||
45598 ((instr & 0x3f0000) == 0x200000)) {
45599 UnallocatedA32(instr);
45603 Dt_imm6_4_Decode((instr >> 19) &
45605 (instr >> 24) &
45608 UnallocatedA32(instr);
45611 if (((instr >> 12) & 1) != 0) {
45612 UnallocatedA32(instr);
45616 ExtractQRegister(instr, 22, 12);
45618 ExtractDRegister(instr, 5, 0);
45619 uint32_t imm6 = (instr >> 16) & 0x3f;
45631 if (((instr & 0x380000) == 0x0) ||
45632 ((instr & 0x3f0000) == 0x80000) ||
45633 ((instr & 0x3f0000) == 0x100000) ||
45634 ((instr & 0x3f0000) == 0x200000)) {
45635 UnallocatedA32(instr);
45639 Dt_imm6_4_Decode((instr >> 19) &
45641 (instr >> 24) &
45644 UnallocatedA32(instr);
45647 if (((instr >> 12) & 1) != 0) {
45648 UnallocatedA32(instr);
45652 ExtractQRegister(instr, 22, 12);
45654 ExtractDRegister(instr, 5, 0);
45655 uint32_t imm6 = (instr >> 16) & 0x3f;
45667 if (((instr & 0x380000) == 0x0) ||
45668 ((instr & 0x3f0000) == 0x80000) ||
45669 ((instr & 0x3f0000) == 0x100000) ||
45670 ((instr & 0x3f0000) == 0x200000)) {
45671 UnallocatedA32(instr);
45675 Dt_imm6_4_Decode((instr >> 19) &
45677 (instr >> 24) &
45680 UnallocatedA32(instr);
45683 if (((instr >> 12) & 1) != 0) {
45684 UnallocatedA32(instr);
45688 ExtractQRegister(instr, 22, 12);
45690 ExtractDRegister(instr, 5, 0);
45691 uint32_t imm6 = (instr >> 16) & 0x3f;
45703 if (((instr & 0x380000) == 0x0) ||
45704 ((instr & 0x3f0000) == 0x80000) ||
45705 ((instr & 0x3f0000) == 0x100000) ||
45706 ((instr & 0x3f0000) == 0x200000)) {
45707 UnallocatedA32(instr);
45711 Dt_imm6_4_Decode((instr >> 19) &
45713 (instr >> 24) &
45716 UnallocatedA32(instr);
45719 if (((instr >> 12) & 1) != 0) {
45720 UnallocatedA32(instr);
45724 ExtractQRegister(instr, 22, 12);
45726 ExtractDRegister(instr, 5, 0);
45727 uint32_t imm6 = (instr >> 16) & 0x3f;
45739 if (((instr & 0x380000) == 0x0) ||
45740 ((instr & 0x3f0000) == 0x80000) ||
45741 ((instr & 0x3f0000) == 0x100000) ||
45742 ((instr & 0x3f0000) == 0x200000)) {
45743 UnallocatedA32(instr);
45747 Dt_imm6_4_Decode((instr >> 19) &
45749 (instr >> 24) &
45752 UnallocatedA32(instr);
45755 if (((instr >> 12) & 1) != 0) {
45756 UnallocatedA32(instr);
45760 ExtractQRegister(instr, 22, 12);
45762 ExtractDRegister(instr, 5, 0);
45763 uint32_t imm6 = (instr >> 16) & 0x3f;
45775 if (((instr & 0x380000) == 0x0) ||
45776 ((instr & 0x3f0000) == 0x80000) ||
45777 ((instr & 0x3f0000) == 0x100000) ||
45778 ((instr & 0x3f0000) == 0x200000)) {
45779 UnallocatedA32(instr);
45783 Dt_imm6_4_Decode((instr >> 19) &
45785 (instr >> 24) &
45788 UnallocatedA32(instr);
45791 if (((instr >> 12) & 1) != 0) {
45792 UnallocatedA32(instr);
45796 ExtractQRegister(instr, 22, 12);
45798 ExtractDRegister(instr, 5, 0);
45799 uint32_t imm6 = (instr >> 16) & 0x3f;
45811 if (((instr & 0x380000) == 0x0) ||
45812 ((instr & 0x380000) == 0x180000) ||
45813 ((instr & 0x380000) == 0x280000) ||
45814 ((instr & 0x380000) == 0x300000) ||
45815 ((instr & 0x380000) == 0x380000)) {
45816 UnallocatedA32(instr);
45820 ((instr >> 19) & 0x7) |
45821 ((instr >> 21) & 0x8));
45823 UnallocatedA32(instr);
45826 if (((instr >> 12) & 1) != 0) {
45827 UnallocatedA32(instr);
45831 ExtractQRegister(instr, 22, 12);
45833 ExtractDRegister(instr, 5, 0);
45843 if (((instr & 0x380000) == 0x0) ||
45844 ((instr & 0x3f0000) == 0x80000) ||
45845 ((instr & 0x3f0000) == 0x100000) ||
45846 ((instr & 0x3f0000) == 0x200000)) {
45847 UnallocatedA32(instr);
45851 Dt_imm6_4_Decode((instr >> 19) &
45853 (instr >> 24) &
45856 UnallocatedA32(instr);
45859 if (((instr >> 12) & 1) != 0) {
45860 UnallocatedA32(instr);
45864 ExtractQRegister(instr, 22, 12);
45866 ExtractDRegister(instr, 5, 0);
45867 uint32_t imm6 = (instr >> 16) & 0x3f;
45879 if (((instr & 0x380000) == 0x0) ||
45880 ((instr & 0x3f0000) == 0x80000) ||
45881 ((instr & 0x3f0000) == 0x100000) ||
45882 ((instr & 0x3f0000) == 0x200000)) {
45883 UnallocatedA32(instr);
45887 Dt_imm6_4_Decode((instr >> 19) &
45889 (instr >> 24) &
45892 UnallocatedA32(instr);
45895 if (((instr >> 12) & 1) != 0) {
45896 UnallocatedA32(instr);
45900 ExtractQRegister(instr, 22, 12);
45902 ExtractDRegister(instr, 5, 0);
45903 uint32_t imm6 = (instr >> 16) & 0x3f;
45915 if (((instr & 0x380000) == 0x0) ||
45916 ((instr & 0x3f0000) == 0x80000) ||
45917 ((instr & 0x3f0000) == 0x100000) ||
45918 ((instr & 0x3f0000) == 0x200000)) {
45919 UnallocatedA32(instr);
45923 Dt_imm6_4_Decode((instr >> 19) &
45925 (instr >> 24) &
45928 UnallocatedA32(instr);
45931 if (((instr >> 12) & 1) != 0) {
45932 UnallocatedA32(instr);
45936 ExtractQRegister(instr, 22, 12);
45938 ExtractDRegister(instr, 5, 0);
45939 uint32_t imm6 = (instr >> 16) & 0x3f;
45951 if (((instr & 0x380000) == 0x0) ||
45952 ((instr & 0x3f0000) == 0x80000) ||
45953 ((instr & 0x3f0000) == 0x100000) ||
45954 ((instr & 0x3f0000) == 0x200000)) {
45955 UnallocatedA32(instr);
45959 Dt_imm6_4_Decode((instr >> 19) &
45961 (instr >> 24) &
45964 UnallocatedA32(instr);
45967 if (((instr >> 12) & 1) != 0) {
45968 UnallocatedA32(instr);
45972 ExtractQRegister(instr, 22, 12);
45974 ExtractDRegister(instr, 5, 0);
45975 uint32_t imm6 = (instr >> 16) & 0x3f;
45987 if (((instr & 0x380000) == 0x0) ||
45988 ((instr & 0x3f0000) == 0x80000) ||
45989 ((instr & 0x3f0000) == 0x100000) ||
45990 ((instr & 0x3f0000) == 0x200000)) {
45991 UnallocatedA32(instr);
45995 Dt_imm6_4_Decode((instr >> 19) &
45997 (instr >> 24) &
46000 UnallocatedA32(instr);
46003 if (((instr >> 12) & 1) != 0) {
46004 UnallocatedA32(instr);
46008 ExtractQRegister(instr, 22, 12);
46010 ExtractDRegister(instr, 5, 0);
46011 uint32_t imm6 = (instr >> 16) & 0x3f;
46023 if (((instr & 0x380000) == 0x0) ||
46024 ((instr & 0x3f0000) == 0x80000) ||
46025 ((instr & 0x3f0000) == 0x100000) ||
46026 ((instr & 0x3f0000) == 0x200000)) {
46027 UnallocatedA32(instr);
46031 Dt_imm6_4_Decode((instr >> 19) &
46033 (instr >> 24) &
46036 UnallocatedA32(instr);
46039 if (((instr >> 12) & 1) != 0) {
46040 UnallocatedA32(instr);
46044 ExtractQRegister(instr, 22, 12);
46046 ExtractDRegister(instr, 5, 0);
46047 uint32_t imm6 = (instr >> 16) & 0x3f;
46059 if (((instr & 0x380000) == 0x0) ||
46060 ((instr & 0x3f0000) == 0x80000) ||
46061 ((instr & 0x3f0000) == 0x100000) ||
46062 ((instr & 0x3f0000) == 0x200000)) {
46063 UnallocatedA32(instr);
46067 Dt_imm6_4_Decode((instr >> 19) &
46069 (instr >> 24) &
46072 UnallocatedA32(instr);
46075 if (((instr >> 12) & 1) != 0) {
46076 UnallocatedA32(instr);
46080 ExtractQRegister(instr, 22, 12);
46082 ExtractDRegister(instr, 5, 0);
46083 uint32_t imm6 = (instr >> 16) & 0x3f;
46095 if (((instr & 0x380000) == 0x0) ||
46096 ((instr & 0x3f0000) == 0x80000) ||
46097 ((instr & 0x3f0000) == 0x100000) ||
46098 ((instr & 0x3f0000) == 0x200000)) {
46099 UnallocatedA32(instr);
46103 Dt_imm6_4_Decode((instr >> 19) &
46105 (instr >> 24) &
46108 UnallocatedA32(instr);
46111 if (((instr >> 12) & 1) != 0) {
46112 UnallocatedA32(instr);
46116 ExtractQRegister(instr, 22, 12);
46118 ExtractDRegister(instr, 5, 0);
46119 uint32_t imm6 = (instr >> 16) & 0x3f;
46131 if (((instr & 0x380000) == 0x0) ||
46132 ((instr & 0x3f0000) == 0x80000) ||
46133 ((instr & 0x3f0000) == 0x100000) ||
46134 ((instr & 0x3f0000) == 0x200000)) {
46135 UnallocatedA32(instr);
46139 Dt_imm6_4_Decode((instr >> 19) &
46141 (instr >> 24) &
46144 UnallocatedA32(instr);
46147 if (((instr >> 12) & 1) != 0) {
46148 UnallocatedA32(instr);
46152 ExtractQRegister(instr, 22, 12);
46154 ExtractDRegister(instr, 5, 0);
46155 uint32_t imm6 = (instr >> 16) & 0x3f;
46167 if (((instr & 0x380000) == 0x0) ||
46168 ((instr & 0x3f0000) == 0x80000) ||
46169 ((instr & 0x3f0000) == 0x100000) ||
46170 ((instr & 0x3f0000) == 0x200000)) {
46171 UnallocatedA32(instr);
46175 Dt_imm6_4_Decode((instr >> 19) &
46177 (instr >> 24) &
46180 UnallocatedA32(instr);
46183 if (((instr >> 12) & 1) != 0) {
46184 UnallocatedA32(instr);
46188 ExtractQRegister(instr, 22, 12);
46190 ExtractDRegister(instr, 5, 0);
46191 uint32_t imm6 = (instr >> 16) & 0x3f;
46203 if (((instr & 0x380000) == 0x0) ||
46204 ((instr & 0x3f0000) == 0x80000) ||
46205 ((instr & 0x3f0000) == 0x100000) ||
46206 ((instr & 0x3f0000) == 0x200000)) {
46207 UnallocatedA32(instr);
46211 Dt_imm6_4_Decode((instr >> 19) &
46213 (instr >> 24) &
46216 UnallocatedA32(instr);
46219 if (((instr >> 12) & 1) != 0) {
46220 UnallocatedA32(instr);
46224 ExtractQRegister(instr, 22, 12);
46226 ExtractDRegister(instr, 5, 0);
46227 uint32_t imm6 = (instr >> 16) & 0x3f;
46239 if (((instr & 0x380000) == 0x0) ||
46240 ((instr & 0x3f0000) == 0x80000) ||
46241 ((instr & 0x3f0000) == 0x100000) ||
46242 ((instr & 0x3f0000) == 0x200000)) {
46243 UnallocatedA32(instr);
46247 Dt_imm6_4_Decode((instr >> 19) &
46249 (instr >> 24) &
46252 UnallocatedA32(instr);
46255 if (((instr >> 12) & 1) != 0) {
46256 UnallocatedA32(instr);
46260 ExtractQRegister(instr, 22, 12);
46262 ExtractDRegister(instr, 5, 0);
46263 uint32_t imm6 = (instr >> 16) & 0x3f;
46275 if (((instr & 0x380000) == 0x0) ||
46276 ((instr & 0x3f0000) == 0x80000) ||
46277 ((instr & 0x3f0000) == 0x100000) ||
46278 ((instr & 0x3f0000) == 0x200000)) {
46279 UnallocatedA32(instr);
46283 Dt_imm6_4_Decode((instr >> 19) &
46285 (instr >> 24) &
46288 UnallocatedA32(instr);
46291 if (((instr >> 12) & 1) != 0) {
46292 UnallocatedA32(instr);
46296 ExtractQRegister(instr, 22, 12);
46298 ExtractDRegister(instr, 5, 0);
46299 uint32_t imm6 = (instr >> 16) & 0x3f;
46311 if (((instr & 0x380000) == 0x0) ||
46312 ((instr & 0x3f0000) == 0x80000) ||
46313 ((instr & 0x3f0000) == 0x100000) ||
46314 ((instr & 0x3f0000) == 0x200000)) {
46315 UnallocatedA32(instr);
46319 Dt_imm6_4_Decode((instr >> 19) &
46321 (instr >> 24) &
46324 UnallocatedA32(instr);
46327 if (((instr >> 12) & 1) != 0) {
46328 UnallocatedA32(instr);
46332 ExtractQRegister(instr, 22, 12);
46334 ExtractDRegister(instr, 5, 0);
46335 uint32_t imm6 = (instr >> 16) & 0x3f;
46347 if (((instr & 0x380000) == 0x0) ||
46348 ((instr & 0x3f0000) == 0x80000) ||
46349 ((instr & 0x3f0000) == 0x100000) ||
46350 ((instr & 0x3f0000) == 0x200000)) {
46351 UnallocatedA32(instr);
46355 Dt_imm6_4_Decode((instr >> 19) &
46357 (instr >> 24) &
46360 UnallocatedA32(instr);
46363 if (((instr >> 12) & 1) != 0) {
46364 UnallocatedA32(instr);
46368 ExtractQRegister(instr, 22, 12);
46370 ExtractDRegister(instr, 5, 0);
46371 uint32_t imm6 = (instr >> 16) & 0x3f;
46383 if (((instr & 0x380000) == 0x0) ||
46384 ((instr & 0x3f0000) == 0x80000) ||
46385 ((instr & 0x3f0000) == 0x100000) ||
46386 ((instr & 0x3f0000) == 0x200000)) {
46387 UnallocatedA32(instr);
46391 Dt_imm6_4_Decode((instr >> 19) &
46393 (instr >> 24) &
46396 UnallocatedA32(instr);
46399 if (((instr >> 12) & 1) != 0) {
46400 UnallocatedA32(instr);
46404 ExtractQRegister(instr, 22, 12);
46406 ExtractDRegister(instr, 5, 0);
46407 uint32_t imm6 = (instr >> 16) & 0x3f;
46419 if (((instr & 0x380000) == 0x0) ||
46420 ((instr & 0x3f0000) == 0x80000) ||
46421 ((instr & 0x3f0000) == 0x100000) ||
46422 ((instr & 0x3f0000) == 0x200000)) {
46423 UnallocatedA32(instr);
46427 Dt_imm6_4_Decode((instr >> 19) &
46429 (instr >> 24) &
46432 UnallocatedA32(instr);
46435 if (((instr >> 12) & 1) != 0) {
46436 UnallocatedA32(instr);
46440 ExtractQRegister(instr, 22, 12);
46442 ExtractDRegister(instr, 5, 0);
46443 uint32_t imm6 = (instr >> 16) & 0x3f;
46455 if (((instr & 0x380000) == 0x0) ||
46456 ((instr & 0x3f0000) == 0x80000) ||
46457 ((instr & 0x3f0000) == 0x100000) ||
46458 ((instr & 0x3f0000) == 0x200000)) {
46459 UnallocatedA32(instr);
46463 Dt_imm6_4_Decode((instr >> 19) &
46465 (instr >> 24) &
46468 UnallocatedA32(instr);
46471 if (((instr >> 12) & 1) != 0) {
46472 UnallocatedA32(instr);
46476 ExtractQRegister(instr, 22, 12);
46478 ExtractDRegister(instr, 5, 0);
46479 uint32_t imm6 = (instr >> 16) & 0x3f;
46491 if (((instr & 0x380000) == 0x0) ||
46492 ((instr & 0x3f0000) == 0x80000) ||
46493 ((instr & 0x3f0000) == 0x100000) ||
46494 ((instr & 0x3f0000) == 0x200000)) {
46495 UnallocatedA32(instr);
46499 Dt_imm6_4_Decode((instr >> 19) &
46501 (instr >> 24) &
46504 UnallocatedA32(instr);
46507 if (((instr >> 12) & 1) != 0) {
46508 UnallocatedA32(instr);
46512 ExtractQRegister(instr, 22, 12);
46514 ExtractDRegister(instr, 5, 0);
46515 uint32_t imm6 = (instr >> 16) & 0x3f;
46527 if (((instr & 0x380000) == 0x0) ||
46528 ((instr & 0x3f0000) == 0x80000) ||
46529 ((instr & 0x3f0000) == 0x100000) ||
46530 ((instr & 0x3f0000) == 0x200000)) {
46531 UnallocatedA32(instr);
46535 Dt_imm6_4_Decode((instr >> 19) &
46537 (instr >> 24) &
46540 UnallocatedA32(instr);
46543 if (((instr >> 12) & 1) != 0) {
46544 UnallocatedA32(instr);
46548 ExtractQRegister(instr, 22, 12);
46550 ExtractDRegister(instr, 5, 0);
46551 uint32_t imm6 = (instr >> 16) & 0x3f;
46563 if (((instr & 0x380000) == 0x0) ||
46564 ((instr & 0x3f0000) == 0x80000) ||
46565 ((instr & 0x3f0000) == 0x100000) ||
46566 ((instr & 0x3f0000) == 0x200000)) {
46567 UnallocatedA32(instr);
46571 Dt_imm6_4_Decode((instr >> 19) &
46573 (instr >> 24) &
46576 UnallocatedA32(instr);
46579 if (((instr >> 12) & 1) != 0) {
46580 UnallocatedA32(instr);
46584 ExtractQRegister(instr, 22, 12);
46586 ExtractDRegister(instr, 5, 0);
46587 uint32_t imm6 = (instr >> 16) & 0x3f;
46599 if (((instr & 0x380000) == 0x0) ||
46600 ((instr & 0x3f0000) == 0x80000) ||
46601 ((instr & 0x3f0000) == 0x100000) ||
46602 ((instr & 0x3f0000) == 0x200000)) {
46603 UnallocatedA32(instr);
46607 Dt_imm6_4_Decode((instr >> 19) &
46609 (instr >> 24) &
46612 UnallocatedA32(instr);
46615 if (((instr >> 12) & 1) != 0) {
46616 UnallocatedA32(instr);
46620 ExtractQRegister(instr, 22, 12);
46622 ExtractDRegister(instr, 5, 0);
46623 uint32_t imm6 = (instr >> 16) & 0x3f;
46635 if (((instr & 0x380000) == 0x0) ||
46636 ((instr & 0x3f0000) == 0x80000) ||
46637 ((instr & 0x3f0000) == 0x100000) ||
46638 ((instr & 0x3f0000) == 0x200000)) {
46639 UnallocatedA32(instr);
46643 Dt_imm6_4_Decode((instr >> 19) &
46645 (instr >> 24) &
46648 UnallocatedA32(instr);
46651 if (((instr >> 12) & 1) != 0) {
46652 UnallocatedA32(instr);
46656 ExtractQRegister(instr, 22, 12);
46658 ExtractDRegister(instr, 5, 0);
46659 uint32_t imm6 = (instr >> 16) & 0x3f;
46671 if (((instr & 0x380000) == 0x0) ||
46672 ((instr & 0x3f0000) == 0x80000) ||
46673 ((instr & 0x3f0000) == 0x100000) ||
46674 ((instr & 0x3f0000) == 0x200000)) {
46675 UnallocatedA32(instr);
46679 Dt_imm6_4_Decode((instr >> 19) &
46681 (instr >> 24) &
46684 UnallocatedA32(instr);
46687 if (((instr >> 12) & 1) != 0) {
46688 UnallocatedA32(instr);
46692 ExtractQRegister(instr, 22, 12);
46694 ExtractDRegister(instr, 5, 0);
46695 uint32_t imm6 = (instr >> 16) & 0x3f;
46707 if (((instr & 0x380000) == 0x0) ||
46708 ((instr & 0x3f0000) == 0x80000) ||
46709 ((instr & 0x3f0000) == 0x100000) ||
46710 ((instr & 0x3f0000) == 0x200000)) {
46711 UnallocatedA32(instr);
46715 Dt_imm6_4_Decode((instr >> 19) &
46717 (instr >> 24) &
46720 UnallocatedA32(instr);
46723 if (((instr >> 12) & 1) != 0) {
46724 UnallocatedA32(instr);
46728 ExtractQRegister(instr, 22, 12);
46730 ExtractDRegister(instr, 5, 0);
46731 uint32_t imm6 = (instr >> 16) & 0x3f;
46743 if (((instr & 0x380000) == 0x0) ||
46744 ((instr & 0x3f0000) == 0x80000) ||
46745 ((instr & 0x3f0000) == 0x100000) ||
46746 ((instr & 0x3f0000) == 0x200000)) {
46747 UnallocatedA32(instr);
46751 Dt_imm6_4_Decode((instr >> 19) &
46753 (instr >> 24) &
46756 UnallocatedA32(instr);
46759 if (((instr >> 12) & 1) != 0) {
46760 UnallocatedA32(instr);
46764 ExtractQRegister(instr, 22, 12);
46766 ExtractDRegister(instr, 5, 0);
46767 uint32_t imm6 = (instr >> 16) & 0x3f;
46779 if (((instr & 0x380000) == 0x0) ||
46780 ((instr & 0x3f0000) == 0x80000) ||
46781 ((instr & 0x3f0000) == 0x100000) ||
46782 ((instr & 0x3f0000) == 0x200000)) {
46783 UnallocatedA32(instr);
46787 Dt_imm6_4_Decode((instr >> 19) &
46789 (instr >> 24) &
46792 UnallocatedA32(instr);
46795 if (((instr >> 12) & 1) != 0) {
46796 UnallocatedA32(instr);
46800 ExtractQRegister(instr, 22, 12);
46802 ExtractDRegister(instr, 5, 0);
46803 uint32_t imm6 = (instr >> 16) & 0x3f;
46815 if (((instr & 0x380000) == 0x0) ||
46816 ((instr & 0x3f0000) == 0x80000) ||
46817 ((instr & 0x3f0000) == 0x100000) ||
46818 ((instr & 0x3f0000) == 0x200000)) {
46819 UnallocatedA32(instr);
46823 Dt_imm6_4_Decode((instr >> 19) &
46825 (instr >> 24) &
46828 UnallocatedA32(instr);
46831 if (((instr >> 12) & 1) != 0) {
46832 UnallocatedA32(instr);
46836 ExtractQRegister(instr, 22, 12);
46838 ExtractDRegister(instr, 5, 0);
46839 uint32_t imm6 = (instr >> 16) & 0x3f;
46851 if (((instr & 0x380000) == 0x0) ||
46852 ((instr & 0x3f0000) == 0x80000) ||
46853 ((instr & 0x3f0000) == 0x100000) ||
46854 ((instr & 0x3f0000) == 0x200000)) {
46855 UnallocatedA32(instr);
46859 Dt_imm6_4_Decode((instr >> 19) &
46861 (instr >> 24) &
46864 UnallocatedA32(instr);
46867 if (((instr >> 12) & 1) != 0) {
46868 UnallocatedA32(instr);
46872 ExtractQRegister(instr, 22, 12);
46874 ExtractDRegister(instr, 5, 0);
46875 uint32_t imm6 = (instr >> 16) & 0x3f;
46887 if (((instr & 0x380000) == 0x0) ||
46888 ((instr & 0x3f0000) == 0x80000) ||
46889 ((instr & 0x3f0000) == 0x100000) ||
46890 ((instr & 0x3f0000) == 0x200000)) {
46891 UnallocatedA32(instr);
46895 Dt_imm6_4_Decode((instr >> 19) &
46897 (instr >> 24) &
46900 UnallocatedA32(instr);
46903 if (((instr >> 12) & 1) != 0) {
46904 UnallocatedA32(instr);
46908 ExtractQRegister(instr, 22, 12);
46910 ExtractDRegister(instr, 5, 0);
46911 uint32_t imm6 = (instr >> 16) & 0x3f;
46923 if (((instr & 0x380000) == 0x0) ||
46924 ((instr & 0x3f0000) == 0x80000) ||
46925 ((instr & 0x3f0000) == 0x100000) ||
46926 ((instr & 0x3f0000) == 0x200000)) {
46927 UnallocatedA32(instr);
46931 Dt_imm6_4_Decode((instr >> 19) &
46933 (instr >> 24) &
46936 UnallocatedA32(instr);
46939 if (((instr >> 12) & 1) != 0) {
46940 UnallocatedA32(instr);
46944 ExtractQRegister(instr, 22, 12);
46946 ExtractDRegister(instr, 5, 0);
46947 uint32_t imm6 = (instr >> 16) & 0x3f;
46958 UnallocatedA32(instr);
46964 if (((instr & 0x380000) == 0x0) ||
46965 ((instr & 0x3f0000) == 0x80000) ||
46966 ((instr & 0x3f0000) == 0x100000) ||
46967 ((instr & 0x3f0000) == 0x200000)) {
46968 UnallocatedA32(instr);
46972 Dt_imm6_4_Decode((instr >> 19) & 0x7,
46973 (instr >> 24) & 0x1);
46975 UnallocatedA32(instr);
46978 if (((instr >> 12) & 1) != 0) {
46979 UnallocatedA32(instr);
46983 ExtractQRegister(instr, 22, 12);
46984 unsigned rm = ExtractDRegister(instr, 5, 0);
46985 uint32_t imm6 = (instr >> 16) & 0x3f;
46999 UnallocatedA32(instr);
47008 UnallocatedA32(instr);
47015 switch (instr & 0x00000080) {
47018 switch (instr & 0x00200000) {
47021 switch (instr & 0x00180000) {
47024 switch (instr & 0x00000300) {
47027 if (((instr & 0x920) == 0x100) ||
47028 ((instr & 0x520) == 0x100) ||
47029 ((instr & 0x820) == 0x20) ||
47030 ((instr & 0x420) == 0x20) ||
47031 ((instr & 0x220) == 0x20) ||
47032 ((instr & 0x120) == 0x120)) {
47033 UnallocatedA32(instr);
47036 unsigned cmode = ((instr >> 8) & 0xf) |
47037 ((instr >> 1) & 0x10);
47041 UnallocatedA32(instr);
47045 ExtractDRegister(instr, 22, 12);
47049 (instr & 0xf) |
47050 ((instr >> 12) & 0x70) |
47051 ((instr >> 17) & 0x80));
47058 if (((instr & 0x920) == 0x100) ||
47059 ((instr & 0x520) == 0x100) ||
47060 ((instr & 0x820) == 0x20) ||
47061 ((instr & 0x420) == 0x20) ||
47062 ((instr & 0x220) == 0x20) ||
47063 ((instr & 0x120) == 0x120)) {
47064 UnallocatedA32(instr);
47067 unsigned cmode = ((instr >> 8) & 0xf) |
47068 ((instr >> 1) & 0x10);
47072 UnallocatedA32(instr);
47076 ExtractDRegister(instr, 22, 12);
47080 (instr & 0xf) |
47081 ((instr >> 12) & 0x70) |
47082 ((instr >> 17) & 0x80));
47088 switch (instr & 0x00000020) {
47091 switch (instr & 0x00000f20) {
47094 if (((instr & 0x920) == 0x100) ||
47095 ((instr & 0x520) == 0x100) ||
47096 ((instr & 0x820) == 0x20) ||
47097 ((instr & 0x420) == 0x20) ||
47098 ((instr & 0x220) == 0x20) ||
47099 ((instr & 0x120) == 0x120)) {
47100 UnallocatedA32(instr);
47104 ((instr >> 8) & 0xf) |
47105 ((instr >> 1) & 0x10);
47109 UnallocatedA32(instr);
47113 ExtractDRegister(instr, 22, 12);
47117 (instr & 0xf) |
47118 ((instr >> 12) & 0x70) |
47119 ((instr >> 17) & 0x80));
47126 if (((instr & 0xd00) == 0x100) ||
47127 ((instr & 0xd00) == 0x500) ||
47128 ((instr & 0xd00) == 0x900) ||
47129 ((instr & 0xe00) == 0xe00)) {
47130 UnallocatedA32(instr);
47133 unsigned cmode = (instr >> 8) & 0xf;
47137 UnallocatedA32(instr);
47141 ExtractDRegister(instr, 22, 12);
47145 (instr & 0xf) |
47146 ((instr >> 12) & 0x70) |
47147 ((instr >> 17) & 0x80));
47154 if (((instr & 0x920) == 0x100) ||
47155 ((instr & 0x520) == 0x100) ||
47156 ((instr & 0x820) == 0x20) ||
47157 ((instr & 0x420) == 0x20) ||
47158 ((instr & 0x220) == 0x20) ||
47159 ((instr & 0x120) == 0x120)) {
47160 UnallocatedA32(instr);
47164 ((instr >> 8) & 0xf) |
47165 ((instr >> 1) & 0x10);
47169 UnallocatedA32(instr);
47173 ExtractDRegister(instr, 22, 12);
47177 (instr & 0xf) |
47178 ((instr >> 12) & 0x70) |
47179 ((instr >> 17) & 0x80));
47186 if (((instr & 0xd00) == 0x100) ||
47187 ((instr & 0xd00) == 0x500) ||
47188 ((instr & 0xd00) == 0x900) ||
47189 ((instr & 0xe00) == 0xe00)) {
47190 UnallocatedA32(instr);
47193 unsigned cmode = (instr >> 8) & 0xf;
47197 UnallocatedA32(instr);
47201 ExtractDRegister(instr, 22, 12);
47205 (instr & 0xf) |
47206 ((instr >> 12) & 0x70) |
47207 ((instr >> 17) & 0x80));
47214 if (((instr & 0x920) == 0x100) ||
47215 ((instr & 0x520) == 0x100) ||
47216 ((instr & 0x820) == 0x20) ||
47217 ((instr & 0x420) == 0x20) ||
47218 ((instr & 0x220) == 0x20) ||
47219 ((instr & 0x120) == 0x120)) {
47220 UnallocatedA32(instr);
47224 ((instr >> 8) & 0xf) |
47225 ((instr >> 1) & 0x10);
47229 UnallocatedA32(instr);
47233 ExtractDRegister(instr, 22, 12);
47237 (instr & 0xf) |
47238 ((instr >> 12) & 0x70) |
47239 ((instr >> 17) & 0x80));
47246 if (((instr & 0xd00) == 0x100) ||
47247 ((instr & 0xd00) == 0x500) ||
47248 ((instr & 0xd00) == 0x900) ||
47249 ((instr & 0xe00) == 0xe00)) {
47250 UnallocatedA32(instr);
47253 unsigned cmode = (instr >> 8) & 0xf;
47257 UnallocatedA32(instr);
47261 ExtractDRegister(instr, 22, 12);
47265 (instr & 0xf) |
47266 ((instr >> 12) & 0x70) |
47267 ((instr >> 17) & 0x80));
47274 if (((instr & 0x920) == 0x100) ||
47275 ((instr & 0x520) == 0x100) ||
47276 ((instr & 0x820) == 0x20) ||
47277 ((instr & 0x420) == 0x20) ||
47278 ((instr & 0x220) == 0x20) ||
47279 ((instr & 0x120) == 0x120)) {
47280 UnallocatedA32(instr);
47284 ((instr >> 8) & 0xf) |
47285 ((instr >> 1) & 0x10);
47289 UnallocatedA32(instr);
47293 ExtractDRegister(instr, 22, 12);
47297 (instr & 0xf) |
47298 ((instr >> 12) & 0x70) |
47299 ((instr >> 17) & 0x80));
47306 if (((instr & 0xd00) == 0x100) ||
47307 ((instr & 0xd00) == 0x500) ||
47308 ((instr & 0xd00) == 0x900) ||
47309 ((instr & 0xe00) == 0xe00)) {
47310 UnallocatedA32(instr);
47313 unsigned cmode = (instr >> 8) & 0xf;
47317 UnallocatedA32(instr);
47321 ExtractDRegister(instr, 22, 12);
47325 (instr & 0xf) |
47326 ((instr >> 12) & 0x70) |
47327 ((instr >> 17) & 0x80));
47334 if (((instr & 0x920) == 0x100) ||
47335 ((instr & 0x520) == 0x100) ||
47336 ((instr & 0x820) == 0x20) ||
47337 ((instr & 0x420) == 0x20) ||
47338 ((instr & 0x220) == 0x20) ||
47339 ((instr & 0x120) == 0x120)) {
47340 UnallocatedA32(instr);
47344 ((instr >> 8) & 0xf) |
47345 ((instr >> 1) & 0x10);
47349 UnallocatedA32(instr);
47353 ExtractDRegister(instr, 22, 12);
47357 (instr & 0xf) |
47358 ((instr >> 12) & 0x70) |
47359 ((instr >> 17) & 0x80));
47366 if (((instr & 0xd00) == 0x100) ||
47367 ((instr & 0xd00) == 0x500) ||
47368 ((instr & 0xd00) == 0x900) ||
47369 ((instr & 0xe00) == 0xe00)) {
47370 UnallocatedA32(instr);
47373 unsigned cmode = (instr >> 8) & 0xf;
47377 UnallocatedA32(instr);
47381 ExtractDRegister(instr, 22, 12);
47385 (instr & 0xf) |
47386 ((instr >> 12) & 0x70) |
47387 ((instr >> 17) & 0x80));
47394 if (((instr & 0x920) == 0x100) ||
47395 ((instr & 0x520) == 0x100) ||
47396 ((instr & 0x820) == 0x20) ||
47397 ((instr & 0x420) == 0x20) ||
47398 ((instr & 0x220) == 0x20) ||
47399 ((instr & 0x120) == 0x120)) {
47400 UnallocatedA32(instr);
47404 ((instr >> 8) & 0xf) |
47405 ((instr >> 1) & 0x10);
47409 UnallocatedA32(instr);
47413 ExtractDRegister(instr, 22, 12);
47417 (instr & 0xf) |
47418 ((instr >> 12) & 0x70) |
47419 ((instr >> 17) & 0x80));
47426 if (((instr & 0xd00) == 0x100) ||
47427 ((instr & 0xd00) == 0x500) ||
47428 ((instr & 0xd00) == 0x900) ||
47429 ((instr & 0xe00) == 0xe00)) {
47430 UnallocatedA32(instr);
47433 unsigned cmode = (instr >> 8) & 0xf;
47437 UnallocatedA32(instr);
47441 ExtractDRegister(instr, 22, 12);
47445 (instr & 0xf) |
47446 ((instr >> 12) & 0x70) |
47447 ((instr >> 17) & 0x80));
47454 if (((instr & 0x920) == 0x100) ||
47455 ((instr & 0x520) == 0x100) ||
47456 ((instr & 0x820) == 0x20) ||
47457 ((instr & 0x420) == 0x20) ||
47458 ((instr & 0x220) == 0x20) ||
47459 ((instr & 0x120) == 0x120)) {
47460 UnallocatedA32(instr);
47464 ((instr >> 8) & 0xf) |
47465 ((instr >> 1) & 0x10);
47469 UnallocatedA32(instr);
47473 ExtractDRegister(instr, 22, 12);
47477 (instr & 0xf) |
47478 ((instr >> 12) & 0x70) |
47479 ((instr >> 17) & 0x80));
47486 if (((instr & 0xd00) == 0x100) ||
47487 ((instr & 0xd00) == 0x500) ||
47488 ((instr & 0xd00) == 0x900) ||
47489 ((instr & 0xe00) == 0xe00)) {
47490 UnallocatedA32(instr);
47493 unsigned cmode = (instr >> 8) & 0xf;
47497 UnallocatedA32(instr);
47501 ExtractDRegister(instr, 22, 12);
47505 (instr & 0xf) |
47506 ((instr >> 12) & 0x70) |
47507 ((instr >> 17) & 0x80));
47514 if (((instr & 0x920) == 0x100) ||
47515 ((instr & 0x520) == 0x100) ||
47516 ((instr & 0x820) == 0x20) ||
47517 ((instr & 0x420) == 0x20) ||
47518 ((instr & 0x220) == 0x20) ||
47519 ((instr & 0x120) == 0x120)) {
47520 UnallocatedA32(instr);
47524 ((instr >> 8) & 0xf) |
47525 ((instr >> 1) & 0x10);
47529 UnallocatedA32(instr);
47533 ExtractDRegister(instr, 22, 12);
47537 (instr & 0xf) |
47538 ((instr >> 12) & 0x70) |
47539 ((instr >> 17) & 0x80));
47546 if (((instr & 0xd00) == 0x100) ||
47547 ((instr & 0xd00) == 0x500) ||
47548 ((instr & 0xd00) == 0x900) ||
47549 ((instr & 0xe00) == 0xe00)) {
47550 UnallocatedA32(instr);
47553 unsigned cmode = (instr >> 8) & 0xf;
47557 UnallocatedA32(instr);
47561 ExtractDRegister(instr, 22, 12);
47565 (instr & 0xf) |
47566 ((instr >> 12) & 0x70) |
47567 ((instr >> 17) & 0x80));
47574 if (((instr & 0x920) == 0x100) ||
47575 ((instr & 0x520) == 0x100) ||
47576 ((instr & 0x820) == 0x20) ||
47577 ((instr & 0x420) == 0x20) ||
47578 ((instr & 0x220) == 0x20) ||
47579 ((instr & 0x120) == 0x120)) {
47580 UnallocatedA32(instr);
47584 ((instr >> 8) & 0xf) |
47585 ((instr >> 1) & 0x10);
47589 UnallocatedA32(instr);
47593 ExtractDRegister(instr, 22, 12);
47597 (instr & 0xf) |
47598 ((instr >> 12) & 0x70) |
47599 ((instr >> 17) & 0x80));
47606 if (((instr & 0x920) == 0x100) ||
47607 ((instr & 0x520) == 0x100) ||
47608 ((instr & 0x820) == 0x20) ||
47609 ((instr & 0x420) == 0x20) ||
47610 ((instr & 0x220) == 0x20) ||
47611 ((instr & 0x120) == 0x120)) {
47612 UnallocatedA32(instr);
47616 ((instr >> 8) & 0xf) |
47617 ((instr >> 1) & 0x10);
47621 UnallocatedA32(instr);
47625 ExtractDRegister(instr, 22, 12);
47629 (instr & 0xf) |
47630 ((instr >> 12) & 0x70) |
47631 ((instr >> 17) & 0x80));
47638 if (((instr & 0x920) == 0x100) ||
47639 ((instr & 0x520) == 0x100) ||
47640 ((instr & 0x820) == 0x20) ||
47641 ((instr & 0x420) == 0x20) ||
47642 ((instr & 0x220) == 0x20) ||
47643 ((instr & 0x120) == 0x120)) {
47644 UnallocatedA32(instr);
47648 ((instr >> 8) & 0xf) |
47649 ((instr >> 1) & 0x10);
47653 UnallocatedA32(instr);
47657 ExtractDRegister(instr, 22, 12);
47661 (instr & 0xf) |
47662 ((instr >> 12) & 0x70) |
47663 ((instr >> 17) & 0x80));
47669 UnallocatedA32(instr);
47675 if (((instr & 0x920) == 0x100) ||
47676 ((instr & 0x520) == 0x100) ||
47677 ((instr & 0x820) == 0x20) ||
47678 ((instr & 0x420) == 0x20) ||
47679 ((instr & 0x220) == 0x20) ||
47680 ((instr & 0x120) == 0x120)) {
47681 UnallocatedA32(instr);
47684 unsigned cmode = ((instr >> 8) & 0xf) |
47685 ((instr >> 1) & 0x10);
47689 UnallocatedA32(instr);
47693 ExtractDRegister(instr, 22, 12);
47697 (instr & 0xf) |
47698 ((instr >> 12) & 0x70) |
47699 ((instr >> 17) & 0x80));
47711 UnallocatedA32(instr);
47717 if ((instr & 0x00000200) == 0x00000200) {
47718 if (((instr & 0x200000) == 0x0)) {
47719 UnallocatedA32(instr);
47723 ((instr >> 24) & 0x1) | ((instr >> 7) & 0x2));
47725 UnallocatedA32(instr);
47729 ((instr >> 24) & 0x1) | ((instr >> 7) & 0x2));
47731 UnallocatedA32(instr);
47734 unsigned rd = ExtractDRegister(instr, 22, 12);
47735 unsigned rm = ExtractDRegister(instr, 5, 0);
47736 uint32_t fbits = 64 - ((instr >> 16) & 0x3f);
47745 UnallocatedA32(instr);
47753 UnallocatedA32(instr);
47763 switch (instr & 0x00000c00) {
47766 switch (instr & 0x00380080) {
47769 switch (instr & 0x00000100) {
47772 switch (instr & 0x00000200) {
47774 switch (instr & 0x00000020) {
47777 if (((instr & 0xd00) == 0x100) ||
47778 ((instr & 0xd00) == 0x500) ||
47779 ((instr & 0xd00) == 0x900) ||
47780 ((instr & 0xe00) == 0xe00)) {
47781 UnallocatedA32(instr);
47784 unsigned cmode = (instr >> 8) & 0xf;
47788 UnallocatedA32(instr);
47791 if (((instr >> 12) & 1) != 0) {
47792 UnallocatedA32(instr);
47796 ExtractQRegister(instr, 22, 12);
47800 (instr & 0xf) |
47801 ((instr >> 12) & 0x70) |
47802 ((instr >> 17) & 0x80));
47808 if (((instr & 0x920) == 0x100) ||
47809 ((instr & 0x520) == 0x100) ||
47810 ((instr & 0x820) == 0x20) ||
47811 ((instr & 0x420) == 0x20) ||
47812 ((instr & 0x220) == 0x20) ||
47813 ((instr & 0x120) == 0x120)) {
47814 UnallocatedA32(instr);
47817 unsigned cmode = ((instr >> 8) & 0xf) |
47818 ((instr >> 1) & 0x10);
47822 UnallocatedA32(instr);
47825 if (((instr >> 12) & 1) != 0) {
47826 UnallocatedA32(instr);
47830 ExtractQRegister(instr, 22, 12);
47834 (instr & 0xf) |
47835 ((instr >> 12) & 0x70) |
47836 ((instr >> 17) & 0x80));
47849 switch (instr & 0x00000020) {
47852 if (((instr & 0x100) == 0x0) ||
47853 ((instr & 0xc00) == 0xc00)) {
47854 UnallocatedA32(instr);
47857 unsigned cmode = (instr >> 8) & 0xf;
47860 UnallocatedA32(instr);
47863 if (((instr >> 12) & 1) != 0) {
47864 UnallocatedA32(instr);
47867 unsigned rd = ExtractQRegister(instr, 22, 12);
47870 (instr & 0xf) | ((instr >> 12) & 0x70) |
47871 ((instr >> 17) & 0x80));
47878 if (((instr & 0x100) == 0x0) ||
47879 ((instr & 0xc00) == 0xc00)) {
47880 UnallocatedA32(instr);
47883 unsigned cmode = (instr >> 8) & 0xf;
47886 UnallocatedA32(instr);
47889 if (((instr >> 12) & 1) != 0) {
47890 UnallocatedA32(instr);
47893 unsigned rd = ExtractQRegister(instr, 22, 12);
47896 (instr & 0xf) | ((instr >> 12) & 0x70) |
47897 ((instr >> 17) & 0x80));
47909 switch (instr & 0x00000300) {
47912 if (((instr & 0x380080) == 0x0)) {
47913 UnallocatedA32(instr);
47917 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
47918 ((instr >> 4) & 0x8),
47919 (instr >> 24) & 0x1);
47921 UnallocatedA32(instr);
47924 if (((instr >> 12) & 1) != 0) {
47925 UnallocatedA32(instr);
47928 unsigned rd = ExtractQRegister(instr, 22, 12);
47929 if ((instr & 1) != 0) {
47930 UnallocatedA32(instr);
47933 unsigned rm = ExtractQRegister(instr, 5, 0);
47934 uint32_t imm6 = (instr >> 16) & 0x3f;
47944 if (((instr & 0x380080) == 0x0)) {
47945 UnallocatedA32(instr);
47949 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
47950 ((instr >> 4) & 0x8),
47951 (instr >> 24) & 0x1);
47953 UnallocatedA32(instr);
47956 if (((instr >> 12) & 1) != 0) {
47957 UnallocatedA32(instr);
47960 unsigned rd = ExtractQRegister(instr, 22, 12);
47961 if ((instr & 1) != 0) {
47962 UnallocatedA32(instr);
47965 unsigned rm = ExtractQRegister(instr, 5, 0);
47966 uint32_t imm6 = (instr >> 16) & 0x3f;
47976 if (((instr & 0x380080) == 0x0)) {
47977 UnallocatedA32(instr);
47981 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
47982 ((instr >> 4) & 0x8),
47983 (instr >> 24) & 0x1);
47985 UnallocatedA32(instr);
47988 if (((instr >> 12) & 1) != 0) {
47989 UnallocatedA32(instr);
47992 unsigned rd = ExtractQRegister(instr, 22, 12);
47993 if ((instr & 1) != 0) {
47994 UnallocatedA32(instr);
47997 unsigned rm = ExtractQRegister(instr, 5, 0);
47998 uint32_t imm6 = (instr >> 16) & 0x3f;
48008 if (((instr & 0x380080) == 0x0)) {
48009 UnallocatedA32(instr);
48013 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
48014 ((instr >> 4) & 0x8),
48015 (instr >> 24) & 0x1);
48017 UnallocatedA32(instr);
48020 if (((instr >> 12) & 1) != 0) {
48021 UnallocatedA32(instr);
48024 unsigned rd = ExtractQRegister(instr, 22, 12);
48025 if ((instr & 1) != 0) {
48026 UnallocatedA32(instr);
48029 unsigned rm = ExtractQRegister(instr, 5, 0);
48030 uint32_t imm6 = (instr >> 16) & 0x3f;
48046 switch (instr & 0x00380080) {
48049 switch (instr & 0x00000100) {
48052 switch (instr & 0x00000200) {
48054 switch (instr & 0x00000020) {
48057 if (((instr & 0xd00) == 0x100) ||
48058 ((instr & 0xd00) == 0x500) ||
48059 ((instr & 0xd00) == 0x900) ||
48060 ((instr & 0xe00) == 0xe00)) {
48061 UnallocatedA32(instr);
48064 unsigned cmode = (instr >> 8) & 0xf;
48068 UnallocatedA32(instr);
48071 if (((instr >> 12) & 1) != 0) {
48072 UnallocatedA32(instr);
48076 ExtractQRegister(instr, 22, 12);
48080 (instr & 0xf) |
48081 ((instr >> 12) & 0x70) |
48082 ((instr >> 17) & 0x80));
48088 if (((instr & 0x920) == 0x100) ||
48089 ((instr & 0x520) == 0x100) ||
48090 ((instr & 0x820) == 0x20) ||
48091 ((instr & 0x420) == 0x20) ||
48092 ((instr & 0x220) == 0x20) ||
48093 ((instr & 0x120) == 0x120)) {
48094 UnallocatedA32(instr);
48097 unsigned cmode = ((instr >> 8) & 0xf) |
48098 ((instr >> 1) & 0x10);
48102 UnallocatedA32(instr);
48105 if (((instr >> 12) & 1) != 0) {
48106 UnallocatedA32(instr);
48110 ExtractQRegister(instr, 22, 12);
48114 (instr & 0xf) |
48115 ((instr >> 12) & 0x70) |
48116 ((instr >> 17) & 0x80));
48129 switch (instr & 0x00000020) {
48132 if (((instr & 0x100) == 0x0) ||
48133 ((instr & 0xc00) == 0xc00)) {
48134 UnallocatedA32(instr);
48137 unsigned cmode = (instr >> 8) & 0xf;
48140 UnallocatedA32(instr);
48143 if (((instr >> 12) & 1) != 0) {
48144 UnallocatedA32(instr);
48147 unsigned rd = ExtractQRegister(instr, 22, 12);
48150 (instr & 0xf) | ((instr >> 12) & 0x70) |
48151 ((instr >> 17) & 0x80));
48158 if (((instr & 0x100) == 0x0) ||
48159 ((instr & 0xc00) == 0xc00)) {
48160 UnallocatedA32(instr);
48163 unsigned cmode = (instr >> 8) & 0xf;
48166 UnallocatedA32(instr);
48169 if (((instr >> 12) & 1) != 0) {
48170 UnallocatedA32(instr);
48173 unsigned rd = ExtractQRegister(instr, 22, 12);
48176 (instr & 0xf) | ((instr >> 12) & 0x70) |
48177 ((instr >> 17) & 0x80));
48189 switch (instr & 0x00000300) {
48192 if ((instr & 0x01000000) == 0x01000000) {
48193 if (((instr & 0x380080) == 0x0)) {
48194 UnallocatedA32(instr);
48198 ((instr >> 19) & 0x7) | ((instr >> 4) & 0x8));
48200 UnallocatedA32(instr);
48203 if (((instr >> 12) & 1) != 0) {
48204 UnallocatedA32(instr);
48207 unsigned rd = ExtractQRegister(instr, 22, 12);
48208 if ((instr & 1) != 0) {
48209 UnallocatedA32(instr);
48212 unsigned rm = ExtractQRegister(instr, 5, 0);
48213 uint32_t imm6 = (instr >> 16) & 0x3f;
48220 UnallocatedA32(instr);
48226 switch (instr & 0x01000000) {
48229 if (((instr & 0x380080) == 0x0)) {
48230 UnallocatedA32(instr);
48234 Dt_L_imm6_3_Decode(((instr >> 19) & 0x7) |
48235 ((instr >> 4) & 0x8));
48237 UnallocatedA32(instr);
48240 if (((instr >> 12) & 1) != 0) {
48241 UnallocatedA32(instr);
48244 unsigned rd = ExtractQRegister(instr, 22, 12);
48245 if ((instr & 1) != 0) {
48246 UnallocatedA32(instr);
48249 unsigned rm = ExtractQRegister(instr, 5, 0);
48250 uint32_t imm6 = (instr >> 16) & 0x3f;
48259 if (((instr & 0x380080) == 0x0)) {
48260 UnallocatedA32(instr);
48264 Dt_L_imm6_4_Decode(((instr >> 19) & 0x7) |
48265 ((instr >> 4) & 0x8));
48267 UnallocatedA32(instr);
48270 if (((instr >> 12) & 1) != 0) {
48271 UnallocatedA32(instr);
48274 unsigned rd = ExtractQRegister(instr, 22, 12);
48275 if ((instr & 1) != 0) {
48276 UnallocatedA32(instr);
48279 unsigned rm = ExtractQRegister(instr, 5, 0);
48280 uint32_t imm6 = (instr >> 16) & 0x3f;
48292 if (((instr & 0x380080) == 0x0)) {
48293 UnallocatedA32(instr);
48297 Dt_L_imm6_2_Decode(((instr >> 19) & 0x7) |
48298 ((instr >> 4) & 0x8),
48299 (instr >> 24) & 0x1);
48301 UnallocatedA32(instr);
48304 if (((instr >> 12) & 1) != 0) {
48305 UnallocatedA32(instr);
48308 unsigned rd = ExtractQRegister(instr, 22, 12);
48309 if ((instr & 1) != 0) {
48310 UnallocatedA32(instr);
48313 unsigned rm = ExtractQRegister(instr, 5, 0);
48314 uint32_t imm6 = (instr >> 16) & 0x3f;
48323 if (((instr & 0x380080) == 0x0)) {
48324 UnallocatedA32(instr);
48328 Dt_L_imm6_1_Decode(((instr >> 19) & 0x7) |
48329 ((instr >> 4) & 0x8),
48330 (instr >> 24) & 0x1);
48332 UnallocatedA32(instr);
48335 if (((instr >> 12) & 1) != 0) {
48336 UnallocatedA32(instr);
48339 unsigned rd = ExtractQRegister(instr, 22, 12);
48340 if ((instr & 1) != 0) {
48341 UnallocatedA32(instr);
48344 unsigned rm = ExtractQRegister(instr, 5, 0);
48345 uint32_t imm6 = (instr >> 16) & 0x3f;
48360 switch (instr & 0x00000080) {
48363 switch (instr & 0x00380000) {
48366 switch (instr & 0x00000100) {
48369 switch (instr & 0x00000200) {
48371 switch (instr & 0x00000020) {
48374 if (((instr & 0xd00) == 0x100) ||
48375 ((instr & 0xd00) == 0x500) ||
48376 ((instr & 0xd00) == 0x900) ||
48377 ((instr & 0xe00) == 0xe00)) {
48378 UnallocatedA32(instr);
48381 unsigned cmode = (instr >> 8) & 0xf;
48385 UnallocatedA32(instr);
48388 if (((instr >> 12) & 1) != 0) {
48389 UnallocatedA32(instr);
48393 ExtractQRegister(instr, 22, 12);
48397 (instr & 0xf) |
48398 ((instr >> 12) & 0x70) |
48399 ((instr >> 17) & 0x80));
48405 if (((instr & 0x920) == 0x100) ||
48406 ((instr & 0x520) == 0x100) ||
48407 ((instr & 0x820) == 0x20) ||
48408 ((instr & 0x420) == 0x20) ||
48409 ((instr & 0x220) == 0x20) ||
48410 ((instr & 0x120) == 0x120)) {
48411 UnallocatedA32(instr);
48414 unsigned cmode = ((instr >> 8) & 0xf) |
48415 ((instr >> 1) & 0x10);
48419 UnallocatedA32(instr);
48422 if (((instr >> 12) & 1) != 0) {
48423 UnallocatedA32(instr);
48427 ExtractQRegister(instr, 22, 12);
48431 (instr & 0xf) |
48432 ((instr >> 12) & 0x70) |
48433 ((instr >> 17) & 0x80));
48446 switch (instr & 0x00000020) {
48449 if (((instr & 0x100) == 0x0) ||
48450 ((instr & 0xc00) == 0xc00)) {
48451 UnallocatedA32(instr);
48454 unsigned cmode = (instr >> 8) & 0xf;
48458 UnallocatedA32(instr);
48461 if (((instr >> 12) & 1) != 0) {
48462 UnallocatedA32(instr);
48466 ExtractQRegister(instr, 22, 12);
48470 (instr & 0xf) |
48471 ((instr >> 12) & 0x70) |
48472 ((instr >> 17) & 0x80));
48483 if (((instr & 0x100) == 0x0) ||
48484 ((instr & 0xc00) == 0xc00)) {
48485 UnallocatedA32(instr);
48488 unsigned cmode = (instr >> 8) & 0xf;
48492 UnallocatedA32(instr);
48495 if (((instr >> 12) & 1) != 0) {
48496 UnallocatedA32(instr);
48500 ExtractQRegister(instr, 22, 12);
48504 (instr & 0xf) |
48505 ((instr >> 12) & 0x70) |
48506 ((instr >> 17) & 0x80));
48522 switch (instr & 0x00000300) {
48525 switch (instr & 0x01000000) {
48528 if (((instr & 0x380000) == 0x0)) {
48529 UnallocatedA32(instr);
48533 Dt_imm6_3_Decode((instr >> 19) & 0x7);
48535 UnallocatedA32(instr);
48539 ExtractDRegister(instr, 22, 12);
48540 if ((instr & 1) != 0) {
48541 UnallocatedA32(instr);
48544 unsigned rm = ExtractQRegister(instr, 5, 0);
48545 uint32_t imm6 = (instr >> 16) & 0x3f;
48557 if (((instr & 0x380000) == 0x0)) {
48558 UnallocatedA32(instr);
48562 Dt_imm6_2_Decode((instr >> 19) & 0x7,
48563 (instr >> 24) & 0x1);
48565 UnallocatedA32(instr);
48569 ExtractDRegister(instr, 22, 12);
48570 if ((instr & 1) != 0) {
48571 UnallocatedA32(instr);
48574 unsigned rm = ExtractQRegister(instr, 5, 0);
48575 uint32_t imm6 = (instr >> 16) & 0x3f;
48590 if (((instr & 0x380000) == 0x0)) {
48591 UnallocatedA32(instr);
48595 Dt_imm6_1_Decode((instr >> 19) & 0x7,
48596 (instr >> 24) & 0x1);
48598 UnallocatedA32(instr);
48601 unsigned rd = ExtractDRegister(instr, 22, 12);
48602 if ((instr & 1) != 0) {
48603 UnallocatedA32(instr);
48606 unsigned rm = ExtractQRegister(instr, 5, 0);
48607 uint32_t imm6 = (instr >> 16) & 0x3f;
48618 UnallocatedA32(instr);
48627 UnallocatedA32(instr);
48634 switch (instr & 0x00000080) {
48637 switch (instr & 0x00200000) {
48640 switch (instr & 0x00180000) {
48643 switch (instr & 0x00000300) {
48646 if (((instr & 0x920) == 0x100) ||
48647 ((instr & 0x520) == 0x100) ||
48648 ((instr & 0x820) == 0x20) ||
48649 ((instr & 0x420) == 0x20) ||
48650 ((instr & 0x220) == 0x20) ||
48651 ((instr & 0x120) == 0x120)) {
48652 UnallocatedA32(instr);
48655 unsigned cmode = ((instr >> 8) & 0xf) |
48656 ((instr >> 1) & 0x10);
48660 UnallocatedA32(instr);
48663 if (((instr >> 12) & 1) != 0) {
48664 UnallocatedA32(instr);
48668 ExtractQRegister(instr, 22, 12);
48672 (instr & 0xf) |
48673 ((instr >> 12) & 0x70) |
48674 ((instr >> 17) & 0x80));
48681 if (((instr & 0x920) == 0x100) ||
48682 ((instr & 0x520) == 0x100) ||
48683 ((instr & 0x820) == 0x20) ||
48684 ((instr & 0x420) == 0x20) ||
48685 ((instr & 0x220) == 0x20) ||
48686 ((instr & 0x120) == 0x120)) {
48687 UnallocatedA32(instr);
48690 unsigned cmode = ((instr >> 8) & 0xf) |
48691 ((instr >> 1) & 0x10);
48695 UnallocatedA32(instr);
48698 if (((instr >> 12) & 1) != 0) {
48699 UnallocatedA32(instr);
48703 ExtractQRegister(instr, 22, 12);
48707 (instr & 0xf) |
48708 ((instr >> 12) & 0x70) |
48709 ((instr >> 17) & 0x80));
48715 switch (instr & 0x00000020) {
48718 switch (instr & 0x00000f20) {
48721 if (((instr & 0x920) == 0x100) ||
48722 ((instr & 0x520) == 0x100) ||
48723 ((instr & 0x820) == 0x20) ||
48724 ((instr & 0x420) == 0x20) ||
48725 ((instr & 0x220) == 0x20) ||
48726 ((instr & 0x120) == 0x120)) {
48727 UnallocatedA32(instr);
48731 ((instr >> 8) & 0xf) |
48732 ((instr >> 1) & 0x10);
48736 UnallocatedA32(instr);
48739 if (((instr >> 12) & 1) != 0) {
48740 UnallocatedA32(instr);
48744 ExtractQRegister(instr, 22, 12);
48748 (instr & 0xf) |
48749 ((instr >> 12) & 0x70) |
48750 ((instr >> 17) & 0x80));
48757 if (((instr & 0xd00) == 0x100) ||
48758 ((instr & 0xd00) == 0x500) ||
48759 ((instr & 0xd00) == 0x900) ||
48760 ((instr & 0xe00) == 0xe00)) {
48761 UnallocatedA32(instr);
48764 unsigned cmode = (instr >> 8) & 0xf;
48768 UnallocatedA32(instr);
48771 if (((instr >> 12) & 1) != 0) {
48772 UnallocatedA32(instr);
48776 ExtractQRegister(instr, 22, 12);
48780 (instr & 0xf) |
48781 ((instr >> 12) & 0x70) |
48782 ((instr >> 17) & 0x80));
48789 if (((instr & 0x920) == 0x100) ||
48790 ((instr & 0x520) == 0x100) ||
48791 ((instr & 0x820) == 0x20) ||
48792 ((instr & 0x420) == 0x20) ||
48793 ((instr & 0x220) == 0x20) ||
48794 ((instr & 0x120) == 0x120)) {
48795 UnallocatedA32(instr);
48799 ((instr >> 8) & 0xf) |
48800 ((instr >> 1) & 0x10);
48804 UnallocatedA32(instr);
48807 if (((instr >> 12) & 1) != 0) {
48808 UnallocatedA32(instr);
48812 ExtractQRegister(instr, 22, 12);
48816 (instr & 0xf) |
48817 ((instr >> 12) & 0x70) |
48818 ((instr >> 17) & 0x80));
48825 if (((instr & 0xd00) == 0x100) ||
48826 ((instr & 0xd00) == 0x500) ||
48827 ((instr & 0xd00) == 0x900) ||
48828 ((instr & 0xe00) == 0xe00)) {
48829 UnallocatedA32(instr);
48832 unsigned cmode = (instr >> 8) & 0xf;
48836 UnallocatedA32(instr);
48839 if (((instr >> 12) & 1) != 0) {
48840 UnallocatedA32(instr);
48844 ExtractQRegister(instr, 22, 12);
48848 (instr & 0xf) |
48849 ((instr >> 12) & 0x70) |
48850 ((instr >> 17) & 0x80));
48857 if (((instr & 0x920) == 0x100) ||
48858 ((instr & 0x520) == 0x100) ||
48859 ((instr & 0x820) == 0x20) ||
48860 ((instr & 0x420) == 0x20) ||
48861 ((instr & 0x220) == 0x20) ||
48862 ((instr & 0x120) == 0x120)) {
48863 UnallocatedA32(instr);
48867 ((instr >> 8) & 0xf) |
48868 ((instr >> 1) & 0x10);
48872 UnallocatedA32(instr);
48875 if (((instr >> 12) & 1) != 0) {
48876 UnallocatedA32(instr);
48880 ExtractQRegister(instr, 22, 12);
48884 (instr & 0xf) |
48885 ((instr >> 12) & 0x70) |
48886 ((instr >> 17) & 0x80));
48893 if (((instr & 0xd00) == 0x100) ||
48894 ((instr & 0xd00) == 0x500) ||
48895 ((instr & 0xd00) == 0x900) ||
48896 ((instr & 0xe00) == 0xe00)) {
48897 UnallocatedA32(instr);
48900 unsigned cmode = (instr >> 8) & 0xf;
48904 UnallocatedA32(instr);
48907 if (((instr >> 12) & 1) != 0) {
48908 UnallocatedA32(instr);
48912 ExtractQRegister(instr, 22, 12);
48916 (instr & 0xf) |
48917 ((instr >> 12) & 0x70) |
48918 ((instr >> 17) & 0x80));
48925 if (((instr & 0x920) == 0x100) ||
48926 ((instr & 0x520) == 0x100) ||
48927 ((instr & 0x820) == 0x20) ||
48928 ((instr & 0x420) == 0x20) ||
48929 ((instr & 0x220) == 0x20) ||
48930 ((instr & 0x120) == 0x120)) {
48931 UnallocatedA32(instr);
48935 ((instr >> 8) & 0xf) |
48936 ((instr >> 1) & 0x10);
48940 UnallocatedA32(instr);
48943 if (((instr >> 12) & 1) != 0) {
48944 UnallocatedA32(instr);
48948 ExtractQRegister(instr, 22, 12);
48952 (instr & 0xf) |
48953 ((instr >> 12) & 0x70) |
48954 ((instr >> 17) & 0x80));
48961 if (((instr & 0xd00) == 0x100) ||
48962 ((instr & 0xd00) == 0x500) ||
48963 ((instr & 0xd00) == 0x900) ||
48964 ((instr & 0xe00) == 0xe00)) {
48965 UnallocatedA32(instr);
48968 unsigned cmode = (instr >> 8) & 0xf;
48972 UnallocatedA32(instr);
48975 if (((instr >> 12) & 1) != 0) {
48976 UnallocatedA32(instr);
48980 ExtractQRegister(instr, 22, 12);
48984 (instr & 0xf) |
48985 ((instr >> 12) & 0x70) |
48986 ((instr >> 17) & 0x80));
48993 if (((instr & 0x920) == 0x100) ||
48994 ((instr & 0x520) == 0x100) ||
48995 ((instr & 0x820) == 0x20) ||
48996 ((instr & 0x420) == 0x20) ||
48997 ((instr & 0x220) == 0x20) ||
48998 ((instr & 0x120) == 0x120)) {
48999 UnallocatedA32(instr);
49003 ((instr >> 8) & 0xf) |
49004 ((instr >> 1) & 0x10);
49008 UnallocatedA32(instr);
49011 if (((instr >> 12) & 1) != 0) {
49012 UnallocatedA32(instr);
49016 ExtractQRegister(instr, 22, 12);
49020 (instr & 0xf) |
49021 ((instr >> 12) & 0x70) |
49022 ((instr >> 17) & 0x80));
49029 if (((instr & 0xd00) == 0x100) ||
49030 ((instr & 0xd00) == 0x500) ||
49031 ((instr & 0xd00) == 0x900) ||
49032 ((instr & 0xe00) == 0xe00)) {
49033 UnallocatedA32(instr);
49036 unsigned cmode = (instr >> 8) & 0xf;
49040 UnallocatedA32(instr);
49043 if (((instr >> 12) & 1) != 0) {
49044 UnallocatedA32(instr);
49048 ExtractQRegister(instr, 22, 12);
49052 (instr & 0xf) |
49053 ((instr >> 12) & 0x70) |
49054 ((instr >> 17) & 0x80));
49061 if (((instr & 0x920) == 0x100) ||
49062 ((instr & 0x520) == 0x100) ||
49063 ((instr & 0x820) == 0x20) ||
49064 ((instr & 0x420) == 0x20) ||
49065 ((instr & 0x220) == 0x20) ||
49066 ((instr & 0x120) == 0x120)) {
49067 UnallocatedA32(instr);
49071 ((instr >> 8) & 0xf) |
49072 ((instr >> 1) & 0x10);
49076 UnallocatedA32(instr);
49079 if (((instr >> 12) & 1) != 0) {
49080 UnallocatedA32(instr);
49084 ExtractQRegister(instr, 22, 12);
49088 (instr & 0xf) |
49089 ((instr >> 12) & 0x70) |
49090 ((instr >> 17) & 0x80));
49097 if (((instr & 0xd00) == 0x100) ||
49098 ((instr & 0xd00) == 0x500) ||
49099 ((instr & 0xd00) == 0x900) ||
49100 ((instr & 0xe00) == 0xe00)) {
49101 UnallocatedA32(instr);
49104 unsigned cmode = (instr >> 8) & 0xf;
49108 UnallocatedA32(instr);
49111 if (((instr >> 12) & 1) != 0) {
49112 UnallocatedA32(instr);
49116 ExtractQRegister(instr, 22, 12);
49120 (instr & 0xf) |
49121 ((instr >> 12) & 0x70) |
49122 ((instr >> 17) & 0x80));
49129 if (((instr & 0x920) == 0x100) ||
49130 ((instr & 0x520) == 0x100) ||
49131 ((instr & 0x820) == 0x20) ||
49132 ((instr & 0x420) == 0x20) ||
49133 ((instr & 0x220) == 0x20) ||
49134 ((instr & 0x120) == 0x120)) {
49135 UnallocatedA32(instr);
49139 ((instr >> 8) & 0xf) |
49140 ((instr >> 1) & 0x10);
49144 UnallocatedA32(instr);
49147 if (((instr >> 12) & 1) != 0) {
49148 UnallocatedA32(instr);
49152 ExtractQRegister(instr, 22, 12);
49156 (instr & 0xf) |
49157 ((instr >> 12) & 0x70) |
49158 ((instr >> 17) & 0x80));
49165 if (((instr & 0xd00) == 0x100) ||
49166 ((instr & 0xd00) == 0x500) ||
49167 ((instr & 0xd00) == 0x900) ||
49168 ((instr & 0xe00) == 0xe00)) {
49169 UnallocatedA32(instr);
49172 unsigned cmode = (instr >> 8) & 0xf;
49176 UnallocatedA32(instr);
49179 if (((instr >> 12) & 1) != 0) {
49180 UnallocatedA32(instr);
49184 ExtractQRegister(instr, 22, 12);
49188 (instr & 0xf) |
49189 ((instr >> 12) & 0x70) |
49190 ((instr >> 17) & 0x80));
49197 if (((instr & 0x920) == 0x100) ||
49198 ((instr & 0x520) == 0x100) ||
49199 ((instr & 0x820) == 0x20) ||
49200 ((instr & 0x420) == 0x20) ||
49201 ((instr & 0x220) == 0x20) ||
49202 ((instr & 0x120) == 0x120)) {
49203 UnallocatedA32(instr);
49207 ((instr >> 8) & 0xf) |
49208 ((instr >> 1) & 0x10);
49212 UnallocatedA32(instr);
49215 if (((instr >> 12) & 1) != 0) {
49216 UnallocatedA32(instr);
49220 ExtractQRegister(instr, 22, 12);
49224 (instr & 0xf) |
49225 ((instr >> 12) & 0x70) |
49226 ((instr >> 17) & 0x80));
49233 if (((instr & 0xd00) == 0x100) ||
49234 ((instr & 0xd00) == 0x500) ||
49235 ((instr & 0xd00) == 0x900) ||
49236 ((instr & 0xe00) == 0xe00)) {
49237 UnallocatedA32(instr);
49240 unsigned cmode = (instr >> 8) & 0xf;
49244 UnallocatedA32(instr);
49247 if (((instr >> 12) & 1) != 0) {
49248 UnallocatedA32(instr);
49252 ExtractQRegister(instr, 22, 12);
49256 (instr & 0xf) |
49257 ((instr >> 12) & 0x70) |
49258 ((instr >> 17) & 0x80));
49265 if (((instr & 0x920) == 0x100) ||
49266 ((instr & 0x520) == 0x100) ||
49267 ((instr & 0x820) == 0x20) ||
49268 ((instr & 0x420) == 0x20) ||
49269 ((instr & 0x220) == 0x20) ||
49270 ((instr & 0x120) == 0x120)) {
49271 UnallocatedA32(instr);
49275 ((instr >> 8) & 0xf) |
49276 ((instr >> 1) & 0x10);
49280 UnallocatedA32(instr);
49283 if (((instr >> 12) & 1) != 0) {
49284 UnallocatedA32(instr);
49288 ExtractQRegister(instr, 22, 12);
49292 (instr & 0xf) |
49293 ((instr >> 12) & 0x70) |
49294 ((instr >> 17) & 0x80));
49301 if (((instr & 0x920) == 0x100) ||
49302 ((instr & 0x520) == 0x100) ||
49303 ((instr & 0x820) == 0x20) ||
49304 ((instr & 0x420) == 0x20) ||
49305 ((instr & 0x220) == 0x20) ||
49306 ((instr & 0x120) == 0x120)) {
49307 UnallocatedA32(instr);
49311 ((instr >> 8) & 0xf) |
49312 ((instr >> 1) & 0x10);
49316 UnallocatedA32(instr);
49319 if (((instr >> 12) & 1) != 0) {
49320 UnallocatedA32(instr);
49324 ExtractQRegister(instr, 22, 12);
49328 (instr & 0xf) |
49329 ((instr >> 12) & 0x70) |
49330 ((instr >> 17) & 0x80));
49337 if (((instr & 0x920) == 0x100) ||
49338 ((instr & 0x520) == 0x100) ||
49339 ((instr & 0x820) == 0x20) ||
49340 ((instr & 0x420) == 0x20) ||
49341 ((instr & 0x220) == 0x20) ||
49342 ((instr & 0x120) == 0x120)) {
49343 UnallocatedA32(instr);
49347 ((instr >> 8) & 0xf) |
49348 ((instr >> 1) & 0x10);
49352 UnallocatedA32(instr);
49355 if (((instr >> 12) & 1) != 0) {
49356 UnallocatedA32(instr);
49360 ExtractQRegister(instr, 22, 12);
49364 (instr & 0xf) |
49365 ((instr >> 12) & 0x70) |
49366 ((instr >> 17) & 0x80));
49372 UnallocatedA32(instr);
49378 if (((instr & 0x920) == 0x100) ||
49379 ((instr & 0x520) == 0x100) ||
49380 ((instr & 0x820) == 0x20) ||
49381 ((instr & 0x420) == 0x20) ||
49382 ((instr & 0x220) == 0x20) ||
49383 ((instr & 0x120) == 0x120)) {
49384 UnallocatedA32(instr);
49387 unsigned cmode = ((instr >> 8) & 0xf) |
49388 ((instr >> 1) & 0x10);
49392 UnallocatedA32(instr);
49395 if (((instr >> 12) & 1) != 0) {
49396 UnallocatedA32(instr);
49400 ExtractQRegister(instr, 22, 12);
49404 (instr & 0xf) |
49405 ((instr >> 12) & 0x70) |
49406 ((instr >> 17) & 0x80));
49418 UnallocatedA32(instr);
49424 if ((instr & 0x00000200) == 0x00000200) {
49425 if (((instr & 0x200000) == 0x0)) {
49426 UnallocatedA32(instr);
49430 ((instr >> 24) & 0x1) | ((instr >> 7) & 0x2));
49432 UnallocatedA32(instr);
49436 ((instr >> 24) & 0x1) | ((instr >> 7) & 0x2));
49438 UnallocatedA32(instr);
49441 if (((instr >> 12) & 1) != 0) {
49442 UnallocatedA32(instr);
49445 unsigned rd = ExtractQRegister(instr, 22, 12);
49446 if ((instr & 1) != 0) {
49447 UnallocatedA32(instr);
49450 unsigned rm = ExtractQRegister(instr, 5, 0);
49451 uint32_t fbits = 64 - ((instr >> 16) & 0x3f);
49460 UnallocatedA32(instr);
49468 UnallocatedA32(instr);
49484 switch (instr & 0x01300000) {
49487 switch (instr & 0x00800000) {
49490 switch (instr & 0x0000000d) {
49493 switch (instr & 0x00000002) {
49496 switch (instr & 0x00000f00) {
49499 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
49501 UnallocatedA32(instr);
49505 Align_align_4_Decode((instr >> 4) & 0x3);
49508 UnallocatedA32(instr);
49511 unsigned first = ExtractDRegister(instr, 22, 12);
49514 switch ((instr >> 8) & 0xf) {
49530 unsigned rn = (instr >> 16) & 0xf;
49545 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
49547 UnallocatedA32(instr);
49551 Align_align_4_Decode((instr >> 4) & 0x3);
49554 UnallocatedA32(instr);
49557 unsigned first = ExtractDRegister(instr, 22, 12);
49560 switch ((instr >> 8) & 0xf) {
49576 unsigned rn = (instr >> 16) & 0xf;
49591 if (((instr & 0xe20) == 0x620) ||
49592 ((instr & 0xf30) == 0xa30)) {
49593 UnallocatedA32(instr);
49596 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
49598 UnallocatedA32(instr);
49602 Align_align_5_Decode((instr >> 4) & 0x3);
49605 UnallocatedA32(instr);
49608 unsigned first = ExtractDRegister(instr, 22, 12);
49611 switch ((instr >> 8) & 0xf) {
49629 unsigned rn = (instr >> 16) & 0xf;
49644 if (((instr & 0xe30) == 0x830)) {
49645 UnallocatedA32(instr);
49648 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
49650 UnallocatedA32(instr);
49654 Align_align_2_Decode((instr >> 4) & 0x3);
49657 UnallocatedA32(instr);
49660 unsigned first = ExtractDRegister(instr, 22, 12);
49663 switch ((instr >> 8) & 0xf) {
49683 unsigned rn = (instr >> 16) & 0xf;
49698 if (((instr & 0x20) == 0x20)) {
49699 UnallocatedA32(instr);
49702 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
49704 UnallocatedA32(instr);
49708 Align_align_3_Decode((instr >> 4) & 0x3);
49711 UnallocatedA32(instr);
49714 unsigned first = ExtractDRegister(instr, 22, 12);
49717 switch ((instr >> 8) & 0xf) {
49733 unsigned rn = (instr >> 16) & 0xf;
49748 if (((instr & 0x20) == 0x20)) {
49749 UnallocatedA32(instr);
49752 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
49754 UnallocatedA32(instr);
49758 Align_align_3_Decode((instr >> 4) & 0x3);
49761 UnallocatedA32(instr);
49764 unsigned first = ExtractDRegister(instr, 22, 12);
49767 switch ((instr >> 8) & 0xf) {
49783 unsigned rn = (instr >> 16) & 0xf;
49798 if (((instr & 0xe20) == 0x620) ||
49799 ((instr & 0xf30) == 0xa30)) {
49800 UnallocatedA32(instr);
49803 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
49805 UnallocatedA32(instr);
49809 Align_align_5_Decode((instr >> 4) & 0x3);
49812 UnallocatedA32(instr);
49815 unsigned first = ExtractDRegister(instr, 22, 12);
49818 switch ((instr >> 8) & 0xf) {
49836 unsigned rn = (instr >> 16) & 0xf;
49851 if (((instr & 0xe20) == 0x620) ||
49852 ((instr & 0xf30) == 0xa30)) {
49853 UnallocatedA32(instr);
49856 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
49858 UnallocatedA32(instr);
49862 Align_align_5_Decode((instr >> 4) & 0x3);
49865 UnallocatedA32(instr);
49868 unsigned first = ExtractDRegister(instr, 22, 12);
49871 switch ((instr >> 8) & 0xf) {
49889 unsigned rn = (instr >> 16) & 0xf;
49904 if (((instr & 0xe30) == 0x830)) {
49905 UnallocatedA32(instr);
49908 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
49910 UnallocatedA32(instr);
49914 Align_align_2_Decode((instr >> 4) & 0x3);
49917 UnallocatedA32(instr);
49920 unsigned first = ExtractDRegister(instr, 22, 12);
49923 switch ((instr >> 8) & 0xf) {
49943 unsigned rn = (instr >> 16) & 0xf;
49958 if (((instr & 0xe30) == 0x830)) {
49959 UnallocatedA32(instr);
49962 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
49964 UnallocatedA32(instr);
49968 Align_align_2_Decode((instr >> 4) & 0x3);
49971 UnallocatedA32(instr);
49974 unsigned first = ExtractDRegister(instr, 22, 12);
49977 switch ((instr >> 8) & 0xf) {
49997 unsigned rn = (instr >> 16) & 0xf;
50012 if (((instr & 0xe20) == 0x620) ||
50013 ((instr & 0xf30) == 0xa30)) {
50014 UnallocatedA32(instr);
50017 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
50019 UnallocatedA32(instr);
50023 Align_align_5_Decode((instr >> 4) & 0x3);
50026 UnallocatedA32(instr);
50029 unsigned first = ExtractDRegister(instr, 22, 12);
50032 switch ((instr >> 8) & 0xf) {
50050 unsigned rn = (instr >> 16) & 0xf;
50064 UnallocatedA32(instr);
50071 switch (instr & 0x00000f00) {
50074 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
50076 UnallocatedA32(instr);
50080 Align_align_4_Decode((instr >> 4) & 0x3);
50083 UnallocatedA32(instr);
50086 unsigned first = ExtractDRegister(instr, 22, 12);
50089 switch ((instr >> 8) & 0xf) {
50105 unsigned rn = (instr >> 16) & 0xf;
50120 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
50122 UnallocatedA32(instr);
50126 Align_align_4_Decode((instr >> 4) & 0x3);
50129 UnallocatedA32(instr);
50132 unsigned first = ExtractDRegister(instr, 22, 12);
50135 switch ((instr >> 8) & 0xf) {
50151 unsigned rn = (instr >> 16) & 0xf;
50166 if (((instr & 0xe20) == 0x620) ||
50167 ((instr & 0xf30) == 0xa30)) {
50168 UnallocatedA32(instr);
50171 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
50173 UnallocatedA32(instr);
50177 Align_align_5_Decode((instr >> 4) & 0x3);
50180 UnallocatedA32(instr);
50183 unsigned first = ExtractDRegister(instr, 22, 12);
50186 switch ((instr >> 8) & 0xf) {
50204 unsigned rn = (instr >> 16) & 0xf;
50219 if (((instr & 0xe30) == 0x830)) {
50220 UnallocatedA32(instr);
50223 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
50225 UnallocatedA32(instr);
50229 Align_align_2_Decode((instr >> 4) & 0x3);
50232 UnallocatedA32(instr);
50235 unsigned first = ExtractDRegister(instr, 22, 12);
50238 switch ((instr >> 8) & 0xf) {
50258 unsigned rn = (instr >> 16) & 0xf;
50273 if (((instr & 0x20) == 0x20)) {
50274 UnallocatedA32(instr);
50277 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
50279 UnallocatedA32(instr);
50283 Align_align_3_Decode((instr >> 4) & 0x3);
50286 UnallocatedA32(instr);
50289 unsigned first = ExtractDRegister(instr, 22, 12);
50292 switch ((instr >> 8) & 0xf) {
50308 unsigned rn = (instr >> 16) & 0xf;
50323 if (((instr & 0x20) == 0x20)) {
50324 UnallocatedA32(instr);
50327 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
50329 UnallocatedA32(instr);
50333 Align_align_3_Decode((instr >> 4) & 0x3);
50336 UnallocatedA32(instr);
50339 unsigned first = ExtractDRegister(instr, 22, 12);
50342 switch ((instr >> 8) & 0xf) {
50358 unsigned rn = (instr >> 16) & 0xf;
50373 if (((instr & 0xe20) == 0x620) ||
50374 ((instr & 0xf30) == 0xa30)) {
50375 UnallocatedA32(instr);
50378 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
50380 UnallocatedA32(instr);
50384 Align_align_5_Decode((instr >> 4) & 0x3);
50387 UnallocatedA32(instr);
50390 unsigned first = ExtractDRegister(instr, 22, 12);
50393 switch ((instr >> 8) & 0xf) {
50411 unsigned rn = (instr >> 16) & 0xf;
50426 if (((instr & 0xe20) == 0x620) ||
50427 ((instr & 0xf30) == 0xa30)) {
50428 UnallocatedA32(instr);
50431 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
50433 UnallocatedA32(instr);
50437 Align_align_5_Decode((instr >> 4) & 0x3);
50440 UnallocatedA32(instr);
50443 unsigned first = ExtractDRegister(instr, 22, 12);
50446 switch ((instr >> 8) & 0xf) {
50464 unsigned rn = (instr >> 16) & 0xf;
50479 if (((instr & 0xe30) == 0x830)) {
50480 UnallocatedA32(instr);
50483 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
50485 UnallocatedA32(instr);
50489 Align_align_2_Decode((instr >> 4) & 0x3);
50492 UnallocatedA32(instr);
50495 unsigned first = ExtractDRegister(instr, 22, 12);
50498 switch ((instr >> 8) & 0xf) {
50518 unsigned rn = (instr >> 16) & 0xf;
50533 if (((instr & 0xe30) == 0x830)) {
50534 UnallocatedA32(instr);
50537 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
50539 UnallocatedA32(instr);
50543 Align_align_2_Decode((instr >> 4) & 0x3);
50546 UnallocatedA32(instr);
50549 unsigned first = ExtractDRegister(instr, 22, 12);
50552 switch ((instr >> 8) & 0xf) {
50572 unsigned rn = (instr >> 16) & 0xf;
50587 if (((instr & 0xe20) == 0x620) ||
50588 ((instr & 0xf30) == 0xa30)) {
50589 UnallocatedA32(instr);
50592 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
50594 UnallocatedA32(instr);
50598 Align_align_5_Decode((instr >> 4) & 0x3);
50601 UnallocatedA32(instr);
50604 unsigned first = ExtractDRegister(instr, 22, 12);
50607 switch ((instr >> 8) & 0xf) {
50625 unsigned rn = (instr >> 16) & 0xf;
50639 UnallocatedA32(instr);
50648 switch (instr & 0x00000f00) {
50651 if (((instr & 0xd) == 0xd)) {
50652 UnallocatedA32(instr);
50655 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
50657 UnallocatedA32(instr);
50661 Align_align_4_Decode((instr >> 4) & 0x3);
50664 UnallocatedA32(instr);
50667 unsigned first = ExtractDRegister(instr, 22, 12);
50670 switch ((instr >> 8) & 0xf) {
50685 unsigned rn = (instr >> 16) & 0xf;
50686 unsigned rm = instr & 0xf;
50702 if (((instr & 0xd) == 0xd)) {
50703 UnallocatedA32(instr);
50706 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
50708 UnallocatedA32(instr);
50712 Align_align_4_Decode((instr >> 4) & 0x3);
50715 UnallocatedA32(instr);
50718 unsigned first = ExtractDRegister(instr, 22, 12);
50721 switch ((instr >> 8) & 0xf) {
50736 unsigned rn = (instr >> 16) & 0xf;
50737 unsigned rm = instr & 0xf;
50753 if (((instr & 0xd) == 0xd) ||
50754 ((instr & 0xe20) == 0x620) ||
50755 ((instr & 0xf30) == 0xa30)) {
50756 UnallocatedA32(instr);
50759 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
50761 UnallocatedA32(instr);
50765 Align_align_5_Decode((instr >> 4) & 0x3);
50768 UnallocatedA32(instr);
50771 unsigned first = ExtractDRegister(instr, 22, 12);
50774 switch ((instr >> 8) & 0xf) {
50792 unsigned rn = (instr >> 16) & 0xf;
50793 unsigned rm = instr & 0xf;
50809 if (((instr & 0xd) == 0xd) ||
50810 ((instr & 0xe30) == 0x830)) {
50811 UnallocatedA32(instr);
50814 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
50816 UnallocatedA32(instr);
50820 Align_align_2_Decode((instr >> 4) & 0x3);
50823 UnallocatedA32(instr);
50826 unsigned first = ExtractDRegister(instr, 22, 12);
50829 switch ((instr >> 8) & 0xf) {
50848 unsigned rn = (instr >> 16) & 0xf;
50849 unsigned rm = instr & 0xf;
50865 if (((instr & 0xd) == 0xd) ||
50866 ((instr & 0x20) == 0x20)) {
50867 UnallocatedA32(instr);
50870 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
50872 UnallocatedA32(instr);
50876 Align_align_3_Decode((instr >> 4) & 0x3);
50879 UnallocatedA32(instr);
50882 unsigned first = ExtractDRegister(instr, 22, 12);
50885 switch ((instr >> 8) & 0xf) {
50900 unsigned rn = (instr >> 16) & 0xf;
50901 unsigned rm = instr & 0xf;
50917 if (((instr & 0xd) == 0xd) ||
50918 ((instr & 0x20) == 0x20)) {
50919 UnallocatedA32(instr);
50922 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
50924 UnallocatedA32(instr);
50928 Align_align_3_Decode((instr >> 4) & 0x3);
50931 UnallocatedA32(instr);
50934 unsigned first = ExtractDRegister(instr, 22, 12);
50937 switch ((instr >> 8) & 0xf) {
50952 unsigned rn = (instr >> 16) & 0xf;
50953 unsigned rm = instr & 0xf;
50969 if (((instr & 0xd) == 0xd) ||
50970 ((instr & 0xe20) == 0x620) ||
50971 ((instr & 0xf30) == 0xa30)) {
50972 UnallocatedA32(instr);
50975 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
50977 UnallocatedA32(instr);
50981 Align_align_5_Decode((instr >> 4) & 0x3);
50984 UnallocatedA32(instr);
50987 unsigned first = ExtractDRegister(instr, 22, 12);
50990 switch ((instr >> 8) & 0xf) {
51008 unsigned rn = (instr >> 16) & 0xf;
51009 unsigned rm = instr & 0xf;
51025 if (((instr & 0xd) == 0xd) ||
51026 ((instr & 0xe20) == 0x620) ||
51027 ((instr & 0xf30) == 0xa30)) {
51028 UnallocatedA32(instr);
51031 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
51033 UnallocatedA32(instr);
51037 Align_align_5_Decode((instr >> 4) & 0x3);
51040 UnallocatedA32(instr);
51043 unsigned first = ExtractDRegister(instr, 22, 12);
51046 switch ((instr >> 8) & 0xf) {
51064 unsigned rn = (instr >> 16) & 0xf;
51065 unsigned rm = instr & 0xf;
51081 if (((instr & 0xd) == 0xd) ||
51082 ((instr & 0xe30) == 0x830)) {
51083 UnallocatedA32(instr);
51086 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
51088 UnallocatedA32(instr);
51092 Align_align_2_Decode((instr >> 4) & 0x3);
51095 UnallocatedA32(instr);
51098 unsigned first = ExtractDRegister(instr, 22, 12);
51101 switch ((instr >> 8) & 0xf) {
51120 unsigned rn = (instr >> 16) & 0xf;
51121 unsigned rm = instr & 0xf;
51137 if (((instr & 0xd) == 0xd) ||
51138 ((instr & 0xe30) == 0x830)) {
51139 UnallocatedA32(instr);
51142 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
51144 UnallocatedA32(instr);
51148 Align_align_2_Decode((instr >> 4) & 0x3);
51151 UnallocatedA32(instr);
51154 unsigned first = ExtractDRegister(instr, 22, 12);
51157 switch ((instr >> 8) & 0xf) {
51176 unsigned rn = (instr >> 16) & 0xf;
51177 unsigned rm = instr & 0xf;
51193 if (((instr & 0xd) == 0xd) ||
51194 ((instr & 0xe20) == 0x620) ||
51195 ((instr & 0xf30) == 0xa30)) {
51196 UnallocatedA32(instr);
51199 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
51201 UnallocatedA32(instr);
51205 Align_align_5_Decode((instr >> 4) & 0x3);
51208 UnallocatedA32(instr);
51211 unsigned first = ExtractDRegister(instr, 22, 12);
51214 switch ((instr >> 8) & 0xf) {
51232 unsigned rn = (instr >> 16) & 0xf;
51233 unsigned rm = instr & 0xf;
51248 UnallocatedA32(instr);
51258 switch (instr & 0x00000300) {
51261 switch (instr & 0x00000c00) {
51264 UnallocatedA32(instr);
51268 switch (instr & 0x0000000d) {
51271 switch (instr & 0x00000002) {
51274 if (((instr & 0xc00) == 0xc00)) {
51275 UnallocatedA32(instr);
51279 Dt_size_7_Decode((instr >> 10) & 0x3);
51281 UnallocatedA32(instr);
51285 Align_index_align_1_Decode((instr >> 4) &
51289 UnallocatedA32(instr);
51296 ExtractDRegister(instr, 22, 12);
51299 unsigned rn = (instr >> 16) & 0xf;
51314 if (((instr & 0xc00) == 0xc00)) {
51315 UnallocatedA32(instr);
51319 Dt_size_7_Decode((instr >> 10) & 0x3);
51321 UnallocatedA32(instr);
51325 Align_index_align_1_Decode((instr >> 4) &
51329 UnallocatedA32(instr);
51336 ExtractDRegister(instr, 22, 12);
51339 unsigned rn = (instr >> 16) & 0xf;
51356 if (((instr & 0xc00) == 0xc00) ||
51357 ((instr & 0xd) == 0xd)) {
51358 UnallocatedA32(instr);
51361 DataType dt = Dt_size_7_Decode((instr >> 10) & 0x3);
51363 UnallocatedA32(instr);
51367 Align_index_align_1_Decode((instr >> 4) & 0xf,
51370 UnallocatedA32(instr);
51376 unsigned first = ExtractDRegister(instr, 22, 12);
51379 unsigned rn = (instr >> 16) & 0xf;
51380 unsigned rm = instr & 0xf;
51402 switch (instr & 0x00000c00) {
51405 UnallocatedA32(instr);
51409 switch (instr & 0x0000000d) {
51412 switch (instr & 0x00000002) {
51415 if (((instr & 0xc00) == 0xc00)) {
51416 UnallocatedA32(instr);
51420 Dt_size_7_Decode((instr >> 10) & 0x3);
51422 UnallocatedA32(instr);
51426 Align_index_align_2_Decode((instr >> 4) &
51430 UnallocatedA32(instr);
51437 ExtractDRegister(instr, 22, 12);
51442 unsigned rn = (instr >> 16) & 0xf;
51457 if (((instr & 0xc00) == 0xc00)) {
51458 UnallocatedA32(instr);
51462 Dt_size_7_Decode((instr >> 10) & 0x3);
51464 UnallocatedA32(instr);
51468 Align_index_align_2_Decode((instr >> 4) &
51472 UnallocatedA32(instr);
51479 ExtractDRegister(instr, 22, 12);
51484 unsigned rn = (instr >> 16) & 0xf;
51501 if (((instr & 0xc00) == 0xc00) ||
51502 ((instr & 0xd) == 0xd)) {
51503 UnallocatedA32(instr);
51506 DataType dt = Dt_size_7_Decode((instr >> 10) & 0x3);
51508 UnallocatedA32(instr);
51512 Align_index_align_2_Decode((instr >> 4) & 0xf,
51515 UnallocatedA32(instr);
51521 unsigned first = ExtractDRegister(instr, 22, 12);
51526 unsigned rn = (instr >> 16) & 0xf;
51527 unsigned rm = instr & 0xf;
51549 switch (instr & 0x00000c30) {
51552 UnallocatedA32(instr);
51557 UnallocatedA32(instr);
51562 UnallocatedA32(instr);
51567 UnallocatedA32(instr);
51572 UnallocatedA32(instr);
51577 UnallocatedA32(instr);
51582 UnallocatedA32(instr);
51587 UnallocatedA32(instr);
51592 UnallocatedA32(instr);
51597 UnallocatedA32(instr);
51602 UnallocatedA32(instr);
51606 switch (instr & 0x0000000d) {
51609 switch (instr & 0x00000002) {
51612 if (((instr & 0xc00) == 0xc00) ||
51613 ((instr & 0x810) == 0x10) ||
51614 ((instr & 0xc30) == 0x810) ||
51615 ((instr & 0xc30) == 0x820) ||
51616 ((instr & 0xc30) == 0x830)) {
51617 UnallocatedA32(instr);
51621 Dt_size_7_Decode((instr >> 10) & 0x3);
51623 UnallocatedA32(instr);
51627 Index_1_Decode((instr >> 4) & 0xf, dt);
51629 UnallocatedA32(instr);
51635 ExtractDRegister(instr, 22, 12);
51640 unsigned rn = (instr >> 16) & 0xf;
51653 if (((instr & 0xc00) == 0xc00) ||
51654 ((instr & 0x810) == 0x10) ||
51655 ((instr & 0xc30) == 0x810) ||
51656 ((instr & 0xc30) == 0x820) ||
51657 ((instr & 0xc30) == 0x830)) {
51658 UnallocatedA32(instr);
51662 Dt_size_7_Decode((instr >> 10) & 0x3);
51664 UnallocatedA32(instr);
51668 Index_1_Decode((instr >> 4) & 0xf, dt);
51670 UnallocatedA32(instr);
51676 ExtractDRegister(instr, 22, 12);
51681 unsigned rn = (instr >> 16) & 0xf;
51696 if (((instr & 0xc00) == 0xc00) ||
51697 ((instr & 0xd) == 0xd) ||
51698 ((instr & 0x810) == 0x10) ||
51699 ((instr & 0xc30) == 0x810) ||
51700 ((instr & 0xc30) == 0x820) ||
51701 ((instr & 0xc30) == 0x830)) {
51702 UnallocatedA32(instr);
51705 DataType dt = Dt_size_7_Decode((instr >> 10) & 0x3);
51707 UnallocatedA32(instr);
51711 Index_1_Decode((instr >> 4) & 0xf, dt);
51713 UnallocatedA32(instr);
51718 unsigned first = ExtractDRegister(instr, 22, 12);
51723 unsigned rn = (instr >> 16) & 0xf;
51725 unsigned rm = instr & 0xf;
51747 switch (instr & 0x00000c00) {
51750 UnallocatedA32(instr);
51754 switch (instr & 0x0000000d) {
51757 switch (instr & 0x00000002) {
51760 if (((instr & 0xc00) == 0xc00)) {
51761 UnallocatedA32(instr);
51765 Dt_size_7_Decode((instr >> 10) & 0x3);
51767 UnallocatedA32(instr);
51771 Align_index_align_3_Decode((instr >> 4) &
51775 UnallocatedA32(instr);
51782 ExtractDRegister(instr, 22, 12);
51787 unsigned rn = (instr >> 16) & 0xf;
51802 if (((instr & 0xc00) == 0xc00)) {
51803 UnallocatedA32(instr);
51807 Dt_size_7_Decode((instr >> 10) & 0x3);
51809 UnallocatedA32(instr);
51813 Align_index_align_3_Decode((instr >> 4) &
51817 UnallocatedA32(instr);
51824 ExtractDRegister(instr, 22, 12);
51829 unsigned rn = (instr >> 16) & 0xf;
51846 if (((instr & 0xc00) == 0xc00) ||
51847 ((instr & 0xd) == 0xd)) {
51848 UnallocatedA32(instr);
51851 DataType dt = Dt_size_7_Decode((instr >> 10) & 0x3);
51853 UnallocatedA32(instr);
51857 Align_index_align_3_Decode((instr >> 4) & 0xf,
51860 UnallocatedA32(instr);
51866 unsigned first = ExtractDRegister(instr, 22, 12);
51871 unsigned rn = (instr >> 16) & 0xf;
51872 unsigned rm = instr & 0xf;
51900 switch (instr & 0x00400000) {
51903 switch (instr & 0x000f0000) {
51906 uint32_t U = (instr >> 23) & 0x1;
51907 int32_t imm = instr & 0xfff;
51917 if (((instr & 0xff7ff000) != 0xf45ff000)) {
51918 UnpredictableA32(instr);
51923 if (((instr & 0xf0000) == 0xf0000)) {
51924 UnallocatedA32(instr);
51927 unsigned rn = (instr >> 16) & 0xf;
51928 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
51929 int32_t offset = instr & 0xfff;
51932 if (((instr & 0xff70f000) != 0xf450f000)) {
51933 UnpredictableA32(instr);
51941 UnallocatedA32(instr);
51948 switch (instr & 0x00800000) {
51951 switch (instr & 0x0000000d) {
51954 switch (instr & 0x00000002) {
51957 switch (instr & 0x00000f00) {
51960 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
51962 UnallocatedA32(instr);
51966 Align_align_4_Decode((instr >> 4) & 0x3);
51969 UnallocatedA32(instr);
51972 unsigned first = ExtractDRegister(instr, 22, 12);
51975 switch ((instr >> 8) & 0xf) {
51991 unsigned rn = (instr >> 16) & 0xf;
52006 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
52008 UnallocatedA32(instr);
52012 Align_align_4_Decode((instr >> 4) & 0x3);
52015 UnallocatedA32(instr);
52018 unsigned first = ExtractDRegister(instr, 22, 12);
52021 switch ((instr >> 8) & 0xf) {
52037 unsigned rn = (instr >> 16) & 0xf;
52052 if (((instr & 0xe20) == 0x620) ||
52053 ((instr & 0xf30) == 0xa30)) {
52054 UnallocatedA32(instr);
52057 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
52059 UnallocatedA32(instr);
52063 Align_align_1_Decode((instr >> 4) & 0x3);
52066 UnallocatedA32(instr);
52069 unsigned first = ExtractDRegister(instr, 22, 12);
52072 switch ((instr >> 8) & 0xf) {
52090 unsigned rn = (instr >> 16) & 0xf;
52105 if (((instr & 0xe30) == 0x830)) {
52106 UnallocatedA32(instr);
52109 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
52111 UnallocatedA32(instr);
52115 Align_align_2_Decode((instr >> 4) & 0x3);
52118 UnallocatedA32(instr);
52121 unsigned first = ExtractDRegister(instr, 22, 12);
52124 switch ((instr >> 8) & 0xf) {
52144 unsigned rn = (instr >> 16) & 0xf;
52159 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
52161 UnallocatedA32(instr);
52165 Align_align_3_Decode((instr >> 4) & 0x3);
52168 UnallocatedA32(instr);
52171 unsigned first = ExtractDRegister(instr, 22, 12);
52174 switch ((instr >> 8) & 0xf) {
52190 unsigned rn = (instr >> 16) & 0xf;
52205 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
52207 UnallocatedA32(instr);
52211 Align_align_3_Decode((instr >> 4) & 0x3);
52214 UnallocatedA32(instr);
52217 unsigned first = ExtractDRegister(instr, 22, 12);
52220 switch ((instr >> 8) & 0xf) {
52236 unsigned rn = (instr >> 16) & 0xf;
52251 if (((instr & 0xe20) == 0x620) ||
52252 ((instr & 0xf30) == 0xa30)) {
52253 UnallocatedA32(instr);
52256 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
52258 UnallocatedA32(instr);
52262 Align_align_1_Decode((instr >> 4) & 0x3);
52265 UnallocatedA32(instr);
52268 unsigned first = ExtractDRegister(instr, 22, 12);
52271 switch ((instr >> 8) & 0xf) {
52289 unsigned rn = (instr >> 16) & 0xf;
52304 if (((instr & 0xe20) == 0x620) ||
52305 ((instr & 0xf30) == 0xa30)) {
52306 UnallocatedA32(instr);
52309 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
52311 UnallocatedA32(instr);
52315 Align_align_1_Decode((instr >> 4) & 0x3);
52318 UnallocatedA32(instr);
52321 unsigned first = ExtractDRegister(instr, 22, 12);
52324 switch ((instr >> 8) & 0xf) {
52342 unsigned rn = (instr >> 16) & 0xf;
52357 if (((instr & 0xe30) == 0x830)) {
52358 UnallocatedA32(instr);
52361 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
52363 UnallocatedA32(instr);
52367 Align_align_2_Decode((instr >> 4) & 0x3);
52370 UnallocatedA32(instr);
52373 unsigned first = ExtractDRegister(instr, 22, 12);
52376 switch ((instr >> 8) & 0xf) {
52396 unsigned rn = (instr >> 16) & 0xf;
52411 if (((instr & 0xe30) == 0x830)) {
52412 UnallocatedA32(instr);
52415 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
52417 UnallocatedA32(instr);
52421 Align_align_2_Decode((instr >> 4) & 0x3);
52424 UnallocatedA32(instr);
52427 unsigned first = ExtractDRegister(instr, 22, 12);
52430 switch ((instr >> 8) & 0xf) {
52450 unsigned rn = (instr >> 16) & 0xf;
52465 if (((instr & 0xe20) == 0x620) ||
52466 ((instr & 0xf30) == 0xa30)) {
52467 UnallocatedA32(instr);
52470 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
52472 UnallocatedA32(instr);
52476 Align_align_1_Decode((instr >> 4) & 0x3);
52479 UnallocatedA32(instr);
52482 unsigned first = ExtractDRegister(instr, 22, 12);
52485 switch ((instr >> 8) & 0xf) {
52503 unsigned rn = (instr >> 16) & 0xf;
52517 UnallocatedA32(instr);
52524 switch (instr & 0x00000f00) {
52527 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
52529 UnallocatedA32(instr);
52533 Align_align_4_Decode((instr >> 4) & 0x3);
52536 UnallocatedA32(instr);
52539 unsigned first = ExtractDRegister(instr, 22, 12);
52542 switch ((instr >> 8) & 0xf) {
52558 unsigned rn = (instr >> 16) & 0xf;
52573 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
52575 UnallocatedA32(instr);
52579 Align_align_4_Decode((instr >> 4) & 0x3);
52582 UnallocatedA32(instr);
52585 unsigned first = ExtractDRegister(instr, 22, 12);
52588 switch ((instr >> 8) & 0xf) {
52604 unsigned rn = (instr >> 16) & 0xf;
52619 if (((instr & 0xe20) == 0x620) ||
52620 ((instr & 0xf30) == 0xa30)) {
52621 UnallocatedA32(instr);
52624 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
52626 UnallocatedA32(instr);
52630 Align_align_1_Decode((instr >> 4) & 0x3);
52633 UnallocatedA32(instr);
52636 unsigned first = ExtractDRegister(instr, 22, 12);
52639 switch ((instr >> 8) & 0xf) {
52657 unsigned rn = (instr >> 16) & 0xf;
52672 if (((instr & 0xe30) == 0x830)) {
52673 UnallocatedA32(instr);
52676 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
52678 UnallocatedA32(instr);
52682 Align_align_2_Decode((instr >> 4) & 0x3);
52685 UnallocatedA32(instr);
52688 unsigned first = ExtractDRegister(instr, 22, 12);
52691 switch ((instr >> 8) & 0xf) {
52711 unsigned rn = (instr >> 16) & 0xf;
52726 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
52728 UnallocatedA32(instr);
52732 Align_align_3_Decode((instr >> 4) & 0x3);
52735 UnallocatedA32(instr);
52738 unsigned first = ExtractDRegister(instr, 22, 12);
52741 switch ((instr >> 8) & 0xf) {
52757 unsigned rn = (instr >> 16) & 0xf;
52772 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
52774 UnallocatedA32(instr);
52778 Align_align_3_Decode((instr >> 4) & 0x3);
52781 UnallocatedA32(instr);
52784 unsigned first = ExtractDRegister(instr, 22, 12);
52787 switch ((instr >> 8) & 0xf) {
52803 unsigned rn = (instr >> 16) & 0xf;
52818 if (((instr & 0xe20) == 0x620) ||
52819 ((instr & 0xf30) == 0xa30)) {
52820 UnallocatedA32(instr);
52823 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
52825 UnallocatedA32(instr);
52829 Align_align_1_Decode((instr >> 4) & 0x3);
52832 UnallocatedA32(instr);
52835 unsigned first = ExtractDRegister(instr, 22, 12);
52838 switch ((instr >> 8) & 0xf) {
52856 unsigned rn = (instr >> 16) & 0xf;
52871 if (((instr & 0xe20) == 0x620) ||
52872 ((instr & 0xf30) == 0xa30)) {
52873 UnallocatedA32(instr);
52876 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
52878 UnallocatedA32(instr);
52882 Align_align_1_Decode((instr >> 4) & 0x3);
52885 UnallocatedA32(instr);
52888 unsigned first = ExtractDRegister(instr, 22, 12);
52891 switch ((instr >> 8) & 0xf) {
52909 unsigned rn = (instr >> 16) & 0xf;
52924 if (((instr & 0xe30) == 0x830)) {
52925 UnallocatedA32(instr);
52928 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
52930 UnallocatedA32(instr);
52934 Align_align_2_Decode((instr >> 4) & 0x3);
52937 UnallocatedA32(instr);
52940 unsigned first = ExtractDRegister(instr, 22, 12);
52943 switch ((instr >> 8) & 0xf) {
52963 unsigned rn = (instr >> 16) & 0xf;
52978 if (((instr & 0xe30) == 0x830)) {
52979 UnallocatedA32(instr);
52982 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
52984 UnallocatedA32(instr);
52988 Align_align_2_Decode((instr >> 4) & 0x3);
52991 UnallocatedA32(instr);
52994 unsigned first = ExtractDRegister(instr, 22, 12);
52997 switch ((instr >> 8) & 0xf) {
53017 unsigned rn = (instr >> 16) & 0xf;
53032 if (((instr & 0xe20) == 0x620) ||
53033 ((instr & 0xf30) == 0xa30)) {
53034 UnallocatedA32(instr);
53037 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
53039 UnallocatedA32(instr);
53043 Align_align_1_Decode((instr >> 4) & 0x3);
53046 UnallocatedA32(instr);
53049 unsigned first = ExtractDRegister(instr, 22, 12);
53052 switch ((instr >> 8) & 0xf) {
53070 unsigned rn = (instr >> 16) & 0xf;
53084 UnallocatedA32(instr);
53093 switch (instr & 0x00000f00) {
53096 if (((instr & 0xd) == 0xd)) {
53097 UnallocatedA32(instr);
53100 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
53102 UnallocatedA32(instr);
53106 Align_align_4_Decode((instr >> 4) & 0x3);
53109 UnallocatedA32(instr);
53112 unsigned first = ExtractDRegister(instr, 22, 12);
53115 switch ((instr >> 8) & 0xf) {
53130 unsigned rn = (instr >> 16) & 0xf;
53131 unsigned rm = instr & 0xf;
53147 if (((instr & 0xd) == 0xd)) {
53148 UnallocatedA32(instr);
53151 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
53153 UnallocatedA32(instr);
53157 Align_align_4_Decode((instr >> 4) & 0x3);
53160 UnallocatedA32(instr);
53163 unsigned first = ExtractDRegister(instr, 22, 12);
53166 switch ((instr >> 8) & 0xf) {
53181 unsigned rn = (instr >> 16) & 0xf;
53182 unsigned rm = instr & 0xf;
53198 if (((instr & 0xd) == 0xd) ||
53199 ((instr & 0xe20) == 0x620) ||
53200 ((instr & 0xf30) == 0xa30)) {
53201 UnallocatedA32(instr);
53204 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
53206 UnallocatedA32(instr);
53210 Align_align_1_Decode((instr >> 4) & 0x3);
53213 UnallocatedA32(instr);
53216 unsigned first = ExtractDRegister(instr, 22, 12);
53219 switch ((instr >> 8) & 0xf) {
53237 unsigned rn = (instr >> 16) & 0xf;
53238 unsigned rm = instr & 0xf;
53254 if (((instr & 0xd) == 0xd) ||
53255 ((instr & 0xe30) == 0x830)) {
53256 UnallocatedA32(instr);
53259 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
53261 UnallocatedA32(instr);
53265 Align_align_2_Decode((instr >> 4) & 0x3);
53268 UnallocatedA32(instr);
53271 unsigned first = ExtractDRegister(instr, 22, 12);
53274 switch ((instr >> 8) & 0xf) {
53293 unsigned rn = (instr >> 16) & 0xf;
53294 unsigned rm = instr & 0xf;
53310 if (((instr & 0xd) == 0xd)) {
53311 UnallocatedA32(instr);
53314 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
53316 UnallocatedA32(instr);
53320 Align_align_3_Decode((instr >> 4) & 0x3);
53323 UnallocatedA32(instr);
53326 unsigned first = ExtractDRegister(instr, 22, 12);
53329 switch ((instr >> 8) & 0xf) {
53344 unsigned rn = (instr >> 16) & 0xf;
53345 unsigned rm = instr & 0xf;
53361 if (((instr & 0xd) == 0xd)) {
53362 UnallocatedA32(instr);
53365 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
53367 UnallocatedA32(instr);
53371 Align_align_3_Decode((instr >> 4) & 0x3);
53374 UnallocatedA32(instr);
53377 unsigned first = ExtractDRegister(instr, 22, 12);
53380 switch ((instr >> 8) & 0xf) {
53395 unsigned rn = (instr >> 16) & 0xf;
53396 unsigned rm = instr & 0xf;
53412 if (((instr & 0xd) == 0xd) ||
53413 ((instr & 0xe20) == 0x620) ||
53414 ((instr & 0xf30) == 0xa30)) {
53415 UnallocatedA32(instr);
53418 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
53420 UnallocatedA32(instr);
53424 Align_align_1_Decode((instr >> 4) & 0x3);
53427 UnallocatedA32(instr);
53430 unsigned first = ExtractDRegister(instr, 22, 12);
53433 switch ((instr >> 8) & 0xf) {
53451 unsigned rn = (instr >> 16) & 0xf;
53452 unsigned rm = instr & 0xf;
53468 if (((instr & 0xd) == 0xd) ||
53469 ((instr & 0xe20) == 0x620) ||
53470 ((instr & 0xf30) == 0xa30)) {
53471 UnallocatedA32(instr);
53474 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
53476 UnallocatedA32(instr);
53480 Align_align_1_Decode((instr >> 4) & 0x3);
53483 UnallocatedA32(instr);
53486 unsigned first = ExtractDRegister(instr, 22, 12);
53489 switch ((instr >> 8) & 0xf) {
53507 unsigned rn = (instr >> 16) & 0xf;
53508 unsigned rm = instr & 0xf;
53524 if (((instr & 0xd) == 0xd) ||
53525 ((instr & 0xe30) == 0x830)) {
53526 UnallocatedA32(instr);
53529 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
53531 UnallocatedA32(instr);
53535 Align_align_2_Decode((instr >> 4) & 0x3);
53538 UnallocatedA32(instr);
53541 unsigned first = ExtractDRegister(instr, 22, 12);
53544 switch ((instr >> 8) & 0xf) {
53563 unsigned rn = (instr >> 16) & 0xf;
53564 unsigned rm = instr & 0xf;
53580 if (((instr & 0xd) == 0xd) ||
53581 ((instr & 0xe30) == 0x830)) {
53582 UnallocatedA32(instr);
53585 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
53587 UnallocatedA32(instr);
53591 Align_align_2_Decode((instr >> 4) & 0x3);
53594 UnallocatedA32(instr);
53597 unsigned first = ExtractDRegister(instr, 22, 12);
53600 switch ((instr >> 8) & 0xf) {
53619 unsigned rn = (instr >> 16) & 0xf;
53620 unsigned rm = instr & 0xf;
53636 if (((instr & 0xd) == 0xd) ||
53637 ((instr & 0xe20) == 0x620) ||
53638 ((instr & 0xf30) == 0xa30)) {
53639 UnallocatedA32(instr);
53642 DataType dt = Dt_size_6_Decode((instr >> 6) & 0x3);
53644 UnallocatedA32(instr);
53648 Align_align_1_Decode((instr >> 4) & 0x3);
53651 UnallocatedA32(instr);
53654 unsigned first = ExtractDRegister(instr, 22, 12);
53657 switch ((instr >> 8) & 0xf) {
53675 unsigned rn = (instr >> 16) & 0xf;
53676 unsigned rm = instr & 0xf;
53691 UnallocatedA32(instr);
53701 switch (instr & 0x00000300) {
53704 switch (instr & 0x00000c00) {
53707 switch (instr & 0x0000000d) {
53710 switch (instr & 0x00000002) {
53714 Dt_size_7_Decode((instr >> 6) & 0x3);
53716 UnallocatedA32(instr);
53720 Align_a_1_Decode((instr >> 4) & 0x1, dt);
53723 UnallocatedA32(instr);
53727 ExtractDRegister(instr, 22, 12);
53730 switch ((instr >> 5) & 0x1) {
53742 unsigned rn = (instr >> 16) & 0xf;
53758 Dt_size_7_Decode((instr >> 6) & 0x3);
53760 UnallocatedA32(instr);
53764 Align_a_1_Decode((instr >> 4) & 0x1, dt);
53767 UnallocatedA32(instr);
53771 ExtractDRegister(instr, 22, 12);
53774 switch ((instr >> 5) & 0x1) {
53786 unsigned rn = (instr >> 16) & 0xf;
53803 if (((instr & 0xd) == 0xd)) {
53804 UnallocatedA32(instr);
53807 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
53809 UnallocatedA32(instr);
53813 Align_a_1_Decode((instr >> 4) & 0x1, dt);
53816 UnallocatedA32(instr);
53819 unsigned first = ExtractDRegister(instr, 22, 12);
53822 switch ((instr >> 5) & 0x1) {
53834 unsigned rn = (instr >> 16) & 0xf;
53835 unsigned rm = instr & 0xf;
53853 switch (instr & 0x0000000d) {
53856 switch (instr & 0x00000002) {
53859 if (((instr & 0xc00) == 0xc00)) {
53860 UnallocatedA32(instr);
53864 Dt_size_7_Decode((instr >> 10) & 0x3);
53866 UnallocatedA32(instr);
53870 Align_index_align_1_Decode((instr >> 4) &
53874 UnallocatedA32(instr);
53881 ExtractDRegister(instr, 22, 12);
53884 unsigned rn = (instr >> 16) & 0xf;
53899 if (((instr & 0xc00) == 0xc00)) {
53900 UnallocatedA32(instr);
53904 Dt_size_7_Decode((instr >> 10) & 0x3);
53906 UnallocatedA32(instr);
53910 Align_index_align_1_Decode((instr >> 4) &
53914 UnallocatedA32(instr);
53921 ExtractDRegister(instr, 22, 12);
53924 unsigned rn = (instr >> 16) & 0xf;
53941 if (((instr & 0xc00) == 0xc00) ||
53942 ((instr & 0xd) == 0xd)) {
53943 UnallocatedA32(instr);
53946 DataType dt = Dt_size_7_Decode((instr >> 10) & 0x3);
53948 UnallocatedA32(instr);
53952 Align_index_align_1_Decode((instr >> 4) & 0xf,
53955 UnallocatedA32(instr);
53961 unsigned first = ExtractDRegister(instr, 22, 12);
53964 unsigned rn = (instr >> 16) & 0xf;
53965 unsigned rm = instr & 0xf;
53987 switch (instr & 0x00000c00) {
53990 switch (instr & 0x0000000d) {
53993 switch (instr & 0x00000002) {
53997 Dt_size_7_Decode((instr >> 6) & 0x3);
53999 UnallocatedA32(instr);
54003 Align_a_2_Decode((instr >> 4) & 0x1, dt);
54006 UnallocatedA32(instr);
54010 ExtractDRegister(instr, 22, 12);
54013 switch ((instr >> 5) & 0x1) {
54029 unsigned rn = (instr >> 16) & 0xf;
54045 Dt_size_7_Decode((instr >> 6) & 0x3);
54047 UnallocatedA32(instr);
54051 Align_a_2_Decode((instr >> 4) & 0x1, dt);
54054 UnallocatedA32(instr);
54058 ExtractDRegister(instr, 22, 12);
54061 switch ((instr >> 5) & 0x1) {
54077 unsigned rn = (instr >> 16) & 0xf;
54094 if (((instr & 0xd) == 0xd)) {
54095 UnallocatedA32(instr);
54098 DataType dt = Dt_size_7_Decode((instr >> 6) & 0x3);
54100 UnallocatedA32(instr);
54104 Align_a_2_Decode((instr >> 4) & 0x1, dt);
54107 UnallocatedA32(instr);
54110 unsigned first = ExtractDRegister(instr, 22, 12);
54113 switch ((instr >> 5) & 0x1) {
54129 unsigned rn = (instr >> 16) & 0xf;
54130 unsigned rm = instr & 0xf;
54148 switch (instr & 0x0000000d) {
54151 switch (instr & 0x00000002) {
54154 if (((instr & 0xc00) == 0xc00)) {
54155 UnallocatedA32(instr);
54159 Dt_size_7_Decode((instr >> 10) & 0x3);
54161 UnallocatedA32(instr);
54165 Align_index_align_2_Decode((instr >> 4) &
54169 UnallocatedA32(instr);
54176 ExtractDRegister(instr, 22, 12);
54181 unsigned rn = (instr >> 16) & 0xf;
54196 if (((instr & 0xc00) == 0xc00)) {
54197 UnallocatedA32(instr);
54201 Dt_size_7_Decode((instr >> 10) & 0x3);
54203 UnallocatedA32(instr);
54207 Align_index_align_2_Decode((instr >> 4) &
54211 UnallocatedA32(instr);
54218 ExtractDRegister(instr, 22, 12);
54223 unsigned rn = (instr >> 16) & 0xf;
54240 if (((instr & 0xc00) == 0xc00) ||
54241 ((instr & 0xd) == 0xd)) {
54242 UnallocatedA32(instr);
54245 DataType dt = Dt_size_7_Decode((instr >> 10) & 0x3);
54247 UnallocatedA32(instr);
54251 Align_index_align_2_Decode((instr >> 4) & 0xf,
54254 UnallocatedA32(instr);
54260 unsigned first = ExtractDRegister(instr, 22, 12);
54265 unsigned rn = (instr >> 16) & 0xf;
54266 unsigned rm = instr & 0xf;
54288 switch (instr & 0x00000c00) {
54291 switch (instr & 0x00000010) {
54294 switch (instr & 0x0000000d) {
54297 switch (instr & 0x00000002) {
54301 Dt_size_7_Decode((instr >> 6) & 0x3);
54303 UnallocatedA32(instr);
54307 ExtractDRegister(instr, 22, 12);
54310 switch ((instr >> 5) & 0x1) {
54327 unsigned rn = (instr >> 16) & 0xf;
54341 Dt_size_7_Decode((instr >> 6) & 0x3);
54343 UnallocatedA32(instr);
54347 ExtractDRegister(instr, 22, 12);
54350 switch ((instr >> 5) & 0x1) {
54367 unsigned rn = (instr >> 16) & 0xf;
54382 if (((instr & 0xd) == 0xd)) {
54383 UnallocatedA32(instr);
54387 Dt_size_7_Decode((instr >> 6) & 0x3);
54389 UnallocatedA32(instr);
54393 ExtractDRegister(instr, 22, 12);
54396 switch ((instr >> 5) & 0x1) {
54412 unsigned rn = (instr >> 16) & 0xf;
54414 unsigned rm = instr & 0xf;
54432 UnallocatedA32(instr);
54438 switch (instr & 0x0000000d) {
54441 switch (instr & 0x00000002) {
54444 if (((instr & 0xc00) == 0xc00)) {
54445 UnallocatedA32(instr);
54449 Dt_size_7_Decode((instr >> 10) & 0x3);
54451 UnallocatedA32(instr);
54455 Index_1_Decode((instr >> 4) & 0xf, dt);
54457 UnallocatedA32(instr);
54463 ExtractDRegister(instr, 22, 12);
54468 unsigned rn = (instr >> 16) & 0xf;
54481 if (((instr & 0xc00) == 0xc00)) {
54482 UnallocatedA32(instr);
54486 Dt_size_7_Decode((instr >> 10) & 0x3);
54488 UnallocatedA32(instr);
54492 Index_1_Decode((instr >> 4) & 0xf, dt);
54494 UnallocatedA32(instr);
54500 ExtractDRegister(instr, 22, 12);
54505 unsigned rn = (instr >> 16) & 0xf;
54520 if (((instr & 0xc00) == 0xc00) ||
54521 ((instr & 0xd) == 0xd)) {
54522 UnallocatedA32(instr);
54525 DataType dt = Dt_size_7_Decode((instr >> 10) & 0x3);
54527 UnallocatedA32(instr);
54531 Index_1_Decode((instr >> 4) & 0xf, dt);
54533 UnallocatedA32(instr);
54538 unsigned first = ExtractDRegister(instr, 22, 12);
54543 unsigned rn = (instr >> 16) & 0xf;
54545 unsigned rm = instr & 0xf;
54567 switch (instr & 0x00000c00) {
54570 switch (instr & 0x0000000d) {
54573 switch (instr & 0x00000002) {
54577 Dt_size_8_Decode((instr >> 6) & 0x3);
54579 UnallocatedA32(instr);
54583 Align_a_3_Decode((instr >> 4) & 0x1,
54585 (instr >> 6) & 0x3);
54588 UnallocatedA32(instr);
54592 ExtractDRegister(instr, 22, 12);
54595 switch ((instr >> 5) & 0x1) {
54611 unsigned rn = (instr >> 16) & 0xf;
54627 Dt_size_8_Decode((instr >> 6) & 0x3);
54629 UnallocatedA32(instr);
54633 Align_a_3_Decode((instr >> 4) & 0x1,
54635 (instr >> 6) & 0x3);
54638 UnallocatedA32(instr);
54642 ExtractDRegister(instr, 22, 12);
54645 switch ((instr >> 5) & 0x1) {
54661 unsigned rn = (instr >> 16) & 0xf;
54678 if (((instr & 0xd) == 0xd)) {
54679 UnallocatedA32(instr);
54682 DataType dt = Dt_size_8_Decode((instr >> 6) & 0x3);
54684 UnallocatedA32(instr);
54688 Align_a_3_Decode((instr >> 4) & 0x1,
54690 (instr >> 6) & 0x3);
54693 UnallocatedA32(instr);
54696 unsigned first = ExtractDRegister(instr, 22, 12);
54699 switch ((instr >> 5) & 0x1) {
54715 unsigned rn = (instr >> 16) & 0xf;
54716 unsigned rm = instr & 0xf;
54734 switch (instr & 0x0000000d) {
54737 switch (instr & 0x00000002) {
54740 if (((instr & 0xc00) == 0xc00)) {
54741 UnallocatedA32(instr);
54745 Dt_size_7_Decode((instr >> 10) & 0x3);
54747 UnallocatedA32(instr);
54751 Align_index_align_3_Decode((instr >> 4) &
54755 UnallocatedA32(instr);
54762 ExtractDRegister(instr, 22, 12);
54767 unsigned rn = (instr >> 16) & 0xf;
54782 if (((instr & 0xc00) == 0xc00)) {
54783 UnallocatedA32(instr);
54787 Dt_size_7_Decode((instr >> 10) & 0x3);
54789 UnallocatedA32(instr);
54793 Align_index_align_3_Decode((instr >> 4) &
54797 UnallocatedA32(instr);
54804 ExtractDRegister(instr, 22, 12);
54809 unsigned rn = (instr >> 16) & 0xf;
54826 if (((instr & 0xc00) == 0xc00) ||
54827 ((instr & 0xd) == 0xd)) {
54828 UnallocatedA32(instr);
54831 DataType dt = Dt_size_7_Decode((instr >> 10) & 0x3);
54833 UnallocatedA32(instr);
54837 Align_index_align_3_Decode((instr >> 4) & 0xf,
54840 UnallocatedA32(instr);
54846 unsigned first = ExtractDRegister(instr, 22, 12);
54851 unsigned rn = (instr >> 16) & 0xf;
54852 unsigned rm = instr & 0xf;
54880 switch (instr & 0x000f0000) {
54883 uint32_t U = (instr >> 23) & 0x1;
54884 int32_t imm = instr & 0xfff;
54894 if (((instr & 0xff7ff000) != 0xf55ff000)) {
54895 UnpredictableA32(instr);
54900 switch (instr & 0x00400000) {
54903 if (((instr & 0xf0000) == 0xf0000)) {
54904 UnallocatedA32(instr);
54907 unsigned rn = (instr >> 16) & 0xf;
54908 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
54909 int32_t offset = instr & 0xfff;
54912 if (((instr & 0xff70f000) != 0xf510f000)) {
54913 UnpredictableA32(instr);
54919 if (((instr & 0xf0000) == 0xf0000)) {
54920 UnallocatedA32(instr);
54923 unsigned rn = (instr >> 16) & 0xf;
54924 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
54925 int32_t offset = instr & 0xfff;
54928 if (((instr & 0xff70f000) != 0xf550f000)) {
54929 UnpredictableA32(instr);
54941 switch (instr & 0x00c000f0) {
54946 if (((instr & 0xffffffff) != 0xf57ff01f)) {
54947 UnpredictableA32(instr);
54953 MemoryBarrier option(instr & 0xf);
54956 if (((instr & 0xfffffff0) != 0xf57ff040)) {
54957 UnpredictableA32(instr);
54963 MemoryBarrier option(instr & 0xf);
54966 if (((instr & 0xfffffff0) != 0xf57ff050)) {
54967 UnpredictableA32(instr);
54973 MemoryBarrier option(instr & 0xf);
54976 if (((instr & 0xfffffff0) != 0xf57ff060)) {
54977 UnpredictableA32(instr);
54982 UnallocatedA32(instr);
54988 UnallocatedA32(instr);
54995 switch (instr & 0x01700010) {
54998 switch (instr & 0x00000fe0) {
55001 unsigned rn = (instr >> 16) & 0xf;
55002 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
55003 unsigned rm = instr & 0xf;
55015 if (((instr & 0xff70fff0) != 0xf650f060)) {
55016 UnpredictableA32(instr);
55021 if (((instr & 0xfe0) == 0x60)) {
55022 UnallocatedA32(instr);
55025 unsigned rn = (instr >> 16) & 0xf;
55026 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
55027 unsigned rm = instr & 0xf;
55028 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
55029 (instr >> 7) & 0x1f);
55041 if (((instr & 0xff70f010) != 0xf650f000)) {
55042 UnpredictableA32(instr);
55051 switch (instr & 0x00000fe0) {
55054 unsigned rn = (instr >> 16) & 0xf;
55055 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
55056 unsigned rm = instr & 0xf;
55068 if (((instr & 0xff70fff0) != 0xf710f060)) {
55069 UnpredictableA32(instr);
55074 if (((instr & 0xfe0) == 0x60)) {
55075 UnallocatedA32(instr);
55078 unsigned rn = (instr >> 16) & 0xf;
55079 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
55080 unsigned rm = instr & 0xf;
55081 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
55082 (instr >> 7) & 0x1f);
55094 if (((instr & 0xff70f010) != 0xf710f000)) {
55095 UnpredictableA32(instr);
55104 switch (instr & 0x00000fe0) {
55107 unsigned rn = (instr >> 16) & 0xf;
55108 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
55109 unsigned rm = instr & 0xf;
55121 if (((instr & 0xff70fff0) != 0xf750f060)) {
55122 UnpredictableA32(instr);
55127 if (((instr & 0xfe0) == 0x60)) {
55128 UnallocatedA32(instr);
55131 unsigned rn = (instr >> 16) & 0xf;
55132 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
55133 unsigned rm = instr & 0xf;
55134 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
55135 (instr >> 7) & 0x1f);
55147 if (((instr & 0xff70f010) != 0xf750f000)) {
55148 UnpredictableA32(instr);
55156 UnallocatedA32(instr);
55163 switch (instr & 0x01d00000) {
55166 UnimplementedA32("RFEDA", instr);
55171 UnimplementedA32("SRSDA", instr);
55176 UnimplementedA32("RFE{IA}", instr);
55181 UnimplementedA32("SRS{IA}", instr);
55186 UnimplementedA32("RFEDB", instr);
55191 UnimplementedA32("SRSDB", instr);
55196 UnimplementedA32("RFEIB", instr);
55201 UnimplementedA32("SRSIB", instr);
55205 UnallocatedA32(instr);
55212 int32_t imm = SignExtend<int32_t>((((instr >> 24) & 0x1) |
55213 ((instr << 1) & 0x1fffffe))
55223 switch (instr & 0x01b00f50) {
55226 unsigned rd = ExtractSRegister(instr, 22, 12);
55227 unsigned rn = ExtractSRegister(instr, 7, 16);
55228 unsigned rm = ExtractSRegister(instr, 5, 0);
55235 unsigned rd = ExtractDRegister(instr, 22, 12);
55236 unsigned rn = ExtractDRegister(instr, 7, 16);
55237 unsigned rm = ExtractDRegister(instr, 5, 0);
55244 unsigned rd = ExtractSRegister(instr, 22, 12);
55245 unsigned rn = ExtractSRegister(instr, 7, 16);
55246 unsigned rm = ExtractSRegister(instr, 5, 0);
55253 unsigned rd = ExtractDRegister(instr, 22, 12);
55254 unsigned rn = ExtractDRegister(instr, 7, 16);
55255 unsigned rm = ExtractDRegister(instr, 5, 0);
55262 unsigned rd = ExtractSRegister(instr, 22, 12);
55263 unsigned rn = ExtractSRegister(instr, 7, 16);
55264 unsigned rm = ExtractSRegister(instr, 5, 0);
55271 unsigned rd = ExtractDRegister(instr, 22, 12);
55272 unsigned rn = ExtractDRegister(instr, 7, 16);
55273 unsigned rm = ExtractDRegister(instr, 5, 0);
55280 unsigned rd = ExtractSRegister(instr, 22, 12);
55281 unsigned rn = ExtractSRegister(instr, 7, 16);
55282 unsigned rm = ExtractSRegister(instr, 5, 0);
55289 unsigned rd = ExtractDRegister(instr, 22, 12);
55290 unsigned rn = ExtractDRegister(instr, 7, 16);
55291 unsigned rm = ExtractDRegister(instr, 5, 0);
55298 unsigned rd = ExtractSRegister(instr, 22, 12);
55299 unsigned rn = ExtractSRegister(instr, 7, 16);
55300 unsigned rm = ExtractSRegister(instr, 5, 0);
55307 unsigned rd = ExtractSRegister(instr, 22, 12);
55308 unsigned rn = ExtractSRegister(instr, 7, 16);
55309 unsigned rm = ExtractSRegister(instr, 5, 0);
55316 unsigned rd = ExtractDRegister(instr, 22, 12);
55317 unsigned rn = ExtractDRegister(instr, 7, 16);
55318 unsigned rm = ExtractDRegister(instr, 5, 0);
55325 unsigned rd = ExtractDRegister(instr, 22, 12);
55326 unsigned rn = ExtractDRegister(instr, 7, 16);
55327 unsigned rm = ExtractDRegister(instr, 5, 0);
55334 switch (instr & 0x000f0000) {
55337 if ((instr & 0x00000080) == 0x00000000) {
55338 unsigned rd = ExtractSRegister(instr, 22, 12);
55339 unsigned rm = ExtractSRegister(instr, 5, 0);
55343 UnallocatedA32(instr);
55349 if ((instr & 0x00000080) == 0x00000000) {
55350 unsigned rd = ExtractSRegister(instr, 22, 12);
55351 unsigned rm = ExtractSRegister(instr, 5, 0);
55355 UnallocatedA32(instr);
55361 if ((instr & 0x00000080) == 0x00000000) {
55362 unsigned rd = ExtractSRegister(instr, 22, 12);
55363 unsigned rm = ExtractSRegister(instr, 5, 0);
55367 UnallocatedA32(instr);
55373 if ((instr & 0x00000080) == 0x00000000) {
55374 unsigned rd = ExtractSRegister(instr, 22, 12);
55375 unsigned rm = ExtractSRegister(instr, 5, 0);
55379 UnallocatedA32(instr);
55385 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
55387 UnallocatedA32(instr);
55390 unsigned rd = ExtractSRegister(instr, 22, 12);
55391 unsigned rm = ExtractSRegister(instr, 5, 0);
55398 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
55400 UnallocatedA32(instr);
55403 unsigned rd = ExtractSRegister(instr, 22, 12);
55404 unsigned rm = ExtractSRegister(instr, 5, 0);
55411 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
55413 UnallocatedA32(instr);
55416 unsigned rd = ExtractSRegister(instr, 22, 12);
55417 unsigned rm = ExtractSRegister(instr, 5, 0);
55424 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
55426 UnallocatedA32(instr);
55429 unsigned rd = ExtractSRegister(instr, 22, 12);
55430 unsigned rm = ExtractSRegister(instr, 5, 0);
55436 UnallocatedA32(instr);
55443 switch (instr & 0x000f0000) {
55446 if ((instr & 0x00000080) == 0x00000000) {
55447 unsigned rd = ExtractDRegister(instr, 22, 12);
55448 unsigned rm = ExtractDRegister(instr, 5, 0);
55452 UnallocatedA32(instr);
55458 if ((instr & 0x00000080) == 0x00000000) {
55459 unsigned rd = ExtractDRegister(instr, 22, 12);
55460 unsigned rm = ExtractDRegister(instr, 5, 0);
55464 UnallocatedA32(instr);
55470 if ((instr & 0x00000080) == 0x00000000) {
55471 unsigned rd = ExtractDRegister(instr, 22, 12);
55472 unsigned rm = ExtractDRegister(instr, 5, 0);
55476 UnallocatedA32(instr);
55482 if ((instr & 0x00000080) == 0x00000000) {
55483 unsigned rd = ExtractDRegister(instr, 22, 12);
55484 unsigned rm = ExtractDRegister(instr, 5, 0);
55488 UnallocatedA32(instr);
55494 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
55496 UnallocatedA32(instr);
55499 unsigned rd = ExtractSRegister(instr, 22, 12);
55500 unsigned rm = ExtractDRegister(instr, 5, 0);
55507 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
55509 UnallocatedA32(instr);
55512 unsigned rd = ExtractSRegister(instr, 22, 12);
55513 unsigned rm = ExtractDRegister(instr, 5, 0);
55520 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
55522 UnallocatedA32(instr);
55525 unsigned rd = ExtractSRegister(instr, 22, 12);
55526 unsigned rm = ExtractDRegister(instr, 5, 0);
55533 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
55535 UnallocatedA32(instr);
55538 unsigned rd = ExtractSRegister(instr, 22, 12);
55539 unsigned rm = ExtractDRegister(instr, 5, 0);
55545 UnallocatedA32(instr);
55551 UnallocatedA32(instr);
55557 UnallocatedA32(instr);
55561 switch (instr & 0x0e000000) {
55564 switch (instr & 0x00100010) {
55567 switch (instr & 0x01a00000) {
55570 switch (instr & 0x00400000) {
55573 switch (instr & 0x00000fe0) {
55576 if (((instr & 0xf0000000) == 0xf0000000)) {
55577 UnallocatedA32(instr);
55580 Condition condition((instr >> 28) & 0xf);
55581 unsigned rd = (instr >> 12) & 0xf;
55582 unsigned rn = (instr >> 16) & 0xf;
55583 unsigned rm = instr & 0xf;
55593 if (((instr & 0xf0000000) == 0xf0000000) ||
55594 ((instr & 0xfe0) == 0x60)) {
55595 UnallocatedA32(instr);
55598 Condition condition((instr >> 28) & 0xf);
55599 unsigned rd = (instr >> 12) & 0xf;
55600 unsigned rn = (instr >> 16) & 0xf;
55601 unsigned rm = instr & 0xf;
55602 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
55603 (instr >> 7) &
55620 switch (instr & 0x000f0000) {
55623 switch (instr & 0x00000fe0) {
55626 if (((instr & 0xf0000000) == 0xf0000000)) {
55627 UnallocatedA32(instr);
55630 Condition condition((instr >> 28) & 0xf);
55631 unsigned rd = (instr >> 12) & 0xf;
55632 unsigned rm = instr & 0xf;
55642 if (((instr & 0xf0000000) == 0xf0000000) ||
55643 ((instr & 0xfe0) == 0x60)) {
55644 UnallocatedA32(instr);
55647 Condition condition((instr >> 28) & 0xf);
55648 unsigned rd = (instr >> 12) & 0xf;
55649 unsigned rm = instr & 0xf;
55650 ImmediateShiftOperand shift_operand((instr >> 5) &
55652 (instr >> 7) &
55668 switch (instr & 0x00000fe0) {
55671 if (((instr & 0xf0000000) == 0xf0000000) ||
55672 ((instr & 0xf0000) == 0xd0000)) {
55673 UnallocatedA32(instr);
55676 Condition condition((instr >> 28) & 0xf);
55677 unsigned rd = (instr >> 12) & 0xf;
55678 unsigned rn = (instr >> 16) & 0xf;
55679 unsigned rm = instr & 0xf;
55689 if (((instr & 0xf0000000) == 0xf0000000) ||
55690 ((instr & 0xf0000) == 0xd0000) ||
55691 ((instr & 0xfe0) == 0x60)) {
55692 UnallocatedA32(instr);
55695 Condition condition((instr >> 28) & 0xf);
55696 unsigned rd = (instr >> 12) & 0xf;
55697 unsigned rn = (instr >> 16) & 0xf;
55698 unsigned rm = instr & 0xf;
55699 ImmediateShiftOperand shift_operand((instr >> 5) &
55701 (instr >> 7) &
55724 switch (instr & 0x00400000) {
55727 switch (instr & 0x00000fe0) {
55730 if (((instr & 0xf0000000) == 0xf0000000)) {
55731 UnallocatedA32(instr);
55734 Condition condition((instr >> 28) & 0xf);
55735 unsigned rd = (instr >> 12) & 0xf;
55736 unsigned rn = (instr >> 16) & 0xf;
55737 unsigned rm = instr & 0xf;
55747 if (((instr & 0xf0000000) == 0xf0000000) ||
55748 ((instr & 0xfe0) == 0x60)) {
55749 UnallocatedA32(instr);
55752 Condition condition((instr >> 28) & 0xf);
55753 unsigned rd = (instr >> 12) & 0xf;
55754 unsigned rn = (instr >> 16) & 0xf;
55755 unsigned rm = instr & 0xf;
55756 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
55757 (instr >> 7) &
55774 switch (instr & 0x00000fe0) {
55777 if (((instr & 0xf0000000) == 0xf0000000)) {
55778 UnallocatedA32(instr);
55781 Condition condition((instr >> 28) & 0xf);
55782 unsigned rd = (instr >> 12) & 0xf;
55783 unsigned rn = (instr >> 16) & 0xf;
55784 unsigned rm = instr & 0xf;
55794 if (((instr & 0xf0000000) == 0xf0000000) ||
55795 ((instr & 0xfe0) == 0x60)) {
55796 UnallocatedA32(instr);
55799 Condition condition((instr >> 28) & 0xf);
55800 unsigned rd = (instr >> 12) & 0xf;
55801 unsigned rn = (instr >> 16) & 0xf;
55802 unsigned rm = instr & 0xf;
55803 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
55804 (instr >> 7) &
55824 switch (instr & 0x00400000) {
55827 switch (instr & 0x000f0000) {
55830 switch (instr & 0x00000fe0) {
55833 if (((instr & 0xf0000000) == 0xf0000000)) {
55834 UnallocatedA32(instr);
55837 Condition condition((instr >> 28) & 0xf);
55838 unsigned rd = (instr >> 12) & 0xf;
55839 unsigned rm = instr & 0xf;
55849 if (((instr & 0xf0000000) == 0xf0000000) ||
55850 ((instr & 0xfe0) == 0x60)) {
55851 UnallocatedA32(instr);
55854 Condition condition((instr >> 28) & 0xf);
55855 unsigned rd = (instr >> 12) & 0xf;
55856 unsigned rm = instr & 0xf;
55857 ImmediateShiftOperand shift_operand((instr >> 5) &
55859 (instr >> 7) &
55875 switch (instr & 0x00000fe0) {
55878 if (((instr & 0xf0000000) == 0xf0000000) ||
55879 ((instr & 0xf0000) == 0xd0000)) {
55880 UnallocatedA32(instr);
55883 Condition condition((instr >> 28) & 0xf);
55884 unsigned rd = (instr >> 12) & 0xf;
55885 unsigned rn = (instr >> 16) & 0xf;
55886 unsigned rm = instr & 0xf;
55896 if (((instr & 0xf0000000) == 0xf0000000) ||
55897 ((instr & 0xf0000) == 0xd0000) ||
55898 ((instr & 0xfe0) == 0x60)) {
55899 UnallocatedA32(instr);
55902 Condition condition((instr >> 28) & 0xf);
55903 unsigned rd = (instr >> 12) & 0xf;
55904 unsigned rn = (instr >> 16) & 0xf;
55905 unsigned rm = instr & 0xf;
55906 ImmediateShiftOperand shift_operand((instr >> 5) &
55908 (instr >> 7) &
55928 switch (instr & 0x00000fe0) {
55931 if (((instr & 0xf0000000) == 0xf0000000)) {
55932 UnallocatedA32(instr);
55935 Condition condition((instr >> 28) & 0xf);
55936 unsigned rd = (instr >> 12) & 0xf;
55937 unsigned rn = (instr >> 16) & 0xf;
55938 unsigned rm = instr & 0xf;
55948 if (((instr & 0xf0000000) == 0xf0000000) ||
55949 ((instr & 0xfe0) == 0x60)) {
55950 UnallocatedA32(instr);
55953 Condition condition((instr >> 28) & 0xf);
55954 unsigned rd = (instr >> 12) & 0xf;
55955 unsigned rn = (instr >> 16) & 0xf;
55956 unsigned rm = instr & 0xf;
55957 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
55958 (instr >> 7) &
55978 switch (instr & 0x00400000) {
55981 switch (instr & 0x00000fe0) {
55984 if (((instr & 0xf0000000) == 0xf0000000)) {
55985 UnallocatedA32(instr);
55988 Condition condition((instr >> 28) & 0xf);
55989 unsigned rd = (instr >> 12) & 0xf;
55990 unsigned rn = (instr >> 16) & 0xf;
55991 unsigned rm = instr & 0xf;
56001 if (((instr & 0xf0000000) == 0xf0000000) ||
56002 ((instr & 0xfe0) == 0x60)) {
56003 UnallocatedA32(instr);
56006 Condition condition((instr >> 28) & 0xf);
56007 unsigned rd = (instr >> 12) & 0xf;
56008 unsigned rn = (instr >> 16) & 0xf;
56009 unsigned rm = instr & 0xf;
56010 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
56011 (instr >> 7) &
56028 switch (instr & 0x00000fe0) {
56031 if (((instr & 0xf0000000) == 0xf0000000)) {
56032 UnallocatedA32(instr);
56035 Condition condition((instr >> 28) & 0xf);
56036 unsigned rd = (instr >> 12) & 0xf;
56037 unsigned rn = (instr >> 16) & 0xf;
56038 unsigned rm = instr & 0xf;
56047 if (((instr & 0xf0000000) == 0xf0000000) ||
56048 ((instr & 0xfe0) == 0x60)) {
56049 UnallocatedA32(instr);
56052 Condition condition((instr >> 28) & 0xf);
56053 unsigned rd = (instr >> 12) & 0xf;
56054 unsigned rn = (instr >> 16) & 0xf;
56055 unsigned rm = instr & 0xf;
56056 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
56057 (instr >> 7) &
56076 switch (instr & 0x000000e0) {
56079 switch (instr & 0x00000200) {
56082 if (((instr & 0xf0000000) == 0xf0000000)) {
56083 UnallocatedA32(instr);
56086 Condition condition((instr >> 28) & 0xf);
56087 unsigned rd = (instr >> 12) & 0xf;
56088 unsigned spec_reg = (instr >> 22) & 0x1;
56091 if (((instr & 0xfbf0fff) != 0x10f0000)) {
56092 UnpredictableA32(instr);
56098 if (((instr & 0xf0000000) == 0xf0000000)) {
56099 UnallocatedA32(instr);
56102 UnimplementedA32("MRS", instr);
56110 switch (instr & 0x00400200) {
56113 if (((instr & 0xf0000000) == 0xf0000000)) {
56114 UnallocatedA32(instr);
56117 unsigned rd = (instr >> 12) & 0xf;
56118 unsigned rn = (instr >> 16) & 0xf;
56119 unsigned rm = instr & 0xf;
56122 if (((instr & 0xff00ff0) != 0x1000040)) {
56123 UnpredictableA32(instr);
56129 if (((instr & 0xf0000000) == 0xf0000000)) {
56130 UnallocatedA32(instr);
56133 unsigned rd = (instr >> 12) & 0xf;
56134 unsigned rn = (instr >> 16) & 0xf;
56135 unsigned rm = instr & 0xf;
56138 if (((instr & 0xff00ff0) != 0x1000240)) {
56139 UnpredictableA32(instr);
56145 if (((instr & 0xf0000000) == 0xf0000000)) {
56146 UnallocatedA32(instr);
56149 unsigned rd = (instr >> 12) & 0xf;
56150 unsigned rn = (instr >> 16) & 0xf;
56151 unsigned rm = instr & 0xf;
56154 if (((instr & 0xff00ff0) != 0x1400040)) {
56155 UnpredictableA32(instr);
56161 if (((instr & 0xf0000000) == 0xf0000000)) {
56162 UnallocatedA32(instr);
56165 unsigned rd = (instr >> 12) & 0xf;
56166 unsigned rn = (instr >> 16) & 0xf;
56167 unsigned rm = instr & 0xf;
56170 if (((instr & 0xff00ff0) != 0x1400240)) {
56171 UnpredictableA32(instr);
56180 switch (instr & 0x00400000) {
56183 if (((instr & 0xf0000000) == 0xf0000000)) {
56184 UnallocatedA32(instr);
56187 Condition condition((instr >> 28) & 0xf);
56188 unsigned rd = (instr >> 16) & 0xf;
56189 unsigned rn = instr & 0xf;
56190 unsigned rm = (instr >> 8) & 0xf;
56191 unsigned ra = (instr >> 12) & 0xf;
56202 if (((instr & 0xf0000000) == 0xf0000000)) {
56203 UnallocatedA32(instr);
56206 Condition condition((instr >> 28) & 0xf);
56207 unsigned rdlo = (instr >> 12) & 0xf;
56208 unsigned rdhi = (instr >> 16) & 0xf;
56209 unsigned rn = instr & 0xf;
56210 unsigned rm = (instr >> 8) & 0xf;
56224 switch (instr & 0x00400000) {
56227 if (((instr & 0xf0000000) == 0xf0000000)) {
56228 UnallocatedA32(instr);
56231 Condition condition((instr >> 28) & 0xf);
56232 unsigned rd = (instr >> 16) & 0xf;
56233 unsigned rn = instr & 0xf;
56234 unsigned rm = (instr >> 8) & 0xf;
56235 unsigned ra = (instr >> 12) & 0xf;
56246 if (((instr & 0xf0000000) == 0xf0000000)) {
56247 UnallocatedA32(instr);
56250 Condition condition((instr >> 28) & 0xf);
56251 unsigned rdlo = (instr >> 12) & 0xf;
56252 unsigned rdhi = (instr >> 16) & 0xf;
56253 unsigned rn = instr & 0xf;
56254 unsigned rm = (instr >> 8) & 0xf;
56268 switch (instr & 0x00400000) {
56271 if (((instr & 0xf0000000) == 0xf0000000)) {
56272 UnallocatedA32(instr);
56275 Condition condition((instr >> 28) & 0xf);
56276 unsigned rd = (instr >> 16) & 0xf;
56277 unsigned rn = instr & 0xf;
56278 unsigned rm = (instr >> 8) & 0xf;
56279 unsigned ra = (instr >> 12) & 0xf;
56290 if (((instr & 0xf0000000) == 0xf0000000)) {
56291 UnallocatedA32(instr);
56294 Condition condition((instr >> 28) & 0xf);
56295 unsigned rdlo = (instr >> 12) & 0xf;
56296 unsigned rdhi = (instr >> 16) & 0xf;
56297 unsigned rn = instr & 0xf;
56298 unsigned rm = (instr >> 8) & 0xf;
56312 switch (instr & 0x00400000) {
56315 if (((instr & 0xf0000000) == 0xf0000000)) {
56316 UnallocatedA32(instr);
56319 Condition condition((instr >> 28) & 0xf);
56320 unsigned rd = (instr >> 16) & 0xf;
56321 unsigned rn = instr & 0xf;
56322 unsigned rm = (instr >> 8) & 0xf;
56323 unsigned ra = (instr >> 12) & 0xf;
56334 if (((instr & 0xf0000000) == 0xf0000000)) {
56335 UnallocatedA32(instr);
56338 Condition condition((instr >> 28) & 0xf);
56339 unsigned rdlo = (instr >> 12) & 0xf;
56340 unsigned rdhi = (instr >> 16) & 0xf;
56341 unsigned rn = instr & 0xf;
56342 unsigned rm = (instr >> 8) & 0xf;
56355 UnallocatedA32(instr);
56362 switch (instr & 0x000000e0) {
56365 switch (instr & 0x00000200) {
56368 if (((instr & 0xf0000000) == 0xf0000000)) {
56369 UnallocatedA32(instr);
56372 Condition condition((instr >> 28) & 0xf);
56374 ((instr >> 16) & 0xf) | ((instr >> 18) & 0x10);
56375 unsigned rn = instr & 0xf;
56380 if (((instr & 0xfb0fff0) != 0x120f000)) {
56381 UnpredictableA32(instr);
56387 if (((instr & 0xf0000000) == 0xf0000000)) {
56388 UnallocatedA32(instr);
56391 UnimplementedA32("MSR", instr);
56399 if ((instr & 0x00400000) == 0x00000000) {
56400 if (((instr & 0xf0000000) == 0xf0000000)) {
56401 UnallocatedA32(instr);
56404 Condition condition((instr >> 28) & 0xf);
56405 unsigned rm = instr & 0xf;
56408 if (((instr & 0xffffff0) != 0x12fff20)) {
56409 UnpredictableA32(instr);
56412 UnallocatedA32(instr);
56418 switch (instr & 0x00400200) {
56421 if (((instr & 0xf0000000) == 0xf0000000)) {
56422 UnallocatedA32(instr);
56425 unsigned rd = (instr >> 12) & 0xf;
56426 unsigned rn = (instr >> 16) & 0xf;
56427 unsigned rm = instr & 0xf;
56430 if (((instr & 0xff00ff0) != 0x1200040)) {
56431 UnpredictableA32(instr);
56437 if (((instr & 0xf0000000) == 0xf0000000)) {
56438 UnallocatedA32(instr);
56441 unsigned rd = (instr >> 12) & 0xf;
56442 unsigned rn = (instr >> 16) & 0xf;
56443 unsigned rm = instr & 0xf;
56446 if (((instr & 0xff00ff0) != 0x1200240)) {
56447 UnpredictableA32(instr);
56452 UnallocatedA32(instr);
56459 if ((instr & 0x00400000) == 0x00400000) {
56460 if (((instr & 0xf0000000) == 0xf0000000)) {
56461 UnallocatedA32(instr);
56464 UnimplementedA32("ERET", instr);
56466 UnallocatedA32(instr);
56472 switch (instr & 0x00400000) {
56475 if (((instr & 0xf0000000) == 0xf0000000)) {
56476 UnallocatedA32(instr);
56479 Condition condition((instr >> 28) & 0xf);
56480 unsigned rd = (instr >> 16) & 0xf;
56481 unsigned rn = instr & 0xf;
56482 unsigned rm = (instr >> 8) & 0xf;
56483 unsigned ra = (instr >> 12) & 0xf;
56494 if (((instr & 0xf0000000) == 0xf0000000)) {
56495 UnallocatedA32(instr);
56498 Condition condition((instr >> 28) & 0xf);
56499 unsigned rd = (instr >> 16) & 0xf;
56500 unsigned rn = instr & 0xf;
56501 unsigned rm = (instr >> 8) & 0xf;
56507 if (((instr & 0xff0f0f0) != 0x1600080)) {
56508 UnpredictableA32(instr);
56517 switch (instr & 0x00400000) {
56520 if (((instr & 0xf0000000) == 0xf0000000)) {
56521 UnallocatedA32(instr);
56524 Condition condition((instr >> 28) & 0xf);
56525 unsigned rd = (instr >> 16) & 0xf;
56526 unsigned rn = instr & 0xf;
56527 unsigned rm = (instr >> 8) & 0xf;
56533 if (((instr & 0xff0f0f0) != 0x12000a0)) {
56534 UnpredictableA32(instr);
56540 if (((instr & 0xf0000000) == 0xf0000000)) {
56541 UnallocatedA32(instr);
56544 Condition condition((instr >> 28) & 0xf);
56545 unsigned rd = (instr >> 16) & 0xf;
56546 unsigned rn = instr & 0xf;
56547 unsigned rm = (instr >> 8) & 0xf;
56553 if (((instr & 0xff0f0f0) != 0x16000a0)) {
56554 UnpredictableA32(instr);
56563 switch (instr & 0x00400000) {
56566 if (((instr & 0xf0000000) == 0xf0000000)) {
56567 UnallocatedA32(instr);
56570 Condition condition((instr >> 28) & 0xf);
56571 unsigned rd = (instr >> 16) & 0xf;
56572 unsigned rn = instr & 0xf;
56573 unsigned rm = (instr >> 8) & 0xf;
56574 unsigned ra = (instr >> 12) & 0xf;
56585 if (((instr & 0xf0000000) == 0xf0000000)) {
56586 UnallocatedA32(instr);
56589 Condition condition((instr >> 28) & 0xf);
56590 unsigned rd = (instr >> 16) & 0xf;
56591 unsigned rn = instr & 0xf;
56592 unsigned rm = (instr >> 8) & 0xf;
56598 if (((instr & 0xff0f0f0) != 0x16000c0)) {
56599 UnpredictableA32(instr);
56608 switch (instr & 0x00400000) {
56611 if (((instr & 0xf0000000) == 0xf0000000)) {
56612 UnallocatedA32(instr);
56615 Condition condition((instr >> 28) & 0xf);
56616 unsigned rd = (instr >> 16) & 0xf;
56617 unsigned rn = instr & 0xf;
56618 unsigned rm = (instr >> 8) & 0xf;
56624 if (((instr & 0xff0f0f0) != 0x12000e0)) {
56625 UnpredictableA32(instr);
56631 if (((instr & 0xf0000000) == 0xf0000000)) {
56632 UnallocatedA32(instr);
56635 Condition condition((instr >> 28) & 0xf);
56636 unsigned rd = (instr >> 16) & 0xf;
56637 unsigned rn = instr & 0xf;
56638 unsigned rm = (instr >> 8) & 0xf;
56644 if (((instr & 0xff0f0f0) != 0x16000e0)) {
56645 UnpredictableA32(instr);
56657 switch (instr & 0x00400000) {
56660 switch (instr & 0x00000fe0) {
56663 if (((instr & 0xf0000000) == 0xf0000000)) {
56664 UnallocatedA32(instr);
56667 Condition condition((instr >> 28) & 0xf);
56668 unsigned rd = (instr >> 12) & 0xf;
56669 unsigned rn = (instr >> 16) & 0xf;
56670 unsigned rm = instr & 0xf;
56680 if (((instr & 0xf0000000) == 0xf0000000) ||
56681 ((instr & 0xfe0) == 0x60)) {
56682 UnallocatedA32(instr);
56685 Condition condition((instr >> 28) & 0xf);
56686 unsigned rd = (instr >> 12) & 0xf;
56687 unsigned rn = (instr >> 16) & 0xf;
56688 unsigned rm = instr & 0xf;
56689 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
56690 (instr >> 7) &
56707 switch (instr & 0x00000fe0) {
56710 if (((instr & 0xf0000000) == 0xf0000000)) {
56711 UnallocatedA32(instr);
56714 Condition condition((instr >> 28) & 0xf);
56715 unsigned rd = (instr >> 12) & 0xf;
56716 unsigned rn = (instr >> 16) & 0xf;
56717 unsigned rm = instr & 0xf;
56727 if (((instr & 0xf0000000) == 0xf0000000) ||
56728 ((instr & 0xfe0) == 0x60)) {
56729 UnallocatedA32(instr);
56732 Condition condition((instr >> 28) & 0xf);
56733 unsigned rd = (instr >> 12) & 0xf;
56734 unsigned rn = (instr >> 16) & 0xf;
56735 unsigned rm = instr & 0xf;
56736 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
56737 (instr >> 7) &
56757 switch (instr & 0x00400000) {
56760 switch (instr & 0x00000fe0) {
56763 if (((instr & 0xf0000000) == 0xf0000000)) {
56764 UnallocatedA32(instr);
56767 if (((instr & 0xf0000000) != 0xf0000000)) {
56768 Condition condition((instr >> 28) & 0xf);
56769 unsigned rd = (instr >> 12) & 0xf;
56770 unsigned rm = instr & 0xf;
56773 if (((instr & 0xfff0ff0) != 0x1a00060)) {
56774 UnpredictableA32(instr);
56778 Condition condition((instr >> 28) & 0xf);
56779 unsigned rd = (instr >> 12) & 0xf;
56780 unsigned rm = instr & 0xf;
56786 if (((instr & 0xfff0ff0) != 0x1a00060)) {
56787 UnpredictableA32(instr);
56792 if (((instr & 0xf0000000) == 0xf0000000) ||
56793 ((instr & 0xfe0) == 0x60)) {
56794 UnallocatedA32(instr);
56797 if (((Uint32((instr >> 5)) & Uint32(0x3)) ==
56799 ((instr & 0xf0000000) != 0xf0000000)) {
56800 Condition condition((instr >> 28) & 0xf);
56801 unsigned rd = (instr >> 12) & 0xf;
56802 unsigned rm = instr & 0xf;
56803 uint32_t amount = (instr >> 7) & 0x1f;
56811 if (((instr & 0xfff0070) != 0x1a00040)) {
56812 UnpredictableA32(instr);
56816 if (((Uint32((instr >> 5)) & Uint32(0x3)) ==
56818 ((instr & 0xf0000000) != 0xf0000000) &&
56819 ((instr & 0x00000f80) != 0x00000000)) {
56820 Condition condition((instr >> 28) & 0xf);
56821 unsigned rd = (instr >> 12) & 0xf;
56822 unsigned rm = instr & 0xf;
56823 uint32_t amount = (instr >> 7) & 0x1f;
56830 if (((instr & 0xfff0070) != 0x1a00000)) {
56831 UnpredictableA32(instr);
56835 if (((Uint32((instr >> 5)) & Uint32(0x3)) ==
56837 ((instr & 0xf0000000) != 0xf0000000)) {
56838 Condition condition((instr >> 28) & 0xf);
56839 unsigned rd = (instr >> 12) & 0xf;
56840 unsigned rm = instr & 0xf;
56841 uint32_t amount = (instr >> 7) & 0x1f;
56849 if (((instr & 0xfff0070) != 0x1a00020)) {
56850 UnpredictableA32(instr);
56854 if (((Uint32((instr >> 5)) & Uint32(0x3)) ==
56856 ((instr & 0xf0000000) != 0xf0000000) &&
56857 ((instr & 0x00000f80) != 0x00000000)) {
56858 Condition condition((instr >> 28) & 0xf);
56859 unsigned rd = (instr >> 12) & 0xf;
56860 unsigned rm = instr & 0xf;
56861 uint32_t amount = (instr >> 7) & 0x1f;
56868 if (((instr & 0xfff0070) != 0x1a00060)) {
56869 UnpredictableA32(instr);
56873 Condition condition((instr >> 28) & 0xf);
56874 unsigned rd = (instr >> 12) & 0xf;
56875 unsigned rm = instr & 0xf;
56876 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
56877 (instr >> 7) &
56886 if (((instr & 0xfff0010) != 0x1a00000)) {
56887 UnpredictableA32(instr);
56896 switch (instr & 0x00000fe0) {
56899 if (((instr & 0xf0000000) == 0xf0000000)) {
56900 UnallocatedA32(instr);
56903 Condition condition((instr >> 28) & 0xf);
56904 unsigned rd = (instr >> 12) & 0xf;
56905 unsigned rm = instr & 0xf;
56911 if (((instr & 0xfff0ff0) != 0x1e00060)) {
56912 UnpredictableA32(instr);
56917 if (((instr & 0xf0000000) == 0xf0000000) ||
56918 ((instr & 0xfe0) == 0x60)) {
56919 UnallocatedA32(instr);
56922 Condition condition((instr >> 28) & 0xf);
56923 unsigned rd = (instr >> 12) & 0xf;
56924 unsigned rm = instr & 0xf;
56925 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
56926 (instr >> 7) &
56935 if (((instr & 0xfff0010) != 0x1e00000)) {
56936 UnpredictableA32(instr);
56951 switch (instr & 0x00400080) {
56954 switch (instr & 0x01a00000) {
56957 if (((instr & 0xf0000000) == 0xf0000000)) {
56958 UnallocatedA32(instr);
56961 Condition condition((instr >> 28) & 0xf);
56962 unsigned rd = (instr >> 12) & 0xf;
56963 unsigned rn = (instr >> 16) & 0xf;
56964 unsigned rm = instr & 0xf;
56965 Shift shift((instr >> 5) & 0x3);
56966 unsigned rs = (instr >> 8) & 0xf;
56977 if (((instr & 0xf0000000) == 0xf0000000)) {
56978 UnallocatedA32(instr);
56981 Condition condition((instr >> 28) & 0xf);
56982 unsigned rd = (instr >> 12) & 0xf;
56983 unsigned rn = (instr >> 16) & 0xf;
56984 unsigned rm = instr & 0xf;
56985 Shift shift((instr >> 5) & 0x3);
56986 unsigned rs = (instr >> 8) & 0xf;
56997 if (((instr & 0xf0000000) == 0xf0000000)) {
56998 UnallocatedA32(instr);
57001 Condition condition((instr >> 28) & 0xf);
57002 unsigned rd = (instr >> 12) & 0xf;
57003 unsigned rn = (instr >> 16) & 0xf;
57004 unsigned rm = instr & 0xf;
57005 Shift shift((instr >> 5) & 0x3);
57006 unsigned rs = (instr >> 8) & 0xf;
57017 if (((instr & 0xf0000000) == 0xf0000000)) {
57018 UnallocatedA32(instr);
57021 Condition condition((instr >> 28) & 0xf);
57022 unsigned rd = (instr >> 12) & 0xf;
57023 unsigned rn = (instr >> 16) & 0xf;
57024 unsigned rm = instr & 0xf;
57025 Shift shift((instr >> 5) & 0x3);
57026 unsigned rs = (instr >> 8) & 0xf;
57037 switch (instr & 0x00000060) {
57040 if (((instr & 0xf0000000) == 0xf0000000)) {
57041 UnallocatedA32(instr);
57044 Condition condition((instr >> 28) & 0xf);
57045 unsigned rd = (instr >> 12) & 0xf;
57046 unsigned rm = instr & 0xf;
57047 unsigned rn = (instr >> 16) & 0xf;
57053 if (((instr & 0xff00ff0) != 0x1000050)) {
57054 UnpredictableA32(instr);
57060 if (((instr & 0xf0000000) == 0xf0000000)) {
57061 UnallocatedA32(instr);
57064 uint32_t imm = (instr & 0xf) | ((instr >> 4) & 0xfff0);
57070 UnallocatedA32(instr);
57077 switch (instr & 0x00000060) {
57080 if (((instr & 0xf0000000) == 0xf0000000)) {
57081 UnallocatedA32(instr);
57084 Condition condition((instr >> 28) & 0xf);
57085 unsigned rm = instr & 0xf;
57088 if (((instr & 0xffffff0) != 0x12fff10)) {
57089 UnpredictableA32(instr);
57095 if (((instr & 0xf0000000) == 0xf0000000)) {
57096 UnallocatedA32(instr);
57099 Condition condition((instr >> 28) & 0xf);
57100 unsigned rm = instr & 0xf;
57103 if (((instr & 0xffffff0) != 0x12fff30)) {
57104 UnpredictableA32(instr);
57110 if (((instr & 0xf0000000) == 0xf0000000)) {
57111 UnallocatedA32(instr);
57114 Condition condition((instr >> 28) & 0xf);
57115 unsigned rd = (instr >> 12) & 0xf;
57116 unsigned rm = instr & 0xf;
57117 unsigned rn = (instr >> 16) & 0xf;
57123 if (((instr & 0xff00ff0) != 0x1200050)) {
57124 UnpredictableA32(instr);
57130 if (((instr & 0xf0000000) == 0xf0000000)) {
57131 UnallocatedA32(instr);
57134 uint32_t imm = (instr & 0xf) | ((instr >> 4) & 0xfff0);
57144 if (((instr & 0xf0000000) == 0xf0000000)) {
57145 UnallocatedA32(instr);
57148 Condition condition((instr >> 28) & 0xf);
57149 unsigned rd = (instr >> 12) & 0xf;
57150 unsigned rn = (instr >> 16) & 0xf;
57151 unsigned rm = instr & 0xf;
57152 Shift shift((instr >> 5) & 0x3);
57153 unsigned rs = (instr >> 8) & 0xf;
57164 if (((instr & 0xf0000000) == 0xf0000000)) {
57165 UnallocatedA32(instr);
57168 if (((Uint32((instr >> 5)) & Uint32(0x3)) == Uint32(0x2)) &&
57169 ((instr & 0xf0000000) != 0xf0000000)) {
57170 Condition condition((instr >> 28) & 0xf);
57171 unsigned rd = (instr >> 12) & 0xf;
57172 unsigned rm = instr & 0xf;
57173 unsigned rs = (instr >> 8) & 0xf;
57180 if (((instr & 0xfff00f0) != 0x1a00050)) {
57181 UnpredictableA32(instr);
57185 if (((Uint32((instr >> 5)) & Uint32(0x3)) == Uint32(0x0)) &&
57186 ((instr & 0xf0000000) != 0xf0000000)) {
57187 Condition condition((instr >> 28) & 0xf);
57188 unsigned rd = (instr >> 12) & 0xf;
57189 unsigned rm = instr & 0xf;
57190 unsigned rs = (instr >> 8) & 0xf;
57197 if (((instr & 0xfff00f0) != 0x1a00010)) {
57198 UnpredictableA32(instr);
57202 if (((Uint32((instr >> 5)) & Uint32(0x3)) == Uint32(0x1)) &&
57203 ((instr & 0xf0000000) != 0xf0000000)) {
57204 Condition condition((instr >> 28) & 0xf);
57205 unsigned rd = (instr >> 12) & 0xf;
57206 unsigned rm = instr & 0xf;
57207 unsigned rs = (instr >> 8) & 0xf;
57214 if (((instr & 0xfff00f0) != 0x1a00030)) {
57215 UnpredictableA32(instr);
57219 if (((Uint32((instr >> 5)) & Uint32(0x3)) == Uint32(0x3)) &&
57220 ((instr & 0xf0000000) != 0xf0000000)) {
57221 Condition condition((instr >> 28) & 0xf);
57222 unsigned rd = (instr >> 12) & 0xf;
57223 unsigned rm = instr & 0xf;
57224 unsigned rs = (instr >> 8) & 0xf;
57231 if (((instr & 0xfff00f0) != 0x1a00070)) {
57232 UnpredictableA32(instr);
57236 Condition condition((instr >> 28) & 0xf);
57237 unsigned rd = (instr >> 12) & 0xf;
57238 unsigned rm = instr & 0xf;
57239 Shift shift((instr >> 5) & 0x3);
57240 unsigned rs = (instr >> 8) & 0xf;
57246 if (((instr & 0xfff0090) != 0x1a00010)) {
57247 UnpredictableA32(instr);
57256 switch (instr & 0x01200060) {
57259 switch (instr & 0x00800000) {
57262 if (((instr & 0xf0000000) == 0xf0000000)) {
57263 UnallocatedA32(instr);
57266 Condition condition((instr >> 28) & 0xf);
57267 unsigned rd = (instr >> 16) & 0xf;
57268 unsigned rn = instr & 0xf;
57269 unsigned rm = (instr >> 8) & 0xf;
57276 if (((instr & 0xff0f0f0) != 0x90)) {
57277 UnpredictableA32(instr);
57283 if (((instr & 0xf0000000) == 0xf0000000)) {
57284 UnallocatedA32(instr);
57287 Condition condition((instr >> 28) & 0xf);
57288 unsigned rdlo = (instr >> 12) & 0xf;
57289 unsigned rdhi = (instr >> 16) & 0xf;
57290 unsigned rn = instr & 0xf;
57291 unsigned rm = (instr >> 8) & 0xf;
57305 if (((instr & 0xf0000000) == 0xf0000000)) {
57306 UnallocatedA32(instr);
57309 Condition condition((instr >> 28) & 0xf);
57310 unsigned rt = (instr >> 12) & 0xf;
57311 unsigned rn = (instr >> 16) & 0xf;
57312 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
57313 unsigned rm = instr & 0xf;
57322 if (((instr & 0xf700ff0) != 0xb0)) {
57323 UnpredictableA32(instr);
57329 if (((instr & 0xf0000000) == 0xf0000000)) {
57330 UnallocatedA32(instr);
57333 Condition condition((instr >> 28) & 0xf);
57334 unsigned rt = (instr >> 12) & 0xf;
57335 unsigned rn = (instr >> 16) & 0xf;
57336 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
57337 unsigned rm = instr & 0xf;
57346 if (((instr & 0xf700ff0) != 0xd0)) {
57347 UnpredictableA32(instr);
57353 if (((instr & 0xf0000000) == 0xf0000000)) {
57354 UnallocatedA32(instr);
57357 Condition condition((instr >> 28) & 0xf);
57358 unsigned rt = (instr >> 12) & 0xf;
57359 unsigned rn = (instr >> 16) & 0xf;
57360 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
57361 unsigned rm = instr & 0xf;
57370 if (((instr & 0xf700ff0) != 0xf0)) {
57371 UnpredictableA32(instr);
57377 switch (instr & 0x00800000) {
57380 if (((instr & 0xf0000000) == 0xf0000000)) {
57381 UnallocatedA32(instr);
57384 Condition condition((instr >> 28) & 0xf);
57385 unsigned rd = (instr >> 16) & 0xf;
57386 unsigned rn = instr & 0xf;
57387 unsigned rm = (instr >> 8) & 0xf;
57388 unsigned ra = (instr >> 12) & 0xf;
57399 if (((instr & 0xf0000000) == 0xf0000000)) {
57400 UnallocatedA32(instr);
57403 Condition condition((instr >> 28) & 0xf);
57404 unsigned rdlo = (instr >> 12) & 0xf;
57405 unsigned rdhi = (instr >> 16) & 0xf;
57406 unsigned rn = instr & 0xf;
57407 unsigned rm = (instr >> 8) & 0xf;
57421 if (((instr & 0xf0000000) == 0xf0000000)) {
57422 UnallocatedA32(instr);
57425 UnimplementedA32("STRHT", instr);
57430 switch (instr & 0x00800300) {
57433 if (((instr & 0xf0000000) == 0xf0000000)) {
57434 UnallocatedA32(instr);
57437 Condition condition((instr >> 28) & 0xf);
57438 unsigned rt = instr & 0xf;
57439 unsigned rn = (instr >> 16) & 0xf;
57444 if (((instr & 0xff0fff0) != 0x180fc90)) {
57445 UnpredictableA32(instr);
57451 if (((instr & 0xf0000000) == 0xf0000000)) {
57452 UnallocatedA32(instr);
57455 Condition condition((instr >> 28) & 0xf);
57456 unsigned rd = (instr >> 12) & 0xf;
57457 unsigned rt = instr & 0xf;
57458 unsigned rn = (instr >> 16) & 0xf;
57464 if (((instr & 0xff00ff0) != 0x1800e90)) {
57465 UnpredictableA32(instr);
57471 if (((instr & 0xf0000000) == 0xf0000000)) {
57472 UnallocatedA32(instr);
57475 Condition condition((instr >> 28) & 0xf);
57476 unsigned rd = (instr >> 12) & 0xf;
57477 unsigned rt = instr & 0xf;
57478 unsigned rn = (instr >> 16) & 0xf;
57484 if (((instr & 0xff00ff0) != 0x1800f90)) {
57485 UnpredictableA32(instr);
57490 UnallocatedA32(instr);
57497 if (((instr & 0xf0000000) == 0xf0000000)) {
57498 UnallocatedA32(instr);
57501 Condition condition((instr >> 28) & 0xf);
57502 unsigned rt = (instr >> 12) & 0xf;
57503 unsigned rn = (instr >> 16) & 0xf;
57504 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
57505 unsigned rm = instr & 0xf;
57515 if (((instr & 0xf700ff0) != 0x10000b0)) {
57516 UnpredictableA32(instr);
57522 if (((instr & 0xf0000000) == 0xf0000000)) {
57523 UnallocatedA32(instr);
57526 Condition condition((instr >> 28) & 0xf);
57527 unsigned rt = (instr >> 12) & 0xf;
57528 unsigned rn = (instr >> 16) & 0xf;
57529 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
57530 unsigned rm = instr & 0xf;
57540 if (((instr & 0xf700ff0) != 0x10000d0)) {
57541 UnpredictableA32(instr);
57547 if (((instr & 0xf0000000) == 0xf0000000)) {
57548 UnallocatedA32(instr);
57551 Condition condition((instr >> 28) & 0xf);
57552 unsigned rt = (instr >> 12) & 0xf;
57553 unsigned rn = (instr >> 16) & 0xf;
57554 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
57555 unsigned rm = instr & 0xf;
57565 if (((instr & 0xf700ff0) != 0x10000f0)) {
57566 UnpredictableA32(instr);
57572 switch (instr & 0x00800300) {
57575 if (((instr & 0xf0000000) == 0xf0000000)) {
57576 UnallocatedA32(instr);
57579 Condition condition((instr >> 28) & 0xf);
57580 unsigned rd = (instr >> 12) & 0xf;
57581 unsigned rt = instr & 0xf;
57582 unsigned rn = (instr >> 16) & 0xf;
57589 if (((instr & 0xff00ff0) != 0x1a00e90)) {
57590 UnpredictableA32(instr);
57596 if (((instr & 0xf0000000) == 0xf0000000)) {
57597 UnallocatedA32(instr);
57600 Condition condition((instr >> 28) & 0xf);
57601 unsigned rd = (instr >> 12) & 0xf;
57602 unsigned rt = instr & 0xf;
57603 unsigned rn = (instr >> 16) & 0xf;
57610 if (((instr & 0xff00ff0) != 0x1a00f90)) {
57611 UnpredictableA32(instr);
57616 UnallocatedA32(instr);
57623 if (((instr & 0xf0000000) == 0xf0000000)) {
57624 UnallocatedA32(instr);
57627 Condition condition((instr >> 28) & 0xf);
57628 unsigned rt = (instr >> 12) & 0xf;
57629 unsigned rn = (instr >> 16) & 0xf;
57630 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
57631 unsigned rm = instr & 0xf;
57641 if (((instr & 0xf700ff0) != 0x12000b0)) {
57642 UnpredictableA32(instr);
57648 if (((instr & 0xf0000000) == 0xf0000000)) {
57649 UnallocatedA32(instr);
57652 Condition condition((instr >> 28) & 0xf);
57653 unsigned rt = (instr >> 12) & 0xf;
57654 unsigned rn = (instr >> 16) & 0xf;
57655 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
57656 unsigned rm = instr & 0xf;
57666 if (((instr & 0xf700ff0) != 0x12000d0)) {
57667 UnpredictableA32(instr);
57673 if (((instr & 0xf0000000) == 0xf0000000)) {
57674 UnallocatedA32(instr);
57677 Condition condition((instr >> 28) & 0xf);
57678 unsigned rt = (instr >> 12) & 0xf;
57679 unsigned rn = (instr >> 16) & 0xf;
57680 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
57681 unsigned rm = instr & 0xf;
57691 if (((instr & 0xf700ff0) != 0x12000f0)) {
57692 UnpredictableA32(instr);
57697 UnallocatedA32(instr);
57704 switch (instr & 0x01a00000) {
57707 if (((instr & 0xf0000000) == 0xf0000000)) {
57708 UnallocatedA32(instr);
57711 Condition condition((instr >> 28) & 0xf);
57712 unsigned rd = (instr >> 12) & 0xf;
57713 unsigned rn = (instr >> 16) & 0xf;
57714 unsigned rm = instr & 0xf;
57715 Shift shift((instr >> 5) & 0x3);
57716 unsigned rs = (instr >> 8) & 0xf;
57727 if (((instr & 0xf0000000) == 0xf0000000)) {
57728 UnallocatedA32(instr);
57731 Condition condition((instr >> 28) & 0xf);
57732 unsigned rd = (instr >> 12) & 0xf;
57733 unsigned rn = (instr >> 16) & 0xf;
57734 unsigned rm = instr & 0xf;
57735 Shift shift((instr >> 5) & 0x3);
57736 unsigned rs = (instr >> 8) & 0xf;
57747 if (((instr & 0xf0000000) == 0xf0000000)) {
57748 UnallocatedA32(instr);
57751 Condition condition((instr >> 28) & 0xf);
57752 unsigned rd = (instr >> 12) & 0xf;
57753 unsigned rn = (instr >> 16) & 0xf;
57754 unsigned rm = instr & 0xf;
57755 Shift shift((instr >> 5) & 0x3);
57756 unsigned rs = (instr >> 8) & 0xf;
57767 if (((instr & 0xf0000000) == 0xf0000000)) {
57768 UnallocatedA32(instr);
57771 Condition condition((instr >> 28) & 0xf);
57772 unsigned rd = (instr >> 12) & 0xf;
57773 unsigned rn = (instr >> 16) & 0xf;
57774 unsigned rm = instr & 0xf;
57775 Shift shift((instr >> 5) & 0x3);
57776 unsigned rs = (instr >> 8) & 0xf;
57786 switch (instr & 0x00000060) {
57789 if (((instr & 0xf0000000) == 0xf0000000)) {
57790 UnallocatedA32(instr);
57793 Condition condition((instr >> 28) & 0xf);
57794 unsigned rd = (instr >> 12) & 0xf;
57795 unsigned rm = instr & 0xf;
57796 unsigned rn = (instr >> 16) & 0xf;
57802 if (((instr & 0xff00ff0) != 0x1400050)) {
57803 UnpredictableA32(instr);
57809 if (((instr & 0xf0000000) == 0xf0000000)) {
57810 UnallocatedA32(instr);
57813 uint32_t imm = (instr & 0xf) | ((instr >> 4) & 0xfff0);
57819 UnallocatedA32(instr);
57826 switch (instr & 0x00000060) {
57829 if (((instr & 0xf0000000) == 0xf0000000)) {
57830 UnallocatedA32(instr);
57833 Condition condition((instr >> 28) & 0xf);
57834 unsigned rd = (instr >> 12) & 0xf;
57835 unsigned rm = instr & 0xf;
57838 if (((instr & 0xfff0ff0) != 0x16f0f10)) {
57839 UnpredictableA32(instr);
57845 if (((instr & 0xf0000000) == 0xf0000000)) {
57846 UnallocatedA32(instr);
57849 Condition condition((instr >> 28) & 0xf);
57850 unsigned rd = (instr >> 12) & 0xf;
57851 unsigned rm = instr & 0xf;
57852 unsigned rn = (instr >> 16) & 0xf;
57858 if (((instr & 0xff00ff0) != 0x1600050)) {
57859 UnpredictableA32(instr);
57865 if (((instr & 0xf0000000) == 0xf0000000)) {
57866 UnallocatedA32(instr);
57869 UnimplementedA32("SMC", instr);
57873 UnallocatedA32(instr);
57880 if (((instr & 0xf0000000) == 0xf0000000)) {
57881 UnallocatedA32(instr);
57884 Condition condition((instr >> 28) & 0xf);
57885 unsigned rd = (instr >> 12) & 0xf;
57886 unsigned rn = (instr >> 16) & 0xf;
57887 unsigned rm = instr & 0xf;
57888 Shift shift((instr >> 5) & 0x3);
57889 unsigned rs = (instr >> 8) & 0xf;
57900 if (((instr & 0xf0000000) == 0xf0000000)) {
57901 UnallocatedA32(instr);
57904 Condition condition((instr >> 28) & 0xf);
57905 unsigned rd = (instr >> 12) & 0xf;
57906 unsigned rm = instr & 0xf;
57907 Shift shift((instr >> 5) & 0x3);
57908 unsigned rs = (instr >> 8) & 0xf;
57914 if (((instr & 0xfff0090) != 0x1e00010)) {
57915 UnpredictableA32(instr);
57924 switch (instr & 0x00000060) {
57927 switch (instr & 0x01a00000) {
57930 if (((instr & 0xf0000000) == 0xf0000000)) {
57931 UnallocatedA32(instr);
57934 Condition condition((instr >> 28) & 0xf);
57935 unsigned rdlo = (instr >> 12) & 0xf;
57936 unsigned rdhi = (instr >> 16) & 0xf;
57937 unsigned rn = instr & 0xf;
57938 unsigned rm = (instr >> 8) & 0xf;
57949 if (((instr & 0xf0000000) == 0xf0000000)) {
57950 UnallocatedA32(instr);
57953 Condition condition((instr >> 28) & 0xf);
57954 unsigned rd = (instr >> 16) & 0xf;
57955 unsigned rn = instr & 0xf;
57956 unsigned rm = (instr >> 8) & 0xf;
57957 unsigned ra = (instr >> 12) & 0xf;
57968 if (((instr & 0xf0000000) == 0xf0000000)) {
57969 UnallocatedA32(instr);
57972 Condition condition((instr >> 28) & 0xf);
57973 unsigned rdlo = (instr >> 12) & 0xf;
57974 unsigned rdhi = (instr >> 16) & 0xf;
57975 unsigned rn = instr & 0xf;
57976 unsigned rm = (instr >> 8) & 0xf;
57987 if (((instr & 0xf0000000) == 0xf0000000)) {
57988 UnallocatedA32(instr);
57991 Condition condition((instr >> 28) & 0xf);
57992 unsigned rdlo = (instr >> 12) & 0xf;
57993 unsigned rdhi = (instr >> 16) & 0xf;
57994 unsigned rn = instr & 0xf;
57995 unsigned rm = (instr >> 8) & 0xf;
58006 switch (instr & 0x00000300) {
58009 if (((instr & 0xf0000000) == 0xf0000000)) {
58010 UnallocatedA32(instr);
58013 Condition condition((instr >> 28) & 0xf);
58014 unsigned rt = instr & 0xf;
58015 unsigned rn = (instr >> 16) & 0xf;
58020 if (((instr & 0xff0fff0) != 0x1c0fc90)) {
58021 UnpredictableA32(instr);
58027 if (((instr & 0xf0000000) == 0xf0000000)) {
58028 UnallocatedA32(instr);
58031 Condition condition((instr >> 28) & 0xf);
58032 unsigned rd = (instr >> 12) & 0xf;
58033 unsigned rt = instr & 0xf;
58034 unsigned rn = (instr >> 16) & 0xf;
58040 if (((instr & 0xff00ff0) != 0x1c00e90)) {
58041 UnpredictableA32(instr);
58047 if (((instr & 0xf0000000) == 0xf0000000)) {
58048 UnallocatedA32(instr);
58051 Condition condition((instr >> 28) & 0xf);
58052 unsigned rd = (instr >> 12) & 0xf;
58053 unsigned rt = instr & 0xf;
58054 unsigned rn = (instr >> 16) & 0xf;
58060 if (((instr & 0xff00ff0) != 0x1c00f90)) {
58061 UnpredictableA32(instr);
58066 UnallocatedA32(instr);
58073 switch (instr & 0x00000300) {
58076 if (((instr & 0xf0000000) == 0xf0000000)) {
58077 UnallocatedA32(instr);
58080 Condition condition((instr >> 28) & 0xf);
58081 unsigned rt = instr & 0xf;
58082 unsigned rn = (instr >> 16) & 0xf;
58087 if (((instr & 0xff0fff0) != 0x1e0fc90)) {
58088 UnpredictableA32(instr);
58094 if (((instr & 0xf0000000) == 0xf0000000)) {
58095 UnallocatedA32(instr);
58098 Condition condition((instr >> 28) & 0xf);
58099 unsigned rd = (instr >> 12) & 0xf;
58100 unsigned rt = instr & 0xf;
58101 unsigned rn = (instr >> 16) & 0xf;
58107 if (((instr & 0xff00ff0) != 0x1e00e90)) {
58108 UnpredictableA32(instr);
58114 if (((instr & 0xf0000000) == 0xf0000000)) {
58115 UnallocatedA32(instr);
58118 Condition condition((instr >> 28) & 0xf);
58119 unsigned rd = (instr >> 12) & 0xf;
58120 unsigned rt = instr & 0xf;
58121 unsigned rn = (instr >> 16) & 0xf;
58127 if (((instr & 0xff00ff0) != 0x1e00f90)) {
58128 UnpredictableA32(instr);
58133 UnallocatedA32(instr);
58139 UnallocatedA32(instr);
58146 switch (instr & 0x01200000) {
58149 if (((instr & 0xf0000000) == 0xf0000000)) {
58150 UnallocatedA32(instr);
58153 Condition condition((instr >> 28) & 0xf);
58154 unsigned rt = (instr >> 12) & 0xf;
58155 unsigned rn = (instr >> 16) & 0xf;
58156 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
58157 int32_t offset = (instr & 0xf) | ((instr >> 4) & 0xf0);
58167 if (((instr & 0xf0000000) == 0xf0000000)) {
58168 UnallocatedA32(instr);
58171 UnimplementedA32("STRHT", instr);
58176 if (((instr & 0xf0000000) == 0xf0000000)) {
58177 UnallocatedA32(instr);
58180 Condition condition((instr >> 28) & 0xf);
58181 unsigned rt = (instr >> 12) & 0xf;
58182 unsigned rn = (instr >> 16) & 0xf;
58183 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
58184 int32_t offset = (instr & 0xf) | ((instr >> 4) & 0xf0);
58194 if (((instr & 0xf0000000) == 0xf0000000)) {
58195 UnallocatedA32(instr);
58198 Condition condition((instr >> 28) & 0xf);
58199 unsigned rt = (instr >> 12) & 0xf;
58200 unsigned rn = (instr >> 16) & 0xf;
58201 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
58202 int32_t offset = (instr & 0xf) | ((instr >> 4) & 0xf0);
58215 switch (instr & 0x000f0000) {
58218 if (((instr & 0xf0000000) == 0xf0000000)) {
58219 UnallocatedA32(instr);
58222 Condition condition((instr >> 28) & 0xf);
58223 unsigned rt = (instr >> 12) & 0xf;
58224 uint32_t U = (instr >> 23) & 0x1;
58225 int32_t imm = (instr & 0xf) | ((instr >> 4) & 0xf0);
58241 if (((instr & 0xf7f00f0) != 0x14f00d0)) {
58242 UnpredictableA32(instr);
58247 switch (instr & 0x01200000) {
58250 if (((instr & 0xf0000000) == 0xf0000000) ||
58251 ((instr & 0xf0000) == 0xf0000)) {
58252 UnallocatedA32(instr);
58255 Condition condition((instr >> 28) & 0xf);
58256 unsigned rt = (instr >> 12) & 0xf;
58257 unsigned rn = (instr >> 16) & 0xf;
58258 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
58261 (instr & 0xf) | ((instr >> 4) & 0xf0);
58274 if (((instr & 0xf0000000) == 0xf0000000) ||
58275 ((instr & 0xf0000) == 0xf0000)) {
58276 UnallocatedA32(instr);
58279 Condition condition((instr >> 28) & 0xf);
58280 unsigned rt = (instr >> 12) & 0xf;
58281 unsigned rn = (instr >> 16) & 0xf;
58282 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
58285 (instr & 0xf) | ((instr >> 4) & 0xf0);
58298 if (((instr & 0xf0000000) == 0xf0000000) ||
58299 ((instr & 0xf0000) == 0xf0000)) {
58300 UnallocatedA32(instr);
58303 Condition condition((instr >> 28) & 0xf);
58304 unsigned rt = (instr >> 12) & 0xf;
58305 unsigned rn = (instr >> 16) & 0xf;
58306 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
58309 (instr & 0xf) | ((instr >> 4) & 0xf0);
58321 UnallocatedA32(instr);
58331 switch (instr & 0x01200000) {
58334 if (((instr & 0xf0000000) == 0xf0000000)) {
58335 UnallocatedA32(instr);
58338 Condition condition((instr >> 28) & 0xf);
58339 unsigned rt = (instr >> 12) & 0xf;
58340 unsigned rn = (instr >> 16) & 0xf;
58341 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
58342 int32_t offset = (instr & 0xf) | ((instr >> 4) & 0xf0);
58352 if (((instr & 0xf0000000) == 0xf0000000)) {
58353 UnallocatedA32(instr);
58356 Condition condition((instr >> 28) & 0xf);
58357 unsigned rt = (instr >> 12) & 0xf;
58358 unsigned rn = (instr >> 16) & 0xf;
58359 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
58360 int32_t offset = (instr & 0xf) | ((instr >> 4) & 0xf0);
58370 if (((instr & 0xf0000000) == 0xf0000000)) {
58371 UnallocatedA32(instr);
58374 Condition condition((instr >> 28) & 0xf);
58375 unsigned rt = (instr >> 12) & 0xf;
58376 unsigned rn = (instr >> 16) & 0xf;
58377 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
58378 int32_t offset = (instr & 0xf) | ((instr >> 4) & 0xf0);
58387 UnallocatedA32(instr);
58400 switch (instr & 0x01e00000) {
58403 switch (instr & 0x00000fe0) {
58406 if (((instr & 0xf0000000) == 0xf0000000)) {
58407 UnallocatedA32(instr);
58410 Condition condition((instr >> 28) & 0xf);
58411 unsigned rd = (instr >> 12) & 0xf;
58412 unsigned rn = (instr >> 16) & 0xf;
58413 unsigned rm = instr & 0xf;
58423 if (((instr & 0xf0000000) == 0xf0000000) ||
58424 ((instr & 0xfe0) == 0x60)) {
58425 UnallocatedA32(instr);
58428 Condition condition((instr >> 28) & 0xf);
58429 unsigned rd = (instr >> 12) & 0xf;
58430 unsigned rn = (instr >> 16) & 0xf;
58431 unsigned rm = instr & 0xf;
58432 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
58433 (instr >> 7) & 0x1f);
58449 switch (instr & 0x00000fe0) {
58452 if (((instr & 0xf0000000) == 0xf0000000)) {
58453 UnallocatedA32(instr);
58456 Condition condition((instr >> 28) & 0xf);
58457 unsigned rd = (instr >> 12) & 0xf;
58458 unsigned rn = (instr >> 16) & 0xf;
58459 unsigned rm = instr & 0xf;
58469 if (((instr & 0xf0000000) == 0xf0000000) ||
58470 ((instr & 0xfe0) == 0x60)) {
58471 UnallocatedA32(instr);
58474 Condition condition((instr >> 28) & 0xf);
58475 unsigned rd = (instr >> 12) & 0xf;
58476 unsigned rn = (instr >> 16) & 0xf;
58477 unsigned rm = instr & 0xf;
58478 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
58479 (instr >> 7) & 0x1f);
58495 switch (instr & 0x000f0000) {
58498 switch (instr & 0x00000fe0) {
58501 if (((instr & 0xf0000000) == 0xf0000000)) {
58502 UnallocatedA32(instr);
58505 Condition condition((instr >> 28) & 0xf);
58506 unsigned rd = (instr >> 12) & 0xf;
58507 unsigned rm = instr & 0xf;
58517 if (((instr & 0xf0000000) == 0xf0000000) ||
58518 ((instr & 0xfe0) == 0x60)) {
58519 UnallocatedA32(instr);
58522 Condition condition((instr >> 28) & 0xf);
58523 unsigned rd = (instr >> 12) & 0xf;
58524 unsigned rm = instr & 0xf;
58525 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
58526 (instr >> 7) &
58542 switch (instr & 0x00000fe0) {
58545 if (((instr & 0xf0000000) == 0xf0000000) ||
58546 ((instr & 0xf0000) == 0xd0000)) {
58547 UnallocatedA32(instr);
58550 Condition condition((instr >> 28) & 0xf);
58551 unsigned rd = (instr >> 12) & 0xf;
58552 unsigned rn = (instr >> 16) & 0xf;
58553 unsigned rm = instr & 0xf;
58563 if (((instr & 0xf0000000) == 0xf0000000) ||
58564 ((instr & 0xf0000) == 0xd0000) ||
58565 ((instr & 0xfe0) == 0x60)) {
58566 UnallocatedA32(instr);
58569 Condition condition((instr >> 28) & 0xf);
58570 unsigned rd = (instr >> 12) & 0xf;
58571 unsigned rn = (instr >> 16) & 0xf;
58572 unsigned rm = instr & 0xf;
58573 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
58574 (instr >> 7) &
58594 switch (instr & 0x00000fe0) {
58597 if (((instr & 0xf0000000) == 0xf0000000)) {
58598 UnallocatedA32(instr);
58601 Condition condition((instr >> 28) & 0xf);
58602 unsigned rd = (instr >> 12) & 0xf;
58603 unsigned rn = (instr >> 16) & 0xf;
58604 unsigned rm = instr & 0xf;
58614 if (((instr & 0xf0000000) == 0xf0000000) ||
58615 ((instr & 0xfe0) == 0x60)) {
58616 UnallocatedA32(instr);
58619 Condition condition((instr >> 28) & 0xf);
58620 unsigned rd = (instr >> 12) & 0xf;
58621 unsigned rn = (instr >> 16) & 0xf;
58622 unsigned rm = instr & 0xf;
58623 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
58624 (instr >> 7) & 0x1f);
58640 switch (instr & 0x000f0000) {
58643 switch (instr & 0x00000fe0) {
58646 if (((instr & 0xf0000000) == 0xf0000000)) {
58647 UnallocatedA32(instr);
58650 Condition condition((instr >> 28) & 0xf);
58651 unsigned rd = (instr >> 12) & 0xf;
58652 unsigned rm = instr & 0xf;
58662 if (((instr & 0xf0000000) == 0xf0000000) ||
58663 ((instr & 0xfe0) == 0x60)) {
58664 UnallocatedA32(instr);
58667 Condition condition((instr >> 28) & 0xf);
58668 unsigned rd = (instr >> 12) & 0xf;
58669 unsigned rm = instr & 0xf;
58670 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
58671 (instr >> 7) &
58687 switch (instr & 0x00000fe0) {
58690 if (((instr & 0xf0000000) == 0xf0000000) ||
58691 ((instr & 0xf0000) == 0xd0000)) {
58692 UnallocatedA32(instr);
58695 Condition condition((instr >> 28) & 0xf);
58696 unsigned rd = (instr >> 12) & 0xf;
58697 unsigned rn = (instr >> 16) & 0xf;
58698 unsigned rm = instr & 0xf;
58708 if (((instr & 0xf0000000) == 0xf0000000) ||
58709 ((instr & 0xf0000) == 0xd0000) ||
58710 ((instr & 0xfe0) == 0x60)) {
58711 UnallocatedA32(instr);
58714 Condition condition((instr >> 28) & 0xf);
58715 unsigned rd = (instr >> 12) & 0xf;
58716 unsigned rn = (instr >> 16) & 0xf;
58717 unsigned rm = instr & 0xf;
58718 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
58719 (instr >> 7) &
58739 switch (instr & 0x00000fe0) {
58742 if (((instr & 0xf0000000) == 0xf0000000)) {
58743 UnallocatedA32(instr);
58746 Condition condition((instr >> 28) & 0xf);
58747 unsigned rd = (instr >> 12) & 0xf;
58748 unsigned rn = (instr >> 16) & 0xf;
58749 unsigned rm = instr & 0xf;
58759 if (((instr & 0xf0000000) == 0xf0000000) ||
58760 ((instr & 0xfe0) == 0x60)) {
58761 UnallocatedA32(instr);
58764 Condition condition((instr >> 28) & 0xf);
58765 unsigned rd = (instr >> 12) & 0xf;
58766 unsigned rn = (instr >> 16) & 0xf;
58767 unsigned rm = instr & 0xf;
58768 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
58769 (instr >> 7) & 0x1f);
58785 switch (instr & 0x00000fe0) {
58788 if (((instr & 0xf0000000) == 0xf0000000)) {
58789 UnallocatedA32(instr);
58792 Condition condition((instr >> 28) & 0xf);
58793 unsigned rd = (instr >> 12) & 0xf;
58794 unsigned rn = (instr >> 16) & 0xf;
58795 unsigned rm = instr & 0xf;
58805 if (((instr & 0xf0000000) == 0xf0000000) ||
58806 ((instr & 0xfe0) == 0x60)) {
58807 UnallocatedA32(instr);
58810 Condition condition((instr >> 28) & 0xf);
58811 unsigned rd = (instr >> 12) & 0xf;
58812 unsigned rn = (instr >> 16) & 0xf;
58813 unsigned rm = instr & 0xf;
58814 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
58815 (instr >> 7) & 0x1f);
58831 switch (instr & 0x00000fe0) {
58834 if (((instr & 0xf0000000) == 0xf0000000)) {
58835 UnallocatedA32(instr);
58838 Condition condition((instr >> 28) & 0xf);
58839 unsigned rd = (instr >> 12) & 0xf;
58840 unsigned rn = (instr >> 16) & 0xf;
58841 unsigned rm = instr & 0xf;
58850 if (((instr & 0xf0000000) == 0xf0000000) ||
58851 ((instr & 0xfe0) == 0x60)) {
58852 UnallocatedA32(instr);
58855 Condition condition((instr >> 28) & 0xf);
58856 unsigned rd = (instr >> 12) & 0xf;
58857 unsigned rn = (instr >> 16) & 0xf;
58858 unsigned rm = instr & 0xf;
58859 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
58860 (instr >> 7) & 0x1f);
58875 switch (instr & 0x00000fe0) {
58878 if (((instr & 0xf0000000) == 0xf0000000)) {
58879 UnallocatedA32(instr);
58882 Condition condition((instr >> 28) & 0xf);
58883 unsigned rn = (instr >> 16) & 0xf;
58884 unsigned rm = instr & 0xf;
58890 if (((instr & 0xff0fff0) != 0x1100060)) {
58891 UnpredictableA32(instr);
58896 if (((instr & 0xf0000000) == 0xf0000000) ||
58897 ((instr & 0xfe0) == 0x60)) {
58898 UnallocatedA32(instr);
58901 Condition condition((instr >> 28) & 0xf);
58902 unsigned rn = (instr >> 16) & 0xf;
58903 unsigned rm = instr & 0xf;
58904 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
58905 (instr >> 7) & 0x1f);
58913 if (((instr & 0xff0f010) != 0x1100000)) {
58914 UnpredictableA32(instr);
58923 switch (instr & 0x00000fe0) {
58926 if (((instr & 0xf0000000) == 0xf0000000)) {
58927 UnallocatedA32(instr);
58930 Condition condition((instr >> 28) & 0xf);
58931 unsigned rn = (instr >> 16) & 0xf;
58932 unsigned rm = instr & 0xf;
58935 if (((instr & 0xff0fff0) != 0x1300060)) {
58936 UnpredictableA32(instr);
58941 if (((instr & 0xf0000000) == 0xf0000000) ||
58942 ((instr & 0xfe0) == 0x60)) {
58943 UnallocatedA32(instr);
58946 Condition condition((instr >> 28) & 0xf);
58947 unsigned rn = (instr >> 16) & 0xf;
58948 unsigned rm = instr & 0xf;
58949 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
58950 (instr >> 7) & 0x1f);
58957 if (((instr & 0xff0f010) != 0x1300000)) {
58958 UnpredictableA32(instr);
58967 switch (instr & 0x00000fe0) {
58970 if (((instr & 0xf0000000) == 0xf0000000)) {
58971 UnallocatedA32(instr);
58974 Condition condition((instr >> 28) & 0xf);
58975 unsigned rn = (instr >> 16) & 0xf;
58976 unsigned rm = instr & 0xf;
58982 if (((instr & 0xff0fff0) != 0x1500060)) {
58983 UnpredictableA32(instr);
58988 if (((instr & 0xf0000000) == 0xf0000000) ||
58989 ((instr & 0xfe0) == 0x60)) {
58990 UnallocatedA32(instr);
58993 Condition condition((instr >> 28) & 0xf);
58994 unsigned rn = (instr >> 16) & 0xf;
58995 unsigned rm = instr & 0xf;
58996 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
58997 (instr >> 7) & 0x1f);
59005 if (((instr & 0xff0f010) != 0x1500000)) {
59006 UnpredictableA32(instr);
59015 switch (instr & 0x00000fe0) {
59018 if (((instr & 0xf0000000) == 0xf0000000)) {
59019 UnallocatedA32(instr);
59022 Condition condition((instr >> 28) & 0xf);
59023 unsigned rn = (instr >> 16) & 0xf;
59024 unsigned rm = instr & 0xf;
59030 if (((instr & 0xff0fff0) != 0x1700060)) {
59031 UnpredictableA32(instr);
59036 if (((instr & 0xf0000000) == 0xf0000000) ||
59037 ((instr & 0xfe0) == 0x60)) {
59038 UnallocatedA32(instr);
59041 Condition condition((instr >> 28) & 0xf);
59042 unsigned rn = (instr >> 16) & 0xf;
59043 unsigned rm = instr & 0xf;
59044 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
59045 (instr >> 7) & 0x1f);
59053 if (((instr & 0xff0f010) != 0x1700000)) {
59054 UnpredictableA32(instr);
59063 switch (instr & 0x00000fe0) {
59066 if (((instr & 0xf0000000) == 0xf0000000)) {
59067 UnallocatedA32(instr);
59070 Condition condition((instr >> 28) & 0xf);
59071 unsigned rd = (instr >> 12) & 0xf;
59072 unsigned rn = (instr >> 16) & 0xf;
59073 unsigned rm = instr & 0xf;
59083 if (((instr & 0xf0000000) == 0xf0000000) ||
59084 ((instr & 0xfe0) == 0x60)) {
59085 UnallocatedA32(instr);
59088 Condition condition((instr >> 28) & 0xf);
59089 unsigned rd = (instr >> 12) & 0xf;
59090 unsigned rn = (instr >> 16) & 0xf;
59091 unsigned rm = instr & 0xf;
59092 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
59093 (instr >> 7) & 0x1f);
59109 switch (instr & 0x00000fe0) {
59112 if (((instr & 0xf0000000) == 0xf0000000)) {
59113 UnallocatedA32(instr);
59116 if (((instr & 0xf0000000) != 0xf0000000)) {
59117 Condition condition((instr >> 28) & 0xf);
59118 unsigned rd = (instr >> 12) & 0xf;
59119 unsigned rm = instr & 0xf;
59122 if (((instr & 0xfff0ff0) != 0x1b00060)) {
59123 UnpredictableA32(instr);
59127 Condition condition((instr >> 28) & 0xf);
59128 unsigned rd = (instr >> 12) & 0xf;
59129 unsigned rm = instr & 0xf;
59135 if (((instr & 0xfff0ff0) != 0x1b00060)) {
59136 UnpredictableA32(instr);
59141 if (((instr & 0xf0000000) == 0xf0000000) ||
59142 ((instr & 0xfe0) == 0x60)) {
59143 UnallocatedA32(instr);
59146 if (((Uint32((instr >> 5)) & Uint32(0x3)) == Uint32(0x2)) &&
59147 ((instr & 0xf0000000) != 0xf0000000)) {
59148 Condition condition((instr >> 28) & 0xf);
59149 unsigned rd = (instr >> 12) & 0xf;
59150 unsigned rm = instr & 0xf;
59151 uint32_t amount = (instr >> 7) & 0x1f;
59155 if (((instr & 0xfff0070) != 0x1b00040)) {
59156 UnpredictableA32(instr);
59160 if (((Uint32((instr >> 5)) & Uint32(0x3)) == Uint32(0x0)) &&
59161 ((instr & 0xf0000000) != 0xf0000000) &&
59162 ((instr & 0x00000f80) != 0x00000000)) {
59163 Condition condition((instr >> 28) & 0xf);
59164 unsigned rd = (instr >> 12) & 0xf;
59165 unsigned rm = instr & 0xf;
59166 uint32_t amount = (instr >> 7) & 0x1f;
59169 if (((instr & 0xfff0070) != 0x1b00000)) {
59170 UnpredictableA32(instr);
59174 if (((Uint32((instr >> 5)) & Uint32(0x3)) == Uint32(0x1)) &&
59175 ((instr & 0xf0000000) != 0xf0000000)) {
59176 Condition condition((instr >> 28) & 0xf);
59177 unsigned rd = (instr >> 12) & 0xf;
59178 unsigned rm = instr & 0xf;
59179 uint32_t amount = (instr >> 7) & 0x1f;
59183 if (((instr & 0xfff0070) != 0x1b00020)) {
59184 UnpredictableA32(instr);
59188 if (((Uint32((instr >> 5)) & Uint32(0x3)) == Uint32(0x3)) &&
59189 ((instr & 0xf0000000) != 0xf0000000) &&
59190 ((instr & 0x00000f80) != 0x00000000)) {
59191 Condition condition((instr >> 28) & 0xf);
59192 unsigned rd = (instr >> 12) & 0xf;
59193 unsigned rm = instr & 0xf;
59194 uint32_t amount = (instr >> 7) & 0x1f;
59197 if (((instr & 0xfff0070) != 0x1b00060)) {
59198 UnpredictableA32(instr);
59202 Condition condition((instr >> 28) & 0xf);
59203 unsigned rd = (instr >> 12) & 0xf;
59204 unsigned rm = instr & 0xf;
59205 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
59206 (instr >> 7) & 0x1f);
59214 if (((instr & 0xfff0010) != 0x1b00000)) {
59215 UnpredictableA32(instr);
59224 switch (instr & 0x00000fe0) {
59227 if (((instr & 0xf0000000) == 0xf0000000)) {
59228 UnallocatedA32(instr);
59231 Condition condition((instr >> 28) & 0xf);
59232 unsigned rd = (instr >> 12) & 0xf;
59233 unsigned rn = (instr >> 16) & 0xf;
59234 unsigned rm = instr & 0xf;
59244 if (((instr & 0xf0000000) == 0xf0000000) ||
59245 ((instr & 0xfe0) == 0x60)) {
59246 UnallocatedA32(instr);
59249 Condition condition((instr >> 28) & 0xf);
59250 unsigned rd = (instr >> 12) & 0xf;
59251 unsigned rn = (instr >> 16) & 0xf;
59252 unsigned rm = instr & 0xf;
59253 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
59254 (instr >> 7) & 0x1f);
59270 switch (instr & 0x00000fe0) {
59273 if (((instr & 0xf0000000) == 0xf0000000)) {
59274 UnallocatedA32(instr);
59277 Condition condition((instr >> 28) & 0xf);
59278 unsigned rd = (instr >> 12) & 0xf;
59279 unsigned rm = instr & 0xf;
59285 if (((instr & 0xfff0ff0) != 0x1f00060)) {
59286 UnpredictableA32(instr);
59291 if (((instr & 0xf0000000) == 0xf0000000) ||
59292 ((instr & 0xfe0) == 0x60)) {
59293 UnallocatedA32(instr);
59296 Condition condition((instr >> 28) & 0xf);
59297 unsigned rd = (instr >> 12) & 0xf;
59298 unsigned rm = instr & 0xf;
59299 ImmediateShiftOperand shift_operand((instr >> 5) & 0x3,
59300 (instr >> 7) & 0x1f);
59308 if (((instr & 0xfff0010) != 0x1f00000)) {
59309 UnpredictableA32(instr);
59321 switch (instr & 0x00400080) {
59324 switch (instr & 0x01a00000) {
59327 if (((instr & 0xf0000000) == 0xf0000000)) {
59328 UnallocatedA32(instr);
59331 Condition condition((instr >> 28) & 0xf);
59332 unsigned rd = (instr >> 12) & 0xf;
59333 unsigned rn = (instr >> 16) & 0xf;
59334 unsigned rm = instr & 0xf;
59335 Shift shift((instr >> 5) & 0x3);
59336 unsigned rs = (instr >> 8) & 0xf;
59347 if (((instr & 0xf0000000) == 0xf0000000)) {
59348 UnallocatedA32(instr);
59351 Condition condition((instr >> 28) & 0xf);
59352 unsigned rd = (instr >> 12) & 0xf;
59353 unsigned rn = (instr >> 16) & 0xf;
59354 unsigned rm = instr & 0xf;
59355 Shift shift((instr >> 5) & 0x3);
59356 unsigned rs = (instr >> 8) & 0xf;
59367 if (((instr & 0xf0000000) == 0xf0000000)) {
59368 UnallocatedA32(instr);
59371 Condition condition((instr >> 28) & 0xf);
59372 unsigned rd = (instr >> 12) & 0xf;
59373 unsigned rn = (instr >> 16) & 0xf;
59374 unsigned rm = instr & 0xf;
59375 Shift shift((instr >> 5) & 0x3);
59376 unsigned rs = (instr >> 8) & 0xf;
59387 if (((instr & 0xf0000000) == 0xf0000000)) {
59388 UnallocatedA32(instr);
59391 Condition condition((instr >> 28) & 0xf);
59392 unsigned rd = (instr >> 12) & 0xf;
59393 unsigned rn = (instr >> 16) & 0xf;
59394 unsigned rm = instr & 0xf;
59395 Shift shift((instr >> 5) & 0x3);
59396 unsigned rs = (instr >> 8) & 0xf;
59407 if (((instr & 0xf0000000) == 0xf0000000)) {
59408 UnallocatedA32(instr);
59411 Condition condition((instr >> 28) & 0xf);
59412 unsigned rn = (instr >> 16) & 0xf;
59413 unsigned rm = instr & 0xf;
59414 Shift shift((instr >> 5) & 0x3);
59415 unsigned rs = (instr >> 8) & 0xf;
59421 if (((instr & 0xff0f090) != 0x1100010)) {
59422 UnpredictableA32(instr);
59428 if (((instr & 0xf0000000) == 0xf0000000)) {
59429 UnallocatedA32(instr);
59432 Condition condition((instr >> 28) & 0xf);
59433 unsigned rn = (instr >> 16) & 0xf;
59434 unsigned rm = instr & 0xf;
59435 Shift shift((instr >> 5) & 0x3);
59436 unsigned rs = (instr >> 8) & 0xf;
59441 if (((instr & 0xff0f090) != 0x1300010)) {
59442 UnpredictableA32(instr);
59448 if (((instr & 0xf0000000) == 0xf0000000)) {
59449 UnallocatedA32(instr);
59452 Condition condition((instr >> 28) & 0xf);
59453 unsigned rd = (instr >> 12) & 0xf;
59454 unsigned rn = (instr >> 16) & 0xf;
59455 unsigned rm = instr & 0xf;
59456 Shift shift((instr >> 5) & 0x3);
59457 unsigned rs = (instr >> 8) & 0xf;
59468 if (((instr & 0xf0000000) == 0xf0000000)) {
59469 UnallocatedA32(instr);
59472 if (((Uint32((instr >> 5)) & Uint32(0x3)) == Uint32(0x2)) &&
59473 ((instr & 0xf0000000) != 0xf0000000)) {
59474 Condition condition((instr >> 28) & 0xf);
59475 unsigned rd = (instr >> 12) & 0xf;
59476 unsigned rm = instr & 0xf;
59477 unsigned rs = (instr >> 8) & 0xf;
59484 if (((instr & 0xfff00f0) != 0x1b00050)) {
59485 UnpredictableA32(instr);
59489 if (((Uint32((instr >> 5)) & Uint32(0x3)) == Uint32(0x0)) &&
59490 ((instr & 0xf0000000) != 0xf0000000)) {
59491 Condition condition((instr >> 28) & 0xf);
59492 unsigned rd = (instr >> 12) & 0xf;
59493 unsigned rm = instr & 0xf;
59494 unsigned rs = (instr >> 8) & 0xf;
59501 if (((instr & 0xfff00f0) != 0x1b00010)) {
59502 UnpredictableA32(instr);
59506 if (((Uint32((instr >> 5)) & Uint32(0x3)) == Uint32(0x1)) &&
59507 ((instr & 0xf0000000) != 0xf0000000)) {
59508 Condition condition((instr >> 28) & 0xf);
59509 unsigned rd = (instr >> 12) & 0xf;
59510 unsigned rm = instr & 0xf;
59511 unsigned rs = (instr >> 8) & 0xf;
59518 if (((instr & 0xfff00f0) != 0x1b00030)) {
59519 UnpredictableA32(instr);
59523 if (((Uint32((instr >> 5)) & Uint32(0x3)) == Uint32(0x3)) &&
59524 ((instr & 0xf0000000) != 0xf0000000)) {
59525 Condition condition((instr >> 28) & 0xf);
59526 unsigned rd = (instr >> 12) & 0xf;
59527 unsigned rm = instr & 0xf;
59528 unsigned rs = (instr >> 8) & 0xf;
59535 if (((instr & 0xfff00f0) != 0x1b00070)) {
59536 UnpredictableA32(instr);
59540 Condition condition((instr >> 28) & 0xf);
59541 unsigned rd = (instr >> 12) & 0xf;
59542 unsigned rm = instr & 0xf;
59543 Shift shift((instr >> 5) & 0x3);
59544 unsigned rs = (instr >> 8) & 0xf;
59550 if (((instr & 0xfff0090) != 0x1b00010)) {
59551 UnpredictableA32(instr);
59560 switch (instr & 0x01200060) {
59563 switch (instr & 0x00800000) {
59566 if (((instr & 0xf0000000) == 0xf0000000)) {
59567 UnallocatedA32(instr);
59570 Condition condition((instr >> 28) & 0xf);
59571 unsigned rd = (instr >> 16) & 0xf;
59572 unsigned rn = instr & 0xf;
59573 unsigned rm = (instr >> 8) & 0xf;
59579 if (((instr & 0xff0f0f0) != 0x100090)) {
59580 UnpredictableA32(instr);
59586 if (((instr & 0xf0000000) == 0xf0000000)) {
59587 UnallocatedA32(instr);
59590 Condition condition((instr >> 28) & 0xf);
59591 unsigned rdlo = (instr >> 12) & 0xf;
59592 unsigned rdhi = (instr >> 16) & 0xf;
59593 unsigned rn = instr & 0xf;
59594 unsigned rm = (instr >> 8) & 0xf;
59608 if (((instr & 0xf0000000) == 0xf0000000)) {
59609 UnallocatedA32(instr);
59612 Condition condition((instr >> 28) & 0xf);
59613 unsigned rt = (instr >> 12) & 0xf;
59614 unsigned rn = (instr >> 16) & 0xf;
59615 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
59616 unsigned rm = instr & 0xf;
59625 if (((instr & 0xf700ff0) != 0x1000b0)) {
59626 UnpredictableA32(instr);
59632 if (((instr & 0xf0000000) == 0xf0000000)) {
59633 UnallocatedA32(instr);
59636 Condition condition((instr >> 28) & 0xf);
59637 unsigned rt = (instr >> 12) & 0xf;
59638 unsigned rn = (instr >> 16) & 0xf;
59639 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
59640 unsigned rm = instr & 0xf;
59649 if (((instr & 0xf700ff0) != 0x1000d0)) {
59650 UnpredictableA32(instr);
59656 if (((instr & 0xf0000000) == 0xf0000000)) {
59657 UnallocatedA32(instr);
59660 Condition condition((instr >> 28) & 0xf);
59661 unsigned rt = (instr >> 12) & 0xf;
59662 unsigned rn = (instr >> 16) & 0xf;
59663 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
59664 unsigned rm = instr & 0xf;
59673 if (((instr & 0xf700ff0) != 0x1000f0)) {
59674 UnpredictableA32(instr);
59680 switch (instr & 0x00800000) {
59683 if (((instr & 0xf0000000) == 0xf0000000)) {
59684 UnallocatedA32(instr);
59687 Condition condition((instr >> 28) & 0xf);
59688 unsigned rd = (instr >> 16) & 0xf;
59689 unsigned rn = instr & 0xf;
59690 unsigned rm = (instr >> 8) & 0xf;
59691 unsigned ra = (instr >> 12) & 0xf;
59702 if (((instr & 0xf0000000) == 0xf0000000)) {
59703 UnallocatedA32(instr);
59706 Condition condition((instr >> 28) & 0xf);
59707 unsigned rdlo = (instr >> 12) & 0xf;
59708 unsigned rdhi = (instr >> 16) & 0xf;
59709 unsigned rn = instr & 0xf;
59710 unsigned rm = (instr >> 8) & 0xf;
59724 if (((instr & 0xf0000000) == 0xf0000000)) {
59725 UnallocatedA32(instr);
59728 UnimplementedA32("LDRHT", instr);
59733 if (((instr & 0xf0000000) == 0xf0000000)) {
59734 UnallocatedA32(instr);
59737 UnimplementedA32("LDRSBT", instr);
59742 if (((instr & 0xf0000000) == 0xf0000000)) {
59743 UnallocatedA32(instr);
59746 UnimplementedA32("LDRSHT", instr);
59751 switch (instr & 0x00800300) {
59754 if (((instr & 0xf0000000) == 0xf0000000)) {
59755 UnallocatedA32(instr);
59758 Condition condition((instr >> 28) & 0xf);
59759 unsigned rt = (instr >> 12) & 0xf;
59760 unsigned rn = (instr >> 16) & 0xf;
59765 if (((instr & 0xff00fff) != 0x1900c9f)) {
59766 UnpredictableA32(instr);
59772 if (((instr & 0xf0000000) == 0xf0000000)) {
59773 UnallocatedA32(instr);
59776 Condition condition((instr >> 28) & 0xf);
59777 unsigned rt = (instr >> 12) & 0xf;
59778 unsigned rn = (instr >> 16) & 0xf;
59783 if (((instr & 0xff00fff) != 0x1900e9f)) {
59784 UnpredictableA32(instr);
59790 if (((instr & 0xf0000000) == 0xf0000000)) {
59791 UnallocatedA32(instr);
59794 Condition condition((instr >> 28) & 0xf);
59795 unsigned rt = (instr >> 12) & 0xf;
59796 unsigned rn = (instr >> 16) & 0xf;
59801 if (((instr & 0xff00fff) != 0x1900f9f)) {
59802 UnpredictableA32(instr);
59807 UnallocatedA32(instr);
59814 if (((instr & 0xf0000000) == 0xf0000000)) {
59815 UnallocatedA32(instr);
59818 Condition condition((instr >> 28) & 0xf);
59819 unsigned rt = (instr >> 12) & 0xf;
59820 unsigned rn = (instr >> 16) & 0xf;
59821 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
59822 unsigned rm = instr & 0xf;
59832 if (((instr & 0xf700ff0) != 0x11000b0)) {
59833 UnpredictableA32(instr);
59839 if (((instr & 0xf0000000) == 0xf0000000)) {
59840 UnallocatedA32(instr);
59843 Condition condition((instr >> 28) & 0xf);
59844 unsigned rt = (instr >> 12) & 0xf;
59845 unsigned rn = (instr >> 16) & 0xf;
59846 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
59847 unsigned rm = instr & 0xf;
59857 if (((instr & 0xf700ff0) != 0x11000d0)) {
59858 UnpredictableA32(instr);
59864 if (((instr & 0xf0000000) == 0xf0000000)) {
59865 UnallocatedA32(instr);
59868 Condition condition((instr >> 28) & 0xf);
59869 unsigned rt = (instr >> 12) & 0xf;
59870 unsigned rn = (instr >> 16) & 0xf;
59871 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
59872 unsigned rm = instr & 0xf;
59882 if (((instr & 0xf700ff0) != 0x11000f0)) {
59883 UnpredictableA32(instr);
59889 switch (instr & 0x00800300) {
59892 if (((instr & 0xf0000000) == 0xf0000000)) {
59893 UnallocatedA32(instr);
59896 Condition condition((instr >> 28) & 0xf);
59897 unsigned rt = (instr >> 12) & 0xf;
59898 unsigned rn = (instr >> 16) & 0xf;
59904 if (((instr & 0xff00fff) != 0x1b00e9f)) {
59905 UnpredictableA32(instr);
59911 if (((instr & 0xf0000000) == 0xf0000000)) {
59912 UnallocatedA32(instr);
59915 Condition condition((instr >> 28) & 0xf);
59916 unsigned rt = (instr >> 12) & 0xf;
59917 unsigned rn = (instr >> 16) & 0xf;
59923 if (((instr & 0xff00fff) != 0x1b00f9f)) {
59924 UnpredictableA32(instr);
59929 UnallocatedA32(instr);
59936 if (((instr & 0xf0000000) == 0xf0000000)) {
59937 UnallocatedA32(instr);
59940 Condition condition((instr >> 28) & 0xf);
59941 unsigned rt = (instr >> 12) & 0xf;
59942 unsigned rn = (instr >> 16) & 0xf;
59943 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
59944 unsigned rm = instr & 0xf;
59954 if (((instr & 0xf700ff0) != 0x13000b0)) {
59955 UnpredictableA32(instr);
59961 if (((instr & 0xf0000000) == 0xf0000000)) {
59962 UnallocatedA32(instr);
59965 Condition condition((instr >> 28) & 0xf);
59966 unsigned rt = (instr >> 12) & 0xf;
59967 unsigned rn = (instr >> 16) & 0xf;
59968 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
59969 unsigned rm = instr & 0xf;
59979 if (((instr & 0xf700ff0) != 0x13000d0)) {
59980 UnpredictableA32(instr);
59986 if (((instr & 0xf0000000) == 0xf0000000)) {
59987 UnallocatedA32(instr);
59990 Condition condition((instr >> 28) & 0xf);
59991 unsigned rt = (instr >> 12) & 0xf;
59992 unsigned rn = (instr >> 16) & 0xf;
59993 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
59994 unsigned rm = instr & 0xf;
60004 if (((instr & 0xf700ff0) != 0x13000f0)) {
60005 UnpredictableA32(instr);
60014 switch (instr & 0x01a00000) {
60017 if (((instr & 0xf0000000) == 0xf0000000)) {
60018 UnallocatedA32(instr);
60021 Condition condition((instr >> 28) & 0xf);
60022 unsigned rd = (instr >> 12) & 0xf;
60023 unsigned rn = (instr >> 16) & 0xf;
60024 unsigned rm = instr & 0xf;
60025 Shift shift((instr >> 5) & 0x3);
60026 unsigned rs = (instr >> 8) & 0xf;
60037 if (((instr & 0xf0000000) == 0xf0000000)) {
60038 UnallocatedA32(instr);
60041 Condition condition((instr >> 28) & 0xf);
60042 unsigned rd = (instr >> 12) & 0xf;
60043 unsigned rn = (instr >> 16) & 0xf;
60044 unsigned rm = instr & 0xf;
60045 Shift shift((instr >> 5) & 0x3);
60046 unsigned rs = (instr >> 8) & 0xf;
60057 if (((instr & 0xf0000000) == 0xf0000000)) {
60058 UnallocatedA32(instr);
60061 Condition condition((instr >> 28) & 0xf);
60062 unsigned rd = (instr >> 12) & 0xf;
60063 unsigned rn = (instr >> 16) & 0xf;
60064 unsigned rm = instr & 0xf;
60065 Shift shift((instr >> 5) & 0x3);
60066 unsigned rs = (instr >> 8) & 0xf;
60077 if (((instr & 0xf0000000) == 0xf0000000)) {
60078 UnallocatedA32(instr);
60081 Condition condition((instr >> 28) & 0xf);
60082 unsigned rd = (instr >> 12) & 0xf;
60083 unsigned rn = (instr >> 16) & 0xf;
60084 unsigned rm = instr & 0xf;
60085 Shift shift((instr >> 5) & 0x3);
60086 unsigned rs = (instr >> 8) & 0xf;
60096 if (((instr & 0xf0000000) == 0xf0000000)) {
60097 UnallocatedA32(instr);
60100 Condition condition((instr >> 28) & 0xf);
60101 unsigned rn = (instr >> 16) & 0xf;
60102 unsigned rm = instr & 0xf;
60103 Shift shift((instr >> 5) & 0x3);
60104 unsigned rs = (instr >> 8) & 0xf;
60110 if (((instr & 0xff0f090) != 0x1500010)) {
60111 UnpredictableA32(instr);
60117 if (((instr & 0xf0000000) == 0xf0000000)) {
60118 UnallocatedA32(instr);
60121 Condition condition((instr >> 28) & 0xf);
60122 unsigned rn = (instr >> 16) & 0xf;
60123 unsigned rm = instr & 0xf;
60124 Shift shift((instr >> 5) & 0x3);
60125 unsigned rs = (instr >> 8) & 0xf;
60131 if (((instr & 0xff0f090) != 0x1700010)) {
60132 UnpredictableA32(instr);
60138 if (((instr & 0xf0000000) == 0xf0000000)) {
60139 UnallocatedA32(instr);
60142 Condition condition((instr >> 28) & 0xf);
60143 unsigned rd = (instr >> 12) & 0xf;
60144 unsigned rn = (instr >> 16) & 0xf;
60145 unsigned rm = instr & 0xf;
60146 Shift shift((instr >> 5) & 0x3);
60147 unsigned rs = (instr >> 8) & 0xf;
60158 if (((instr & 0xf0000000) == 0xf0000000)) {
60159 UnallocatedA32(instr);
60162 Condition condition((instr >> 28) & 0xf);
60163 unsigned rd = (instr >> 12) & 0xf;
60164 unsigned rm = instr & 0xf;
60165 Shift shift((instr >> 5) & 0x3);
60166 unsigned rs = (instr >> 8) & 0xf;
60172 if (((instr & 0xfff0090) != 0x1f00010)) {
60173 UnpredictableA32(instr);
60182 switch (instr & 0x00000060) {
60185 switch (instr & 0x01a00000) {
60188 if (((instr & 0xf0000000) == 0xf0000000)) {
60189 UnallocatedA32(instr);
60192 Condition condition((instr >> 28) & 0xf);
60193 unsigned rdlo = (instr >> 12) & 0xf;
60194 unsigned rdhi = (instr >> 16) & 0xf;
60195 unsigned rn = instr & 0xf;
60196 unsigned rm = (instr >> 8) & 0xf;
60207 if (((instr & 0xf0000000) == 0xf0000000)) {
60208 UnallocatedA32(instr);
60211 Condition condition((instr >> 28) & 0xf);
60212 unsigned rdlo = (instr >> 12) & 0xf;
60213 unsigned rdhi = (instr >> 16) & 0xf;
60214 unsigned rn = instr & 0xf;
60215 unsigned rm = (instr >> 8) & 0xf;
60226 switch (instr & 0x00000300) {
60229 if (((instr & 0xf0000000) == 0xf0000000)) {
60230 UnallocatedA32(instr);
60233 Condition condition((instr >> 28) & 0xf);
60234 unsigned rt = (instr >> 12) & 0xf;
60235 unsigned rn = (instr >> 16) & 0xf;
60240 if (((instr & 0xff00fff) != 0x1d00c9f)) {
60241 UnpredictableA32(instr);
60247 if (((instr & 0xf0000000) == 0xf0000000)) {
60248 UnallocatedA32(instr);
60251 Condition condition((instr >> 28) & 0xf);
60252 unsigned rt = (instr >> 12) & 0xf;
60253 unsigned rn = (instr >> 16) & 0xf;
60258 if (((instr & 0xff00fff) != 0x1d00e9f)) {
60259 UnpredictableA32(instr);
60265 if (((instr & 0xf0000000) == 0xf0000000)) {
60266 UnallocatedA32(instr);
60269 Condition condition((instr >> 28) & 0xf);
60270 unsigned rt = (instr >> 12) & 0xf;
60271 unsigned rn = (instr >> 16) & 0xf;
60276 if (((instr & 0xff00fff) != 0x1d00f9f)) {
60277 UnpredictableA32(instr);
60282 UnallocatedA32(instr);
60289 switch (instr & 0x00000300) {
60292 if (((instr & 0xf0000000) == 0xf0000000)) {
60293 UnallocatedA32(instr);
60296 Condition condition((instr >> 28) & 0xf);
60297 unsigned rt = (instr >> 12) & 0xf;
60298 unsigned rn = (instr >> 16) & 0xf;
60303 if (((instr & 0xff00fff) != 0x1f00c9f)) {
60304 UnpredictableA32(instr);
60310 if (((instr & 0xf0000000) == 0xf0000000)) {
60311 UnallocatedA32(instr);
60314 Condition condition((instr >> 28) & 0xf);
60315 unsigned rt = (instr >> 12) & 0xf;
60316 unsigned rn = (instr >> 16) & 0xf;
60321 if (((instr & 0xff00fff) != 0x1f00e9f)) {
60322 UnpredictableA32(instr);
60328 if (((instr & 0xf0000000) == 0xf0000000)) {
60329 UnallocatedA32(instr);
60332 Condition condition((instr >> 28) & 0xf);
60333 unsigned rt = (instr >> 12) & 0xf;
60334 unsigned rn = (instr >> 16) & 0xf;
60339 if (((instr & 0xff00fff) != 0x1f00f9f)) {
60340 UnpredictableA32(instr);
60345 UnallocatedA32(instr);
60351 UnallocatedA32(instr);
60358 switch (instr & 0x01200000) {
60361 switch (instr & 0x000f0000) {
60364 if (((instr & 0xf0000000) == 0xf0000000) ||
60365 ((instr & 0x1200000) == 0x200000)) {
60366 UnallocatedA32(instr);
60369 Condition condition((instr >> 28) & 0xf);
60370 unsigned rt = (instr >> 12) & 0xf;
60371 uint32_t U = (instr >> 23) & 0x1;
60372 int32_t imm = (instr & 0xf) | ((instr >> 4) & 0xf0);
60385 if (((instr & 0xf7f00f0) != 0x15f00b0)) {
60386 UnpredictableA32(instr);
60391 if (((instr & 0xf0000000) == 0xf0000000) ||
60392 ((instr & 0xf0000) == 0xf0000)) {
60393 UnallocatedA32(instr);
60396 Condition condition((instr >> 28) & 0xf);
60397 unsigned rt = (instr >> 12) & 0xf;
60398 unsigned rn = (instr >> 16) & 0xf;
60399 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
60402 (instr & 0xf) | ((instr >> 4) & 0xf0);
60418 if (((instr & 0xf0000000) == 0xf0000000)) {
60419 UnallocatedA32(instr);
60422 UnimplementedA32("LDRHT", instr);
60427 switch (instr & 0x000f0000) {
60430 if (((instr & 0xf0000000) == 0xf0000000) ||
60431 ((instr & 0x1200000) == 0x200000)) {
60432 UnallocatedA32(instr);
60435 Condition condition((instr >> 28) & 0xf);
60436 unsigned rt = (instr >> 12) & 0xf;
60437 uint32_t U = (instr >> 23) & 0x1;
60438 int32_t imm = (instr & 0xf) | ((instr >> 4) & 0xf0);
60451 if (((instr & 0xf7f00f0) != 0x15f00b0)) {
60452 UnpredictableA32(instr);
60457 if (((instr & 0xf0000000) == 0xf0000000) ||
60458 ((instr & 0xf0000) == 0xf0000)) {
60459 UnallocatedA32(instr);
60462 Condition condition((instr >> 28) & 0xf);
60463 unsigned rt = (instr >> 12) & 0xf;
60464 unsigned rn = (instr >> 16) & 0xf;
60465 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
60468 (instr & 0xf) | ((instr >> 4) & 0xf0);
60484 switch (instr & 0x000f0000) {
60487 if (((instr & 0xf0000000) == 0xf0000000) ||
60488 ((instr & 0x1200000) == 0x200000)) {
60489 UnallocatedA32(instr);
60492 Condition condition((instr >> 28) & 0xf);
60493 unsigned rt = (instr >> 12) & 0xf;
60494 uint32_t U = (instr >> 23) & 0x1;
60495 int32_t imm = (instr & 0xf) | ((instr >> 4) & 0xf0);
60508 if (((instr & 0xf7f00f0) != 0x15f00b0)) {
60509 UnpredictableA32(instr);
60514 if (((instr & 0xf0000000) == 0xf0000000) ||
60515 ((instr & 0xf0000) == 0xf0000)) {
60516 UnallocatedA32(instr);
60519 Condition condition((instr >> 28) & 0xf);
60520 unsigned rt = (instr >> 12) & 0xf;
60521 unsigned rn = (instr >> 16) & 0xf;
60522 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
60525 (instr & 0xf) | ((instr >> 4) & 0xf0);
60544 switch (instr & 0x01200000) {
60547 switch (instr & 0x000f0000) {
60550 if (((instr & 0xf0000000) == 0xf0000000) ||
60551 ((instr & 0x1200000) == 0x200000)) {
60552 UnallocatedA32(instr);
60555 Condition condition((instr >> 28) & 0xf);
60556 unsigned rt = (instr >> 12) & 0xf;
60557 uint32_t U = (instr >> 23) & 0x1;
60558 int32_t imm = (instr & 0xf) | ((instr >> 4) & 0xf0);
60571 if (((instr & 0xf7f00f0) != 0x15f00d0)) {
60572 UnpredictableA32(instr);
60577 if (((instr & 0xf0000000) == 0xf0000000) ||
60578 ((instr & 0xf0000) == 0xf0000)) {
60579 UnallocatedA32(instr);
60582 Condition condition((instr >> 28) & 0xf);
60583 unsigned rt = (instr >> 12) & 0xf;
60584 unsigned rn = (instr >> 16) & 0xf;
60585 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
60588 (instr & 0xf) | ((instr >> 4) & 0xf0);
60604 if (((instr & 0xf0000000) == 0xf0000000)) {
60605 UnallocatedA32(instr);
60608 UnimplementedA32("LDRSBT", instr);
60613 switch (instr & 0x000f0000) {
60616 if (((instr & 0xf0000000) == 0xf0000000) ||
60617 ((instr & 0x1200000) == 0x200000)) {
60618 UnallocatedA32(instr);
60621 Condition condition((instr >> 28) & 0xf);
60622 unsigned rt = (instr >> 12) & 0xf;
60623 uint32_t U = (instr >> 23) & 0x1;
60624 int32_t imm = (instr & 0xf) | ((instr >> 4) & 0xf0);
60637 if (((instr & 0xf7f00f0) != 0x15f00d0)) {
60638 UnpredictableA32(instr);
60643 if (((instr & 0xf0000000) == 0xf0000000) ||
60644 ((instr & 0xf0000) == 0xf0000)) {
60645 UnallocatedA32(instr);
60648 Condition condition((instr >> 28) & 0xf);
60649 unsigned rt = (instr >> 12) & 0xf;
60650 unsigned rn = (instr >> 16) & 0xf;
60651 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
60654 (instr & 0xf) | ((instr >> 4) & 0xf0);
60670 switch (instr & 0x000f0000) {
60673 if (((instr & 0xf0000000) == 0xf0000000) ||
60674 ((instr & 0x1200000) == 0x200000)) {
60675 UnallocatedA32(instr);
60678 Condition condition((instr >> 28) & 0xf);
60679 unsigned rt = (instr >> 12) & 0xf;
60680 uint32_t U = (instr >> 23) & 0x1;
60681 int32_t imm = (instr & 0xf) | ((instr >> 4) & 0xf0);
60694 if (((instr & 0xf7f00f0) != 0x15f00d0)) {
60695 UnpredictableA32(instr);
60700 if (((instr & 0xf0000000) == 0xf0000000) ||
60701 ((instr & 0xf0000) == 0xf0000)) {
60702 UnallocatedA32(instr);
60705 Condition condition((instr >> 28) & 0xf);
60706 unsigned rt = (instr >> 12) & 0xf;
60707 unsigned rn = (instr >> 16) & 0xf;
60708 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
60711 (instr & 0xf) | ((instr >> 4) & 0xf0);
60730 switch (instr & 0x01200000) {
60733 switch (instr & 0x000f0000) {
60736 if (((instr & 0xf0000000) == 0xf0000000) ||
60737 ((instr & 0x1200000) == 0x200000)) {
60738 UnallocatedA32(instr);
60741 Condition condition((instr >> 28) & 0xf);
60742 unsigned rt = (instr >> 12) & 0xf;
60743 uint32_t U = (instr >> 23) & 0x1;
60744 int32_t imm = (instr & 0xf) | ((instr >> 4) & 0xf0);
60757 if (((instr & 0xf7f00f0) != 0x15f00f0)) {
60758 UnpredictableA32(instr);
60763 if (((instr & 0xf0000000) == 0xf0000000) ||
60764 ((instr & 0xf0000) == 0xf0000)) {
60765 UnallocatedA32(instr);
60768 Condition condition((instr >> 28) & 0xf);
60769 unsigned rt = (instr >> 12) & 0xf;
60770 unsigned rn = (instr >> 16) & 0xf;
60771 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
60774 (instr & 0xf) | ((instr >> 4) & 0xf0);
60790 if (((instr & 0xf0000000) == 0xf0000000)) {
60791 UnallocatedA32(instr);
60794 UnimplementedA32("LDRSHT", instr);
60799 switch (instr & 0x000f0000) {
60802 if (((instr & 0xf0000000) == 0xf0000000) ||
60803 ((instr & 0x1200000) == 0x200000)) {
60804 UnallocatedA32(instr);
60807 Condition condition((instr >> 28) & 0xf);
60808 unsigned rt = (instr >> 12) & 0xf;
60809 uint32_t U = (instr >> 23) & 0x1;
60810 int32_t imm = (instr & 0xf) | ((instr >> 4) & 0xf0);
60823 if (((instr & 0xf7f00f0) != 0x15f00f0)) {
60824 UnpredictableA32(instr);
60829 if (((instr & 0xf0000000) == 0xf0000000) ||
60830 ((instr & 0xf0000) == 0xf0000)) {
60831 UnallocatedA32(instr);
60834 Condition condition((instr >> 28) & 0xf);
60835 unsigned rt = (instr >> 12) & 0xf;
60836 unsigned rn = (instr >> 16) & 0xf;
60837 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
60840 (instr & 0xf) | ((instr >> 4) & 0xf0);
60856 switch (instr & 0x000f0000) {
60859 if (((instr & 0xf0000000) == 0xf0000000) ||
60860 ((instr & 0x1200000) == 0x200000)) {
60861 UnallocatedA32(instr);
60864 Condition condition((instr >> 28) & 0xf);
60865 unsigned rt = (instr >> 12) & 0xf;
60866 uint32_t U = (instr >> 23) & 0x1;
60867 int32_t imm = (instr & 0xf) | ((instr >> 4) & 0xf0);
60880 if (((instr & 0xf7f00f0) != 0x15f00f0)) {
60881 UnpredictableA32(instr);
60886 if (((instr & 0xf0000000) == 0xf0000000) ||
60887 ((instr & 0xf0000) == 0xf0000)) {
60888 UnallocatedA32(instr);
60891 Condition condition((instr >> 28) & 0xf);
60892 unsigned rt = (instr >> 12) & 0xf;
60893 unsigned rn = (instr >> 16) & 0xf;
60894 Sign sign((((instr >> 23) & 0x1) == 0) ? minus
60897 (instr & 0xf) | ((instr >> 4) & 0xf0);
60925 switch (instr & 0x01b00000) {
60928 switch (instr & 0x00400000) {
60931 if (((instr & 0xf0000000) == 0xf0000000)) {
60932 UnallocatedA32(instr);
60935 Condition condition((instr >> 28) & 0xf);
60936 unsigned rd = (instr >> 12) & 0xf;
60937 unsigned rn = (instr >> 16) & 0xf;
60938 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
60945 switch (instr & 0x000d0000) {
60948 switch (instr & 0x00020000) {
60951 if (((instr & 0xf0000000) == 0xf0000000)) {
60952 UnallocatedA32(instr);
60955 Condition condition((instr >> 28) & 0xf);
60956 unsigned rd = (instr >> 12) & 0xf;
60957 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
60964 if (((instr & 0xf0000000) == 0xf0000000)) {
60965 UnallocatedA32(instr);
60968 if (((instr & 0xf0000000) != 0xf0000000) &&
60969 ((Uint32(instr) & Uint32(0xfff)) == Uint32(0x0))) {
60970 Condition condition((instr >> 28) & 0xf);
60971 unsigned rd = (instr >> 12) & 0xf;
60972 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
60977 Condition condition((instr >> 28) & 0xf);
60978 unsigned rd = (instr >> 12) & 0xf;
60979 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
60989 if (((instr & 0xf0000000) == 0xf0000000) ||
60990 ((instr & 0xd0000) == 0xd0000)) {
60991 UnallocatedA32(instr);
60994 Condition condition((instr >> 28) & 0xf);
60995 unsigned rd = (instr >> 12) & 0xf;
60996 unsigned rn = (instr >> 16) & 0xf;
60997 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61010 switch (instr & 0x00400000) {
61013 if (((instr & 0xf0000000) == 0xf0000000)) {
61014 UnallocatedA32(instr);
61017 Condition condition((instr >> 28) & 0xf);
61018 unsigned rd = (instr >> 12) & 0xf;
61019 unsigned rn = (instr >> 16) & 0xf;
61020 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61027 switch (instr & 0x000f0000) {
61030 if (((instr & 0xf0000000) == 0xf0000000)) {
61031 UnallocatedA32(instr);
61034 Condition condition((instr >> 28) & 0xf);
61035 unsigned rd = (instr >> 12) & 0xf;
61036 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61042 if (((instr & 0xf0000000) == 0xf0000000) ||
61043 ((instr & 0xf0000) == 0xd0000)) {
61044 UnallocatedA32(instr);
61047 Condition condition((instr >> 28) & 0xf);
61048 unsigned rd = (instr >> 12) & 0xf;
61049 unsigned rn = (instr >> 16) & 0xf;
61050 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61063 switch (instr & 0x00400000) {
61066 if (((instr & 0xf0000000) == 0xf0000000)) {
61067 UnallocatedA32(instr);
61070 Condition condition((instr >> 28) & 0xf);
61071 unsigned rd = (instr >> 12) & 0xf;
61072 unsigned rn = (instr >> 16) & 0xf;
61073 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61080 if (((instr & 0xf0000000) == 0xf0000000)) {
61081 UnallocatedA32(instr);
61084 Condition condition((instr >> 28) & 0xf);
61085 unsigned rd = (instr >> 12) & 0xf;
61086 unsigned rn = (instr >> 16) & 0xf;
61087 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61097 switch (instr & 0x00400000) {
61100 if (((instr & 0xf0000000) == 0xf0000000)) {
61101 UnallocatedA32(instr);
61104 Condition condition((instr >> 28) & 0xf);
61105 unsigned rd = (instr >> 12) & 0xf;
61106 unsigned rn = (instr >> 16) & 0xf;
61107 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61114 if (((instr & 0xf0000000) == 0xf0000000)) {
61115 UnallocatedA32(instr);
61118 Condition condition((instr >> 28) & 0xf);
61119 unsigned rd = (instr >> 12) & 0xf;
61120 unsigned rn = (instr >> 16) & 0xf;
61121 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61131 switch (instr & 0x00400000) {
61134 switch (instr & 0x000d0000) {
61137 switch (instr & 0x00020000) {
61140 if (((instr & 0xf0000000) == 0xf0000000)) {
61141 UnallocatedA32(instr);
61144 Condition condition((instr >> 28) & 0xf);
61145 unsigned rd = (instr >> 12) & 0xf;
61146 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61153 if (((instr & 0xf0000000) == 0xf0000000)) {
61154 UnallocatedA32(instr);
61157 Condition condition((instr >> 28) & 0xf);
61158 unsigned rd = (instr >> 12) & 0xf;
61159 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61169 if (((instr & 0xf0000000) == 0xf0000000) ||
61170 ((instr & 0xd0000) == 0xd0000)) {
61171 UnallocatedA32(instr);
61174 Condition condition((instr >> 28) & 0xf);
61175 unsigned rd = (instr >> 12) & 0xf;
61176 unsigned rn = (instr >> 16) & 0xf;
61177 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61187 if (((instr & 0xf0000000) == 0xf0000000)) {
61188 UnallocatedA32(instr);
61191 Condition condition((instr >> 28) & 0xf);
61192 unsigned rd = (instr >> 12) & 0xf;
61193 unsigned rn = (instr >> 16) & 0xf;
61194 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61204 switch (instr & 0x00400000) {
61207 switch (instr & 0x000f0000) {
61210 if (((instr & 0xf0000000) == 0xf0000000)) {
61211 UnallocatedA32(instr);
61214 Condition condition((instr >> 28) & 0xf);
61215 unsigned rd = (instr >> 12) & 0xf;
61216 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61222 if (((instr & 0xf0000000) == 0xf0000000) ||
61223 ((instr & 0xf0000) == 0xd0000)) {
61224 UnallocatedA32(instr);
61227 Condition condition((instr >> 28) & 0xf);
61228 unsigned rd = (instr >> 12) & 0xf;
61229 unsigned rn = (instr >> 16) & 0xf;
61230 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61240 if (((instr & 0xf0000000) == 0xf0000000)) {
61241 UnallocatedA32(instr);
61244 Condition condition((instr >> 28) & 0xf);
61245 unsigned rd = (instr >> 12) & 0xf;
61246 unsigned rn = (instr >> 16) & 0xf;
61247 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61257 switch (instr & 0x00400000) {
61260 if (((instr & 0xf0000000) == 0xf0000000)) {
61261 UnallocatedA32(instr);
61264 Condition condition((instr >> 28) & 0xf);
61265 unsigned rd = (instr >> 12) & 0xf;
61266 unsigned rn = (instr >> 16) & 0xf;
61267 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61274 if (((instr & 0xf0000000) == 0xf0000000)) {
61275 UnallocatedA32(instr);
61278 Condition condition((instr >> 28) & 0xf);
61279 unsigned rd = (instr >> 12) & 0xf;
61280 unsigned rn = (instr >> 16) & 0xf;
61281 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61291 switch (instr & 0x00400000) {
61294 if (((instr & 0xf0000000) == 0xf0000000)) {
61295 UnallocatedA32(instr);
61298 Condition condition((instr >> 28) & 0xf);
61299 unsigned rd = (instr >> 12) & 0xf;
61300 unsigned rn = (instr >> 16) & 0xf;
61301 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61308 if (((instr & 0xf0000000) == 0xf0000000)) {
61309 UnallocatedA32(instr);
61312 Condition condition((instr >> 28) & 0xf);
61313 unsigned rd = (instr >> 12) & 0xf;
61314 unsigned rn = (instr >> 16) & 0xf;
61315 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61325 switch (instr & 0x00400000) {
61328 if (((instr & 0xf0000000) == 0xf0000000)) {
61329 UnallocatedA32(instr);
61332 Condition condition((instr >> 28) & 0xf);
61333 unsigned rd = (instr >> 12) & 0xf;
61334 uint32_t imm = (instr & 0xfff) | ((instr >> 4) & 0xf000);
61346 if (((instr & 0xf0000000) == 0xf0000000)) {
61347 UnallocatedA32(instr);
61350 Condition condition((instr >> 28) & 0xf);
61351 unsigned rd = (instr >> 12) & 0xf;
61352 uint32_t imm = (instr & 0xfff) | ((instr >> 4) & 0xf000);
61362 switch (instr & 0x00400000) {
61365 if (((instr & 0xf0000000) == 0xf0000000)) {
61366 UnallocatedA32(instr);
61369 Condition condition((instr >> 28) & 0xf);
61370 unsigned rn = (instr >> 16) & 0xf;
61371 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61374 if (((instr & 0xff0f000) != 0x3100000)) {
61375 UnpredictableA32(instr);
61381 if (((instr & 0xf0000000) == 0xf0000000)) {
61382 UnallocatedA32(instr);
61385 Condition condition((instr >> 28) & 0xf);
61386 unsigned rn = (instr >> 16) & 0xf;
61387 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61390 if (((instr & 0xff0f000) != 0x3500000)) {
61391 UnpredictableA32(instr);
61400 switch (instr & 0x004f0000) {
61403 switch (instr & 0x000000f0) {
61406 switch (instr & 0x0000000f) {
61409 if (((instr & 0xf0000000) == 0xf0000000)) {
61410 UnallocatedA32(instr);
61413 Condition condition((instr >> 28) & 0xf);
61416 if (((instr & 0xfffffff) != 0x320f000)) {
61417 UnpredictableA32(instr);
61423 if (((instr & 0xf0000000) == 0xf0000000)) {
61424 UnallocatedA32(instr);
61427 Condition condition((instr >> 28) & 0xf);
61430 if (((instr & 0xfffffff) != 0x320f001)) {
61431 UnpredictableA32(instr);
61437 if (((instr & 0xf0000000) == 0xf0000000)) {
61438 UnallocatedA32(instr);
61441 UnimplementedA32("WFE", instr);
61446 if (((instr & 0xf0000000) == 0xf0000000)) {
61447 UnallocatedA32(instr);
61450 UnimplementedA32("WFI", instr);
61455 if (((instr & 0xf0000000) == 0xf0000000)) {
61456 UnallocatedA32(instr);
61459 UnimplementedA32("SEV", instr);
61464 if (((instr & 0xf0000000) == 0xf0000000)) {
61465 UnallocatedA32(instr);
61468 UnimplementedA32("SEVL", instr);
61472 UnallocatedA32(instr);
61479 if (((instr & 0xf0000000) == 0xf0000000)) {
61480 UnallocatedA32(instr);
61483 UnimplementedA32("DBG", instr);
61487 UnallocatedA32(instr);
61493 if (((instr & 0xf0000000) == 0xf0000000) ||
61494 ((instr & 0x4f0000) == 0x0)) {
61495 UnallocatedA32(instr);
61498 Condition condition((instr >> 28) & 0xf);
61500 ((instr >> 16) & 0xf) | ((instr >> 18) & 0x10);
61501 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61504 if (((instr & 0xfb0f000) != 0x320f000)) {
61505 UnpredictableA32(instr);
61514 switch (instr & 0x00400000) {
61517 if (((instr & 0xf0000000) == 0xf0000000)) {
61518 UnallocatedA32(instr);
61521 Condition condition((instr >> 28) & 0xf);
61522 unsigned rn = (instr >> 16) & 0xf;
61523 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61526 if (((instr & 0xff0f000) != 0x3300000)) {
61527 UnpredictableA32(instr);
61533 if (((instr & 0xf0000000) == 0xf0000000)) {
61534 UnallocatedA32(instr);
61537 Condition condition((instr >> 28) & 0xf);
61538 unsigned rn = (instr >> 16) & 0xf;
61539 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61542 if (((instr & 0xff0f000) != 0x3700000)) {
61543 UnpredictableA32(instr);
61552 switch (instr & 0x00400000) {
61555 if (((instr & 0xf0000000) == 0xf0000000)) {
61556 UnallocatedA32(instr);
61559 Condition condition((instr >> 28) & 0xf);
61560 unsigned rd = (instr >> 12) & 0xf;
61561 unsigned rn = (instr >> 16) & 0xf;
61562 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61569 if (((instr & 0xf0000000) == 0xf0000000)) {
61570 UnallocatedA32(instr);
61573 Condition condition((instr >> 28) & 0xf);
61574 unsigned rd = (instr >> 12) & 0xf;
61575 unsigned rn = (instr >> 16) & 0xf;
61576 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61586 switch (instr & 0x00400000) {
61589 if (((instr & 0xf0000000) == 0xf0000000)) {
61590 UnallocatedA32(instr);
61593 Condition condition((instr >> 28) & 0xf);
61594 unsigned rd = (instr >> 12) & 0xf;
61595 unsigned rn = (instr >> 16) & 0xf;
61596 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61603 if (((instr & 0xf0000000) == 0xf0000000)) {
61604 UnallocatedA32(instr);
61607 Condition condition((instr >> 28) & 0xf);
61608 unsigned rd = (instr >> 12) & 0xf;
61609 unsigned rn = (instr >> 16) & 0xf;
61610 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61620 switch (instr & 0x00400000) {
61623 if (((instr & 0xf0000000) == 0xf0000000)) {
61624 UnallocatedA32(instr);
61627 Condition condition((instr >> 28) & 0xf);
61628 unsigned rd = (instr >> 12) & 0xf;
61629 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61632 if (((instr & 0xfff0000) != 0x3a00000)) {
61633 UnpredictableA32(instr);
61639 if (((instr & 0xf0000000) == 0xf0000000)) {
61640 UnallocatedA32(instr);
61643 Condition condition((instr >> 28) & 0xf);
61644 unsigned rd = (instr >> 12) & 0xf;
61645 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61648 if (((instr & 0xfff0000) != 0x3e00000)) {
61649 UnpredictableA32(instr);
61658 switch (instr & 0x00400000) {
61661 if (((instr & 0xf0000000) == 0xf0000000)) {
61662 UnallocatedA32(instr);
61665 Condition condition((instr >> 28) & 0xf);
61666 unsigned rd = (instr >> 12) & 0xf;
61667 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61670 if (((instr & 0xfff0000) != 0x3b00000)) {
61671 UnpredictableA32(instr);
61677 if (((instr & 0xf0000000) == 0xf0000000)) {
61678 UnallocatedA32(instr);
61681 Condition condition((instr >> 28) & 0xf);
61682 unsigned rd = (instr >> 12) & 0xf;
61683 uint32_t imm = ImmediateA32::Decode(instr & 0xfff);
61686 if (((instr & 0xfff0000) != 0x3f00000)) {
61687 UnpredictableA32(instr);
61699 switch (instr & 0x00500000) {
61702 switch (instr & 0x01200000) {
61705 if (((instr & 0xf0000000) == 0xf0000000)) {
61706 UnallocatedA32(instr);
61709 Condition condition((instr >> 28) & 0xf);
61710 unsigned rt = (instr >> 12) & 0xf;
61711 unsigned rn = (instr >> 16) & 0xf;
61712 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
61713 int32_t offset = instr & 0xfff;
61723 if (((instr & 0xf0000000) == 0xf0000000)) {
61724 UnallocatedA32(instr);
61727 UnimplementedA32("STRT", instr);
61732 if (((instr & 0xf0000000) == 0xf0000000)) {
61733 UnallocatedA32(instr);
61736 Condition condition((instr >> 28) & 0xf);
61737 unsigned rt = (instr >> 12) & 0xf;
61738 unsigned rn = (instr >> 16) & 0xf;
61739 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
61740 int32_t offset = instr & 0xfff;
61750 if (((instr & 0xf0000000) == 0xf0000000)) {
61751 UnallocatedA32(instr);
61754 if (((Uint32((instr >> 23)) & Uint32(0x1)) == Uint32(0x0)) &&
61755 ((Uint32((instr >> 16)) & Uint32(0xf)) == Uint32(0xd)) &&
61756 ((Uint32(instr) & Uint32(0xfff)) == Uint32(0x4)) &&
61757 ((instr & 0xf0000000) != 0xf0000000)) {
61758 Condition condition((instr >> 28) & 0xf);
61759 unsigned rt = (instr >> 12) & 0xf;
61764 Condition condition((instr >> 28) & 0xf);
61765 unsigned rt = (instr >> 12) & 0xf;
61766 unsigned rn = (instr >> 16) & 0xf;
61767 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
61768 int32_t offset = instr & 0xfff;
61781 switch (instr & 0x01200000) {
61784 switch (instr & 0x000f0000) {
61787 if (((instr & 0xf0000000) == 0xf0000000) ||
61788 ((instr & 0x1200000) == 0x200000)) {
61789 UnallocatedA32(instr);
61792 Condition condition((instr >> 28) & 0xf);
61793 unsigned rt = (instr >> 12) & 0xf;
61794 uint32_t U = (instr >> 23) & 0x1;
61795 int32_t imm = instr & 0xfff;
61808 if (((instr & 0xf7f0000) != 0x51f0000)) {
61809 UnpredictableA32(instr);
61814 if (((instr & 0xf0000000) == 0xf0000000) ||
61815 ((instr & 0xf0000) == 0xf0000)) {
61816 UnallocatedA32(instr);
61819 if (((Uint32((instr >> 23)) & Uint32(0x1)) ==
61821 ((Uint32((instr >> 16)) & Uint32(0xf)) ==
61823 ((Uint32(instr) & Uint32(0xfff)) == Uint32(0x4)) &&
61824 ((instr & 0xf0000000) != 0xf0000000)) {
61825 Condition condition((instr >> 28) & 0xf);
61826 unsigned rt = (instr >> 12) & 0xf;
61831 Condition condition((instr >> 28) & 0xf);
61832 unsigned rt = (instr >> 12) & 0xf;
61833 unsigned rn = (instr >> 16) & 0xf;
61834 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
61835 int32_t offset = instr & 0xfff;
61848 if (((instr & 0xf0000000) == 0xf0000000)) {
61849 UnallocatedA32(instr);
61852 UnimplementedA32("LDRT", instr);
61857 switch (instr & 0x000f0000) {
61860 if (((instr & 0xf0000000) == 0xf0000000) ||
61861 ((instr & 0x1200000) == 0x200000)) {
61862 UnallocatedA32(instr);
61865 Condition condition((instr >> 28) & 0xf);
61866 unsigned rt = (instr >> 12) & 0xf;
61867 uint32_t U = (instr >> 23) & 0x1;
61868 int32_t imm = instr & 0xfff;
61881 if (((instr & 0xf7f0000) != 0x51f0000)) {
61882 UnpredictableA32(instr);
61887 if (((instr & 0xf0000000) == 0xf0000000) ||
61888 ((instr & 0xf0000) == 0xf0000)) {
61889 UnallocatedA32(instr);
61892 Condition condition((instr >> 28) & 0xf);
61893 unsigned rt = (instr >> 12) & 0xf;
61894 unsigned rn = (instr >> 16) & 0xf;
61895 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
61896 int32_t offset = instr & 0xfff;
61909 switch (instr & 0x000f0000) {
61912 if (((instr & 0xf0000000) == 0xf0000000) ||
61913 ((instr & 0x1200000) == 0x200000)) {
61914 UnallocatedA32(instr);
61917 Condition condition((instr >> 28) & 0xf);
61918 unsigned rt = (instr >> 12) & 0xf;
61919 uint32_t U = (instr >> 23) & 0x1;
61920 int32_t imm = instr & 0xfff;
61933 if (((instr & 0xf7f0000) != 0x51f0000)) {
61934 UnpredictableA32(instr);
61939 if (((instr & 0xf0000000) == 0xf0000000) ||
61940 ((instr & 0xf0000) == 0xf0000)) {
61941 UnallocatedA32(instr);
61944 Condition condition((instr >> 28) & 0xf);
61945 unsigned rt = (instr >> 12) & 0xf;
61946 unsigned rn = (instr >> 16) & 0xf;
61947 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
61948 int32_t offset = instr & 0xfff;
61964 switch (instr & 0x01200000) {
61967 if (((instr & 0xf0000000) == 0xf0000000)) {
61968 UnallocatedA32(instr);
61971 Condition condition((instr >> 28) & 0xf);
61972 unsigned rt = (instr >> 12) & 0xf;
61973 unsigned rn = (instr >> 16) & 0xf;
61974 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
61975 int32_t offset = instr & 0xfff;
61985 if (((instr & 0xf0000000) == 0xf0000000)) {
61986 UnallocatedA32(instr);
61989 UnimplementedA32("STRBT", instr);
61994 if (((instr & 0xf0000000) == 0xf0000000)) {
61995 UnallocatedA32(instr);
61998 Condition condition((instr >> 28) & 0xf);
61999 unsigned rt = (instr >> 12) & 0xf;
62000 unsigned rn = (instr >> 16) & 0xf;
62001 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
62002 int32_t offset = instr & 0xfff;
62012 if (((instr & 0xf0000000) == 0xf0000000)) {
62013 UnallocatedA32(instr);
62016 Condition condition((instr >> 28) & 0xf);
62017 unsigned rt = (instr >> 12) & 0xf;
62018 unsigned rn = (instr >> 16) & 0xf;
62019 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
62020 int32_t offset = instr & 0xfff;
62033 switch (instr & 0x01200000) {
62036 switch (instr & 0x000f0000) {
62039 if (((instr & 0xf0000000) == 0xf0000000) ||
62040 ((instr & 0x1200000) == 0x200000)) {
62041 UnallocatedA32(instr);
62044 Condition condition((instr >> 28) & 0xf);
62045 unsigned rt = (instr >> 12) & 0xf;
62046 uint32_t U = (instr >> 23) & 0x1;
62047 int32_t imm = instr & 0xfff;
62060 if (((instr & 0xf7f0000) != 0x55f0000)) {
62061 UnpredictableA32(instr);
62066 if (((instr & 0xf0000000) == 0xf0000000) ||
62067 ((instr & 0xf0000) == 0xf0000)) {
62068 UnallocatedA32(instr);
62071 Condition condition((instr >> 28) & 0xf);
62072 unsigned rt = (instr >> 12) & 0xf;
62073 unsigned rn = (instr >> 16) & 0xf;
62074 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
62075 int32_t offset = instr & 0xfff;
62088 if (((instr & 0xf0000000) == 0xf0000000)) {
62089 UnallocatedA32(instr);
62092 UnimplementedA32("LDRBT", instr);
62097 switch (instr & 0x000f0000) {
62100 if (((instr & 0xf0000000) == 0xf0000000) ||
62101 ((instr & 0x1200000) == 0x200000)) {
62102 UnallocatedA32(instr);
62105 Condition condition((instr >> 28) & 0xf);
62106 unsigned rt = (instr >> 12) & 0xf;
62107 uint32_t U = (instr >> 23) & 0x1;
62108 int32_t imm = instr & 0xfff;
62121 if (((instr & 0xf7f0000) != 0x55f0000)) {
62122 UnpredictableA32(instr);
62127 if (((instr & 0xf0000000) == 0xf0000000) ||
62128 ((instr & 0xf0000) == 0xf0000)) {
62129 UnallocatedA32(instr);
62132 Condition condition((instr >> 28) & 0xf);
62133 unsigned rt = (instr >> 12) & 0xf;
62134 unsigned rn = (instr >> 16) & 0xf;
62135 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
62136 int32_t offset = instr & 0xfff;
62149 switch (instr & 0x000f0000) {
62152 if (((instr & 0xf0000000) == 0xf0000000) ||
62153 ((instr & 0x1200000) == 0x200000)) {
62154 UnallocatedA32(instr);
62157 Condition condition((instr >> 28) & 0xf);
62158 unsigned rt = (instr >> 12) & 0xf;
62159 uint32_t U = (instr >> 23) & 0x1;
62160 int32_t imm = instr & 0xfff;
62173 if (((instr & 0xf7f0000) != 0x55f0000)) {
62174 UnpredictableA32(instr);
62179 if (((instr & 0xf0000000) == 0xf0000000) ||
62180 ((instr & 0xf0000) == 0xf0000)) {
62181 UnallocatedA32(instr);
62184 Condition condition((instr >> 28) & 0xf);
62185 unsigned rt = (instr >> 12) & 0xf;
62186 unsigned rn = (instr >> 16) & 0xf;
62187 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
62188 int32_t offset = instr & 0xfff;
62207 switch (instr & 0x01600010) {
62210 switch (instr & 0x00100000) {
62213 if (((instr & 0xf0000000) == 0xf0000000)) {
62214 UnallocatedA32(instr);
62217 Condition condition((instr >> 28) & 0xf);
62218 unsigned rt = (instr >> 12) & 0xf;
62219 unsigned rn = (instr >> 16) & 0xf;
62220 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
62221 unsigned rm = instr & 0xf;
62222 uint32_t imm_and_type_ = ((instr >> 5) & 0x7f);
62242 if (((instr & 0xf0000000) == 0xf0000000)) {
62243 UnallocatedA32(instr);
62246 Condition condition((instr >> 28) & 0xf);
62247 unsigned rt = (instr >> 12) & 0xf;
62248 unsigned rn = (instr >> 16) & 0xf;
62249 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
62250 unsigned rm = instr & 0xf;
62251 uint32_t imm_and_type_ = ((instr >> 5) & 0x7f);
62274 switch (instr & 0x00900060) {
62277 switch (instr & 0x00000080) {
62280 if (((instr & 0xf0000000) == 0xf0000000)) {
62281 UnallocatedA32(instr);
62284 Condition condition((instr >> 28) & 0xf);
62285 unsigned rd = (instr >> 12) & 0xf;
62286 unsigned rn = (instr >> 16) & 0xf;
62287 unsigned rm = instr & 0xf;
62290 if (((instr & 0xff00ff0) != 0x6100f10)) {
62291 UnpredictableA32(instr);
62297 if (((instr & 0xf0000000) == 0xf0000000)) {
62298 UnallocatedA32(instr);
62301 Condition condition((instr >> 28) & 0xf);
62302 unsigned rd = (instr >> 12) & 0xf;
62303 unsigned rn = (instr >> 16) & 0xf;
62304 unsigned rm = instr & 0xf;
62307 if (((instr & 0xff00ff0) != 0x6100f90)) {
62308 UnpredictableA32(instr);
62317 if ((instr & 0x00000080) == 0x00000000) {
62318 if (((instr & 0xf0000000) == 0xf0000000)) {
62319 UnallocatedA32(instr);
62322 Condition condition((instr >> 28) & 0xf);
62323 unsigned rd = (instr >> 12) & 0xf;
62324 unsigned rn = (instr >> 16) & 0xf;
62325 unsigned rm = instr & 0xf;
62328 if (((instr & 0xff00ff0) != 0x6100f30)) {
62329 UnpredictableA32(instr);
62332 UnallocatedA32(instr);
62338 if ((instr & 0x00000080) == 0x00000000) {
62339 if (((instr & 0xf0000000) == 0xf0000000)) {
62340 UnallocatedA32(instr);
62343 Condition condition((instr >> 28) & 0xf);
62344 unsigned rd = (instr >> 12) & 0xf;
62345 unsigned rn = (instr >> 16) & 0xf;
62346 unsigned rm = instr & 0xf;
62349 if (((instr & 0xff00ff0) != 0x6100f50)) {
62350 UnpredictableA32(instr);
62353 UnallocatedA32(instr);
62359 switch (instr & 0x00000080) {
62362 if (((instr & 0xf0000000) == 0xf0000000)) {
62363 UnallocatedA32(instr);
62366 Condition condition((instr >> 28) & 0xf);
62367 unsigned rd = (instr >> 12) & 0xf;
62368 unsigned rn = (instr >> 16) & 0xf;
62369 unsigned rm = instr & 0xf;
62372 if (((instr & 0xff00ff0) != 0x6100f70)) {
62373 UnpredictableA32(instr);
62379 if (((instr & 0xf0000000) == 0xf0000000)) {
62380 UnallocatedA32(instr);
62383 Condition condition((instr >> 28) & 0xf);
62384 unsigned rd = (instr >> 12) & 0xf;
62385 unsigned rn = (instr >> 16) & 0xf;
62386 unsigned rm = instr & 0xf;
62389 if (((instr & 0xff00ff0) != 0x6100ff0)) {
62390 UnpredictableA32(instr);
62399 if (((instr & 0xf0000000) == 0xf0000000)) {
62400 UnallocatedA32(instr);
62403 Condition condition((instr >> 28) & 0xf);
62404 unsigned rd = (instr >> 12) & 0xf;
62405 unsigned rn = (instr >> 16) & 0xf;
62406 unsigned rm = instr & 0xf;
62407 uint32_t amount = (instr >> 7) & 0x1f;
62417 if ((instr & 0x00000080) == 0x00000080) {
62418 if (((instr & 0xf0000000) == 0xf0000000)) {
62419 UnallocatedA32(instr);
62422 Condition condition((instr >> 28) & 0xf);
62423 unsigned rd = (instr >> 12) & 0xf;
62424 unsigned rn = (instr >> 16) & 0xf;
62425 unsigned rm = instr & 0xf;
62428 if (((instr & 0xff00ff0) != 0x6800fb0)) {
62429 UnpredictableA32(instr);
62432 UnallocatedA32(instr);
62438 if (((instr & 0xf0000000) == 0xf0000000)) {
62439 UnallocatedA32(instr);
62442 Condition condition((instr >> 28) & 0xf);
62443 unsigned rd = (instr >> 12) & 0xf;
62444 unsigned rn = (instr >> 16) & 0xf;
62445 unsigned rm = instr & 0xf;
62446 uint32_t amount = (instr >> 7) & 0x1f;
62457 switch (instr & 0x00000080) {
62460 switch (instr & 0x000f0000) {
62463 if (((instr & 0xf0000000) == 0xf0000000)) {
62464 UnallocatedA32(instr);
62467 Condition condition((instr >> 28) & 0xf);
62468 unsigned rd = (instr >> 12) & 0xf;
62469 unsigned rm = instr & 0xf;
62470 uint32_t amount = ((instr >> 10) & 0x3) * 8;
62475 if (((instr & 0xfff03f0) != 0x68f0070)) {
62476 UnpredictableA32(instr);
62481 if (((instr & 0xf0000000) == 0xf0000000) ||
62482 ((instr & 0xf0000) == 0xf0000)) {
62483 UnallocatedA32(instr);
62486 Condition condition((instr >> 28) & 0xf);
62487 unsigned rd = (instr >> 12) & 0xf;
62488 unsigned rn = (instr >> 16) & 0xf;
62489 unsigned rm = instr & 0xf;
62490 uint32_t amount = ((instr >> 10) & 0x3) * 8;
62496 if (((instr & 0xff003f0) != 0x6800070)) {
62497 UnpredictableA32(instr);
62505 UnallocatedA32(instr);
62511 UnallocatedA32(instr);
62518 switch (instr & 0x00100000) {
62521 if (((instr & 0xf0000000) == 0xf0000000)) {
62522 UnallocatedA32(instr);
62525 UnimplementedA32("STRT", instr);
62530 if (((instr & 0xf0000000) == 0xf0000000)) {
62531 UnallocatedA32(instr);
62534 UnimplementedA32("LDRT", instr);
62542 switch (instr & 0x00800060) {
62545 switch (instr & 0x00100080) {
62548 if (((instr & 0xf0000000) == 0xf0000000)) {
62549 UnallocatedA32(instr);
62552 Condition condition((instr >> 28) & 0xf);
62553 unsigned rd = (instr >> 12) & 0xf;
62554 unsigned rn = (instr >> 16) & 0xf;
62555 unsigned rm = instr & 0xf;
62558 if (((instr & 0xff00ff0) != 0x6200f10)) {
62559 UnpredictableA32(instr);
62565 if (((instr & 0xf0000000) == 0xf0000000)) {
62566 UnallocatedA32(instr);
62569 Condition condition((instr >> 28) & 0xf);
62570 unsigned rd = (instr >> 12) & 0xf;
62571 unsigned rn = (instr >> 16) & 0xf;
62572 unsigned rm = instr & 0xf;
62575 if (((instr & 0xff00ff0) != 0x6200f90)) {
62576 UnpredictableA32(instr);
62582 if (((instr & 0xf0000000) == 0xf0000000)) {
62583 UnallocatedA32(instr);
62586 Condition condition((instr >> 28) & 0xf);
62587 unsigned rd = (instr >> 12) & 0xf;
62588 unsigned rn = (instr >> 16) & 0xf;
62589 unsigned rm = instr & 0xf;
62595 if (((instr & 0xff00ff0) != 0x6300f10)) {
62596 UnpredictableA32(instr);
62602 if (((instr & 0xf0000000) == 0xf0000000)) {
62603 UnallocatedA32(instr);
62606 Condition condition((instr >> 28) & 0xf);
62607 unsigned rd = (instr >> 12) & 0xf;
62608 unsigned rn = (instr >> 16) & 0xf;
62609 unsigned rm = instr & 0xf;
62612 if (((instr & 0xff00ff0) != 0x6300f90)) {
62613 UnpredictableA32(instr);
62622 switch (instr & 0x00100080) {
62625 if (((instr & 0xf0000000) == 0xf0000000)) {
62626 UnallocatedA32(instr);
62629 Condition condition((instr >> 28) & 0xf);
62630 unsigned rd = (instr >> 12) & 0xf;
62631 unsigned rn = (instr >> 16) & 0xf;
62632 unsigned rm = instr & 0xf;
62635 if (((instr & 0xff00ff0) != 0x6200f30)) {
62636 UnpredictableA32(instr);
62642 if (((instr & 0xf0000000) == 0xf0000000)) {
62643 UnallocatedA32(instr);
62646 Condition condition((instr >> 28) & 0xf);
62647 unsigned rd = (instr >> 12) & 0xf;
62648 unsigned rn = (instr >> 16) & 0xf;
62649 unsigned rm = instr & 0xf;
62652 if (((instr & 0xff00ff0) != 0x6300f30)) {
62653 UnpredictableA32(instr);
62658 UnallocatedA32(instr);
62665 switch (instr & 0x00100080) {
62668 if (((instr & 0xf0000000) == 0xf0000000)) {
62669 UnallocatedA32(instr);
62672 Condition condition((instr >> 28) & 0xf);
62673 unsigned rd = (instr >> 12) & 0xf;
62674 unsigned rn = (instr >> 16) & 0xf;
62675 unsigned rm = instr & 0xf;
62678 if (((instr & 0xff00ff0) != 0x6200f50)) {
62679 UnpredictableA32(instr);
62685 if (((instr & 0xf0000000) == 0xf0000000)) {
62686 UnallocatedA32(instr);
62689 Condition condition((instr >> 28) & 0xf);
62690 unsigned rd = (instr >> 12) & 0xf;
62691 unsigned rn = (instr >> 16) & 0xf;
62692 unsigned rm = instr & 0xf;
62695 if (((instr & 0xff00ff0) != 0x6300f50)) {
62696 UnpredictableA32(instr);
62701 UnallocatedA32(instr);
62708 switch (instr & 0x00100080) {
62711 if (((instr & 0xf0000000) == 0xf0000000)) {
62712 UnallocatedA32(instr);
62715 Condition condition((instr >> 28) & 0xf);
62716 unsigned rd = (instr >> 12) & 0xf;
62717 unsigned rn = (instr >> 16) & 0xf;
62718 unsigned rm = instr & 0xf;
62721 if (((instr & 0xff00ff0) != 0x6200f70)) {
62722 UnpredictableA32(instr);
62728 if (((instr & 0xf0000000) == 0xf0000000)) {
62729 UnallocatedA32(instr);
62732 Condition condition((instr >> 28) & 0xf);
62733 unsigned rd = (instr >> 12) & 0xf;
62734 unsigned rn = (instr >> 16) & 0xf;
62735 unsigned rm = instr & 0xf;
62738 if (((instr & 0xff00ff0) != 0x6200ff0)) {
62739 UnpredictableA32(instr);
62745 if (((instr & 0xf0000000) == 0xf0000000)) {
62746 UnallocatedA32(instr);
62749 Condition condition((instr >> 28) & 0xf);
62750 unsigned rd = (instr >> 12) & 0xf;
62751 unsigned rn = (instr >> 16) & 0xf;
62752 unsigned rm = instr & 0xf;
62758 if (((instr & 0xff00ff0) != 0x6300f70)) {
62759 UnpredictableA32(instr);
62765 if (((instr & 0xf0000000) == 0xf0000000)) {
62766 UnallocatedA32(instr);
62769 Condition condition((instr >> 28) & 0xf);
62770 unsigned rd = (instr >> 12) & 0xf;
62771 unsigned rn = (instr >> 16) & 0xf;
62772 unsigned rm = instr & 0xf;
62775 if (((instr & 0xff00ff0) != 0x6300ff0)) {
62776 UnpredictableA32(instr);
62785 if (((instr & 0xf0000000) == 0xf0000000)) {
62786 UnallocatedA32(instr);
62789 Condition condition((instr >> 28) & 0xf);
62790 unsigned rd = (instr >> 12) & 0xf;
62791 uint32_t imm = ((instr >> 16) & 0x1f) + 1;
62792 unsigned rn = instr & 0xf;
62793 uint32_t amount = (instr >> 7) & 0x1f;
62803 switch (instr & 0x00100080) {
62806 if (((instr & 0xf0000000) == 0xf0000000)) {
62807 UnallocatedA32(instr);
62810 Condition condition((instr >> 28) & 0xf);
62811 unsigned rd = (instr >> 12) & 0xf;
62812 uint32_t imm = ((instr >> 16) & 0xf) + 1;
62813 unsigned rn = instr & 0xf;
62816 if (((instr & 0xff00ff0) != 0x6a00f30)) {
62817 UnpredictableA32(instr);
62823 if (((instr & 0xf0000000) == 0xf0000000)) {
62824 UnallocatedA32(instr);
62827 Condition condition((instr >> 28) & 0xf);
62828 unsigned rd = (instr >> 12) & 0xf;
62829 unsigned rm = instr & 0xf;
62832 if (((instr & 0xfff0ff0) != 0x6bf0f30)) {
62833 UnpredictableA32(instr);
62839 if (((instr & 0xf0000000) == 0xf0000000)) {
62840 UnallocatedA32(instr);
62843 Condition condition((instr >> 28) & 0xf);
62844 unsigned rd = (instr >> 12) & 0xf;
62845 unsigned rm = instr & 0xf;
62848 if (((instr & 0xfff0ff0) != 0x6bf0fb0)) {
62849 UnpredictableA32(instr);
62854 UnallocatedA32(instr);
62861 if (((instr & 0xf0000000) == 0xf0000000)) {
62862 UnallocatedA32(instr);
62865 Condition condition((instr >> 28) & 0xf);
62866 unsigned rd = (instr >> 12) & 0xf;
62867 uint32_t imm = ((instr >> 16) & 0x1f) + 1;
62868 unsigned rn = instr & 0xf;
62869 uint32_t amount = (instr >> 7) & 0x1f;
62880 switch (instr & 0x00100080) {
62883 switch (instr & 0x000f0000) {
62886 if (((instr & 0xf0000000) == 0xf0000000)) {
62887 UnallocatedA32(instr);
62890 Condition condition((instr >> 28) & 0xf);
62891 unsigned rd = (instr >> 12) & 0xf;
62892 unsigned rm = instr & 0xf;
62893 uint32_t amount = ((instr >> 10) & 0x3) * 8;
62899 if (((instr & 0xfff03f0) != 0x6af0070)) {
62900 UnpredictableA32(instr);
62905 if (((instr & 0xf0000000) == 0xf0000000) ||
62906 ((instr & 0xf0000) == 0xf0000)) {
62907 UnallocatedA32(instr);
62910 Condition condition((instr >> 28) & 0xf);
62911 unsigned rd = (instr >> 12) & 0xf;
62912 unsigned rn = (instr >> 16) & 0xf;
62913 unsigned rm = instr & 0xf;
62914 uint32_t amount = ((instr >> 10) & 0x3) * 8;
62920 if (((instr & 0xff003f0) != 0x6a00070)) {
62921 UnpredictableA32(instr);
62930 switch (instr & 0x000f0000) {
62933 if (((instr & 0xf0000000) == 0xf0000000)) {
62934 UnallocatedA32(instr);
62937 Condition condition((instr >> 28) & 0xf);
62938 unsigned rd = (instr >> 12) & 0xf;
62939 unsigned rm = instr & 0xf;
62940 uint32_t amount = ((instr >> 10) & 0x3) * 8;
62946 if (((instr & 0xfff03f0) != 0x6bf0070)) {
62947 UnpredictableA32(instr);
62952 if (((instr & 0xf0000000) == 0xf0000000) ||
62953 ((instr & 0xf0000) == 0xf0000)) {
62954 UnallocatedA32(instr);
62957 Condition condition((instr >> 28) & 0xf);
62958 unsigned rd = (instr >> 12) & 0xf;
62959 unsigned rn = (instr >> 16) & 0xf;
62960 unsigned rm = instr & 0xf;
62961 uint32_t amount = ((instr >> 10) & 0x3) * 8;
62967 if (((instr & 0xff003f0) != 0x6b00070)) {
62968 UnpredictableA32(instr);
62976 UnallocatedA32(instr);
62986 switch (instr & 0x00100000) {
62989 if (((instr & 0xf0000000) == 0xf0000000)) {
62990 UnallocatedA32(instr);
62993 Condition condition((instr >> 28) & 0xf);
62994 unsigned rt = (instr >> 12) & 0xf;
62995 unsigned rn = (instr >> 16) & 0xf;
62996 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
62997 unsigned rm = instr & 0xf;
62998 uint32_t imm_and_type_ = ((instr >> 5) & 0x7f);
63018 if (((instr & 0xf0000000) == 0xf0000000)) {
63019 UnallocatedA32(instr);
63022 Condition condition((instr >> 28) & 0xf);
63023 unsigned rt = (instr >> 12) & 0xf;
63024 unsigned rn = (instr >> 16) & 0xf;
63025 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
63026 unsigned rm = instr & 0xf;
63027 uint32_t imm_and_type_ = ((instr >> 5) & 0x7f);
63050 switch (instr & 0x009000e0) {
63053 if (((instr & 0xf0000000) == 0xf0000000)) {
63054 UnallocatedA32(instr);
63057 Condition condition((instr >> 28) & 0xf);
63058 unsigned rd = (instr >> 12) & 0xf;
63059 unsigned rn = (instr >> 16) & 0xf;
63060 unsigned rm = instr & 0xf;
63063 if (((instr & 0xff00ff0) != 0x6500f10)) {
63064 UnpredictableA32(instr);
63070 if (((instr & 0xf0000000) == 0xf0000000)) {
63071 UnallocatedA32(instr);
63074 Condition condition((instr >> 28) & 0xf);
63075 unsigned rd = (instr >> 12) & 0xf;
63076 unsigned rn = (instr >> 16) & 0xf;
63077 unsigned rm = instr & 0xf;
63080 if (((instr & 0xff00ff0) != 0x6500f30)) {
63081 UnpredictableA32(instr);
63087 if (((instr & 0xf0000000) == 0xf0000000)) {
63088 UnallocatedA32(instr);
63091 Condition condition((instr >> 28) & 0xf);
63092 unsigned rd = (instr >> 12) & 0xf;
63093 unsigned rn = (instr >> 16) & 0xf;
63094 unsigned rm = instr & 0xf;
63097 if (((instr & 0xff00ff0) != 0x6500f50)) {
63098 UnpredictableA32(instr);
63104 if (((instr & 0xf0000000) == 0xf0000000)) {
63105 UnallocatedA32(instr);
63108 Condition condition((instr >> 28) & 0xf);
63109 unsigned rd = (instr >> 12) & 0xf;
63110 unsigned rn = (instr >> 16) & 0xf;
63111 unsigned rm = instr & 0xf;
63114 if (((instr & 0xff00ff0) != 0x6500f70)) {
63115 UnpredictableA32(instr);
63121 if (((instr & 0xf0000000) == 0xf0000000)) {
63122 UnallocatedA32(instr);
63125 Condition condition((instr >> 28) & 0xf);
63126 unsigned rd = (instr >> 12) & 0xf;
63127 unsigned rn = (instr >> 16) & 0xf;
63128 unsigned rm = instr & 0xf;
63131 if (((instr & 0xff00ff0) != 0x6500f90)) {
63132 UnpredictableA32(instr);
63138 if (((instr & 0xf0000000) == 0xf0000000)) {
63139 UnallocatedA32(instr);
63142 Condition condition((instr >> 28) & 0xf);
63143 unsigned rd = (instr >> 12) & 0xf;
63144 unsigned rn = (instr >> 16) & 0xf;
63145 unsigned rm = instr & 0xf;
63148 if (((instr & 0xff00ff0) != 0x6500ff0)) {
63149 UnpredictableA32(instr);
63155 switch (instr & 0x000f0000) {
63158 if (((instr & 0xf0000000) == 0xf0000000)) {
63159 UnallocatedA32(instr);
63162 Condition condition((instr >> 28) & 0xf);
63163 unsigned rd = (instr >> 12) & 0xf;
63164 unsigned rm = instr & 0xf;
63165 uint32_t amount = ((instr >> 10) & 0x3) * 8;
63170 if (((instr & 0xfff03f0) != 0x6cf0070)) {
63171 UnpredictableA32(instr);
63176 if (((instr & 0xf0000000) == 0xf0000000) ||
63177 ((instr & 0xf0000) == 0xf0000)) {
63178 UnallocatedA32(instr);
63181 Condition condition((instr >> 28) & 0xf);
63182 unsigned rd = (instr >> 12) & 0xf;
63183 unsigned rn = (instr >> 16) & 0xf;
63184 unsigned rm = instr & 0xf;
63185 uint32_t amount = ((instr >> 10) & 0x3) * 8;
63191 if (((instr & 0xff003f0) != 0x6c00070)) {
63192 UnpredictableA32(instr);
63200 UnallocatedA32(instr);
63207 switch (instr & 0x00100000) {
63210 if (((instr & 0xf0000000) == 0xf0000000)) {
63211 UnallocatedA32(instr);
63214 UnimplementedA32("STRBT", instr);
63219 if (((instr & 0xf0000000) == 0xf0000000)) {
63220 UnallocatedA32(instr);
63223 UnimplementedA32("LDRBT", instr);
63231 switch (instr & 0x00800060) {
63234 switch (instr & 0x00100080) {
63237 if (((instr & 0xf0000000) == 0xf0000000)) {
63238 UnallocatedA32(instr);
63241 Condition condition((instr >> 28) & 0xf);
63242 unsigned rd = (instr >> 12) & 0xf;
63243 unsigned rn = (instr >> 16) & 0xf;
63244 unsigned rm = instr & 0xf;
63250 if (((instr & 0xff00ff0) != 0x6600f10)) {
63251 UnpredictableA32(instr);
63257 if (((instr & 0xf0000000) == 0xf0000000)) {
63258 UnallocatedA32(instr);
63261 Condition condition((instr >> 28) & 0xf);
63262 unsigned rd = (instr >> 12) & 0xf;
63263 unsigned rn = (instr >> 16) & 0xf;
63264 unsigned rm = instr & 0xf;
63267 if (((instr & 0xff00ff0) != 0x6600f90)) {
63268 UnpredictableA32(instr);
63274 if (((instr & 0xf0000000) == 0xf0000000)) {
63275 UnallocatedA32(instr);
63278 Condition condition((instr >> 28) & 0xf);
63279 unsigned rd = (instr >> 12) & 0xf;
63280 unsigned rn = (instr >> 16) & 0xf;
63281 unsigned rm = instr & 0xf;
63287 if (((instr & 0xff00ff0) != 0x6700f10)) {
63288 UnpredictableA32(instr);
63294 if (((instr & 0xf0000000) == 0xf0000000)) {
63295 UnallocatedA32(instr);
63298 Condition condition((instr >> 28) & 0xf);
63299 unsigned rd = (instr >> 12) & 0xf;
63300 unsigned rn = (instr >> 16) & 0xf;
63301 unsigned rm = instr & 0xf;
63304 if (((instr & 0xff00ff0) != 0x6700f90)) {
63305 UnpredictableA32(instr);
63314 switch (instr & 0x00100080) {
63317 if (((instr & 0xf0000000) == 0xf0000000)) {
63318 UnallocatedA32(instr);
63321 Condition condition((instr >> 28) & 0xf);
63322 unsigned rd = (instr >> 12) & 0xf;
63323 unsigned rn = (instr >> 16) & 0xf;
63324 unsigned rm = instr & 0xf;
63327 if (((instr & 0xff00ff0) != 0x6600f30)) {
63328 UnpredictableA32(instr);
63334 if (((instr & 0xf0000000) == 0xf0000000)) {
63335 UnallocatedA32(instr);
63338 Condition condition((instr >> 28) & 0xf);
63339 unsigned rd = (instr >> 12) & 0xf;
63340 unsigned rn = (instr >> 16) & 0xf;
63341 unsigned rm = instr & 0xf;
63344 if (((instr & 0xff00ff0) != 0x6700f30)) {
63345 UnpredictableA32(instr);
63350 UnallocatedA32(instr);
63357 switch (instr & 0x00100080) {
63360 if (((instr & 0xf0000000) == 0xf0000000)) {
63361 UnallocatedA32(instr);
63364 Condition condition((instr >> 28) & 0xf);
63365 unsigned rd = (instr >> 12) & 0xf;
63366 unsigned rn = (instr >> 16) & 0xf;
63367 unsigned rm = instr & 0xf;
63370 if (((instr & 0xff00ff0) != 0x6600f50)) {
63371 UnpredictableA32(instr);
63377 if (((instr & 0xf0000000) == 0xf0000000)) {
63378 UnallocatedA32(instr);
63381 Condition condition((instr >> 28) & 0xf);
63382 unsigned rd = (instr >> 12) & 0xf;
63383 unsigned rn = (instr >> 16) & 0xf;
63384 unsigned rm = instr & 0xf;
63387 if (((instr & 0xff00ff0) != 0x6700f50)) {
63388 UnpredictableA32(instr);
63393 UnallocatedA32(instr);
63400 switch (instr & 0x00100080) {
63403 if (((instr & 0xf0000000) == 0xf0000000)) {
63404 UnallocatedA32(instr);
63407 Condition condition((instr >> 28) & 0xf);
63408 unsigned rd = (instr >> 12) & 0xf;
63409 unsigned rn = (instr >> 16) & 0xf;
63410 unsigned rm = instr & 0xf;
63416 if (((instr & 0xff00ff0) != 0x6600f70)) {
63417 UnpredictableA32(instr);
63423 if (((instr & 0xf0000000) == 0xf0000000)) {
63424 UnallocatedA32(instr);
63427 Condition condition((instr >> 28) & 0xf);
63428 unsigned rd = (instr >> 12) & 0xf;
63429 unsigned rn = (instr >> 16) & 0xf;
63430 unsigned rm = instr & 0xf;
63433 if (((instr & 0xff00ff0) != 0x6600ff0)) {
63434 UnpredictableA32(instr);
63440 if (((instr & 0xf0000000) == 0xf0000000)) {
63441 UnallocatedA32(instr);
63444 Condition condition((instr >> 28) & 0xf);
63445 unsigned rd = (instr >> 12) & 0xf;
63446 unsigned rn = (instr >> 16) & 0xf;
63447 unsigned rm = instr & 0xf;
63453 if (((instr & 0xff00ff0) != 0x6700f70)) {
63454 UnpredictableA32(instr);
63460 if (((instr & 0xf0000000) == 0xf0000000)) {
63461 UnallocatedA32(instr);
63464 Condition condition((instr >> 28) & 0xf);
63465 unsigned rd = (instr >> 12) & 0xf;
63466 unsigned rn = (instr >> 16) & 0xf;
63467 unsigned rm = instr & 0xf;
63470 if (((instr & 0xff00ff0) != 0x6700ff0)) {
63471 UnpredictableA32(instr);
63480 if (((instr & 0xf0000000) == 0xf0000000)) {
63481 UnallocatedA32(instr);
63484 Condition condition((instr >> 28) & 0xf);
63485 unsigned rd = (instr >> 12) & 0xf;
63486 uint32_t imm = (instr >> 16) & 0x1f;
63487 unsigned rn = instr & 0xf;
63488 uint32_t amount = (instr >> 7) & 0x1f;
63498 switch (instr & 0x00100080) {
63501 if (((instr & 0xf0000000) == 0xf0000000)) {
63502 UnallocatedA32(instr);
63505 Condition condition((instr >> 28) & 0xf);
63506 unsigned rd = (instr >> 12) & 0xf;
63507 uint32_t imm = (instr >> 16) & 0xf;
63508 unsigned rn = instr & 0xf;
63511 if (((instr & 0xff00ff0) != 0x6e00f30)) {
63512 UnpredictableA32(instr);
63518 if (((instr & 0xf0000000) == 0xf0000000)) {
63519 UnallocatedA32(instr);
63522 Condition condition((instr >> 28) & 0xf);
63523 unsigned rd = (instr >> 12) & 0xf;
63524 unsigned rm = instr & 0xf;
63527 if (((instr & 0xfff0ff0) != 0x6ff0f30)) {
63528 UnpredictableA32(instr);
63534 if (((instr & 0xf0000000) == 0xf0000000)) {
63535 UnallocatedA32(instr);
63538 Condition condition((instr >> 28) & 0xf);
63539 unsigned rd = (instr >> 12) & 0xf;
63540 unsigned rm = instr & 0xf;
63543 if (((instr & 0xfff0ff0) != 0x6ff0fb0)) {
63544 UnpredictableA32(instr);
63549 UnallocatedA32(instr);
63556 if (((instr & 0xf0000000) == 0xf0000000)) {
63557 UnallocatedA32(instr);
63560 Condition condition((instr >> 28) & 0xf);
63561 unsigned rd = (instr >> 12) & 0xf;
63562 uint32_t imm = (instr >> 16) & 0x1f;
63563 unsigned rn = instr & 0xf;
63564 uint32_t amount = (instr >> 7) & 0x1f;
63575 switch (instr & 0x00100080) {
63578 switch (instr & 0x000f0000) {
63581 if (((instr & 0xf0000000) == 0xf0000000)) {
63582 UnallocatedA32(instr);
63585 Condition condition((instr >> 28) & 0xf);
63586 unsigned rd = (instr >> 12) & 0xf;
63587 unsigned rm = instr & 0xf;
63588 uint32_t amount = ((instr >> 10) & 0x3) * 8;
63594 if (((instr & 0xfff03f0) != 0x6ef0070)) {
63595 UnpredictableA32(instr);
63600 if (((instr & 0xf0000000) == 0xf0000000) ||
63601 ((instr & 0xf0000) == 0xf0000)) {
63602 UnallocatedA32(instr);
63605 Condition condition((instr >> 28) & 0xf);
63606 unsigned rd = (instr >> 12) & 0xf;
63607 unsigned rn = (instr >> 16) & 0xf;
63608 unsigned rm = instr & 0xf;
63609 uint32_t amount = ((instr >> 10) & 0x3) * 8;
63615 if (((instr & 0xff003f0) != 0x6e00070)) {
63616 UnpredictableA32(instr);
63625 switch (instr & 0x000f0000) {
63628 if (((instr & 0xf0000000) == 0xf0000000)) {
63629 UnallocatedA32(instr);
63632 Condition condition((instr >> 28) & 0xf);
63633 unsigned rd = (instr >> 12) & 0xf;
63634 unsigned rm = instr & 0xf;
63635 uint32_t amount = ((instr >> 10) & 0x3) * 8;
63641 if (((instr & 0xfff03f0) != 0x6ff0070)) {
63642 UnpredictableA32(instr);
63647 if (((instr & 0xf0000000) == 0xf0000000) ||
63648 ((instr & 0xf0000) == 0xf0000)) {
63649 UnallocatedA32(instr);
63652 Condition condition((instr >> 28) & 0xf);
63653 unsigned rd = (instr >> 12) & 0xf;
63654 unsigned rn = (instr >> 16) & 0xf;
63655 unsigned rm = instr & 0xf;
63656 uint32_t amount = ((instr >> 10) & 0x3) * 8;
63662 if (((instr & 0xff003f0) != 0x6f00070)) {
63663 UnpredictableA32(instr);
63671 UnallocatedA32(instr);
63681 switch (instr & 0x00100000) {
63684 if (((instr & 0xf0000000) == 0xf0000000)) {
63685 UnallocatedA32(instr);
63688 Condition condition((instr >> 28) & 0xf);
63689 unsigned rt = (instr >> 12) & 0xf;
63690 unsigned rn = (instr >> 16) & 0xf;
63691 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
63692 unsigned rm = instr & 0xf;
63693 uint32_t imm_and_type_ = ((instr >> 5) & 0x7f);
63714 if (((instr & 0xf0000000) == 0xf0000000)) {
63715 UnallocatedA32(instr);
63718 Condition condition((instr >> 28) & 0xf);
63719 unsigned rt = (instr >> 12) & 0xf;
63720 unsigned rn = (instr >> 16) & 0xf;
63721 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
63722 unsigned rm = instr & 0xf;
63723 uint32_t imm_and_type_ = ((instr >> 5) & 0x7f);
63747 switch (instr & 0x009000e0) {
63750 switch (instr & 0x0000f000) {
63753 if (((instr & 0xf0000000) == 0xf0000000)) {
63754 UnallocatedA32(instr);
63757 Condition condition((instr >> 28) & 0xf);
63758 unsigned rd = (instr >> 16) & 0xf;
63759 unsigned rn = instr & 0xf;
63760 unsigned rm = (instr >> 8) & 0xf;
63766 if (((instr & 0xf0000000) == 0xf0000000) ||
63767 ((instr & 0xf000) == 0xf000)) {
63768 UnallocatedA32(instr);
63771 Condition condition((instr >> 28) & 0xf);
63772 unsigned rd = (instr >> 16) & 0xf;
63773 unsigned rn = instr & 0xf;
63774 unsigned rm = (instr >> 8) & 0xf;
63775 unsigned ra = (instr >> 12) & 0xf;
63789 switch (instr & 0x0000f000) {
63792 if (((instr & 0xf0000000) == 0xf0000000)) {
63793 UnallocatedA32(instr);
63796 Condition condition((instr >> 28) & 0xf);
63797 unsigned rd = (instr >> 16) & 0xf;
63798 unsigned rn = instr & 0xf;
63799 unsigned rm = (instr >> 8) & 0xf;
63805 if (((instr & 0xf0000000) == 0xf0000000) ||
63806 ((instr & 0xf000) == 0xf000)) {
63807 UnallocatedA32(instr);
63810 Condition condition((instr >> 28) & 0xf);
63811 unsigned rd = (instr >> 16) & 0xf;
63812 unsigned rn = instr & 0xf;
63813 unsigned rm = (instr >> 8) & 0xf;
63814 unsigned ra = (instr >> 12) & 0xf;
63828 switch (instr & 0x0000f000) {
63831 if (((instr & 0xf0000000) == 0xf0000000)) {
63832 UnallocatedA32(instr);
63835 Condition condition((instr >> 28) & 0xf);
63836 unsigned rd = (instr >> 16) & 0xf;
63837 unsigned rn = instr & 0xf;
63838 unsigned rm = (instr >> 8) & 0xf;
63844 if (((instr & 0xf0000000) == 0xf0000000) ||
63845 ((instr & 0xf000) == 0xf000)) {
63846 UnallocatedA32(instr);
63849 Condition condition((instr >> 28) & 0xf);
63850 unsigned rd = (instr >> 16) & 0xf;
63851 unsigned rn = instr & 0xf;
63852 unsigned rm = (instr >> 8) & 0xf;
63853 unsigned ra = (instr >> 12) & 0xf;
63867 switch (instr & 0x0000f000) {
63870 if (((instr & 0xf0000000) == 0xf0000000)) {
63871 UnallocatedA32(instr);
63874 Condition condition((instr >> 28) & 0xf);
63875 unsigned rd = (instr >> 16) & 0xf;
63876 unsigned rn = instr & 0xf;
63877 unsigned rm = (instr >> 8) & 0xf;
63883 if (((instr & 0xf0000000) == 0xf0000000) ||
63884 ((instr & 0xf000) == 0xf000)) {
63885 UnallocatedA32(instr);
63888 Condition condition((instr >> 28) & 0xf);
63889 unsigned rd = (instr >> 16) & 0xf;
63890 unsigned rn = instr & 0xf;
63891 unsigned rm = (instr >> 8) & 0xf;
63892 unsigned ra = (instr >> 12) & 0xf;
63906 if (((instr & 0xf0000000) == 0xf0000000)) {
63907 UnallocatedA32(instr);
63910 Condition condition((instr >> 28) & 0xf);
63911 unsigned rd = (instr >> 16) & 0xf;
63912 unsigned rn = instr & 0xf;
63913 unsigned rm = (instr >> 8) & 0xf;
63916 if (((instr & 0xff0f0f0) != 0x710f010)) {
63917 UnpredictableA32(instr);
63923 switch (instr & 0x0000f000) {
63926 if (((instr & 0xf0000000) == 0xf0000000)) {
63927 UnallocatedA32(instr);
63930 Condition condition((instr >> 28) & 0xf);
63931 unsigned rd = (instr >> 16) & 0xf;
63932 unsigned rn = instr & 0xf;
63933 unsigned rm = (instr >> 8) & 0xf;
63939 if (((instr & 0xf0000000) == 0xf0000000) ||
63940 ((instr & 0xf000) == 0xf000)) {
63941 UnallocatedA32(instr);
63944 Condition condition((instr >> 28) & 0xf);
63945 unsigned rd = (instr >> 16) & 0xf;
63946 unsigned rn = instr & 0xf;
63947 unsigned rm = (instr >> 8) & 0xf;
63948 unsigned ra = (instr >> 12) & 0xf;
63961 UnallocatedA32(instr);
63968 switch (instr & 0x00100000) {
63971 if (((instr & 0xf0000000) == 0xf0000000)) {
63972 UnallocatedA32(instr);
63975 Condition condition((instr >> 28) & 0xf);
63976 unsigned rt = (instr >> 12) & 0xf;
63977 unsigned rn = (instr >> 16) & 0xf;
63978 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
63979 unsigned rm = instr & 0xf;
63980 uint32_t imm_and_type_ = ((instr >> 5) & 0x7f);
64001 if (((instr & 0xf0000000) == 0xf0000000)) {
64002 UnallocatedA32(instr);
64005 Condition condition((instr >> 28) & 0xf);
64006 unsigned rt = (instr >> 12) & 0xf;
64007 unsigned rn = (instr >> 16) & 0xf;
64008 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
64009 unsigned rm = instr & 0xf;
64010 uint32_t imm_and_type_ = ((instr >> 5) & 0x7f);
64034 switch (instr & 0x00800060) {
64037 if ((instr & 0x00100080) == 0x00100000) {
64038 if (((instr & 0xf0000000) == 0xf0000000)) {
64039 UnallocatedA32(instr);
64042 Condition condition((instr >> 28) & 0xf);
64043 unsigned rd = (instr >> 16) & 0xf;
64044 unsigned rn = instr & 0xf;
64045 unsigned rm = (instr >> 8) & 0xf;
64048 if (((instr & 0xff0f0f0) != 0x730f010)) {
64049 UnpredictableA32(instr);
64052 UnallocatedA32(instr);
64058 if (((instr & 0xf0000000) == 0xf0000000)) {
64059 UnallocatedA32(instr);
64062 Condition condition((instr >> 28) & 0xf);
64063 unsigned rd = (instr >> 12) & 0xf;
64064 unsigned rn = instr & 0xf;
64065 uint32_t lsb = (instr >> 7) & 0x1f;
64066 uint32_t widthm1 = (instr >> 16) & 0x1f;
64073 UnallocatedA32(instr);
64080 switch (instr & 0x00100000) {
64083 if (((instr & 0xf0000000) == 0xf0000000)) {
64084 UnallocatedA32(instr);
64087 Condition condition((instr >> 28) & 0xf);
64088 unsigned rt = (instr >> 12) & 0xf;
64089 unsigned rn = (instr >> 16) & 0xf;
64090 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
64091 unsigned rm = instr & 0xf;
64092 uint32_t imm_and_type_ = ((instr >> 5) & 0x7f);
64113 if (((instr & 0xf0000000) == 0xf0000000)) {
64114 UnallocatedA32(instr);
64117 Condition condition((instr >> 28) & 0xf);
64118 unsigned rt = (instr >> 12) & 0xf;
64119 unsigned rn = (instr >> 16) & 0xf;
64120 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
64121 unsigned rm = instr & 0xf;
64122 uint32_t imm_and_type_ = ((instr >> 5) & 0x7f);
64146 switch (instr & 0x00800060) {
64149 switch (instr & 0x00100080) {
64152 if (((instr & 0xf0000000) == 0xf0000000)) {
64153 UnallocatedA32(instr);
64156 Condition condition((instr >> 28) & 0xf);
64157 unsigned rdlo = (instr >> 12) & 0xf;
64158 unsigned rdhi = (instr >> 16) & 0xf;
64159 unsigned rn = instr & 0xf;
64160 unsigned rm = (instr >> 8) & 0xf;
64171 switch (instr & 0x0000f000) {
64174 if (((instr & 0xf0000000) == 0xf0000000)) {
64175 UnallocatedA32(instr);
64178 Condition condition((instr >> 28) & 0xf);
64179 unsigned rd = (instr >> 16) & 0xf;
64180 unsigned rn = instr & 0xf;
64181 unsigned rm = (instr >> 8) & 0xf;
64190 if (((instr & 0xf0000000) == 0xf0000000) ||
64191 ((instr & 0xf000) == 0xf000)) {
64192 UnallocatedA32(instr);
64195 Condition condition((instr >> 28) & 0xf);
64196 unsigned rd = (instr >> 16) & 0xf;
64197 unsigned rn = instr & 0xf;
64198 unsigned rm = (instr >> 8) & 0xf;
64199 unsigned ra = (instr >> 12) & 0xf;
64212 UnallocatedA32(instr);
64219 switch (instr & 0x00100080) {
64222 if (((instr & 0xf0000000) == 0xf0000000)) {
64223 UnallocatedA32(instr);
64226 Condition condition((instr >> 28) & 0xf);
64227 unsigned rdlo = (instr >> 12) & 0xf;
64228 unsigned rdhi = (instr >> 16) & 0xf;
64229 unsigned rn = instr & 0xf;
64230 unsigned rm = (instr >> 8) & 0xf;
64241 switch (instr & 0x0000f000) {
64244 if (((instr & 0xf0000000) == 0xf0000000)) {
64245 UnallocatedA32(instr);
64248 Condition condition((instr >> 28) & 0xf);
64249 unsigned rd = (instr >> 16) & 0xf;
64250 unsigned rn = instr & 0xf;
64251 unsigned rm = (instr >> 8) & 0xf;
64260 if (((instr & 0xf0000000) == 0xf0000000) ||
64261 ((instr & 0xf000) == 0xf000)) {
64262 UnallocatedA32(instr);
64265 Condition condition((instr >> 28) & 0xf);
64266 unsigned rd = (instr >> 16) & 0xf;
64267 unsigned rn = instr & 0xf;
64268 unsigned rm = (instr >> 8) & 0xf;
64269 unsigned ra = (instr >> 12) & 0xf;
64282 UnallocatedA32(instr);
64289 switch (instr & 0x00100080) {
64292 if (((instr & 0xf0000000) == 0xf0000000)) {
64293 UnallocatedA32(instr);
64296 Condition condition((instr >> 28) & 0xf);
64297 unsigned rdlo = (instr >> 12) & 0xf;
64298 unsigned rdhi = (instr >> 16) & 0xf;
64299 unsigned rn = instr & 0xf;
64300 unsigned rm = (instr >> 8) & 0xf;
64311 if (((instr & 0xf0000000) == 0xf0000000)) {
64312 UnallocatedA32(instr);
64315 Condition condition((instr >> 28) & 0xf);
64316 unsigned rd = (instr >> 16) & 0xf;
64317 unsigned rn = instr & 0xf;
64318 unsigned rm = (instr >> 8) & 0xf;
64319 unsigned ra = (instr >> 12) & 0xf;
64329 UnallocatedA32(instr);
64336 switch (instr & 0x00100080) {
64339 if (((instr & 0xf0000000) == 0xf0000000)) {
64340 UnallocatedA32(instr);
64343 Condition condition((instr >> 28) & 0xf);
64344 unsigned rdlo = (instr >> 12) & 0xf;
64345 unsigned rdhi = (instr >> 16) & 0xf;
64346 unsigned rn = instr & 0xf;
64347 unsigned rm = (instr >> 8) & 0xf;
64358 if (((instr & 0xf0000000) == 0xf0000000)) {
64359 UnallocatedA32(instr);
64362 Condition condition((instr >> 28) & 0xf);
64363 unsigned rd = (instr >> 16) & 0xf;
64364 unsigned rn = instr & 0xf;
64365 unsigned rm = (instr >> 8) & 0xf;
64366 unsigned ra = (instr >> 12) & 0xf;
64376 UnallocatedA32(instr);
64383 switch (instr & 0x0000000f) {
64386 if (((instr & 0xf0000000) == 0xf0000000)) {
64387 UnallocatedA32(instr);
64390 Condition condition((instr >> 28) & 0xf);
64391 unsigned rd = (instr >> 12) & 0xf;
64392 uint32_t lsb = (instr >> 7) & 0x1f;
64393 uint32_t msb = (instr >> 16) & 0x1f;
64400 if (((instr & 0xf0000000) == 0xf0000000) ||
64401 ((instr & 0xf) == 0xf)) {
64402 UnallocatedA32(instr);
64405 Condition condition((instr >> 28) & 0xf);
64406 unsigned rd = (instr >> 12) & 0xf;
64407 unsigned rn = instr & 0xf;
64408 uint32_t lsb = (instr >> 7) & 0x1f;
64409 uint32_t msb = (instr >> 16) & 0x1f;
64419 UnallocatedA32(instr);
64426 switch (instr & 0x00100000) {
64429 if (((instr & 0xf0000000) == 0xf0000000)) {
64430 UnallocatedA32(instr);
64433 Condition condition((instr >> 28) & 0xf);
64434 unsigned rt = (instr >> 12) & 0xf;
64435 unsigned rn = (instr >> 16) & 0xf;
64436 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
64437 unsigned rm = instr & 0xf;
64438 uint32_t imm_and_type_ = ((instr >> 5) & 0x7f);
64459 if (((instr & 0xf0000000) == 0xf0000000)) {
64460 UnallocatedA32(instr);
64463 Condition condition((instr >> 28) & 0xf);
64464 unsigned rt = (instr >> 12) & 0xf;
64465 unsigned rn = (instr >> 16) & 0xf;
64466 Sign sign(((instr >> 23) & 0x1) == 0 ? minus : plus);
64467 unsigned rm = instr & 0xf;
64468 uint32_t imm_and_type_ = ((instr >> 5) & 0x7f);
64492 switch (instr & 0x00800060) {
64495 if (((instr & 0xf0000000) == 0xf0000000)) {
64496 UnallocatedA32(instr);
64499 Condition condition((instr >> 28) & 0xf);
64500 unsigned rd = (instr >> 12) & 0xf;
64501 unsigned rn = instr & 0xf;
64502 uint32_t lsb = (instr >> 7) & 0x1f;
64503 uint32_t widthm1 = (instr >> 16) & 0x1f;
64511 if ((instr & 0xf0100080) == 0xe0100080) {
64512 uint32_t imm = (instr & 0xf) | ((instr >> 4) & 0xfff0);
64516 UnallocatedA32(instr);
64521 UnallocatedA32(instr);
64531 switch (instr & 0x00500000) {
64534 switch (instr & 0x01800000) {
64537 if (((instr & 0xf0000000) == 0xf0000000)) {
64538 UnallocatedA32(instr);
64541 Condition condition((instr >> 28) & 0xf);
64542 unsigned rn = (instr >> 16) & 0xf;
64543 WriteBack write_back((instr >> 21) & 0x1);
64544 RegisterList registers((instr & 0xffff));
64551 if (((instr & 0xf0000000) == 0xf0000000)) {
64552 UnallocatedA32(instr);
64555 Condition condition((instr >> 28) & 0xf);
64556 unsigned rn = (instr >> 16) & 0xf;
64557 WriteBack write_back((instr >> 21) & 0x1);
64558 RegisterList registers((instr & 0xffff));
64565 if (((instr & 0xf0000000) == 0xf0000000)) {
64566 UnallocatedA32(instr);
64569 if (((Uint32((instr >> 21)) & Uint32(0x1)) == Uint32(0x1)) &&
64570 ((Uint32((instr >> 16)) & Uint32(0xf)) == Uint32(0xd)) &&
64571 ((instr & 0xf0000000) != 0xf0000000) &&
64572 (BitCount((Uint32(instr) & Uint32(0xffff))) > Int64(1))) {
64573 Condition condition((instr >> 28) & 0xf);
64574 RegisterList registers((instr & 0xffff));
64579 Condition condition((instr >> 28) & 0xf);
64580 unsigned rn = (instr >> 16) & 0xf;
64581 WriteBack write_back((instr >> 21) & 0x1);
64582 RegisterList registers((instr & 0xffff));
64589 if (((instr & 0xf0000000) == 0xf0000000)) {
64590 UnallocatedA32(instr);
64593 Condition condition((instr >> 28) & 0xf);
64594 unsigned rn = (instr >> 16) & 0xf;
64595 WriteBack write_back((instr >> 21) & 0x1);
64596 RegisterList registers((instr & 0xffff));
64606 switch (instr & 0x01800000) {
64609 if (((instr & 0xf0000000) == 0xf0000000)) {
64610 UnallocatedA32(instr);
64613 Condition condition((instr >> 28) & 0xf);
64614 unsigned rn = (instr >> 16) & 0xf;
64615 WriteBack write_back((instr >> 21) & 0x1);
64616 RegisterList registers((instr & 0xffff));
64623 if (((instr & 0xf0000000) == 0xf0000000)) {
64624 UnallocatedA32(instr);
64627 if (((Uint32((instr >> 21)) & Uint32(0x1)) == Uint32(0x1)) &&
64628 ((Uint32((instr >> 16)) & Uint32(0xf)) == Uint32(0xd)) &&
64629 ((instr & 0xf0000000) != 0xf0000000) &&
64630 (BitCount((Uint32(instr) & Uint32(0xffff))) > Int64(1))) {
64631 Condition condition((instr >> 28) & 0xf);
64632 RegisterList registers((instr & 0xffff));
64637 Condition condition((instr >> 28) & 0xf);
64638 unsigned rn = (instr >> 16) & 0xf;
64639 WriteBack write_back((instr >> 21) & 0x1);
64640 RegisterList registers((instr & 0xffff));
64647 if (((instr & 0xf0000000) == 0xf0000000)) {
64648 UnallocatedA32(instr);
64651 Condition condition((instr >> 28) & 0xf);
64652 unsigned rn = (instr >> 16) & 0xf;
64653 WriteBack write_back((instr >> 21) & 0x1);
64654 RegisterList registers((instr & 0xffff));
64661 if (((instr & 0xf0000000) == 0xf0000000)) {
64662 UnallocatedA32(instr);
64665 Condition condition((instr >> 28) & 0xf);
64666 unsigned rn = (instr >> 16) & 0xf;
64667 WriteBack write_back((instr >> 21) & 0x1);
64668 RegisterList registers((instr & 0xffff));
64678 if (((instr & 0xf0000000) == 0xf0000000)) {
64679 UnallocatedA32(instr);
64682 UnimplementedA32("STM", instr);
64687 switch (instr & 0x00008000) {
64690 if (((instr & 0xf0000000) == 0xf0000000)) {
64691 UnallocatedA32(instr);
64694 UnimplementedA32("LDM", instr);
64699 if (((instr & 0xf0000000) == 0xf0000000)) {
64700 UnallocatedA32(instr);
64703 UnimplementedA32("LDM", instr);
64714 switch (instr & 0x01000000) {
64717 if (((instr & 0xf0000000) == 0xf0000000)) {
64718 UnallocatedA32(instr);
64721 Condition condition((instr >> 28) & 0xf);
64722 int32_t imm = SignExtend<int32_t>((instr & 0xffffff) << 2, 26);
64730 if (((instr & 0xf0000000) == 0xf0000000)) {
64731 UnallocatedA32(instr);
64734 Condition condition((instr >> 28) & 0xf);
64735 int32_t imm = SignExtend<int32_t>((instr & 0xffffff) << 2, 26);
64746 switch (instr & 0x01100e00) {
64749 switch (instr & 0x00800100) {
64752 if ((instr & 0x006000d0) == 0x00400010) {
64753 if (((instr & 0xf0000000) == 0xf0000000)) {
64754 UnallocatedA32(instr);
64757 Condition condition((instr >> 28) & 0xf);
64758 unsigned rm = ExtractSRegister(instr, 5, 0);
64759 unsigned rt = (instr >> 12) & 0xf;
64760 unsigned rt2 = (instr >> 16) & 0xf;
64768 UnallocatedA32(instr);
64774 if ((instr & 0x006000d0) == 0x00400010) {
64775 if (((instr & 0xf0000000) == 0xf0000000)) {
64776 UnallocatedA32(instr);
64779 Condition condition((instr >> 28) & 0xf);
64780 unsigned rm = ExtractDRegister(instr, 5, 0);
64781 unsigned rt = (instr >> 12) & 0xf;
64782 unsigned rt2 = (instr >> 16) & 0xf;
64786 UnallocatedA32(instr);
64792 if (((instr & 0xf0000000) == 0xf0000000)) {
64793 UnallocatedA32(instr);
64796 Condition condition((instr >> 28) & 0xf);
64797 unsigned rn = (instr >> 16) & 0xf;
64798 WriteBack write_back((instr >> 21) & 0x1);
64799 unsigned first = ExtractSRegister(instr, 22, 12);
64800 unsigned len = instr & 0xff;
64808 UnpredictableA32(instr);
64814 switch (instr & 0x00000001) {
64817 if (((instr & 0xf0000000) == 0xf0000000)) {
64818 UnallocatedA32(instr);
64821 Condition condition((instr >> 28) & 0xf);
64822 unsigned rn = (instr >> 16) & 0xf;
64823 WriteBack write_back((instr >> 21) & 0x1);
64824 unsigned first = ExtractDRegister(instr, 22, 12);
64825 unsigned imm8 = (instr & 0xff);
64836 UnpredictableA32(instr);
64842 if (((instr & 0xf0000000) == 0xf0000000)) {
64843 UnallocatedA32(instr);
64846 Condition condition((instr >> 28) & 0xf);
64847 unsigned rn = (instr >> 16) & 0xf;
64848 WriteBack write_back((instr >> 21) & 0x1);
64849 unsigned first = ExtractDRegister(instr, 22, 12);
64850 unsigned imm8 = (instr & 0xff);
64859 UnpredictableA32(instr);
64871 switch (instr & 0x00600000) {
64874 if ((instr & 0x0080f100) == 0x00805000) {
64875 if (((instr & 0xf0000000) == 0xf0000000)) {
64876 UnallocatedA32(instr);
64879 UnimplementedA32("STC", instr);
64881 UnallocatedA32(instr);
64887 if ((instr & 0x0000f100) == 0x00005000) {
64888 if (((instr & 0xf0000000) == 0xf0000000)) {
64889 UnallocatedA32(instr);
64892 UnimplementedA32("STC", instr);
64894 UnallocatedA32(instr);
64900 if ((instr & 0x00800000) == 0x00000000) {
64901 if (((instr & 0xf0000000) == 0xf0000000)) {
64902 UnallocatedA32(instr);
64905 UnimplementedA32("MCRR", instr);
64907 UnallocatedA32(instr);
64912 UnallocatedA32(instr);
64919 switch (instr & 0x00800100) {
64922 if ((instr & 0x006000d0) == 0x00400010) {
64923 if (((instr & 0xf0000000) == 0xf0000000)) {
64924 UnallocatedA32(instr);
64927 Condition condition((instr >> 28) & 0xf);
64928 unsigned rt = (instr >> 12) & 0xf;
64929 unsigned rt2 = (instr >> 16) & 0xf;
64930 unsigned rm = ExtractSRegister(instr, 5, 0);
64938 UnallocatedA32(instr);
64944 if ((instr & 0x006000d0) == 0x00400010) {
64945 if (((instr & 0xf0000000) == 0xf0000000)) {
64946 UnallocatedA32(instr);
64949 Condition condition((instr >> 28) & 0xf);
64950 unsigned rt = (instr >> 12) & 0xf;
64951 unsigned rt2 = (instr >> 16) & 0xf;
64952 unsigned rm = ExtractDRegister(instr, 5, 0);
64956 UnallocatedA32(instr);
64962 if (((instr & 0xf0000000) == 0xf0000000)) {
64963 UnallocatedA32(instr);
64966 if (((Uint32((instr >> 21)) & Uint32(0x1)) == Uint32(0x1)) &&
64967 ((Uint32((instr >> 16)) & Uint32(0xf)) == Uint32(0xd)) &&
64968 ((instr & 0xf0000000) != 0xf0000000)) {
64969 Condition condition((instr >> 28) & 0xf);
64970 unsigned first = ExtractSRegister(instr, 22, 12);
64971 unsigned len = instr & 0xff;
64977 UnpredictableA32(instr);
64981 Condition condition((instr >> 28) & 0xf);
64982 unsigned rn = (instr >> 16) & 0xf;
64983 WriteBack write_back((instr >> 21) & 0x1);
64984 unsigned first = ExtractSRegister(instr, 22, 12);
64985 unsigned len = instr & 0xff;
64993 UnpredictableA32(instr);
64999 switch (instr & 0x00000001) {
65002 if (((instr & 0xf0000000) == 0xf0000000)) {
65003 UnallocatedA32(instr);
65006 if (((Uint32((instr >> 21)) & Uint32(0x1)) ==
65008 ((Uint32((instr >> 16)) & Uint32(0xf)) ==
65010 ((instr & 0xf0000000) != 0xf0000000)) {
65011 Condition condition((instr >> 28) & 0xf);
65012 unsigned first = ExtractDRegister(instr, 22, 12);
65013 unsigned imm8 = (instr & 0xff);
65022 UnpredictableA32(instr);
65026 Condition condition((instr >> 28) & 0xf);
65027 unsigned rn = (instr >> 16) & 0xf;
65028 WriteBack write_back((instr >> 21) & 0x1);
65029 unsigned first = ExtractDRegister(instr, 22, 12);
65030 unsigned imm8 = (instr & 0xff);
65041 UnpredictableA32(instr);
65047 if (((instr & 0xf0000000) == 0xf0000000)) {
65048 UnallocatedA32(instr);
65051 Condition condition((instr >> 28) & 0xf);
65052 unsigned rn = (instr >> 16) & 0xf;
65053 WriteBack write_back((instr >> 21) & 0x1);
65054 unsigned first = ExtractDRegister(instr, 22, 12);
65055 unsigned imm8 = (instr & 0xff);
65064 UnpredictableA32(instr);
65076 switch (instr & 0x00600000) {
65079 switch (instr & 0x0080f100) {
65082 switch (instr & 0x000f0000) {
65085 if (((instr & 0xf0000000) == 0xf0000000)) {
65086 UnallocatedA32(instr);
65089 UnimplementedA32("LDC", instr);
65093 if (((instr & 0xf0000000) == 0xf0000000) ||
65094 ((instr & 0xf0000) == 0xf0000)) {
65095 UnallocatedA32(instr);
65098 UnimplementedA32("LDC", instr);
65105 UnallocatedA32(instr);
65112 if ((instr & 0x0000f100) == 0x00005000) {
65113 if (((instr & 0xf0000000) == 0xf0000000) ||
65114 ((instr & 0xf0000) == 0xf0000)) {
65115 UnallocatedA32(instr);
65118 UnimplementedA32("LDC", instr);
65120 UnallocatedA32(instr);
65126 if ((instr & 0x00800000) == 0x00000000) {
65127 if (((instr & 0xf0000000) == 0xf0000000)) {
65128 UnallocatedA32(instr);
65131 UnimplementedA32("MRRC", instr);
65133 UnallocatedA32(instr);
65138 UnallocatedA32(instr);
65145 switch (instr & 0x00200100) {
65148 if (((instr & 0xf0000000) == 0xf0000000)) {
65149 UnallocatedA32(instr);
65152 Condition condition((instr >> 28) & 0xf);
65153 unsigned rd = ExtractSRegister(instr, 22, 12);
65154 unsigned rn = (instr >> 16) & 0xf;
65155 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
65156 int32_t offset = (instr & 0xff) << 2;
65166 if (((instr & 0xf0000000) == 0xf0000000)) {
65167 UnallocatedA32(instr);
65170 Condition condition((instr >> 28) & 0xf);
65171 unsigned rd = ExtractDRegister(instr, 22, 12);
65172 unsigned rn = (instr >> 16) & 0xf;
65173 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
65174 int32_t offset = (instr & 0xff) << 2;
65184 if ((instr & 0x00800000) == 0x00000000) {
65185 if (((instr & 0xf0000000) == 0xf0000000)) {
65186 UnallocatedA32(instr);
65189 if (((Uint32((instr >> 16)) & Uint32(0xf)) == Uint32(0xd)) &&
65190 ((instr & 0xf0000000) != 0xf0000000)) {
65191 Condition condition((instr >> 28) & 0xf);
65192 unsigned first = ExtractSRegister(instr, 22, 12);
65193 unsigned len = instr & 0xff;
65199 UnpredictableA32(instr);
65203 Condition condition((instr >> 28) & 0xf);
65204 unsigned rn = (instr >> 16) & 0xf;
65205 unsigned first = ExtractSRegister(instr, 22, 12);
65206 unsigned len = instr & 0xff;
65214 UnpredictableA32(instr);
65217 UnallocatedA32(instr);
65223 switch (instr & 0x00800001) {
65226 if (((instr & 0xf0000000) == 0xf0000000)) {
65227 UnallocatedA32(instr);
65230 if (((Uint32((instr >> 16)) & Uint32(0xf)) ==
65232 ((instr & 0xf0000000) != 0xf0000000)) {
65233 Condition condition((instr >> 28) & 0xf);
65234 unsigned first = ExtractDRegister(instr, 22, 12);
65235 unsigned imm8 = (instr & 0xff);
65244 UnpredictableA32(instr);
65248 Condition condition((instr >> 28) & 0xf);
65249 unsigned rn = (instr >> 16) & 0xf;
65250 unsigned first = ExtractDRegister(instr, 22, 12);
65251 unsigned imm8 = (instr & 0xff);
65262 UnpredictableA32(instr);
65268 if (((instr & 0xf0000000) == 0xf0000000)) {
65269 UnallocatedA32(instr);
65272 Condition condition((instr >> 28) & 0xf);
65273 unsigned rn = (instr >> 16) & 0xf;
65274 unsigned first = ExtractDRegister(instr, 22, 12);
65275 unsigned imm8 = (instr & 0xff);
65284 UnpredictableA32(instr);
65289 UnallocatedA32(instr);
65299 switch (instr & 0x0060f100) {
65302 if (((instr & 0xf0000000) == 0xf0000000)) {
65303 UnallocatedA32(instr);
65306 UnimplementedA32("STC", instr);
65311 if (((instr & 0xf0000000) == 0xf0000000)) {
65312 UnallocatedA32(instr);
65315 UnimplementedA32("STC", instr);
65319 UnallocatedA32(instr);
65326 switch (instr & 0x00200100) {
65329 switch (instr & 0x000f0000) {
65332 if (((instr & 0xf0000000) == 0xf0000000)) {
65333 UnallocatedA32(instr);
65336 Condition condition((instr >> 28) & 0xf);
65337 unsigned rd = ExtractSRegister(instr, 22, 12);
65338 uint32_t U = (instr >> 23) & 0x1;
65339 int32_t imm = instr & 0xff;
65356 if (((instr & 0xf0000000) == 0xf0000000) ||
65357 ((instr & 0xf0000) == 0xf0000)) {
65358 UnallocatedA32(instr);
65361 Condition condition((instr >> 28) & 0xf);
65362 unsigned rd = ExtractSRegister(instr, 22, 12);
65363 unsigned rn = (instr >> 16) & 0xf;
65364 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
65365 int32_t offset = (instr & 0xff) << 2;
65378 switch (instr & 0x000f0000) {
65381 if (((instr & 0xf0000000) == 0xf0000000)) {
65382 UnallocatedA32(instr);
65385 Condition condition((instr >> 28) & 0xf);
65386 unsigned rd = ExtractDRegister(instr, 22, 12);
65387 uint32_t U = (instr >> 23) & 0x1;
65388 int32_t imm = instr & 0xff;
65405 if (((instr & 0xf0000000) == 0xf0000000) ||
65406 ((instr & 0xf0000) == 0xf0000)) {
65407 UnallocatedA32(instr);
65410 Condition condition((instr >> 28) & 0xf);
65411 unsigned rd = ExtractDRegister(instr, 22, 12);
65412 unsigned rn = (instr >> 16) & 0xf;
65413 Sign sign((((instr >> 23) & 0x1) == 0) ? minus : plus);
65414 int32_t offset = (instr & 0xff) << 2;
65427 if ((instr & 0x00800000) == 0x00000000) {
65428 if (((instr & 0xf0000000) == 0xf0000000)) {
65429 UnallocatedA32(instr);
65432 Condition condition((instr >> 28) & 0xf);
65433 unsigned rn = (instr >> 16) & 0xf;
65434 unsigned first = ExtractSRegister(instr, 22, 12);
65435 unsigned len = instr & 0xff;
65443 UnpredictableA32(instr);
65446 UnallocatedA32(instr);
65452 switch (instr & 0x00800001) {
65455 if (((instr & 0xf0000000) == 0xf0000000)) {
65456 UnallocatedA32(instr);
65459 Condition condition((instr >> 28) & 0xf);
65460 unsigned rn = (instr >> 16) & 0xf;
65461 unsigned first = ExtractDRegister(instr, 22, 12);
65462 unsigned imm8 = (instr & 0xff);
65473 UnpredictableA32(instr);
65479 if (((instr & 0xf0000000) == 0xf0000000)) {
65480 UnallocatedA32(instr);
65483 Condition condition((instr >> 28) & 0xf);
65484 unsigned rn = (instr >> 16) & 0xf;
65485 unsigned first = ExtractDRegister(instr, 22, 12);
65486 unsigned imm8 = (instr & 0xff);
65495 UnpredictableA32(instr);
65500 UnallocatedA32(instr);
65510 switch (instr & 0x0060f100) {
65513 switch (instr & 0x000f0000) {
65516 if (((instr & 0xf0000000) == 0xf0000000)) {
65517 UnallocatedA32(instr);
65520 UnimplementedA32("LDC", instr);
65524 if (((instr & 0xf0000000) == 0xf0000000) ||
65525 ((instr & 0xf0000) == 0xf0000)) {
65526 UnallocatedA32(instr);
65529 UnimplementedA32("LDC", instr);
65537 if (((instr & 0xf0000000) == 0xf0000000) ||
65538 ((instr & 0xf0000) == 0xf0000)) {
65539 UnallocatedA32(instr);
65542 UnimplementedA32("LDC", instr);
65546 UnallocatedA32(instr);
65552 UnallocatedA32(instr);
65559 switch (instr & 0x01000000) {
65562 switch (instr & 0x00100e10) {
65565 switch (instr & 0x00a00140) {
65568 if (((instr & 0xf0000000) == 0xf0000000)) {
65569 UnallocatedA32(instr);
65572 Condition condition((instr >> 28) & 0xf);
65573 unsigned rd = ExtractSRegister(instr, 22, 12);
65574 unsigned rn = ExtractSRegister(instr, 7, 16);
65575 unsigned rm = ExtractSRegister(instr, 5, 0);
65586 if (((instr & 0xf0000000) == 0xf0000000)) {
65587 UnallocatedA32(instr);
65590 Condition condition((instr >> 28) & 0xf);
65591 unsigned rd = ExtractSRegister(instr, 22, 12);
65592 unsigned rn = ExtractSRegister(instr, 7, 16);
65593 unsigned rm = ExtractSRegister(instr, 5, 0);
65604 if (((instr & 0xf0000000) == 0xf0000000)) {
65605 UnallocatedA32(instr);
65608 Condition condition((instr >> 28) & 0xf);
65609 unsigned rd = ExtractDRegister(instr, 22, 12);
65610 unsigned rn = ExtractDRegister(instr, 7, 16);
65611 unsigned rm = ExtractDRegister(instr, 5, 0);
65622 if (((instr & 0xf0000000) == 0xf0000000)) {
65623 UnallocatedA32(instr);
65626 Condition condition((instr >> 28) & 0xf);
65627 unsigned rd = ExtractDRegister(instr, 22, 12);
65628 unsigned rn = ExtractDRegister(instr, 7, 16);
65629 unsigned rm = ExtractDRegister(instr, 5, 0);
65640 if (((instr & 0xf0000000) == 0xf0000000)) {
65641 UnallocatedA32(instr);
65644 Condition condition((instr >> 28) & 0xf);
65645 unsigned rd = ExtractSRegister(instr, 22, 12);
65646 unsigned rn = ExtractSRegister(instr, 7, 16);
65647 unsigned rm = ExtractSRegister(instr, 5, 0);
65658 if (((instr & 0xf0000000) == 0xf0000000)) {
65659 UnallocatedA32(instr);
65662 Condition condition((instr >> 28) & 0xf);
65663 unsigned rd = ExtractSRegister(instr, 22, 12);
65664 unsigned rn = ExtractSRegister(instr, 7, 16);
65665 unsigned rm = ExtractSRegister(instr, 5, 0);
65676 if (((instr & 0xf0000000) == 0xf0000000)) {
65677 UnallocatedA32(instr);
65680 Condition condition((instr >> 28) & 0xf);
65681 unsigned rd = ExtractDRegister(instr, 22, 12);
65682 unsigned rn = ExtractDRegister(instr, 7, 16);
65683 unsigned rm = ExtractDRegister(instr, 5, 0);
65694 if (((instr & 0xf0000000) == 0xf0000000)) {
65695 UnallocatedA32(instr);
65698 Condition condition((instr >> 28) & 0xf);
65699 unsigned rd = ExtractDRegister(instr, 22, 12);
65700 unsigned rn = ExtractDRegister(instr, 7, 16);
65701 unsigned rm = ExtractDRegister(instr, 5, 0);
65712 if (((instr & 0xf0000000) == 0xf0000000)) {
65713 UnallocatedA32(instr);
65716 Condition condition((instr >> 28) & 0xf);
65717 unsigned rd = ExtractSRegister(instr, 22, 12);
65718 unsigned rn = ExtractSRegister(instr, 7, 16);
65719 unsigned rm = ExtractSRegister(instr, 5, 0);
65730 if (((instr & 0xf0000000) == 0xf0000000)) {
65731 UnallocatedA32(instr);
65734 Condition condition((instr >> 28) & 0xf);
65735 unsigned rd = ExtractDRegister(instr, 22, 12);
65736 unsigned rn = ExtractDRegister(instr, 7, 16);
65737 unsigned rm = ExtractDRegister(instr, 5, 0);
65748 if (((instr & 0xf0000000) == 0xf0000000)) {
65749 UnallocatedA32(instr);
65752 Condition condition((instr >> 28) & 0xf);
65753 unsigned rd = ExtractSRegister(instr, 22, 12);
65754 unsigned rn = ExtractSRegister(instr, 7, 16);
65755 unsigned rm = ExtractSRegister(instr, 5, 0);
65766 if (((instr & 0xf0000000) == 0xf0000000)) {
65767 UnallocatedA32(instr);
65770 Condition condition((instr >> 28) & 0xf);
65771 unsigned rd = ExtractSRegister(instr, 22, 12);
65772 unsigned rn = ExtractSRegister(instr, 7, 16);
65773 unsigned rm = ExtractSRegister(instr, 5, 0);
65784 if (((instr & 0xf0000000) == 0xf0000000)) {
65785 UnallocatedA32(instr);
65788 Condition condition((instr >> 28) & 0xf);
65789 unsigned rd = ExtractDRegister(instr, 22, 12);
65790 unsigned rn = ExtractDRegister(instr, 7, 16);
65791 unsigned rm = ExtractDRegister(instr, 5, 0);
65802 if (((instr & 0xf0000000) == 0xf0000000)) {
65803 UnallocatedA32(instr);
65806 Condition condition((instr >> 28) & 0xf);
65807 unsigned rd = ExtractDRegister(instr, 22, 12);
65808 unsigned rn = ExtractDRegister(instr, 7, 16);
65809 unsigned rm = ExtractDRegister(instr, 5, 0);
65819 UnallocatedA32(instr);
65826 switch (instr & 0x00800100) {
65829 if ((instr & 0x00600000) == 0x00000000) {
65830 if (((instr & 0xf0000000) == 0xf0000000)) {
65831 UnallocatedA32(instr);
65834 Condition condition((instr >> 28) & 0xf);
65835 unsigned rn = ExtractSRegister(instr, 7, 16);
65836 unsigned rt = (instr >> 12) & 0xf;
65839 if (((instr & 0xff00f7f) != 0xe000a10)) {
65840 UnpredictableA32(instr);
65843 UnallocatedA32(instr);
65849 if (((instr & 0xf0000000) == 0xf0000000)) {
65850 UnallocatedA32(instr);
65853 Condition condition((instr >> 28) & 0xf);
65856 Dt_opc1_opc2_1_Decode(((instr >> 5) & 0x3) |
65857 ((instr >> 19) & 0xc),
65860 UnallocatedA32(instr);
65863 unsigned rd = ExtractDRegister(instr, 7, 16);
65864 unsigned rt = (instr >> 12) & 0xf;
65867 if (((instr & 0xf900f1f) != 0xe000b10)) {
65868 UnpredictableA32(instr);
65874 if ((instr & 0x00600000) == 0x00600000) {
65875 if (((instr & 0xf0000000) == 0xf0000000)) {
65876 UnallocatedA32(instr);
65879 Condition condition((instr >> 28) & 0xf);
65880 unsigned spec_reg = (instr >> 16) & 0xf;
65881 unsigned rt = (instr >> 12) & 0xf;
65890 if (((instr & 0xff00fff) != 0xee00a10)) {
65891 UnpredictableA32(instr);
65896 UnallocatedA32(instr);
65900 UnallocatedA32(instr);
65906 switch (instr & 0x00200040) {
65909 if (((instr & 0xf0000000) == 0xf0000000)) {
65910 UnallocatedA32(instr);
65913 Condition condition((instr >> 28) & 0xf);
65914 DataType dt = Dt_B_E_1_Decode(((instr >> 5) & 0x1) |
65915 ((instr >> 21) & 0x2));
65917 UnallocatedA32(instr);
65920 unsigned rd = ExtractDRegister(instr, 7, 16);
65921 unsigned rt = (instr >> 12) & 0xf;
65924 if (((instr & 0xfb00f5f) != 0xe800b10)) {
65925 UnpredictableA32(instr);
65931 if (((instr & 0xf0000000) == 0xf0000000)) {
65932 UnallocatedA32(instr);
65935 Condition condition((instr >> 28) & 0xf);
65936 DataType dt = Dt_B_E_1_Decode(((instr >> 5) & 0x1) |
65937 ((instr >> 21) & 0x2));
65939 UnallocatedA32(instr);
65942 if (((instr >> 16) & 1) != 0) {
65943 UnallocatedA32(instr);
65946 unsigned rd = ExtractQRegister(instr, 7, 16);
65947 unsigned rt = (instr >> 12) & 0xf;
65950 if (((instr & 0xfb00f5f) != 0xea00b10)) {
65951 UnpredictableA32(instr);
65956 UnallocatedA32(instr);
65966 if (((instr & 0xf0000000) == 0xf0000000)) {
65967 UnallocatedA32(instr);
65970 UnimplementedA32("MCR", instr);
65975 switch (instr & 0x00a00140) {
65978 if (((instr & 0xf0000000) == 0xf0000000)) {
65979 UnallocatedA32(instr);
65982 Condition condition((instr >> 28) & 0xf);
65983 unsigned rd = ExtractSRegister(instr, 22, 12);
65984 unsigned rn = ExtractSRegister(instr, 7, 16);
65985 unsigned rm = ExtractSRegister(instr, 5, 0);
65996 if (((instr & 0xf0000000) == 0xf0000000)) {
65997 UnallocatedA32(instr);
66000 Condition condition((instr >> 28) & 0xf);
66001 unsigned rd = ExtractSRegister(instr, 22, 12);
66002 unsigned rn = ExtractSRegister(instr, 7, 16);
66003 unsigned rm = ExtractSRegister(instr, 5, 0);
66014 if (((instr & 0xf0000000) == 0xf0000000)) {
66015 UnallocatedA32(instr);
66018 Condition condition((instr >> 28) & 0xf);
66019 unsigned rd = ExtractDRegister(instr, 22, 12);
66020 unsigned rn = ExtractDRegister(instr, 7, 16);
66021 unsigned rm = ExtractDRegister(instr, 5, 0);
66032 if (((instr & 0xf0000000) == 0xf0000000)) {
66033 UnallocatedA32(instr);
66036 Condition condition((instr >> 28) & 0xf);
66037 unsigned rd = ExtractDRegister(instr, 22, 12);
66038 unsigned rn = ExtractDRegister(instr, 7, 16);
66039 unsigned rm = ExtractDRegister(instr, 5, 0);
66050 if (((instr & 0xf0000000) == 0xf0000000)) {
66051 UnallocatedA32(instr);
66054 Condition condition((instr >> 28) & 0xf);
66055 unsigned rd = ExtractSRegister(instr, 22, 12);
66056 unsigned rn = ExtractSRegister(instr, 7, 16);
66057 unsigned rm = ExtractSRegister(instr, 5, 0);
66068 if (((instr & 0xf0000000) == 0xf0000000)) {
66069 UnallocatedA32(instr);
66072 Condition condition((instr >> 28) & 0xf);
66073 unsigned rd = ExtractSRegister(instr, 22, 12);
66074 unsigned rn = ExtractSRegister(instr, 7, 16);
66075 unsigned rm = ExtractSRegister(instr, 5, 0);
66086 if (((instr & 0xf0000000) == 0xf0000000)) {
66087 UnallocatedA32(instr);
66090 Condition condition((instr >> 28) & 0xf);
66091 unsigned rd = ExtractDRegister(instr, 22, 12);
66092 unsigned rn = ExtractDRegister(instr, 7, 16);
66093 unsigned rm = ExtractDRegister(instr, 5, 0);
66104 if (((instr & 0xf0000000) == 0xf0000000)) {
66105 UnallocatedA32(instr);
66108 Condition condition((instr >> 28) & 0xf);
66109 unsigned rd = ExtractDRegister(instr, 22, 12);
66110 unsigned rn = ExtractDRegister(instr, 7, 16);
66111 unsigned rm = ExtractDRegister(instr, 5, 0);
66122 if (((instr & 0xf0000000) == 0xf0000000)) {
66123 UnallocatedA32(instr);
66126 Condition condition((instr >> 28) & 0xf);
66127 unsigned rd = ExtractSRegister(instr, 22, 12);
66128 unsigned rn = ExtractSRegister(instr, 7, 16);
66129 unsigned rm = ExtractSRegister(instr, 5, 0);
66140 if (((instr & 0xf0000000) == 0xf0000000)) {
66141 UnallocatedA32(instr);
66144 Condition condition((instr >> 28) & 0xf);
66145 unsigned rd = ExtractSRegister(instr, 22, 12);
66146 unsigned rn = ExtractSRegister(instr, 7, 16);
66147 unsigned rm = ExtractSRegister(instr, 5, 0);
66158 if (((instr & 0xf0000000) == 0xf0000000)) {
66159 UnallocatedA32(instr);
66162 Condition condition((instr >> 28) & 0xf);
66163 unsigned rd = ExtractDRegister(instr, 22, 12);
66164 unsigned rn = ExtractDRegister(instr, 7, 16);
66165 unsigned rm = ExtractDRegister(instr, 5, 0);
66176 if (((instr & 0xf0000000) == 0xf0000000)) {
66177 UnallocatedA32(instr);
66180 Condition condition((instr >> 28) & 0xf);
66181 unsigned rd = ExtractDRegister(instr, 22, 12);
66182 unsigned rn = ExtractDRegister(instr, 7, 16);
66183 unsigned rm = ExtractDRegister(instr, 5, 0);
66194 if (((instr & 0xf0000000) == 0xf0000000)) {
66195 UnallocatedA32(instr);
66198 Condition condition((instr >> 28) & 0xf);
66199 unsigned rd = ExtractSRegister(instr, 22, 12);
66201 (instr & 0xf) | ((instr >> 12) & 0xf0);
66206 if (((instr & 0xfb00ff0) != 0xeb00a00)) {
66207 UnpredictableA32(instr);
66213 switch (instr & 0x000e0000) {
66216 switch (instr & 0x00010080) {
66219 if (((instr & 0xf0000000) == 0xf0000000)) {
66220 UnallocatedA32(instr);
66223 Condition condition((instr >> 28) & 0xf);
66224 unsigned rd = ExtractSRegister(instr, 22, 12);
66225 unsigned rm = ExtractSRegister(instr, 5, 0);
66232 if (((instr & 0xf0000000) == 0xf0000000)) {
66233 UnallocatedA32(instr);
66236 Condition condition((instr >> 28) & 0xf);
66237 unsigned rd = ExtractSRegister(instr, 22, 12);
66238 unsigned rm = ExtractSRegister(instr, 5, 0);
66245 if (((instr & 0xf0000000) == 0xf0000000)) {
66246 UnallocatedA32(instr);
66249 Condition condition((instr >> 28) & 0xf);
66250 unsigned rd = ExtractSRegister(instr, 22, 12);
66251 unsigned rm = ExtractSRegister(instr, 5, 0);
66258 if (((instr & 0xf0000000) == 0xf0000000)) {
66259 UnallocatedA32(instr);
66262 Condition condition((instr >> 28) & 0xf);
66263 unsigned rd = ExtractSRegister(instr, 22, 12);
66264 unsigned rm = ExtractSRegister(instr, 5, 0);
66274 switch (instr & 0x00010080) {
66277 if (((instr & 0xf0000000) == 0xf0000000)) {
66278 UnallocatedA32(instr);
66281 Condition condition((instr >> 28) & 0xf);
66282 unsigned rd = ExtractSRegister(instr, 22, 12);
66283 unsigned rm = ExtractSRegister(instr, 5, 0);
66294 if (((instr & 0xf0000000) == 0xf0000000)) {
66295 UnallocatedA32(instr);
66298 Condition condition((instr >> 28) & 0xf);
66299 unsigned rd = ExtractSRegister(instr, 22, 12);
66300 unsigned rm = ExtractSRegister(instr, 5, 0);
66311 if (((instr & 0xf0000000) == 0xf0000000)) {
66312 UnallocatedA32(instr);
66315 Condition condition((instr >> 28) & 0xf);
66316 unsigned rd = ExtractSRegister(instr, 22, 12);
66317 unsigned rm = ExtractSRegister(instr, 5, 0);
66328 if (((instr & 0xf0000000) == 0xf0000000)) {
66329 UnallocatedA32(instr);
66332 Condition condition((instr >> 28) & 0xf);
66333 unsigned rd = ExtractSRegister(instr, 22, 12);
66334 unsigned rm = ExtractSRegister(instr, 5, 0);
66348 switch (instr & 0x00010080) {
66351 if (((instr & 0xf0000000) == 0xf0000000)) {
66352 UnallocatedA32(instr);
66355 Condition condition((instr >> 28) & 0xf);
66356 unsigned rd = ExtractSRegister(instr, 22, 12);
66357 unsigned rm = ExtractSRegister(instr, 5, 0);
66364 if (((instr & 0xf0000000) == 0xf0000000)) {
66365 UnallocatedA32(instr);
66368 Condition condition((instr >> 28) & 0xf);
66369 unsigned rd = ExtractSRegister(instr, 22, 12);
66370 unsigned rm = ExtractSRegister(instr, 5, 0);
66377 if (((instr & 0xf0000000) == 0xf0000000)) {
66378 UnallocatedA32(instr);
66381 Condition condition((instr >> 28) & 0xf);
66382 unsigned rd = ExtractSRegister(instr, 22, 12);
66385 if (((instr & 0xfbf0fff) != 0xeb50a40)) {
66386 UnpredictableA32(instr);
66392 if (((instr & 0xf0000000) == 0xf0000000)) {
66393 UnallocatedA32(instr);
66396 Condition condition((instr >> 28) & 0xf);
66397 unsigned rd = ExtractSRegister(instr, 22, 12);
66400 if (((instr & 0xfbf0fff) != 0xeb50ac0)) {
66401 UnpredictableA32(instr);
66410 switch (instr & 0x00010080) {
66413 if (((instr & 0xf0000000) == 0xf0000000)) {
66414 UnallocatedA32(instr);
66417 Condition condition((instr >> 28) & 0xf);
66418 unsigned rd = ExtractSRegister(instr, 22, 12);
66419 unsigned rm = ExtractSRegister(instr, 5, 0);
66429 if (((instr & 0xf0000000) == 0xf0000000)) {
66430 UnallocatedA32(instr);
66433 Condition condition((instr >> 28) & 0xf);
66434 unsigned rd = ExtractSRegister(instr, 22, 12);
66435 unsigned rm = ExtractSRegister(instr, 5, 0);
66445 if (((instr & 0xf0000000) == 0xf0000000)) {
66446 UnallocatedA32(instr);
66449 Condition condition((instr >> 28) & 0xf);
66450 unsigned rd = ExtractSRegister(instr, 22, 12);
66451 unsigned rm = ExtractSRegister(instr, 5, 0);
66461 if (((instr & 0xf0000000) == 0xf0000000)) {
66462 UnallocatedA32(instr);
66465 Condition condition((instr >> 28) & 0xf);
66466 unsigned rd = ExtractDRegister(instr, 22, 12);
66467 unsigned rm = ExtractSRegister(instr, 5, 0);
66481 if ((instr & 0x00010000) == 0x00000000) {
66482 if (((instr & 0xf0000000) == 0xf0000000)) {
66483 UnallocatedA32(instr);
66486 Condition condition((instr >> 28) & 0xf);
66487 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
66489 UnallocatedA32(instr);
66492 unsigned rd = ExtractSRegister(instr, 22, 12);
66493 unsigned rm = ExtractSRegister(instr, 5, 0);
66501 UnallocatedA32(instr);
66507 if (((instr & 0xf0000000) == 0xf0000000)) {
66508 UnallocatedA32(instr);
66511 Condition condition((instr >> 28) & 0xf);
66512 DataType dt = Dt_U_sx_1_Decode(((instr >> 7) & 0x1) |
66513 ((instr >> 15) & 0x2));
66515 UnallocatedA32(instr);
66518 unsigned rd = ExtractSRegister(instr, 22, 12);
66523 uint32_t fbits = offset - (((instr >> 5) & 0x1) |
66524 ((instr << 1) & 0x1e));
66536 switch (instr & 0x00010080) {
66539 if (((instr & 0xf0000000) == 0xf0000000)) {
66540 UnallocatedA32(instr);
66543 Condition condition((instr >> 28) & 0xf);
66544 unsigned rd = ExtractSRegister(instr, 22, 12);
66545 unsigned rm = ExtractSRegister(instr, 5, 0);
66556 if (((instr & 0xf0000000) == 0xf0000000)) {
66557 UnallocatedA32(instr);
66560 Condition condition((instr >> 28) & 0xf);
66561 unsigned rd = ExtractSRegister(instr, 22, 12);
66562 unsigned rm = ExtractSRegister(instr, 5, 0);
66573 if (((instr & 0xf0000000) == 0xf0000000)) {
66574 UnallocatedA32(instr);
66577 Condition condition((instr >> 28) & 0xf);
66578 unsigned rd = ExtractSRegister(instr, 22, 12);
66579 unsigned rm = ExtractSRegister(instr, 5, 0);
66590 if (((instr & 0xf0000000) == 0xf0000000)) {
66591 UnallocatedA32(instr);
66594 Condition condition((instr >> 28) & 0xf);
66595 unsigned rd = ExtractSRegister(instr, 22, 12);
66596 unsigned rm = ExtractSRegister(instr, 5, 0);
66610 if (((instr & 0xf0000000) == 0xf0000000)) {
66611 UnallocatedA32(instr);
66614 Condition condition((instr >> 28) & 0xf);
66615 DataType dt = Dt_U_sx_1_Decode(((instr >> 7) & 0x1) |
66616 ((instr >> 15) & 0x2));
66618 UnallocatedA32(instr);
66621 unsigned rd = ExtractSRegister(instr, 22, 12);
66626 uint32_t fbits = offset - (((instr >> 5) & 0x1) |
66627 ((instr << 1) & 0x1e));
66642 if (((instr & 0xf0000000) == 0xf0000000)) {
66643 UnallocatedA32(instr);
66646 Condition condition((instr >> 28) & 0xf);
66647 unsigned rd = ExtractDRegister(instr, 22, 12);
66649 (instr & 0xf) | ((instr >> 12) & 0xf0);
66654 if (((instr & 0xfb00ff0) != 0xeb00b00)) {
66655 UnpredictableA32(instr);
66661 switch (instr & 0x000e0000) {
66664 switch (instr & 0x00010080) {
66667 if (((instr & 0xf0000000) == 0xf0000000)) {
66668 UnallocatedA32(instr);
66671 Condition condition((instr >> 28) & 0xf);
66672 unsigned rd = ExtractDRegister(instr, 22, 12);
66673 unsigned rm = ExtractDRegister(instr, 5, 0);
66680 if (((instr & 0xf0000000) == 0xf0000000)) {
66681 UnallocatedA32(instr);
66684 Condition condition((instr >> 28) & 0xf);
66685 unsigned rd = ExtractDRegister(instr, 22, 12);
66686 unsigned rm = ExtractDRegister(instr, 5, 0);
66693 if (((instr & 0xf0000000) == 0xf0000000)) {
66694 UnallocatedA32(instr);
66697 Condition condition((instr >> 28) & 0xf);
66698 unsigned rd = ExtractDRegister(instr, 22, 12);
66699 unsigned rm = ExtractDRegister(instr, 5, 0);
66706 if (((instr & 0xf0000000) == 0xf0000000)) {
66707 UnallocatedA32(instr);
66710 Condition condition((instr >> 28) & 0xf);
66711 unsigned rd = ExtractDRegister(instr, 22, 12);
66712 unsigned rm = ExtractDRegister(instr, 5, 0);
66722 switch (instr & 0x00010080) {
66725 if (((instr & 0xf0000000) == 0xf0000000)) {
66726 UnallocatedA32(instr);
66729 Condition condition((instr >> 28) & 0xf);
66730 unsigned rd = ExtractDRegister(instr, 22, 12);
66731 unsigned rm = ExtractSRegister(instr, 5, 0);
66742 if (((instr & 0xf0000000) == 0xf0000000)) {
66743 UnallocatedA32(instr);
66746 Condition condition((instr >> 28) & 0xf);
66747 unsigned rd = ExtractDRegister(instr, 22, 12);
66748 unsigned rm = ExtractSRegister(instr, 5, 0);
66759 if (((instr & 0xf0000000) == 0xf0000000)) {
66760 UnallocatedA32(instr);
66763 Condition condition((instr >> 28) & 0xf);
66764 unsigned rd = ExtractSRegister(instr, 22, 12);
66765 unsigned rm = ExtractDRegister(instr, 5, 0);
66776 if (((instr & 0xf0000000) == 0xf0000000)) {
66777 UnallocatedA32(instr);
66780 Condition condition((instr >> 28) & 0xf);
66781 unsigned rd = ExtractSRegister(instr, 22, 12);
66782 unsigned rm = ExtractDRegister(instr, 5, 0);
66796 switch (instr & 0x00010080) {
66799 if (((instr & 0xf0000000) == 0xf0000000)) {
66800 UnallocatedA32(instr);
66803 Condition condition((instr >> 28) & 0xf);
66804 unsigned rd = ExtractDRegister(instr, 22, 12);
66805 unsigned rm = ExtractDRegister(instr, 5, 0);
66812 if (((instr & 0xf0000000) == 0xf0000000)) {
66813 UnallocatedA32(instr);
66816 Condition condition((instr >> 28) & 0xf);
66817 unsigned rd = ExtractDRegister(instr, 22, 12);
66818 unsigned rm = ExtractDRegister(instr, 5, 0);
66825 if (((instr & 0xf0000000) == 0xf0000000)) {
66826 UnallocatedA32(instr);
66829 Condition condition((instr >> 28) & 0xf);
66830 unsigned rd = ExtractDRegister(instr, 22, 12);
66833 if (((instr & 0xfbf0fff) != 0xeb50b40)) {
66834 UnpredictableA32(instr);
66840 if (((instr & 0xf0000000) == 0xf0000000)) {
66841 UnallocatedA32(instr);
66844 Condition condition((instr >> 28) & 0xf);
66845 unsigned rd = ExtractDRegister(instr, 22, 12);
66848 if (((instr & 0xfbf0fff) != 0xeb50bc0)) {
66849 UnpredictableA32(instr);
66858 switch (instr & 0x00010080) {
66861 if (((instr & 0xf0000000) == 0xf0000000)) {
66862 UnallocatedA32(instr);
66865 Condition condition((instr >> 28) & 0xf);
66866 unsigned rd = ExtractDRegister(instr, 22, 12);
66867 unsigned rm = ExtractDRegister(instr, 5, 0);
66877 if (((instr & 0xf0000000) == 0xf0000000)) {
66878 UnallocatedA32(instr);
66881 Condition condition((instr >> 28) & 0xf);
66882 unsigned rd = ExtractDRegister(instr, 22, 12);
66883 unsigned rm = ExtractDRegister(instr, 5, 0);
66893 if (((instr & 0xf0000000) == 0xf0000000)) {
66894 UnallocatedA32(instr);
66897 Condition condition((instr >> 28) & 0xf);
66898 unsigned rd = ExtractDRegister(instr, 22, 12);
66899 unsigned rm = ExtractDRegister(instr, 5, 0);
66909 if (((instr & 0xf0000000) == 0xf0000000)) {
66910 UnallocatedA32(instr);
66913 Condition condition((instr >> 28) & 0xf);
66914 unsigned rd = ExtractSRegister(instr, 22, 12);
66915 unsigned rm = ExtractDRegister(instr, 5, 0);
66929 if ((instr & 0x00010000) == 0x00000000) {
66930 if (((instr & 0xf0000000) == 0xf0000000)) {
66931 UnallocatedA32(instr);
66934 Condition condition((instr >> 28) & 0xf);
66935 DataType dt = Dt_op_2_Decode((instr >> 7) & 0x1);
66937 UnallocatedA32(instr);
66940 unsigned rd = ExtractDRegister(instr, 22, 12);
66941 unsigned rm = ExtractSRegister(instr, 5, 0);
66949 UnallocatedA32(instr);
66955 if (((instr & 0xf0000000) == 0xf0000000)) {
66956 UnallocatedA32(instr);
66959 Condition condition((instr >> 28) & 0xf);
66960 DataType dt = Dt_U_sx_1_Decode(((instr >> 7) & 0x1) |
66961 ((instr >> 15) & 0x2));
66963 UnallocatedA32(instr);
66966 unsigned rd = ExtractDRegister(instr, 22, 12);
66971 uint32_t fbits = offset - (((instr >> 5) & 0x1) |
66972 ((instr << 1) & 0x1e));
66984 switch (instr & 0x00010080) {
66987 if (((instr & 0xf0000000) == 0xf0000000)) {
66988 UnallocatedA32(instr);
66991 Condition condition((instr >> 28) & 0xf);
66992 unsigned rd = ExtractSRegister(instr, 22, 12);
66993 unsigned rm = ExtractDRegister(instr, 5, 0);
67004 if (((instr & 0xf0000000) == 0xf0000000)) {
67005 UnallocatedA32(instr);
67008 Condition condition((instr >> 28) & 0xf);
67009 unsigned rd = ExtractSRegister(instr, 22, 12);
67010 unsigned rm = ExtractDRegister(instr, 5, 0);
67021 if (((instr & 0xf0000000) == 0xf0000000)) {
67022 UnallocatedA32(instr);
67025 Condition condition((instr >> 28) & 0xf);
67026 unsigned rd = ExtractSRegister(instr, 22, 12);
67027 unsigned rm = ExtractDRegister(instr, 5, 0);
67038 if (((instr & 0xf0000000) == 0xf0000000)) {
67039 UnallocatedA32(instr);
67042 Condition condition((instr >> 28) & 0xf);
67043 unsigned rd = ExtractSRegister(instr, 22, 12);
67044 unsigned rm = ExtractDRegister(instr, 5, 0);
67058 if (((instr & 0xf0000000) == 0xf0000000)) {
67059 UnallocatedA32(instr);
67062 Condition condition((instr >> 28) & 0xf);
67063 DataType dt = Dt_U_sx_1_Decode(((instr >> 7) & 0x1) |
67064 ((instr >> 15) & 0x2));
67066 UnallocatedA32(instr);
67069 unsigned rd = ExtractDRegister(instr, 22, 12);
67074 uint32_t fbits = offset - (((instr >> 5) & 0x1) |
67075 ((instr << 1) & 0x1e));
67093 switch (instr & 0x00000100) {
67096 switch (instr & 0x00e00000) {
67099 if (((instr & 0xf0000000) == 0xf0000000)) {
67100 UnallocatedA32(instr);
67103 Condition condition((instr >> 28) & 0xf);
67104 unsigned rt = (instr >> 12) & 0xf;
67105 unsigned rn = ExtractSRegister(instr, 7, 16);
67108 if (((instr & 0xff00f7f) != 0xe100a10)) {
67109 UnpredictableA32(instr);
67115 if (((instr & 0xf0000000) == 0xf0000000)) {
67116 UnallocatedA32(instr);
67119 Condition condition((instr >> 28) & 0xf);
67120 unsigned rt = (instr >> 12) & 0xf;
67121 unsigned spec_reg = (instr >> 16) & 0xf;
67133 if (((instr & 0xff00fff) != 0xef00a10)) {
67134 UnpredictableA32(instr);
67139 UnallocatedA32(instr);
67145 UnallocatedA32(instr);
67152 if (((instr & 0xf0000000) == 0xf0000000)) {
67153 UnallocatedA32(instr);
67156 Condition condition((instr >> 28) & 0xf);
67159 Dt_U_opc1_opc2_1_Decode(((instr >> 5) & 0x3) |
67160 ((instr >> 19) & 0xc) |
67161 ((instr >> 19) & 0x10),
67164 UnallocatedA32(instr);
67167 unsigned rt = (instr >> 12) & 0xf;
67168 unsigned rn = ExtractDRegister(instr, 7, 16);
67171 if (((instr & 0xf100f1f) != 0xe100b10)) {
67172 UnpredictableA32(instr);
67181 if (((instr & 0xf0000000) == 0xf0000000)) {
67182 UnallocatedA32(instr);
67185 UnimplementedA32("MRC", instr);
67189 UnallocatedA32(instr);
67196 if (((instr & 0xf0000000) == 0xf0000000)) {
67197 UnallocatedA32(instr);
67200 Condition condition((instr >> 28) & 0xf);
67201 uint32_t imm = instr & 0xffffff;