Home | History | Annotate | Line # | Download | only in opcodes
arc-nps400-tbl.h revision 1.1.1.2
      1      1.1  christos /* Bit Manipulation Instructions.  */
      2      1.1  christos 
      3      1.1  christos /* movl<.cl> */
      4      1.1  christos { "movh", 0x48080000, 0xf81f0000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST, NPS_R_SRC1, NPS_UIMM16 }, { 0 }},
      5      1.1  christos { "movh", 0x48180000, 0xf81f0000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST, NPS_UIMM16 }, { C_NPS_CL }},
      6      1.1  christos 
      7      1.1  christos /* movl<.cl> */
      8      1.1  christos { "movl", 0x48090000, 0xf81f0000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST, NPS_R_SRC1, NPS_UIMM16 }, { 0 }},
      9      1.1  christos { "movl", 0x48190000, 0xf81f0000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST, NPS_UIMM16 }, { C_NPS_CL }},
     10      1.1  christos 
     11      1.1  christos /* movb<.f><.cl> */
     12      1.1  christos { "movb", 0x48010000, 0xf80f8000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B, NPS_BITOP_DST_POS, NPS_BITOP_SRC_POS, NPS_BITOP_SIZE }, { C_NPS_F }},
     13      1.1  christos { "movb", 0x48018000, 0xf80f8000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B, NPS_R_SRC2_3B, NPS_BITOP_DST_POS, NPS_BITOP_SRC_POS, NPS_BITOP_SIZE }, { C_NPS_F, C_NPS_CL }},
     14      1.1  christos 
     15      1.1  christos /* movbi<.f><.cl> */
     16      1.1  christos { "movbi", 0x480f0000, 0xf80f8000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST, NPS_R_SRC1, NPS_BITOP_UIMM8, NPS_BITOP_DST_POS, NPS_BITOP_SIZE_2B  }, { C_NPS_F }},
     17      1.1  christos { "movbi", 0x480f8000, 0xf80f8000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST, NPS_BITOP_UIMM8, NPS_BITOP_DST_POS, NPS_BITOP_SIZE_2B  }, { C_NPS_F, C_NPS_CL }},
     18      1.1  christos 
     19      1.1  christos /* decode1<.f> */
     20      1.1  christos { "decode1", 0x48038040, 0xf80f83e0, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B, NPS_BITOP_SRC_POS, NPS_BITOP_SIZE }, { C_NPS_F }},
     21      1.1  christos 
     22      1.1  christos /* decode1.cl<.f> */
     23  1.1.1.2  christos { "decode1", 0x48038060, 0xf80f83e0, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B, NPS_R_SRC2_3B, NPS_BITOP_DST_POS_SZ }, { C_NPS_CL, C_NPS_F }},
     24      1.1  christos 
     25      1.1  christos /* fbset<.f> */
     26      1.1  christos { "fbset", 0x48038000, 0xf80f83e0, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B, NPS_BITOP_SRC_POS, NPS_BITOP_SIZE }, { C_NPS_F }},
     27      1.1  christos 
     28      1.1  christos /* fbclr<.f> */
     29      1.1  christos { "fbclr", 0x48030000, 0xf80f83e0, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B, NPS_BITOP_SRC_POS, NPS_BITOP_SIZE }, { C_NPS_F }},
     30      1.1  christos 
     31      1.1  christos /* encode0<.f> */
     32      1.1  christos { "encode0", 0x48040000, 0xf80f8000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B, NPS_R_SRC2_3B, NPS_BITOP_SRC_POS, NPS_BITOP_SIZE }, { C_NPS_F }},
     33      1.1  christos 
     34      1.1  christos /* encode1<.f> */
     35      1.1  christos { "encode1", 0x48048000, 0xf80f8000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B, NPS_R_SRC2_3B, NPS_BITOP_SRC_POS, NPS_BITOP_SIZE }, { C_NPS_F }},
     36      1.1  christos 
     37  1.1.1.2  christos /* mrgb - 48 bit instruction.  */
     38  1.1.1.2  christos { "mrgb", 0x580300000000, 0xf81f80000000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B_48, NPS_R_SRC1_3B_48, NPS_R_SRC2_3B_48, NPS_BITOP_DST_POS1, NPS_BITOP_SRC_POS1, NPS_BITOP_SIZE1, NPS_BITOP_DST_POS2, NPS_BITOP_SRC_POS2, NPS_BITOP_SIZE2 }, { 0 }},
     39  1.1.1.2  christos 
     40  1.1.1.2  christos /* mrgb.cl - 48 bit instruction.  */
     41  1.1.1.2  christos { "mrgb", 0x580380000000, 0xf81f80000000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B_48, NPS_R_SRC1_3B_48, NPS_R_SRC2_3B_48, NPS_BITOP_DST_POS1, NPS_BITOP_SRC_POS1, NPS_BITOP_SIZE1, NPS_BITOP_DST_POS2, NPS_BITOP_SRC_POS2, NPS_BITOP_SIZE2 }, { C_NPS_CL }},
     42  1.1.1.2  christos 
     43  1.1.1.2  christos /* mov2b - 48 bit instruction.  */
     44  1.1.1.2  christos { "mov2b", 0x580000000000, 0xf81f80000000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B_48, NPS_R_SRC1_3B_48, NPS_R_SRC2_3B_48, NPS_BITOP_DST_POS1, NPS_BITOP_MOD1, NPS_BITOP_SRC_POS1, NPS_BITOP_DST_POS2, NPS_BITOP_MOD2, NPS_BITOP_SRC_POS2 }, { 0 }},
     45  1.1.1.2  christos 
     46  1.1.1.2  christos /* mov2b.cl - 48 bit instruction.  */
     47  1.1.1.2  christos { "mov2b", 0x580080000000, 0xf81f80000000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B_48, NPS_R_SRC2_3B_48, NPS_BITOP_DST_POS1, NPS_BITOP_MOD1, NPS_BITOP_SRC_POS1, NPS_BITOP_DST_POS2, NPS_BITOP_MOD2, NPS_BITOP_SRC_POS2 }, { C_NPS_CL }},
     48  1.1.1.2  christos 
     49  1.1.1.2  christos /* ext4 - 48 bit instruction.  */
     50  1.1.1.2  christos { "ext4b", 0x580100000000, 0xf81f80000000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B_48, NPS_R_SRC1_3B_48, NPS_R_SRC2_3B_48, NPS_BITOP_INS_EXT, NPS_BITOP_SRC_POS1, NPS_BITOP_SRC_POS2, NPS_BITOP_DST_POS1, NPS_BITOP_DST_POS2 }, { 0 }},
     51  1.1.1.2  christos 
     52  1.1.1.2  christos /* ext4.cl - 48 bit instruction.  */
     53  1.1.1.2  christos { "ext4b", 0x580180000000, 0xf81f80000000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B_48, NPS_R_SRC2_3B_48, NPS_BITOP_INS_EXT, NPS_BITOP_SRC_POS1, NPS_BITOP_SRC_POS2, NPS_BITOP_DST_POS1, NPS_BITOP_DST_POS2 }, { C_NPS_CL }},
     54  1.1.1.2  christos 
     55  1.1.1.2  christos /* ins4 - 48 bit instruction.  */
     56  1.1.1.2  christos { "ins4b", 0x580200000000, 0xf81f80000000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B_48, NPS_R_SRC1_3B_48, NPS_R_SRC2_3B_48, NPS_BITOP_SRC_POS1, NPS_BITOP_SRC_POS2, NPS_BITOP_DST_POS1, NPS_BITOP_DST_POS2, NPS_BITOP_INS_EXT }, { 0 }},
     57  1.1.1.2  christos 
     58  1.1.1.2  christos /* ins4.cl - 48 bit instruction.  */
     59  1.1.1.2  christos { "ins4b", 0x580280000000, 0xf81f80000000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B_48, NPS_R_SRC2_3B_48, NPS_BITOP_SRC_POS1, NPS_BITOP_SRC_POS2, NPS_BITOP_DST_POS1, NPS_BITOP_DST_POS2, NPS_BITOP_INS_EXT }, { C_NPS_CL }},
     60  1.1.1.2  christos 
     61  1.1.1.2  christos /* mov3b - 64 bit instruction.  */
     62  1.1.1.2  christos { "mov3b", 0x5810000080000000, 0xf81f801f80000000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B_64, NPS_R_SRC1_3B_64, NPS_R_SRC2_3B_64, NPS_BITOP_DST_POS1, NPS_BITOP_MOD1, NPS_BITOP_SRC_POS1, NPS_BITOP_DST_POS2, NPS_BITOP_MOD2, NPS_BITOP_SRC_POS2, NPS_BITOP_DST_POS3_POS4, NPS_BITOP_MOD3, NPS_BITOP_SRC_POS3}, { 0 }},
     63  1.1.1.2  christos 
     64  1.1.1.2  christos /* mov4b - 64 bit instruction.  */
     65  1.1.1.2  christos { "mov4b", 0x5810000000000000, 0xf81f000000000000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B_64, NPS_R_SRC1_3B_64, NPS_R_SRC2_3B_64, NPS_BITOP_DST_POS1, NPS_BITOP_MOD1, NPS_BITOP_SRC_POS1, NPS_BITOP_DST_POS2, NPS_BITOP_MOD2, NPS_BITOP_SRC_POS2, NPS_BITOP_DST_POS3, NPS_BITOP_MOD3, NPS_BITOP_SRC_POS3, NPS_BITOP_DST_POS4, NPS_BITOP_MOD4, NPS_BITOP_SRC_POS4}, { 0 }},
     66  1.1.1.2  christos 
     67  1.1.1.2  christos /* mov3bcl - 64 bit instruction.  */
     68  1.1.1.2  christos { "mov3bcl", 0x5811000080000000, 0xf81f801f80000000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B_64, NPS_R_SRC2_3B_64, NPS_BITOP_DST_POS1, NPS_BITOP_MOD1, NPS_BITOP_SRC_POS1, NPS_BITOP_DST_POS2, NPS_BITOP_MOD2, NPS_BITOP_SRC_POS2, NPS_BITOP_DST_POS3_POS4, NPS_BITOP_MOD3, NPS_BITOP_SRC_POS3}, { 0 }},
     69  1.1.1.2  christos 
     70  1.1.1.2  christos /* mov4bcl - 64 bit instruction.  */
     71  1.1.1.2  christos { "mov4bcl", 0x5811000000000000, 0xf81f000000000000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B_64, NPS_R_SRC2_3B_64, NPS_BITOP_DST_POS1, NPS_BITOP_MOD1, NPS_BITOP_SRC_POS1, NPS_BITOP_DST_POS2, NPS_BITOP_MOD2, NPS_BITOP_SRC_POS2, NPS_BITOP_DST_POS3, NPS_BITOP_MOD3, NPS_BITOP_SRC_POS3, NPS_BITOP_DST_POS4, NPS_BITOP_MOD4, NPS_BITOP_SRC_POS4 }, { 0 }},
     72  1.1.1.2  christos 
     73  1.1.1.2  christos /* mov3b.cl - 64 bit instruction.  */
     74  1.1.1.2  christos { "mov3b", 0x5811000080000000, 0xf81f801f80000000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B_64, NPS_R_SRC2_3B_64, NPS_BITOP_DST_POS1, NPS_BITOP_MOD1, NPS_BITOP_SRC_POS1, NPS_BITOP_DST_POS2, NPS_BITOP_MOD2, NPS_BITOP_SRC_POS2, NPS_BITOP_DST_POS3_POS4, NPS_BITOP_MOD3, NPS_BITOP_SRC_POS3 }, { C_NPS_CL }},
     75  1.1.1.2  christos 
     76  1.1.1.2  christos /* mov4b.cl - 64 bit instruction.  */
     77  1.1.1.2  christos { "mov4b", 0x5811000000000000, 0xf81f000000000000, ARC_OPCODE_ARC700, BITOP, NPS400, { NPS_R_DST_3B_64, NPS_R_SRC2_3B_64, NPS_BITOP_DST_POS1, NPS_BITOP_MOD1, NPS_BITOP_SRC_POS1, NPS_BITOP_DST_POS2, NPS_BITOP_MOD2, NPS_BITOP_SRC_POS2, NPS_BITOP_DST_POS3, NPS_BITOP_MOD3, NPS_BITOP_SRC_POS3, NPS_BITOP_DST_POS4, NPS_BITOP_MOD4, NPS_BITOP_SRC_POS4}, { C_NPS_CL }},
     78      1.1  christos 
     79      1.1  christos /* rflt a,b,c   00111bbb00101110FBBBCCCCCCAAAAAA */
     80      1.1  christos { "rflt", 0x382e0000, 0xf8ff8000, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, RB, RC }, { 0 }},
     81      1.1  christos 
     82      1.1  christos /* rflt a,limm,c   0011111000101110F111CCCCCCAAAAAA */
     83      1.1  christos { "rflt", 0x3e2e7000, 0xfffff000, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, LIMM, RC }, { 0 }},
     84      1.1  christos 
     85      1.1  christos /* rflt a,b,u6   00111bbb01101110FBBBuuuuuuAAAAAA */
     86      1.1  christos { "rflt", 0x386e0000, 0xf8ff8000, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, RB, NPS_RFLT_UIMM6 }, { 0 }},
     87      1.1  christos 
     88      1.1  christos /* rflt 0,b,c   00111bbb00101110FBBBCCCCCC111110 */
     89      1.1  christos { "rflt", 0x382e003e, 0xf8ff803f, ARC_OPCODE_ARC700, BITOP, NPS400, { ZA, RB, RC }, { 0 }},
     90      1.1  christos 
     91      1.1  christos /* rflt 0,limm,c   0011111000101110F111CCCCCC111110 */
     92      1.1  christos { "rflt", 0x3e2e703e, 0xfffff03f, ARC_OPCODE_ARC700, BITOP, NPS400, { ZA, LIMM, RC }, { 0 }},
     93      1.1  christos 
     94      1.1  christos /* rflt 0,b,u6   00111bbb01101110FBBBuuuuuu111110 */
     95      1.1  christos { "rflt", 0x386e003e, 0xf8ff803f, ARC_OPCODE_ARC700, BITOP, NPS400, { ZA, RB, NPS_RFLT_UIMM6 }, { 0 }},
     96      1.1  christos 
     97      1.1  christos /* rflt 0,b,limm   00111bbb00101110FBBB111110111110 */
     98      1.1  christos { "rflt", 0x382e0fbe, 0xf8ff8fff, ARC_OPCODE_ARC700, BITOP, NPS400, { ZA, RB, LIMM }, { 0 }},
     99      1.1  christos 
    100      1.1  christos /* rflt a,b,limm   00111bbb00101110FBBB111110AAAAAA */
    101      1.1  christos { "rflt", 0x382e0f80, 0xf8ff8fc0, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, RB, LIMM }, { 0 }},
    102      1.1  christos 
    103      1.1  christos /* rflt a,limm,limm    0011111000101110F111111110AAAAAA */
    104      1.1  christos { "rflt", 0x3e2e7f80, 0xffffffc0, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, LIMM, LIMMdup }, { 0 }},
    105      1.1  christos 
    106      1.1  christos /* rflt a,limm,u6   0011111001101110F111uuuuuuAAAAAA */
    107      1.1  christos { "rflt", 0x3e6e7000, 0xfffff000, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, LIMM, NPS_RFLT_UIMM6 }, { 0 }},
    108      1.1  christos 
    109      1.1  christos /* rflt 0,limm,u6   0011111001101110F111uuuuuu111110 */
    110      1.1  christos { "rflt", 0x3e6e703e, 0xfffff03f, ARC_OPCODE_ARC700, BITOP, NPS400, { ZA, LIMM, NPS_RFLT_UIMM6 }, { 0 }},
    111      1.1  christos 
    112      1.1  christos /* crc16<.r> a,b,c  00111bbb00110011RBBBCCCCCCAAAAAA */
    113      1.1  christos { "crc16", 0x38330000, 0xf8ff0000, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, RB, RC }, { C_NPS_R }},
    114      1.1  christos 
    115      1.1  christos /* crc16<.r> a,limm,c  0011111000110011R111CCCCCCAAAAAA */
    116      1.1  christos { "crc16", 0x3e337000, 0xffff7000, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, LIMM, RC }, { C_NPS_R }},
    117      1.1  christos 
    118      1.1  christos /* crc16<.r> a,b,u6  00111bbb01110011RBBBuuuuuuAAAAAA */
    119      1.1  christos { "crc16", 0x38730000, 0xf8ff0000, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, RB, UIMM6_20 }, { C_NPS_R }},
    120      1.1  christos 
    121      1.1  christos /* crc16<.r> 0,b,c  00111bbb00110011RBBBCCCCCC111110 */
    122      1.1  christos { "crc16", 0x3833003e, 0xf8ff003f, ARC_OPCODE_ARC700, BITOP, NPS400, { ZA, RB, RC }, { C_NPS_R }},
    123      1.1  christos 
    124      1.1  christos /* crc16<.r> 0,limm,c  0011111000110011R111CCCCCC111110 */
    125      1.1  christos { "crc16", 0x3e33703e, 0xffff703f, ARC_OPCODE_ARC700, BITOP, NPS400, { ZA, LIMM, RC }, { C_NPS_R }},
    126      1.1  christos 
    127      1.1  christos /* crc16<.r> 0,b,u6  00111bbb01110011RBBBuuuuuu111110 */
    128      1.1  christos { "crc16", 0x3873003e, 0xf8ff003f, ARC_OPCODE_ARC700, BITOP, NPS400, { ZA, RB, UIMM6_20 }, { C_NPS_R }},
    129      1.1  christos 
    130      1.1  christos /* crc16<.r> 0,b,limm  00111bbb00110011RBBB111110111110 */
    131      1.1  christos { "crc16", 0x38330fbe, 0xf8ff0fff, ARC_OPCODE_ARC700, BITOP, NPS400, { ZA, RB, LIMM }, { C_NPS_R }},
    132      1.1  christos 
    133      1.1  christos /* crc16<.r> a,b,limm  00111bbb00110011RBBB111110AAAAAA */
    134      1.1  christos { "crc16", 0x38330f80, 0xf8ff0fc0, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, RB, LIMM }, { C_NPS_R }},
    135      1.1  christos 
    136      1.1  christos /* crc16<.r> a,limm,limm  0011111000110011R111111110AAAAAA */
    137      1.1  christos { "crc16", 0x3e337f80, 0xffff7fc0, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, LIMM, LIMMdup }, { C_NPS_R }},
    138      1.1  christos 
    139      1.1  christos /* crc16<.r> a,limm,u6  0011111001110011R111uuuuuuAAAAAA */
    140      1.1  christos { "crc16", 0x3e737000, 0xffff7000, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, LIMM, UIMM6_20 }, { C_NPS_R }},
    141      1.1  christos 
    142      1.1  christos /* crc16<.r> 0,limm,u6  0011111001110011R111uuuuuu111110 */
    143      1.1  christos { "crc16", 0x3e73703e, 0xffff703f, ARC_OPCODE_ARC700, BITOP, NPS400, { ZA, LIMM, UIMM6_20 }, { C_NPS_R }},
    144      1.1  christos 
    145      1.1  christos /* crc32<.r> a,b,c		00111 bbb 00 110100 R BBB CCCCCC AAAAAA */
    146      1.1  christos { "crc32", 0x38340000, 0xf8ff0000, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, RB, RC }, { C_NPS_R }},
    147      1.1  christos 
    148      1.1  christos /* crc32<.r> a,limm,c		00111 110 00 110100 R 111 CCCCCC AAAAAA */
    149      1.1  christos { "crc32", 0x3e347000, 0xffff7000, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, LIMM, RC }, { C_NPS_R }},
    150      1.1  christos 
    151      1.1  christos /* crc32<.r> a,b,u6		00111 bbb 01 110100 R BBB uuuuuu AAAAAA */
    152      1.1  christos { "crc32", 0x38740000, 0xf8ff0000, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, RB, UIMM6_20 }, { C_NPS_R }},
    153      1.1  christos 
    154      1.1  christos /* crc32<.r> 0,b,c		00111 bbb 00 110100 R BBB CCCCCC 111110 */
    155      1.1  christos { "crc32", 0x3834003e, 0xf8ff003f, ARC_OPCODE_ARC700, BITOP, NPS400, { ZA, RB, RC }, { C_NPS_R }},
    156      1.1  christos 
    157      1.1  christos /* crc32<.r> 0,limm,c		00111 110 00 110100 R 111 CCCCCC 111110 */
    158      1.1  christos { "crc32", 0x3e34703e, 0xffff703f, ARC_OPCODE_ARC700, BITOP, NPS400, { ZA, LIMM, RC }, { C_NPS_R }},
    159      1.1  christos 
    160      1.1  christos /* crc32<.r> 0,b,u6		00111 bbb 01 110100 R BBB uuuuuu 111110 */
    161      1.1  christos { "crc32", 0x3874003e, 0xf8ff003f, ARC_OPCODE_ARC700, BITOP, NPS400, { ZA, RB, UIMM6_20 }, { C_NPS_R }},
    162      1.1  christos 
    163      1.1  christos /* crc32<.r> 0,b,limm		00111 bbb 00 110100 R BBB 111110 111110 */
    164      1.1  christos { "crc32", 0x38340fbe, 0xf8ff0fff, ARC_OPCODE_ARC700, BITOP, NPS400, { ZA, RB, LIMM }, { C_NPS_R }},
    165      1.1  christos 
    166      1.1  christos /* crc32<.r> a,b,limm		00111 bbb 00 110100 R BBB 111110 AAAAAA */
    167      1.1  christos { "crc32", 0x38340f80, 0xf8ff0fc0, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, RB, LIMM }, { C_NPS_R }},
    168      1.1  christos 
    169      1.1  christos /* crc32<.r> a,limm,limm	00111 110 00 110100 R 111 111110 AAAAAA */
    170      1.1  christos { "crc32", 0x3e347f80, 0xffff7fc0, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, LIMM, LIMMdup }, { C_NPS_R }},
    171      1.1  christos 
    172      1.1  christos /* crc32<.r> a,limm,u6		00111 110 01 110100 R 111 uuuuuu AAAAAA */
    173      1.1  christos { "crc32", 0x3e747000, 0xffff7000, ARC_OPCODE_ARC700, BITOP, NPS400, { RA, LIMM, UIMM6_20 }, { C_NPS_R }},
    174      1.1  christos 
    175      1.1  christos /* crc32<.r> 0,limm,u6		00111 110 01 110100 R 111 uuuuuu 111110 */
    176      1.1  christos { "crc32", 0x3e74703e, 0xffff703f, ARC_OPCODE_ARC700, BITOP, NPS400, { ZA, LIMM, UIMM6_20 }, { C_NPS_R }},
    177      1.1  christos 
    178      1.1  christos /* Arithmetic & Logic Instructions.  */
    179      1.1  christos 
    180      1.1  christos #define ADDB_LIKE(NAME,SUBOP2)                                          \
    181      1.1  christos   { NAME, (0x48000000 | SUBOP2), 0xf80f001f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B, NPS_SRC1_POS, NPS_SRC2_POS, NPS_ADDB_SIZE }, { C_NPS_F, C_NPS_SX }},
    182      1.1  christos 
    183      1.1  christos ADDB_LIKE ("addb", 0)
    184      1.1  christos ADDB_LIKE ("subb", 4)
    185      1.1  christos ADDB_LIKE ("adcb", 5)
    186      1.1  christos ADDB_LIKE ("sbcb", 6)
    187      1.1  christos 
    188      1.1  christos #define ANDB_LIKE(NAME,SUBOP2,SIZE_OPERAND)                             \
    189      1.1  christos   { NAME, (0x48000000 | SUBOP2), 0xf80f001f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B, NPS_SRC1_POS, NPS_SRC2_POS, SIZE_OPERAND }, { C_NPS_F }},
    190      1.1  christos 
    191      1.1  christos ANDB_LIKE ("andb", 1, NPS_ANDB_SIZE)
    192      1.1  christos ANDB_LIKE ("xorb", 2, NPS_ANDB_SIZE)
    193      1.1  christos ANDB_LIKE ("orb", 3, NPS_ANDB_SIZE)
    194      1.1  christos ANDB_LIKE ("fxorb", 7, NPS_FXORB_SIZE)
    195      1.1  christos ANDB_LIKE ("wxorb", 8, NPS_WXORB_SIZE)
    196      1.1  christos ANDB_LIKE ("shlb", 0xb, NPS_ANDB_SIZE)
    197      1.1  christos ANDB_LIKE ("shrb", 0xc, NPS_ANDB_SIZE)
    198      1.1  christos 
    199      1.1  christos #define NOTB_LIKE(NAME,SUBOP2)                                          \
    200      1.1  christos   { NAME, (0x48000000 | SUBOP2), 0xf80f001f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC2_3B, NPS_SRC2_POS, NPS_ANDB_SIZE }, { C_NPS_F }},
    201      1.1  christos 
    202      1.1  christos NOTB_LIKE ("notb", 0x9)
    203      1.1  christos NOTB_LIKE ("cntbb", 0xa)
    204      1.1  christos 
    205      1.1  christos #define DIV_LIKE(NAME,DIV_MODE)                                          \
    206      1.1  christos   { NAME, (0x4800000d | DIV_MODE << 14), 0xf80fc3ff, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B, NPS_SRC1_POS, NPS_SRC2_POS, }, { C_NPS_F }}, \
    207      1.1  christos   { NAME, (0x4800020d | DIV_MODE << 14), 0xf8efc21f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_DIV_UIMM4, NPS_SRC1_POS }, { C_NPS_F }},
    208      1.1  christos 
    209      1.1  christos DIV_LIKE ("div", 0x1)
    210      1.1  christos DIV_LIKE ("mod", 0x2)
    211      1.1  christos DIV_LIKE ("divm", 0x0)
    212      1.1  christos 
    213      1.1  christos { "qcmp", 0x4810000e, 0xf81f001e, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B, NPS_SRC2_POS, NPS_QCMP_SIZE, NPS_QCMP_M1, NPS_QCMP_M2, NPS_QCMP_M3 }, { C_NPS_AR_AL }},
    214      1.1  christos { "qcmp", 0x481001ee, 0xf81f01fe, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B, NPS_SRC2_POS, NPS_QCMP_SIZE, NPS_QCMP_M1, NPS_QCMP_M2 }, { C_NPS_AR_AL }},
    215      1.1  christos { "qcmp", 0x481001ee, 0xf81f81fe, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B, NPS_SRC2_POS, NPS_QCMP_SIZE, NPS_QCMP_M1  }, { C_NPS_AR_AL }},
    216      1.1  christos { "qcmp", 0x481001ee, 0xf81fc1fe, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B, NPS_SRC2_POS, NPS_QCMP_SIZE  }, { C_NPS_AR_AL }},
    217      1.1  christos 
    218      1.1  christos { "calcsd", 0x48000010, 0xf80f407f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B, NPS_CALC_ENTRY_SIZE }, { C_NPS_F }},
    219      1.1  christos { "calcxd", 0x48004010, 0xf80f407f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B, NPS_CALC_ENTRY_SIZE }, { C_NPS_F }},
    220      1.1  christos 
    221      1.1  christos { "calcbsd", 0x48000030, 0xf80f407f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B }, { C_NPS_F }},
    222      1.1  christos { "calcbxd", 0x48004030, 0xf80f407f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B }, { C_NPS_F }},
    223      1.1  christos 
    224      1.1  christos { "calckey", 0x48000050, 0xf80f407f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B }, { C_NPS_F }},
    225      1.1  christos { "calcxkey", 0x48004050, 0xf80f407f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B }, { C_NPS_F }},
    226      1.1  christos 
    227      1.1  christos { "mxb", 0x580b0000, 0xf81f8007, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC2_3B, NPS_FIELD_START_POS, NPS_FIELD_SIZE, NPS_SHIFT_FACTOR }, { 0 }},
    228      1.1  christos { "mxb", 0x580b8000, 0xf81f8007, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC2_3B, NPS_FIELD_START_POS, NPS_FIELD_SIZE, NPS_SHIFT_FACTOR, NPS_BITS_TO_SCRAMBLE }, { C_NPS_S }},
    229      1.1  christos { "imxb", 0x580b0001, 0xf81f8007, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC2_3B, NPS_FIELD_START_POS, NPS_FIELD_SIZE, NPS_SHIFT_FACTOR }, { 0 }},
    230      1.1  christos { "imxb", 0x580b8001, 0xf81f8007, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC2_3B, NPS_FIELD_START_POS, NPS_FIELD_SIZE, NPS_SHIFT_FACTOR, NPS_BITS_TO_SCRAMBLE }, { C_NPS_S }},
    231      1.1  christos 
    232      1.1  christos #define ADDL_LIKE(NAME,SUBOP2,SHIM)                                     \
    233      1.1  christos   { NAME, (0x48000000 | (SUBOP2 << 16)), 0xf80f0000, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST, NPS_R_SRC1, SHIM }, { C_NPS_F }},
    234      1.1  christos 
    235      1.1  christos ADDL_LIKE ("addl", 0xA, NPS_SIMM16)
    236      1.1  christos ADDL_LIKE ("subl", 0xB, NPS_SIMM16)
    237      1.1  christos ADDL_LIKE ("orl", 0xC, NPS_UIMM16)
    238      1.1  christos ADDL_LIKE ("andl", 0xD, NPS_UIMM16)
    239      1.1  christos ADDL_LIKE ("xorl", 0xE, NPS_UIMM16)
    240      1.1  christos 
    241      1.1  christos { "andab", 0x48000011, 0xf80f801f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC2_3B, NPS_SRC2_POS_5B, NPS_BITOP_SIZE }, { C_NPS_F } },
    242      1.1  christos { "andab", 0x48008011, 0xf80f801f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B, NPS_SRC2_POS_5B, NPS_BITOP_SIZE }, { C_NPS_F } },
    243      1.1  christos { "orab", 0x48000012, 0xf80f801f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC2_3B, NPS_SRC2_POS_5B, NPS_BITOP_SIZE }, { C_NPS_F } },
    244      1.1  christos { "orab", 0x48008012, 0xf80f801f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B, NPS_SRC2_POS_5B, NPS_BITOP_SIZE }, { C_NPS_F } },
    245      1.1  christos 
    246      1.1  christos { "lbdsize", 0x382f0005, 0xf8ff003f, ARC_OPCODE_ARC700, ARITH, NPS400, { RB, RC }, { C_F }},
    247      1.1  christos 
    248      1.1  christos { "bdlen", 0x48000013, 0xf80fc01f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC2_3B, NPS_BDLEN_MAX_LEN }, { C_NPS_F }},
    249      1.1  christos { "bdlen", 0x48004013, 0xf80fc01f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC2_3B }, { C_NPS_F }},
    250      1.1  christos { "bdlen", 0x48008013, 0xf80fc01f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B, NPS_BDLEN_MAX_LEN }, { C_NPS_F }},
    251      1.1  christos { "bdlen", 0x4800c013, 0xf80fc01f, ARC_OPCODE_ARC700, ARITH, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, NPS_R_SRC2_3B }, { C_NPS_F }},
    252      1.1  christos 
    253      1.1  christos /* csma a,b,c   00111bbb00100001FBBBCCCCCCAAAAAA */
    254      1.1  christos { "csma", 0x382a0000, 0xf8ff8000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, RB, RC }, { 0 }},
    255      1.1  christos 
    256      1.1  christos /* csma a,limm,c   0011111000100001F111CCCCCCAAAAAA */
    257      1.1  christos { "csma", 0x3e2a7000, 0xfffff000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, LIMM, RC }, { 0 }},
    258      1.1  christos 
    259      1.1  christos /* csma a,b,u6   00111bbb01100001FBBBuuuuuuAAAAAA */
    260      1.1  christos { "csma", 0x386a0000, 0xf8ff8000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, RB, UIMM6_20 }, { 0 }},
    261      1.1  christos 
    262      1.1  christos /* csma 0,b,c   00111bbb00100001FBBBCCCCCC111110 */
    263      1.1  christos { "csma", 0x382a003e, 0xf8ff803f, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, RB, RC }, { 0 }},
    264      1.1  christos 
    265      1.1  christos /* csma 0,limm,c   0011111000100001F111CCCCCC111110 */
    266      1.1  christos { "csma", 0x3e2a703e, 0xfffff03f, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, LIMM, RC }, { 0 }},
    267      1.1  christos 
    268      1.1  christos /* csma 0,b,u6   00111bbb01100001FBBBuuuuuu111110 */
    269      1.1  christos { "csma", 0x386a003e, 0xf8ff803f, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, RB, UIMM6_20 }, { 0 }},
    270      1.1  christos 
    271      1.1  christos /* csma 0,b,limm   00111bbb00100001FBBB111110111110 */
    272      1.1  christos { "csma", 0x382a0fbe, 0xf8ff8fff, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, RB, LIMM }, { 0 }},
    273      1.1  christos 
    274      1.1  christos /* csma a,b,limm   00111bbb00100001FBBB111110AAAAAA */
    275      1.1  christos { "csma", 0x382a0f80, 0xf8ff8fc0, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, RB, LIMM }, { 0 }},
    276      1.1  christos 
    277      1.1  christos /* csma a,limm,limm    0011111000100001F111111110AAAAAA */
    278      1.1  christos { "csma", 0x3e2a7f80, 0xffffffc0, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, LIMM, LIMMdup }, { 0 }},
    279      1.1  christos 
    280      1.1  christos /* csma a,limm,u6   0011111001100001F111uuuuuuAAAAAA */
    281      1.1  christos { "csma", 0x3e6a7000, 0xfffff000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, LIMM, UIMM6_20 }, { 0 }},
    282      1.1  christos 
    283      1.1  christos /* csma 0,limm,u6   0011111001100001F111uuuuuu111110 */
    284      1.1  christos { "csma", 0x3e6a703e, 0xfffff03f, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, LIMM, UIMM6_20 }, { 0 }},
    285      1.1  christos 
    286      1.1  christos /* csms a,b,c   00111bbb00101100FBBBCCCCCCAAAAAA */
    287      1.1  christos { "csms", 0x382c0000, 0xf8ff8000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, RB, RC }, { 0 }},
    288      1.1  christos 
    289      1.1  christos /* csma a,limm,c   0011111000101100F111CCCCCCAAAAAA */
    290      1.1  christos { "csms", 0x3e2c7000, 0xfffff000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, LIMM, RC }, { 0 }},
    291      1.1  christos 
    292      1.1  christos /* csms a,b,u6   00111bbb01101100FBBBuuuuuuAAAAAA */
    293      1.1  christos { "csms", 0x386c0000, 0xf8ff8000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, RB, UIMM6_20 }, { 0 }},
    294      1.1  christos 
    295      1.1  christos /* csms 0,b,c   00111bbb00101100FBBBCCCCCC111110 */
    296      1.1  christos { "csms", 0x382c003e, 0xf8ff803f, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, RB, RC }, { 0 }},
    297      1.1  christos 
    298      1.1  christos /* csms 0,limm,c   0011111000101100F111CCCCCC111110 */
    299      1.1  christos { "csms", 0x3e2c703e, 0xfffff03f, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, LIMM, RC }, { 0 }},
    300      1.1  christos 
    301      1.1  christos /* csms 0,b,u6   00111bbb01101100FBBBuuuuuu111110 */
    302      1.1  christos { "csms", 0x386c003e, 0xf8ff803f, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, RB, UIMM6_20 }, { 0 }},
    303      1.1  christos 
    304      1.1  christos /* csms 0,b,limm   00111bbb00101100FBBB111110111110 */
    305      1.1  christos { "csms", 0x382c0fbe, 0xf8ff8fff, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, RB, LIMM }, { 0 }},
    306      1.1  christos 
    307      1.1  christos /* csms a,b,limm   00111bbb00101100FBBB111110AAAAAA */
    308      1.1  christos { "csms", 0x382c0f80, 0xf8ff8fc0, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, RB, LIMM }, { 0 }},
    309      1.1  christos 
    310      1.1  christos /* csms a,limm,limm   0011111000101100F111111110AAAAAA */
    311      1.1  christos { "csms", 0x3e2c7f80, 0xffffffc0, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, LIMM, LIMMdup }, { 0 }},
    312      1.1  christos 
    313      1.1  christos /* csms a,limm,u6   0011111001101100F111uuuuuuAAAAAA */
    314      1.1  christos { "csms", 0x3e6c7000, 0xfffff000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, LIMM, UIMM6_20 }, { 0 }},
    315      1.1  christos 
    316      1.1  christos /* csms 0,limm,u6   0011111001101100F111uuuuuu111110 */
    317      1.1  christos { "csms", 0x3e6c703e, 0xfffff03f, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, LIMM, UIMM6_20 }, { 0 }},
    318      1.1  christos 
    319      1.1  christos /* cbba a,b,c   00111bbb00101101FBBBCCCCCCAAAAAA */
    320      1.1  christos { "cbba", 0x382d0000, 0xf8ff0000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, RB, RC }, { C_F }},
    321      1.1  christos 
    322      1.1  christos /* cbba a,limm,c    0011111000101101F111CCCCCCAAAAAA */
    323      1.1  christos { "cbba", 0x3e2d7000, 0xffff7000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, LIMM, RC }, { C_F }},
    324      1.1  christos 
    325      1.1  christos /* cbba a,b,u6   00111bbb01101101FBBBuuuuuuAAAAAA */
    326      1.1  christos { "cbba", 0x386d0000, 0xf8ff0000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, RB, UIMM6_20 }, { C_F }},
    327      1.1  christos 
    328      1.1  christos /* cbba 0,b,c   00111bbb00101101FBBBCCCCCC111110 */
    329      1.1  christos { "cbba", 0x382d003e, 0xf8ff003f, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, RB, RC }, { C_F }},
    330      1.1  christos 
    331      1.1  christos /* cbba 0,limm,c   0011111000101101F111CCCCCC111110 */
    332      1.1  christos { "cbba", 0x3e2d703e, 0xffff703f, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, LIMM, RC }, { C_F }},
    333      1.1  christos 
    334      1.1  christos /* cbba 0,b,u6   00111bbb01101101FBBBuuuuuu111110 */
    335      1.1  christos { "cbba", 0x386d003e, 0xf8ff003f, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, RB, UIMM6_20 }, { C_F }},
    336      1.1  christos 
    337      1.1  christos /* cbba 0,b,limm   00111bbb00101101FBBB111110111110 */
    338      1.1  christos { "cbba", 0x382d0fbe, 0xf8ff0fff, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, RB, LIMM }, { C_F }},
    339      1.1  christos 
    340      1.1  christos /* cbba a,b,limm   00111bbb00101101FBBB111110AAAAAA */
    341      1.1  christos { "cbba", 0x382d0f80, 0xf8ff0fc0, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, RB, LIMM }, { C_F }},
    342      1.1  christos 
    343      1.1  christos /* cbba a,limm,limm   0011111000101101F111111110AAAAAA */
    344      1.1  christos { "cbba", 0x3e2d7f80, 0xffff7fc0, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, LIMM, LIMMdup }, { C_F }},
    345      1.1  christos 
    346      1.1  christos /* cbba a,limm,u6   0011111001101101F111uuuuuuAAAAAA */
    347      1.1  christos { "cbba", 0x3e6d7000, 0xffff7000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, LIMM, UIMM6_20 }, { C_F }},
    348      1.1  christos 
    349      1.1  christos /* cbba 0,limm,u6   0011111001101101F111uuuuuu111110 */
    350      1.1  christos { "cbba", 0x3e6d703e, 0xffff703f, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, LIMM, UIMM6_20 }, { C_F }},
    351      1.1  christos 
    352      1.1  christos /* zncv<.rd|.wr> a,b,c   00111bbb001101010BBBCCCCCCAAAAAA */
    353      1.1  christos { "zncv", 0x38350000, 0xf8ff0000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, RB, RC }, { C_NPS_ZNCV }},
    354      1.1  christos 
    355      1.1  christos /* zncv<.rd|.wr> a,b,u6   00111bbb011101010BBBuuuuuuAAAAAA */
    356      1.1  christos { "zncv", 0x38750000, 0xf8ff0000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, RB, UIMM6_20}, { C_NPS_ZNCV }},
    357      1.1  christos 
    358      1.1  christos /* zncv<.rd|.wr> b,b,s12   00111bbb101101010BBBssssssSSSSSS */
    359      1.1  christos { "zncv", 0x38b50000, 0xf8ff0000, ARC_OPCODE_ARC700, ARITH, NPS400, { RB, RBdup, SIMM12_20 }, { C_NPS_ZNCV }},
    360      1.1  christos 
    361      1.1  christos /* zncv<.rd|.wr> a,b,limm   00111bbb001101010BBB111110AAAAAA */
    362      1.1  christos { "zncv", 0x38350f80, 0xf8ff0fc0, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, RB, LIMM }, { C_NPS_ZNCV }},
    363      1.1  christos 
    364      1.1  christos /* zncv<.rd|.wr> a,limm,c   00111110001101010111CCCCCCAAAAAA */
    365      1.1  christos { "zncv", 0x3e357000, 0xffff7000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, LIMM, RC }, { C_NPS_ZNCV }},
    366      1.1  christos 
    367      1.1  christos /* zncv<.rd|.wr> a,limm,u6   00111110011101010111uuuuuuAAAAAA */
    368      1.1  christos { "zncv", 0x3e757000, 0xffff7000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, LIMM, UIMM6_20 }, { C_NPS_ZNCV }},
    369      1.1  christos 
    370      1.1  christos /* zncv<.rd|.wr> a,limm,limm   00111110001101010111111110AAAAAA */
    371      1.1  christos { "zncv", 0x3e357f80, 0xffff7fc0, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, LIMM, LIMMdup }, { C_NPS_ZNCV }},
    372      1.1  christos 
    373      1.1  christos /* zncv<.rd|.wr> 0,b,c 00111bbb001101010BBBCCCCCC111110 */
    374      1.1  christos { "zncv", 0x3835003e, 0xf8ff003f, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, RB, RC }, { C_NPS_ZNCV }},
    375      1.1  christos 
    376      1.1  christos /* zncv<.rd|.wr> 0,b,u6   00111bbb011101010BBBuuuuuu111110 */
    377      1.1  christos { "zncv", 0x3875003e, 0xf8ff003f, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, RB, UIMM6_20 }, { C_NPS_ZNCV }},
    378      1.1  christos 
    379      1.1  christos /* zncv<.rd|.wr> 0,b,limm   00111bbb001101010BBB111110111110 */
    380      1.1  christos { "zncv", 0x38350fbe, 0xf8ff0fff, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, RB, LIMM }, { C_NPS_ZNCV }},
    381      1.1  christos 
    382      1.1  christos /* zncv<.rd|.wr> 0,limm,c   00111110001101010111CCCCCC111110 */
    383      1.1  christos { "zncv", 0x3e35703e, 0xffff703f, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, LIMM, RC }, { C_NPS_ZNCV }},
    384      1.1  christos 
    385      1.1  christos /* zncv<.rd|.wr> 0,limm,u6   00111110011101010111uuuuuu111110 */
    386  1.1.1.2  christos { "zncv", 0x3e75703e, 0xffff703f, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, LIMM, UIMM6_20 }, { C_NPS_ZNCV }},
    387      1.1  christos 
    388      1.1  christos /* zncv<.rd|.wr> 0,limm,s12   00111110101101010111ssssssSSSSSS */
    389      1.1  christos { "zncv", 0x3eb57000, 0xffff7000, ARC_OPCODE_ARC700, ARITH, NPS400, { ZA, LIMM, SIMM12_20 }, { C_NPS_ZNCV }},
    390      1.1  christos 
    391      1.1  christos /* hofs a,b,c */
    392      1.1  christos { "hofs", 0x38360000, 0xf8ff0000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, RB, RC }, { C_F }},
    393      1.1  christos 
    394      1.1  christos /* hofs a,b,min_hofs,psbc */
    395      1.1  christos { "hofs", 0x38760000, 0xf8ff0000, ARC_OPCODE_ARC700, ARITH, NPS400, { RA, RB, NPS_MIN_HOFS, NPS_PSBC }, { C_F }},
    396      1.1  christos 
    397      1.1  christos /* Protocol Decoder Instructions.  */
    398      1.1  christos 
    399      1.1  christos /* dctcp b,c  00111bbb001011110bbbcccccc000000 */
    400      1.1  christos { "dctcp", 0x382f0000, 0xf8ff803f, ARC_OPCODE_ARC700, NET, NPS400, { RB, RC }, { 0 }},
    401      1.1  christos 
    402      1.1  christos /* dcip a,b,c  00111bbb001011110bbbccccccaaaaaa */
    403      1.1  christos { "dcip", 0x38290000, 0xf8ff8000, ARC_OPCODE_ARC700, NET, NPS400, { RA, RB, RC }, { 0 }},
    404      1.1  christos 
    405      1.1  christos /* dcet b,c  00111bbb001011110bbbcccccc000010 */
    406      1.1  christos { "dcet", 0x382f0002, 0xf8ff803f, ARC_OPCODE_ARC700, NET, NPS400, { RB, RC }, { 0 }},
    407      1.1  christos 
    408      1.1  christos /* dcet a,b,c  00111bbb001000000bbbccccccaaaaaa */
    409      1.1  christos { "dcet", 0x38200000, 0xf8ff8000, ARC_OPCODE_ARC700, NET, NPS400, { RA, RB, RC }, { 0 }},
    410      1.1  christos 
    411      1.1  christos /* ACL Instructions.  */
    412      1.1  christos 
    413      1.1  christos /* dcacl<.f> a,b,c  00111bbb001001010bbbccccccaaaaaa */
    414      1.1  christos { "dcacl", 0x38250000, 0xf8ff0000, ARC_OPCODE_ARC700, ACL, NPS400, { RA, RB, RC }, { C_F }},
    415      1.1  christos 
    416      1.1  christos /* DPI Instructions.  */
    417      1.1  christos 
    418      1.1  christos /* hash dst,src1,src2,width,perm,nonlinear,basemat */
    419      1.1  christos { "hash", 0x58180000, 0xf81f0000, ARC_OPCODE_ARC700, DPI, NPS400, { NPS_DPI_DST, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_HASH_WIDTH, NPS_HASH_PERM, NPS_HASH_NONLINEAR, NPS_HASH_BASEMAT }, { 0 }},
    420      1.1  christos 
    421      1.1  christos /* hash.pN dst,src1,src2,width,len,ofs,basemat */
    422      1.1  christos 
    423      1.1  christos #define HASH_P(FUNC, SUBOP2)                                            \
    424      1.1  christos   { "hash", (0x58100000 | (SUBOP2 << 16)), 0xf81f0000, ARC_OPCODE_ARC700, DPI, NPS400, { NPS_DPI_DST, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_HASH_WIDTH, NPS_HASH_LEN, NPS_HASH_OFS, NPS_HASH_BASEMAT2 }, { C_NPS_P##FUNC }},
    425      1.1  christos 
    426      1.1  christos HASH_P(0, 0x9)
    427      1.1  christos HASH_P(1, 0xA)
    428      1.1  christos HASH_P(2, 0xB)
    429      1.1  christos HASH_P(3, 0xC)
    430      1.1  christos 
    431      1.1  christos /* tr<.f> a,b,c   00111bbb00100001FBBBCCCCCCAAAAAA */
    432      1.1  christos { "tr", 0x38210000, 0xf8ff0000, ARC_OPCODE_ARC700, DPI, NPS400, { RA, RB, RC }, { C_F }},
    433      1.1  christos 
    434      1.1  christos /* tr<.f> a,limm,c   0011111000100001F111CCCCCCAAAAAA */
    435      1.1  christos { "tr", 0x3e217000, 0xffff7000, ARC_OPCODE_ARC700, DPI, NPS400, { RA, LIMM, RC }, { C_F }},
    436      1.1  christos 
    437      1.1  christos /* tr<.f> a,b,u6   00111bbb01100001FBBBuuuuuuAAAAAA */
    438      1.1  christos { "tr", 0x38610000, 0xf8ff0000, ARC_OPCODE_ARC700, DPI, NPS400, { RA, RB, UIMM6_20 }, { C_F }},
    439      1.1  christos 
    440      1.1  christos /* tr<.f> 0,b,c   00111bbb00100001FBBBCCCCCC111110 */
    441      1.1  christos { "tr", 0x3821003e, 0xf8ff003f, ARC_OPCODE_ARC700, DPI, NPS400, { ZA, RB, RC }, { C_F }},
    442      1.1  christos 
    443      1.1  christos /* tr<.f> 0,limm,c   0011111000100001F111CCCCCC111110 */
    444      1.1  christos { "tr", 0x3e21703e, 0xffff703f, ARC_OPCODE_ARC700, DPI, NPS400, { ZA, LIMM, RC }, { C_F }},
    445      1.1  christos 
    446      1.1  christos /* tr<.f> 0,b,u6   00111bbb01100001FBBBuuuuuu111110 */
    447      1.1  christos { "tr", 0x3861003e, 0xf8ff003f, ARC_OPCODE_ARC700, DPI, NPS400, { ZA, RB, UIMM6_20 }, { C_F }},
    448      1.1  christos 
    449      1.1  christos /* tr<.f> 0,b,limm   00111bbb00100001FBBB111110111110 */
    450      1.1  christos { "tr", 0x38210fbe, 0xf8ff0fff, ARC_OPCODE_ARC700, DPI, NPS400, { ZA, RB, LIMM }, { C_F }},
    451      1.1  christos 
    452      1.1  christos /* tr<.f> a,b,limm   00111bbb00100001FBBB111110AAAAAA */
    453      1.1  christos { "tr", 0x38210f80, 0xf8ff0fc0, ARC_OPCODE_ARC700, DPI, NPS400, { RA, RB, LIMM }, { C_F }},
    454      1.1  christos 
    455      1.1  christos /* tr<.f> a,limm,limm   0011111000100001F111111110AAAAAA */
    456      1.1  christos { "tr", 0x3e217f80, 0xffff7fc0, ARC_OPCODE_ARC700, DPI, NPS400, { RA, LIMM, LIMMdup }, { C_F }},
    457      1.1  christos 
    458      1.1  christos /* tr<.f> a,limm,u6   0011111001100001F111uuuuuuAAAAAA */
    459      1.1  christos { "tr", 0x3e617000, 0xffff7000, ARC_OPCODE_ARC700, DPI, NPS400, { RA, LIMM, UIMM6_20 }, { C_F }},
    460      1.1  christos 
    461      1.1  christos /* tr<.f> 0,limm,u6   0011111001100001F111uuuuuu111110 */
    462      1.1  christos { "tr", 0x3e61703e, 0xffff703f, ARC_OPCODE_ARC700, DPI, NPS400, { ZA, LIMM, UIMM6_20 }, { C_F }},
    463      1.1  christos 
    464      1.1  christos /* utf8 a,b,c       00111bbb00100011FBBBCCCCCCAAAAAA */
    465      1.1  christos { "utf8", 0x38220000, 0xf8ff0000, ARC_OPCODE_ARC700, DPI, NPS400, { RA, RB, RC }, { C_F }},
    466      1.1  christos 
    467      1.1  christos /* utf8 a,limm,c    0011111000100011F111CCCCCCAAAAAA */
    468      1.1  christos { "utf8", 0x3e227000, 0xffff7000, ARC_OPCODE_ARC700, DPI, NPS400, { RA, LIMM, RC }, { C_F }},
    469      1.1  christos 
    470      1.1  christos /* utf8 a,b,u6      00111bbb01100011FBBBuuuuuuAAAAAA */
    471      1.1  christos { "utf8", 0x38620000, 0xf8ff0000, ARC_OPCODE_ARC700, DPI, NPS400, { RA, RB, UIMM6_20 }, { C_F }},
    472      1.1  christos 
    473      1.1  christos /* utf8 0,b,c       00111bbb00100011FBBBCCCCCC111110 */
    474      1.1  christos { "utf8", 0x3822003e, 0xf8ff003f, ARC_OPCODE_ARC700, DPI, NPS400, { ZA, RB, RC }, { C_F }},
    475      1.1  christos 
    476      1.1  christos /* utf8 0,limm,c    0011111000100011F111CCCCCC111110 */
    477      1.1  christos { "utf8", 0x3e22703e, 0xffff703f, ARC_OPCODE_ARC700, DPI, NPS400, { ZA, LIMM, RC }, { C_F }},
    478      1.1  christos 
    479      1.1  christos /* utf8 0,b,u6      00111bbb01100011FBBBuuuuuu111110 */
    480      1.1  christos { "utf8", 0x3862003e, 0xf8ff003f, ARC_OPCODE_ARC700, DPI, NPS400, { ZA, RB, UIMM6_20 }, { C_F }},
    481      1.1  christos 
    482      1.1  christos /* utf8 0,b,limm    00111bbb00100011FBBB111110111110 */
    483      1.1  christos { "utf8", 0x38220fbe, 0xf8ff0fff, ARC_OPCODE_ARC700, DPI, NPS400, { ZA, RB, LIMM }, { C_F }},
    484      1.1  christos 
    485      1.1  christos /* utf8 a,b,limm    00111bbb00100011FBBB111110AAAAAA */
    486      1.1  christos { "utf8", 0x38220f80, 0xf8ff0fc0, ARC_OPCODE_ARC700, DPI, NPS400, { RA, RB, LIMM }, { C_F }},
    487      1.1  christos 
    488      1.1  christos /* utf8 a,limm,limm 0011111000100011F111111110AAAAAA */
    489      1.1  christos { "utf8", 0x3e227f80, 0xffff7fc0, ARC_OPCODE_ARC700, DPI, NPS400, { RA, LIMM, LIMMdup }, { C_F }},
    490      1.1  christos 
    491      1.1  christos /* utf8 a,limm,u6   0011111001100011F111uuuuuuAAAAAA */
    492      1.1  christos { "utf8", 0x3e627000, 0xffff7000, ARC_OPCODE_ARC700, DPI, NPS400, { RA, LIMM, UIMM6_20 }, { C_F }},
    493      1.1  christos 
    494      1.1  christos /* utf8 0,limm,u6   0011111001100011F111uuuuuu111110 */
    495      1.1  christos { "utf8", 0x3e62703e, 0xffff703f, ARC_OPCODE_ARC700, DPI, NPS400, { ZA, LIMM, UIMM6_20 }, { C_F }},
    496      1.1  christos 
    497      1.1  christos /* e4by dst,src1,src2,index0,index1,index2,index3 */
    498      1.1  christos { "e4by", 0x581d0000, 0xf81f0000, ARC_OPCODE_ARC700, DPI, NPS400, { NPS_DPI_DST, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_E4BY_INDEX0, NPS_E4BY_INDEX1, NPS_E4BY_INDEX2, NPS_E4BY_INDEX3 }, { 0 }},
    499      1.1  christos 
    500      1.1  christos /* addf<.f> a,b,c       00111bbb00100011FBBBCCCCCCAAAAAA */
    501      1.1  christos { "addf", 0x38230000, 0xf8ff0000, ARC_OPCODE_ARC700, DPI, NPS400, { RA, RB, RC }, { C_F }},
    502      1.1  christos 
    503      1.1  christos /* addf<.f> a,limm,c    0011111000100011F111CCCCCCAAAAAA */
    504      1.1  christos { "addf", 0x3e237000, 0xffff7000, ARC_OPCODE_ARC700, DPI, NPS400, { RA, LIMM, RC }, { C_F }},
    505      1.1  christos 
    506      1.1  christos /* addf<.f> a,b,u6      00111bbb01100011FBBBuuuuuuAAAAAA */
    507      1.1  christos { "addf", 0x38630000, 0xf8ff0000, ARC_OPCODE_ARC700, DPI, NPS400, { RA, RB, UIMM6_20 }, { C_F }},
    508      1.1  christos 
    509      1.1  christos /* addf<.f> 0,b,c       00111bbb00100011FBBBCCCCCC111110 */
    510      1.1  christos { "addf", 0x3823003e, 0xf8ff003f, ARC_OPCODE_ARC700, DPI, NPS400, { ZA, RB, RC }, { C_F }},
    511      1.1  christos 
    512      1.1  christos /* addf<.f> 0,limm,c    0011111000100011F111CCCCCC111110 */
    513      1.1  christos { "addf", 0x3e23703e, 0xffff703f, ARC_OPCODE_ARC700, DPI, NPS400, { ZA, LIMM, RC }, { C_F }},
    514      1.1  christos 
    515      1.1  christos /* addf<.f> 0,b,u6      00111bbb01100011FBBBuuuuuu111110 */
    516      1.1  christos { "addf", 0x3863003e, 0xf8ff003f, ARC_OPCODE_ARC700, DPI, NPS400, { ZA, RB, UIMM6_20 }, { C_F }},
    517      1.1  christos 
    518      1.1  christos /* addf<.f> 0,b,limm    00111bbb00100011FBBB111110111110 */
    519      1.1  christos { "addf", 0x38230fbe, 0xf8ff0fff, ARC_OPCODE_ARC700, DPI, NPS400, { ZA, RB, LIMM }, { C_F }},
    520      1.1  christos 
    521      1.1  christos /* addf<.f> a,b,limm    00111bbb00100011FBBB111110AAAAAA */
    522      1.1  christos { "addf", 0x38230f80, 0xf8ff0fc0, ARC_OPCODE_ARC700, DPI, NPS400, { RA, RB, LIMM }, { C_F }},
    523      1.1  christos 
    524      1.1  christos /* addf<.f> a,limm,limm 0011111000100011F111111110AAAAAA */
    525      1.1  christos { "addf", 0x3e237f80, 0xffff7fc0, ARC_OPCODE_ARC700, DPI, NPS400, { RA, LIMM, LIMMdup }, { C_F }},
    526      1.1  christos 
    527      1.1  christos /* addf<.f> a,limm,u6   0011111001100011F111uuuuuuAAAAAA */
    528      1.1  christos { "addf", 0x3e637000, 0xffff7000, ARC_OPCODE_ARC700, DPI, NPS400, { RA, LIMM, UIMM6_20 }, { C_F }},
    529      1.1  christos 
    530      1.1  christos /* addf<.f> 0,limm,u6   0011111001100011F111uuuuuu111110 */
    531      1.1  christos { "addf", 0x3e63703e, 0xffff703f, ARC_OPCODE_ARC700, DPI, NPS400, { ZA, LIMM, UIMM6_20 }, { C_F }},
    532      1.1  christos 
    533      1.1  christos /* ldbit<.x2|.x4>.di<.cl> a,[b]       00010bbb00000000SBBB10011XAAAAAA */
    534      1.1  christos { "ldbit", 0x10000980, 0xf8ff8980, ARC_OPCODE_ARC700, DPI, NPS400, { RA, BRAKET, RB, BRAKETdup }, { C_NPS_LDBIT_X_1, C_NPS_LDBIT_DI, C_NPS_LDBIT_CL1 }},
    535      1.1  christos 
    536      1.1  christos /* ldbit<.x2|.x4>.di<.cl> a,[b,s9]    00010bbbssssssssSBBB10011XAAAAAA */
    537      1.1  christos { "ldbit", 0x10000980, 0xf8000980, ARC_OPCODE_ARC700, DPI, NPS400, { RA, BRAKET, RB, SIMM9_8, BRAKETdup }, { C_NPS_LDBIT_X_1, C_NPS_LDBIT_DI, C_NPS_LDBIT_CL1 }},
    538      1.1  christos 
    539      1.1  christos /* ldbit<.x2|.x4>.di<.cl> a,[limm]    0001011000000000011110011XAAAAAA */
    540      1.1  christos { "ldbit", 0x16007980, 0xfffff980, ARC_OPCODE_ARC700, DPI, NPS400, { RA, BRAKET, LIMM, BRAKETdup }, { C_NPS_LDBIT_X_1, C_NPS_LDBIT_DI, C_NPS_LDBIT_CL1 }},
    541      1.1  christos 
    542      1.1  christos /* ldbit<.x2|.x4>.di<.cl> a,[limm,s9] 00010110ssssssssS11110011XAAAAAA */
    543      1.1  christos { "ldbit", 0x16007980, 0xff007980, ARC_OPCODE_ARC700, DPI, NPS400, { RA, BRAKET, LIMM, SIMM9_8, BRAKETdup }, { C_NPS_LDBIT_X_1, C_NPS_LDBIT_DI, C_NPS_LDBIT_CL1 }},
    544      1.1  christos 
    545      1.1  christos /* ldbit<.x2|.x4>.di<.cl> a,[b,c]     00100bbb0011011X1BBBCCCCCCAAAAAA */
    546      1.1  christos { "ldbit", 0x20368000, 0xf83e8000, ARC_OPCODE_ARC700, DPI, NPS400, { RA, BRAKET, RB, RC, BRAKETdup }, { C_NPS_LDBIT_X_2, C_NPS_LDBIT_DI, C_NPS_LDBIT_CL2 }},
    547      1.1  christos 
    548      1.1  christos /* ldbit<.x2|.x4>.di<.cl> a,[b,limm]  00100bbb0011011X1BBB111110AAAAAA */
    549      1.1  christos { "ldbit", 0x20368f80, 0xf83e8fc0, ARC_OPCODE_ARC700, DPI, NPS400, { RA, BRAKET, RB, LIMM, BRAKETdup }, { C_NPS_LDBIT_X_2, C_NPS_LDBIT_DI, C_NPS_LDBIT_CL2 }},
    550      1.1  christos 
    551      1.1  christos /* ldbit<.x2|.x4>.di<.cl> a,[limm,c]  001001100011011X1111CCCCCCAAAAAA */
    552      1.1  christos { "ldbit", 0x2636f000, 0xff3ef000, ARC_OPCODE_ARC700, DPI, NPS400, { RA, BRAKET, LIMM, RC, BRAKETdup }, { C_NPS_LDBIT_X_2, C_NPS_LDBIT_DI, C_NPS_LDBIT_CL2 }},
    553      1.1  christos 
    554      1.1  christos /* Pipeline Control Instructions.  */
    555      1.1  christos 
    556      1.1  christos /* schd<.rw|.rd> */
    557      1.1  christos { "schd", 0x3e6f7004, 0xffffff7f, ARC_OPCODE_ARC700, CONTROL, NPS400, { 0 }, { C_NPS_SCHD_RW }},
    558      1.1  christos 
    559      1.1  christos /* schd.wft.<.ie1|.ie2|.ie12> */
    560      1.1  christos { "schd", 0x3e6f7044, 0xfffffcff, ARC_OPCODE_ARC700, CONTROL, NPS400, { 0 }, { C_NPS_SCHD_TRIG, C_NPS_SCHD_IE }},
    561      1.1  christos 
    562      1.1  christos /* sync<.rd|.wr> */
    563      1.1  christos { "sync", 0x3e6f703f, 0xffffffbf, ARC_OPCODE_ARC700, CONTROL, NPS400, { 0 }, { C_NPS_SYNC }},
    564      1.1  christos 
    565      1.1  christos /* hwscd.off B */
    566      1.1  christos { "hwschd", 0x386f00bf, 0xf8ff8fff, ARC_OPCODE_ARC700, CONTROL, NPS400, { RB }, { C_NPS_HWS_OFF }},
    567      1.1  christos 
    568      1.1  christos /* hwscd.restore 0,C */
    569      1.1  christos { "hwschd", 0x3e6f7003, 0xfffff03f, ARC_OPCODE_ARC700, CONTROL, NPS400, { ZA, RC }, { C_NPS_HWS_RESTORE }},
    570      1.1  christos 
    571      1.1  christos /* Load / Store From (0x57f00000 + Offset) Instructions.  */
    572      1.1  christos 
    573      1.1  christos #define XLDST_LIKE(NAME,SUBOP2)                                          \
    574      1.1  christos   { NAME, (0x58000000 | (SUBOP2 << 16)), 0xf81f0000, ARC_OPCODE_ARC700, MEMORY, NPS400, { NPS_R_DST, BRAKET, NPS_XLDST_UIMM16, BRAKETdup }, { 0 }},
    575      1.1  christos 
    576      1.1  christos XLDST_LIKE("xldb", 0x8)
    577      1.1  christos XLDST_LIKE("xldw", 0x9)
    578      1.1  christos XLDST_LIKE("xld", 0xa)
    579      1.1  christos XLDST_LIKE("xstb", 0xc)
    580      1.1  christos XLDST_LIKE("xstw", 0xd)
    581      1.1  christos XLDST_LIKE("xst", 0xe)
    582      1.1  christos 
    583      1.1  christos /* BMU Instructions.  */
    584      1.1  christos 
    585      1.1  christos /* sbdalc dst, src1, type */
    586      1.1  christos { "sbdalc", 0x38500040, 0xf8ff09c0, ARC_OPCODE_ARC700, BMU, NPS400, { RA, RB, NPS_BD_TYPE }, { 0 }},
    587      1.1  christos 
    588      1.1  christos /* bdalc dst, [cm:src1], src1, src2 */
    589      1.1  christos { "bdalc", 0x38100000, 0xf8ff0000, ARC_OPCODE_ARC700, BMU, NPS400, { RA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup,  RC }, { 0 }},
    590      1.1  christos 
    591      1.1  christos /* bdalc dst, [cm:src1], src1, type, num_buff */
    592      1.1  christos { "bdalc", 0x38500800, 0xf8ff0800, ARC_OPCODE_ARC700, BMU, NPS400, { RA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, NPS_BD_TYPE, NPS_BMU_NUM }, { 0 }},
    593      1.1  christos 
    594      1.1  christos /* sbdfre 0, src1, src2 */
    595      1.1  christos { "sbdfre", 0x3817003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, RB, RC }, { 0 }},
    596      1.1  christos 
    597      1.1  christos /* bdfre 0, [cm:src1], src1, src2 */
    598      1.1  christos { "bdfre", 0x3811003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, RC }, { 0 }},
    599      1.1  christos 
    600      1.1  christos /* bdfre 0, [cm:src1], src1, type, num_buff */
    601      1.1  christos { "bdfre", 0x3851083e, 0xf8ff083f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, NPS_BD_TYPE, NPS_BMU_NUM }, { 0 }},
    602      1.1  christos 
    603      1.1  christos /* bdfre 0, [cm:src1], src1, num_buff */
    604      1.1  christos { "bdfre", 0x3851003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, NPS_BMU_NUM }, { 0 }},
    605      1.1  christos 
    606      1.1  christos /* bdbgt 0, src1, src2 */
    607      1.1  christos { "bdbgt", 0x3818003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, RB, RC }, { 0 }},
    608      1.1  christos 
    609      1.1  christos /* sidxalc dst, src1 */
    610      1.1  christos { "sidxalc", 0x385c0040, 0xf8ff0040, ARC_OPCODE_ARC700, BMU, NPS400, { RA, RB }, { 0 }},
    611      1.1  christos 
    612      1.1  christos /* idxalc dst, [cm:src1], src1, src2 */
    613      1.1  christos { "idxalc", 0x381c0000, 0xf8ff0000, ARC_OPCODE_ARC700, BMU, NPS400, { RA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, RC }, { 0 }},
    614      1.1  christos 
    615      1.1  christos /* idxalc dst, [cm:src1], src1, num_idx */
    616      1.1  christos { "idxalc", 0x385c0800, 0xf8ff0800, ARC_OPCODE_ARC700, BMU, NPS400, { RA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, NPS_BMU_NUM }, { 0 }},
    617      1.1  christos 
    618      1.1  christos /* sidxfre 0, src1, src2 */
    619      1.1  christos { "sidxfre", 0x381d003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, RB, RC }, { 0 }},
    620      1.1  christos 
    621      1.1  christos /* idxfre 0, [cm:src1], src1, src2 */
    622      1.1  christos { "idxfre", 0x381e003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, RC }, { 0 }},
    623      1.1  christos 
    624      1.1  christos /* idxfre 0, [cm:src1], src1, num_buff */
    625      1.1  christos { "idxfre", 0x385e003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, NPS_BMU_NUM }, { 0 }},
    626      1.1  christos 
    627      1.1  christos /* idxbgt 0, src1, src2 */
    628      1.1  christos { "idxbgt", 0x3819003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, RB, RC }, { 0 }},
    629      1.1  christos 
    630      1.1  christos /* efabgt 0, limm, src2 */
    631      1.1  christos { "efabgt", 0x3e0d703e, 0xfffff03f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, LIMM, RC }, { 0 }},
    632      1.1  christos 
    633      1.1  christos /* efabgt 0, src1, limm */
    634  1.1.1.2  christos { "efabgt", 0x380d0fbe, 0xf8ff8fff, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, RB, LIMM }, { 0 }},
    635      1.1  christos 
    636      1.1  christos /* efabgt 0, src1, src2 */
    637      1.1  christos { "efabgt", 0x380d003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, RB, RC }, { 0 }},
    638      1.1  christos 
    639      1.1  christos /* efabgt dst, limm, src2 */
    640      1.1  christos { "efabgt", 0x3e0d7000, 0xfffff000, ARC_OPCODE_ARC700, BMU, NPS400, { RA, LIMM, RC }, { 0 }},
    641      1.1  christos 
    642      1.1  christos /* efabgt dst, src1, limm */
    643      1.1  christos { "efabgt", 0x380d0f80, 0xf8ff0fc0, ARC_OPCODE_ARC700, BMU, NPS400, { RA, RB, LIMM }, { 0 }},
    644      1.1  christos 
    645      1.1  christos /* efabgt dst, src1, src2 */
    646      1.1  christos { "efabgt", 0x380d0000, 0xf8ff8000, ARC_OPCODE_ARC700, BMU, NPS400, { RA, RB, RC }, { 0 }},
    647      1.1  christos 
    648      1.1  christos /* PMU Instructions. */
    649      1.1  christos 
    650      1.1  christos /* jobget<.cl> 0, [cjid:src1] */
    651      1.1  christos { "jobget", 0x3e2f7020, 0xfffff03f, ARC_OPCODE_ARC700, PMU, NPS400, { ZA, BRAKET, NPS_CJID, COLON, RC, BRAKET }, { 0 }},
    652      1.1  christos 
    653      1.1  christos { "jobget", 0x3e2f7021, 0xfffff03f, ARC_OPCODE_ARC700, PMU, NPS400, { ZA, BRAKET, NPS_CJID, COLON, RC, BRAKET }, { C_NPS_CL }},
    654      1.1  christos 
    655      1.1  christos /* jobdn 0, [cjid:src1], src1, src2 */
    656      1.1  christos { "jobdn", 0x3812003e, 0xf8ff803f, ARC_OPCODE_ARC700, PMU, NPS400, { ZA, BRAKET, NPS_CJID, COLON, RB, BRAKETdup, RBdup, RC }, { 0 }},
    657      1.1  christos 
    658      1.1  christos /* jobdn 0, [cjid:src1], src1, nxt_dst */
    659      1.1  christos { "jobdn", 0x3852003e, 0xf8ff803f, ARC_OPCODE_ARC700, PMU, NPS400, { ZA, BRAKET, NPS_CJID, COLON, RB, BRAKETdup, RBdup, NPS_PMU_NXT_DST }, { 0 }},
    660      1.1  christos 
    661      1.1  christos /* sjobalc dst, src1 */
    662      1.1  christos { "sjobalc", 0x385f0040, 0xf8ff8fc0, ARC_OPCODE_ARC700, PMU, NPS400, { RA, RB }, { 0 }},
    663      1.1  christos 
    664      1.1  christos /* jobalc dst, [cm:src1], src1, num_job */
    665      1.1  christos { "jobalc", 0x385f0800, 0xf8ff8800, ARC_OPCODE_ARC700, PMU, NPS400, { RA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, NPS_PMU_NUM_JOB }, { 0 }},
    666      1.1  christos 
    667      1.1  christos /* jobalc dst, [cm:src1], src1, src2 */
    668      1.1  christos { "jobalc", 0x381f0000, 0xf8ff8000, ARC_OPCODE_ARC700, PMU, NPS400, { RA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, RC }, { 0 }},
    669      1.1  christos 
    670      1.1  christos /* jobbgt dst, src1, src2 */
    671      1.1  christos { "jobbgt", 0x381a0000, 0xf8ff0000, ARC_OPCODE_ARC700, PMU, NPS400, { RA, RB, RC }, { 0 }},
    672      1.1  christos 
    673      1.1  christos /* cnljob 0 */
    674      1.1  christos { "cnljob", 0x3e6f70ff, 0xffffffff, ARC_OPCODE_ARC700, PMU, NPS400, { ZA }, { 0 }},
    675      1.1  christos 
    676      1.1  christos /* qseq dst, [src1] */
    677      1.1  christos { "qseq", 0x386f0028, 0xf8ff803f, ARC_OPCODE_ARC700, PMU, NPS400, { RB, BRAKET, RC, BRAKETdup }, { 0 }},
    678  1.1.1.2  christos 
    679  1.1.1.2  christos /* Protocol Decode Instructions.  */
    680  1.1.1.2  christos 
    681  1.1.1.2  christos /* dcmac  0,[cm:b],[cm:b],c */
    682  1.1.1.2  christos { "dcmac", 0x57c007c024000000, 0xffe007ffffffffff, ARC_OPCODE_ARC700, PROTOCOL_DECODE, NPS400, { ZA, BRAKET, NPS_CM, COLON, NPS_RB_64, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_RBdup_64, BRAKETdup, NPS_RC_64 }, { 0 }},
    683  1.1.1.2  christos 
    684  1.1.1.2  christos /* dcmac  0,[cm:b],[cm:A],c */
    685  1.1.1.2  christos { "dcmac", 0x57c007c026000000, 0xffe007ffffff0000, ARC_OPCODE_ARC700, PROTOCOL_DECODE, NPS400, { ZA, BRAKET, NPS_CM, COLON, NPS_RB_64, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_UIMM16_0_64, BRAKETdup, NPS_RC_64 }, { 0 }},
    686  1.1.1.2  christos 
    687  1.1.1.2  christos /* dcmac  0,[cm:A],[cm:b],c */
    688  1.1.1.2  christos { "dcmac", 0x57c007c027000000, 0xffe007ffffff0000, ARC_OPCODE_ARC700, PROTOCOL_DECODE, NPS400, { ZA, BRAKET, NPS_CM, COLON, NPS_UIMM16_0_64, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_RB_64, BRAKETdup, NPS_RC_64 }, { 0 }},
    689  1.1.1.2  christos 
    690  1.1.1.2  christos /* dcmac  a,[cm:b],[cm:b],c */
    691  1.1.1.2  christos { "dcmac", 0x500007c024000000, 0xf80007ffffffffff, ARC_OPCODE_ARC700, PROTOCOL_DECODE, NPS400, { NPS_RA_64, BRAKET, NPS_CM, COLON, NPS_RB_64, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_RBdup_64, BRAKETdup, NPS_RC_64 }, { 0 }},
    692  1.1.1.2  christos 
    693  1.1.1.2  christos /* dcmac  a,[cm:b],[cm:A],c */
    694  1.1.1.2  christos { "dcmac", 0x500007c026000000, 0xf80007ffffff0000, ARC_OPCODE_ARC700, PROTOCOL_DECODE, NPS400, { NPS_RA_64, BRAKET, NPS_CM, COLON, NPS_RB_64, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_UIMM16_0_64, BRAKETdup, NPS_RC_64 }, { 0 }},
    695  1.1.1.2  christos 
    696  1.1.1.2  christos /* dcmac  a,[cm:A],[cm:b],c */
    697  1.1.1.2  christos { "dcmac", 0x500007c027000000, 0xf80007ffffff0000, ARC_OPCODE_ARC700, PROTOCOL_DECODE, NPS400, { NPS_RA_64, BRAKET, NPS_CM, COLON, NPS_UIMM16_0_64, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_RB_64, BRAKETdup, NPS_RC_64 }, { 0 }},
    698  1.1.1.2  christos 
    699  1.1.1.2  christos /* dcmac  0,[cm:b],[cm:b],size */
    700  1.1.1.2  christos { "dcmac", 0x57c007c020000000, 0xffe007ffffc0ffff, ARC_OPCODE_ARC700, PROTOCOL_DECODE, NPS400, { ZA, BRAKET, NPS_CM, COLON, NPS_RBdouble_64, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_RBdup_64, BRAKETdup, NPS_PROTO_SIZE }, { 0 }},
    701  1.1.1.2  christos 
    702  1.1.1.2  christos /* dcmac  0,[cm:b],[cm:A],size */
    703  1.1.1.2  christos { "dcmac", 0x57c007c022000000, 0xffe007ffffc00000, ARC_OPCODE_ARC700, PROTOCOL_DECODE, NPS400, { ZA, BRAKET, NPS_CM, COLON, NPS_RBdouble_64, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_UIMM16_0_64, BRAKETdup, NPS_PROTO_SIZE }, { 0 }},
    704  1.1.1.2  christos 
    705  1.1.1.2  christos /* dcmac  0,[cm:A],[cm:b],size */
    706  1.1.1.2  christos { "dcmac", 0x57c007c023000000, 0xffe007ffffc00000, ARC_OPCODE_ARC700, PROTOCOL_DECODE, NPS400, { ZA, BRAKET, NPS_CM, COLON, NPS_UIMM16_0_64, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_RBdouble_64, BRAKETdup, NPS_PROTO_SIZE }, { 0 }},
    707  1.1.1.2  christos 
    708  1.1.1.2  christos /* dcmac  a,[cm:b],[cm:b],size */
    709  1.1.1.2  christos { "dcmac", 0x500007c020000000, 0xf80007ffffc0ffff, ARC_OPCODE_ARC700, PROTOCOL_DECODE, NPS400, { NPS_RA_64, BRAKET, NPS_CM, COLON, NPS_RBdouble_64, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_RBdup_64, BRAKETdup, NPS_PROTO_SIZE }, { 0 }},
    710  1.1.1.2  christos 
    711  1.1.1.2  christos /* dcmac  a,[cm:b],[cm:A],size */
    712  1.1.1.2  christos { "dcmac", 0x500007c022000000, 0xf80007ffffc00000, ARC_OPCODE_ARC700, PROTOCOL_DECODE, NPS400, { NPS_RA_64, BRAKET, NPS_CM, COLON, NPS_RBdouble_64, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_UIMM16_0_64, BRAKETdup, NPS_PROTO_SIZE }, { 0 }},
    713  1.1.1.2  christos 
    714  1.1.1.2  christos /* dcmac  a,[cm:A],[cm:b],size */
    715  1.1.1.2  christos { "dcmac", 0x500007c023000000, 0xf80007ffffc00000, ARC_OPCODE_ARC700, PROTOCOL_DECODE, NPS400, { NPS_RA_64, BRAKET, NPS_CM, COLON, NPS_UIMM16_0_64, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_RBdouble_64, BRAKETdup, NPS_PROTO_SIZE }, { 0 }},
    716  1.1.1.2  christos 
    717  1.1.1.2  christos /* Aligned Copy 16/32 Byte Instructions.  */
    718  1.1.1.2  christos 
    719  1.1.1.2  christos /* cp16<.na> dst, [cm:src2], [xa:src1] */
    720  1.1.1.2  christos { "cp16", 0x48074022, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XA, COLON, NPS_DPI_SRC1_3B, BRAKETdup }, { C_NPS_NA }},
    721  1.1.1.2  christos 
    722  1.1.1.2  christos /* cp32<.na> dst, [cm:src2], [xa:src1] */
    723  1.1.1.2  christos { "cp32", 0x48074122, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XA, COLON, NPS_DPI_SRC1_3B, BRAKETdup }, { C_NPS_NA }},
    724  1.1.1.2  christos 
    725  1.1.1.2  christos /* cp16<.na> [cm:src2], [xa:src1] */
    726  1.1.1.2  christos { "cp16", 0x4807c022, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XA, COLON, NPS_DPI_SRC1_3B, BRAKETdup }, { C_NPS_NA }},
    727  1.1.1.2  christos 
    728  1.1.1.2  christos /* cp32<.na> [cm:src2], [xa:src1] */
    729  1.1.1.2  christos { "cp32", 0x4807c122, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XA, COLON, NPS_DPI_SRC1_3B, BRAKETdup }, { C_NPS_NA }},
    730  1.1.1.2  christos 
    731  1.1.1.2  christos /* cp16<.na> dst, [cm:src2], [xa:src1,src2] */
    732  1.1.1.2  christos { "cp16", 0x48070022, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XA, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    733  1.1.1.2  christos 
    734  1.1.1.2  christos /* cp32<.na> dst, [cm:src2], [xa:src1,src2] */
    735  1.1.1.2  christos { "cp32", 0x48070122, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XA, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    736  1.1.1.2  christos 
    737  1.1.1.2  christos /* cp16<.na> [cm:src2], [xa:src1,src2] */
    738  1.1.1.2  christos { "cp16", 0x48078022, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XA, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    739  1.1.1.2  christos 
    740  1.1.1.2  christos /* cp32<.na> [cm:src2], [xa:src1,src2] */
    741  1.1.1.2  christos { "cp32", 0x48078122, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XA, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    742  1.1.1.2  christos 
    743  1.1.1.2  christos /* cp32 [cm:src2], [jid:src1] */
    744  1.1.1.2  christos { "cp32", 0x4807c142, 0xf80fffff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_JID, COLON, NPS_DPI_SRC1_3B, BRAKETdup }, { 0 }},
    745  1.1.1.2  christos 
    746  1.1.1.2  christos /* cp32 dst, [cm:src2], [jid:src1] */
    747  1.1.1.2  christos { "cp32", 0x48074142, 0xf80fffff, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_JID, COLON, NPS_DPI_SRC1_3B, BRAKETdup }, { 0 }},
    748  1.1.1.2  christos 
    749  1.1.1.2  christos /* cp16<.na> [cm:src2],[sd:src1,entry,off] */
    750  1.1.1.2  christos { "cp16", 0x4807c062, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, BRAKETdup }, { C_NPS_NA }},
    751  1.1.1.2  christos 
    752  1.1.1.2  christos /* cp32<.na> [cm:src2],[sd:src1,entry,off] */
    753  1.1.1.2  christos { "cp32", 0x4807c162, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, BRAKETdup }, { C_NPS_NA }},
    754  1.1.1.2  christos 
    755  1.1.1.2  christos /* cp16<.na> dst, [cm:src2],[sd:src1,entry,off] */
    756  1.1.1.2  christos { "cp16", 0x48074062, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, BRAKETdup }, { C_NPS_NA }},
    757  1.1.1.2  christos 
    758  1.1.1.2  christos /* cp32<.na> dst, [cm:src2],[sd:src1,entry,off] */
    759  1.1.1.2  christos { "cp32", 0x48074162, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, BRAKETdup }, { C_NPS_NA }},
    760  1.1.1.2  christos 
    761  1.1.1.2  christos /* cp16<.na> [cm:src2],[sd:src1,entry,off, src2] */
    762  1.1.1.2  christos { "cp16", 0x48078062, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    763  1.1.1.2  christos 
    764  1.1.1.2  christos /* cp32<.na> [cm:src2],[sd:src1,entry,off, src2] */
    765  1.1.1.2  christos { "cp32", 0x48078162, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    766  1.1.1.2  christos 
    767  1.1.1.2  christos /* cp16<.na> dst, [cm:src2],[sd:src1,entry,off,src2] */
    768  1.1.1.2  christos { "cp16", 0x48070062, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    769  1.1.1.2  christos 
    770  1.1.1.2  christos /* cp32<.na> dst, [cm:src2],[sd:src1,entry,off,src2] */
    771  1.1.1.2  christos { "cp32", 0x48070162, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    772  1.1.1.2  christos 
    773  1.1.1.2  christos /* cp16<.na> [cm:src2],[sd:src1,src2, src2] */
    774  1.1.1.2  christos { "cp16", 0x4807c060, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    775  1.1.1.2  christos 
    776  1.1.1.2  christos /* cp32<.na> [cm:src2],[sd:src1,src2, src2] */
    777  1.1.1.2  christos { "cp32", 0x4807c160, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    778  1.1.1.2  christos 
    779  1.1.1.2  christos /* cp16<.na> dst, [cm:src2],[sd:src1,src2,src2] */
    780  1.1.1.2  christos { "cp16", 0x48074060, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    781  1.1.1.2  christos 
    782  1.1.1.2  christos /* cp32<.na> dst, [cm:src2],[sd:src1,src2,src2] */
    783  1.1.1.2  christos { "cp32", 0x48074160, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    784  1.1.1.2  christos 
    785  1.1.1.2  christos /* cp16<.na> [cm:src2],[sd:src1,src2,src2,src2] */
    786  1.1.1.2  christos { "cp16", 0x48078060, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    787  1.1.1.2  christos 
    788  1.1.1.2  christos /* cp32<.na> [cm:src2],[sd:src1,src2,src2,src2] */
    789  1.1.1.2  christos { "cp32", 0x48078160, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    790  1.1.1.2  christos 
    791  1.1.1.2  christos /* cp16<.na> dst, [cm:src2],[sd:src1,src2,src2,src2] */
    792  1.1.1.2  christos { "cp16", 0x48070060, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    793  1.1.1.2  christos 
    794  1.1.1.2  christos /* cp32<.na> dst, [cm:src2],[sd:src1,src2,src2,src2] */
    795  1.1.1.2  christos { "cp32", 0x48070160, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    796  1.1.1.2  christos 
    797  1.1.1.2  christos /* cp16<.na> [cm:src2],[xd:src1,entry,off] */
    798  1.1.1.2  christos { "cp16", 0x4807c082, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, BRAKETdup }, { C_NPS_NA }},
    799  1.1.1.2  christos 
    800  1.1.1.2  christos /* cp32<.na> [cm:src2],[xd:src1,entry,off] */
    801  1.1.1.2  christos { "cp32", 0x4807c182, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, BRAKETdup }, { C_NPS_NA }},
    802  1.1.1.2  christos 
    803  1.1.1.2  christos /* cp16<.na> dst, [cm:src2],[xd:src1,entry,off] */
    804  1.1.1.2  christos { "cp16", 0x48074082, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, BRAKETdup }, { C_NPS_NA }},
    805  1.1.1.2  christos 
    806  1.1.1.2  christos /* cp32<.na> dst, [cm:src2],[xd:src1,entry,off] */
    807  1.1.1.2  christos { "cp32", 0x48074182, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, BRAKETdup }, { C_NPS_NA }},
    808  1.1.1.2  christos 
    809  1.1.1.2  christos /* cp16<.na> [cm:src2],[xd:src1,entry,off, src2] */
    810  1.1.1.2  christos { "cp16", 0x48078082, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    811  1.1.1.2  christos 
    812  1.1.1.2  christos /* cp32<.na> [cm:src2],[xd:src1,entry,off, src2] */
    813  1.1.1.2  christos { "cp32", 0x48078182, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    814  1.1.1.2  christos 
    815  1.1.1.2  christos /* cp16<.na> dst, [cm:src2],[xd:src1,entry,off,src2] */
    816  1.1.1.2  christos { "cp16", 0x48070082, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    817  1.1.1.2  christos 
    818  1.1.1.2  christos /* cp32<.na> dst, [cm:src2],[xd:src1,entry,off,src2] */
    819  1.1.1.2  christos { "cp32", 0x48070182, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    820  1.1.1.2  christos 
    821  1.1.1.2  christos /* cp16<.na> [cm:src2],[xd:src1,src2, src2] */
    822  1.1.1.2  christos { "cp16", 0x4807c080, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    823  1.1.1.2  christos 
    824  1.1.1.2  christos /* cp32<.na> [cm:src2],[xd:src1,src2, src2] */
    825  1.1.1.2  christos { "cp32", 0x4807c180, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    826  1.1.1.2  christos 
    827  1.1.1.2  christos /* cp16<.na> dst, [cm:src2],[xd:src1,src2,src2] */
    828  1.1.1.2  christos { "cp16", 0x48074080, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    829  1.1.1.2  christos 
    830  1.1.1.2  christos /* cp32<.na> dst, [cm:src2],[xd:src1,src2,src2] */
    831  1.1.1.2  christos { "cp32", 0x48074180, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    832  1.1.1.2  christos 
    833  1.1.1.2  christos /* cp16<.na> [cm:src2],[xd:src1,src2,src2,src2] */
    834  1.1.1.2  christos { "cp16", 0x48078080, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    835  1.1.1.2  christos 
    836  1.1.1.2  christos /* cp32<.na> [cm:src2],[xd:src1,src2,src2,src2] */
    837  1.1.1.2  christos { "cp32", 0x48078180, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    838  1.1.1.2  christos 
    839  1.1.1.2  christos /* cp16<.na> dst, [cm:src2],[xd:src1,src2,src2,src2] */
    840  1.1.1.2  christos { "cp16", 0x48070080, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    841  1.1.1.2  christos 
    842  1.1.1.2  christos /* cp32<.na> dst, [cm:src2],[xd:src1,src2,src2,src2] */
    843  1.1.1.2  christos { "cp32", 0x48070180, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    844  1.1.1.2  christos 
    845  1.1.1.2  christos /* cp16<.na> [xa:src1], [cm:src2] */
    846  1.1.1.2  christos { "cp16", 0x4807c023, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_XA, COLON, NPS_DPI_SRC1_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    847  1.1.1.2  christos 
    848  1.1.1.2  christos /* cp32<.na> [xa:src1], [cm:src2] */
    849  1.1.1.2  christos { "cp32", 0x4807c123, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_XA, COLON, NPS_DPI_SRC1_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    850  1.1.1.2  christos 
    851  1.1.1.2  christos /* cp16<.na> [xa:src1,src2], [cm:src2] */
    852  1.1.1.2  christos { "cp16", 0x48078023, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_XA, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    853  1.1.1.2  christos 
    854  1.1.1.2  christos /* cp32<.na> [xa:src1,src2], [cm:src2] */
    855  1.1.1.2  christos { "cp32", 0x48078123, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_XA, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    856  1.1.1.2  christos 
    857  1.1.1.2  christos /* cp32 [jid:src1], [cm:src2] */
    858  1.1.1.2  christos { "cp32", 0x4807c143, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_JID, COLON, NPS_DPI_SRC1_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { 0 }},
    859  1.1.1.2  christos 
    860  1.1.1.2  christos /* cp16<.na> [sd:src1,entry,offset],[cm:src2] */
    861  1.1.1.2  christos { "cp16", 0x4807c063, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    862  1.1.1.2  christos 
    863  1.1.1.2  christos /* cp16<.na> [xd:src1,entry,offset], [cm:src2] */
    864  1.1.1.2  christos { "cp16", 0x4807c083, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    865  1.1.1.2  christos 
    866  1.1.1.2  christos /* cp32<.na> [sd:src1,entry,offset], [cm:src2] */
    867  1.1.1.2  christos { "cp32", 0x4807c163, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    868  1.1.1.2  christos 
    869  1.1.1.2  christos /* cp32<.na> [xd:src1,entry,offset], [cm:src2] */
    870  1.1.1.2  christos { "cp32", 0x4807c183, 0xf80fc1e3, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    871  1.1.1.2  christos 
    872  1.1.1.2  christos /* cp16<.na> [sd:src1,entry,offset,src2],[cm:src2] */
    873  1.1.1.2  christos { "cp16", 0x48078063, 0xf80f81e3, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    874  1.1.1.2  christos 
    875  1.1.1.2  christos /* cp16<.na> [xd:src1,entry,offset,src2],[cm:src2] */
    876  1.1.1.2  christos { "cp16", 0x48078083, 0xf80f81e3, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    877  1.1.1.2  christos 
    878  1.1.1.2  christos /* cp32<.na> [sd:src1,entry,offset,src2],[cm:src2] */
    879  1.1.1.2  christos { "cp32", 0x48078163, 0xf80f81e3, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    880  1.1.1.2  christos 
    881  1.1.1.2  christos /* cp32<.na> [xd:src1,entry,offset,src2],[cm:src2] */
    882  1.1.1.2  christos { "cp32", 0x48078183, 0xf80f81e3, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_DMA_IMM_ENTRY, NPS_DMA_IMM_OFFSET, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    883  1.1.1.2  christos 
    884  1.1.1.2  christos /* cp16<.na> [sd:src1,src2,src2], [cm:src2] */
    885  1.1.1.2  christos { "cp16", 0x4807c061, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    886  1.1.1.2  christos 
    887  1.1.1.2  christos /* cp16<.na> [xd:src1,src2,src2], [cm:src2] */
    888  1.1.1.2  christos { "cp16", 0x4807c081, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    889  1.1.1.2  christos 
    890  1.1.1.2  christos /* cp32<.na> [sd:src1,src2,src2], [cm:src2] */
    891  1.1.1.2  christos { "cp32", 0x4807c161, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    892  1.1.1.2  christos 
    893  1.1.1.2  christos /* cp32<.na> [xd:src1,src2,src2], [cm:src2] */
    894  1.1.1.2  christos { "cp32", 0x4807c181, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    895  1.1.1.2  christos 
    896  1.1.1.2  christos /* cp16<.na> [sd:src1,src2,src2,src2], [cm:src2] */
    897  1.1.1.2  christos { "cp16", 0x48078061, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    898  1.1.1.2  christos 
    899  1.1.1.2  christos /* cp16<.na> [xd:src1,src2,src2,src2], [cm:src2] */
    900  1.1.1.2  christos { "cp16", 0x48078081, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    901  1.1.1.2  christos 
    902  1.1.1.2  christos /* cp32<.na> [sd:src1,src2,src2,src2], [cm:src2] */
    903  1.1.1.2  christos { "cp32", 0x48078161, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_SD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    904  1.1.1.2  christos 
    905  1.1.1.2  christos /* cp32<.na> [xd:src1,src2,src2,src2], [cm:src2] */
    906  1.1.1.2  christos { "cp32", 0x48078181, 0xf80ffdff, ARC_OPCODE_ARC700, DMA, NPS400, { BRAKET, NPS_XD, COLON, NPS_DPI_SRC1_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_NPS_NA }},
    907  1.1.1.2  christos 
    908  1.1.1.2  christos /* Ultra IP Instructions.  */
    909  1.1.1.2  christos 
    910  1.1.1.2  christos /* uip<.na> dst, [cm:src2], [cm:src1] */
    911  1.1.1.2  christos { "uip", 0x480740a2, 0xf81fc1e3, ARC_OPCODE_ARC700, ULTRAIP, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_DPI_SRC1_3B, BRAKETdup }, { C_NPS_NA }},
    912  1.1.1.2  christos 
    913  1.1.1.2  christos /* uip<.na> dst, [cm:src2], [cm:src1], src2 */
    914  1.1.1.2  christos { "uip", 0x480700a2, 0xf81fc1e3, ARC_OPCODE_ARC700, ULTRAIP, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_DPI_SRC1_3B, BRAKETdup, NPS_R_SRC2_3B }, { C_NPS_NA }},
    915  1.1.1.2  christos 
    916  1.1.1.2  christos /* Miscellaneous Instructions.  */
    917  1.1.1.2  christos 
    918  1.1.1.2  christos /* whash dst,[cm:src1],src2 */
    919  1.1.1.2  christos { "whash", 0x38150000, 0xf8ff0000, ARC_OPCODE_ARC700, MISC, NPS400, { RA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RC }, { 0 }},
    920  1.1.1.2  christos 
    921  1.1.1.2  christos /* whash 0,[cm:src1],src2 */
    922  1.1.1.2  christos { "whash", 0x3815003e, 0xf8ff003f, ARC_OPCODE_ARC700, MISC, NPS400, { ZA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RC }, { 0 }},
    923  1.1.1.2  christos 
    924  1.1.1.2  christos /* whash dst,[cm:src1],size */
    925  1.1.1.2  christos { "whash", 0x38550000, 0xf8ff0000, ARC_OPCODE_ARC700, MISC, NPS400, { RA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, NPS_WHASH_SIZE }, { 0 }},
    926  1.1.1.2  christos 
    927  1.1.1.2  christos /* whash 0,[cm:src1],size */
    928  1.1.1.2  christos { "whash", 0x3855003e, 0xf8ff003f, ARC_OPCODE_ARC700, MISC, NPS400, { ZA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, NPS_WHASH_SIZE }, { 0 }},
    929  1.1.1.2  christos 
    930  1.1.1.2  christos /* mcmp<.s><.m> dst,[cm:src1],[cm:src2],src2 */
    931  1.1.1.2  christos { "mcmp", 0x48024000, 0xf81fdf7f, ARC_OPCODE_ARC700, MISC, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_DPI_SRC1_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, NPS_R_SRC2_3B }, { C_NPS_SR, C_NPS_M }},
    932  1.1.1.2  christos 
    933  1.1.1.2  christos /* mcmp<.s><.m> dst,[cm:src1,src1],[cm:src2],src2 */
    934  1.1.1.2  christos { "mcmp", 0x48020000, 0xf81fdf7f, ARC_OPCODE_ARC700, MISC, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_DPI_SRC1_3B, NPS_DPI_SRC1_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, NPS_R_SRC2_3B }, { C_NPS_SR, C_NPS_M }},
    935  1.1.1.2  christos 
    936  1.1.1.2  christos /* mcmp.<s><.m> dst,[cm:src1,offset],[cm:src2],src2 */
    937  1.1.1.2  christos { "mcmp", 0x48024000, 0xf81fc000, ARC_OPCODE_ARC700, MISC, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_DPI_SRC1_3B,
    938  1.1.1.2  christos NPS_MISC_IMM_OFFSET, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, NPS_R_SRC2_3B }, { C_NPS_SR, C_NPS_M }},
    939  1.1.1.2  christos 
    940  1.1.1.2  christos /* mcmp<.s><.m> dst,[cm:src1],[cm: src2],size */
    941  1.1.1.2  christos { "mcmp", 0x4802c000, 0xf81fcf00, ARC_OPCODE_ARC700, MISC, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_DPI_SRC1_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, NPS_MISC_IMM_SIZE }, { C_NPS_SR, C_NPS_M }},
    942  1.1.1.2  christos 
    943  1.1.1.2  christos /* mcmp<.s><.m> dst,[cm:src1,offset],[cm:src2],size */
    944  1.1.1.2  christos { "mcmp", 0x4802c000, 0xf81fc000, ARC_OPCODE_ARC700, MISC, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_DPI_SRC1_3B,
    945  1.1.1.2  christos NPS_MISC_IMM_OFFSET, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, NPS_MISC_IMM_SIZE }, { C_NPS_SR, C_NPS_M }},
    946  1.1.1.2  christos 
    947  1.1.1.2  christos /* mcmp<.s><.m> dst,[cm:src1,src1],[cm:src2],size */
    948  1.1.1.2  christos { "mcmp", 0x48028000, 0xf81fdf00, ARC_OPCODE_ARC700, MISC, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_DPI_SRC1_3B, NPS_DPI_SRC1_3B, BRAKETdup, BRAKET, NPS_CM, COLON, NPS_R_SRC2_3B, BRAKETdup, NPS_MISC_IMM_SIZE }, { C_NPS_SR, C_NPS_M }},
    949  1.1.1.2  christos 
    950  1.1.1.2  christos #define ASRI_LIKE(SUBOP2, FLAG)	\
    951  1.1.1.2  christos   { "asri", (0x3856003e | (SUBOP2 << 6)), 0xf8ff8fff, ARC_OPCODE_ARC700, MISC, NPS400, { ZA, RB }, { FLAG }},
    952  1.1.1.2  christos 
    953  1.1.1.2  christos ASRI_LIKE (0x0, 0)
    954  1.1.1.2  christos ASRI_LIKE (0x1, C_NPS_CORE)
    955  1.1.1.2  christos ASRI_LIKE (0x2, C_NPS_CLSR)
    956  1.1.1.2  christos ASRI_LIKE (0x3, C_NPS_ALL)
    957  1.1.1.2  christos ASRI_LIKE (0x4, C_NPS_GIC)
    958  1.1.1.2  christos 
    959  1.1.1.2  christos /* rspi.gic 0,src1 */
    960  1.1.1.2  christos { "rspi", 0x3856017e, 0xf8ff8fff, ARC_OPCODE_ARC700, MISC, NPS400, { ZA, RB }, { C_NPS_RSPI_GIC }},
    961  1.1.1.2  christos 
    962  1.1.1.2  christos /* wkup.cl */
    963  1.1.1.2  christos { "wkup", 0x385b013e, 0xf8ff8fff, ARC_OPCODE_ARC700, MISC, NPS400, { 0 }, { C_NPS_CL }},
    964  1.1.1.2  christos 
    965  1.1.1.2  christos /* wkup 0, src2 */
    966  1.1.1.2  christos { "wkup", 0x385b003e, 0xf8ff8fff, ARC_OPCODE_ARC700, MISC, NPS400, { ZA, RC }, { 0 }},
    967  1.1.1.2  christos 
    968  1.1.1.2  christos /* getsti dst,[cm:src2] */
    969  1.1.1.2  christos { "getsti", 0x382f0024, 0xf8ff803f, ARC_OPCODE_ARC700, MISC, NPS400, { RB, BRAKET, NPS_CM, COLON, RC, BRAKETdup }, { 0 }},
    970  1.1.1.2  christos 
    971  1.1.1.2  christos /* getsti 0, [cm:src2] */
    972  1.1.1.2  christos { "getsti", 0x3e2f7024, 0xfffff03f, ARC_OPCODE_ARC700, MISC, NPS400, { ZA, BRAKET, NPS_CM, COLON, RC, BRAKETdup }, { 0 }},
    973  1.1.1.2  christos 
    974  1.1.1.2  christos /* getrtc dst,[cm:src2] */
    975  1.1.1.2  christos { "getrtc", 0x382f0025, 0xf8ff803f, ARC_OPCODE_ARC700, MISC, NPS400, { RB, BRAKET, NPS_CM, COLON, RC, BRAKETdup }, { 0 }},
    976  1.1.1.2  christos 
    977  1.1.1.2  christos /* getrtc 0, [cm:src2] */
    978  1.1.1.2  christos { "getrtc", 0x3e2f7025, 0xfffff03f, ARC_OPCODE_ARC700, MISC, NPS400, { ZA, BRAKET, NPS_CM, COLON, RC, BRAKETdup }, { 0 }},
    979  1.1.1.2  christos 
    980  1.1.1.2  christos /* Atomic Operations.  */
    981  1.1.1.2  christos 
    982  1.1.1.2  christos /* exc<.di><.f> a,a,[xa:b] */
    983  1.1.1.2  christos { "exc", 0x48060c21, 0xf80fbfff, ARC_OPCODE_ARC700, NONE, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, BRAKET, NPS_XA, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_DI14, C_NPS_F }},
    984  1.1.1.2  christos 
    985  1.1.1.2  christos /* exc<.di><.f> a,a,[sd:b] */
    986  1.1.1.2  christos { "exc", 0x48060c61, 0xf80fbfff, ARC_OPCODE_ARC700, NONE, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, BRAKET, NPS_SD, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_DI14, C_NPS_F }},
    987  1.1.1.2  christos 
    988  1.1.1.2  christos /* exc<.di><.f> a,a,[xd:b] */
    989  1.1.1.2  christos { "exc", 0x48060c81, 0xf80fbfff, ARC_OPCODE_ARC700, NONE, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, BRAKET, NPS_XD, COLON, NPS_R_SRC2_3B, BRAKETdup }, { C_DI14, C_NPS_F }},
    990  1.1.1.2  christos 
    991  1.1.1.2  christos /* exc<.di><.f> a,a,[b] */
    992  1.1.1.2  christos { "exc", 0x48060c01, 0xf80fbfff, ARC_OPCODE_ARC700, NONE, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, BRAKET, NPS_R_SRC2_3B, BRAKETdup }, { C_DI14, C_NPS_F }},
    993