Home | History | Annotate | Line # | Download | only in opcodes
arc-nps400-tbl.h revision 1.1.1.1.4.1
      1  1.1.1.1.4.1    martin /* 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.1.4.1    martin { "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.1.4.1    martin /* mrgb - 48 bit instruction.  */
     38  1.1.1.1.4.1    martin { "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.1.4.1    martin 
     40  1.1.1.1.4.1    martin /* mrgb.cl - 48 bit instruction.  */
     41  1.1.1.1.4.1    martin { "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.1.4.1    martin 
     43  1.1.1.1.4.1    martin /* mov2b - 48 bit instruction.  */
     44  1.1.1.1.4.1    martin { "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.1.4.1    martin 
     46  1.1.1.1.4.1    martin /* mov2b.cl - 48 bit instruction.  */
     47  1.1.1.1.4.1    martin { "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.1.4.1    martin 
     49  1.1.1.1.4.1    martin /* ext4 - 48 bit instruction.  */
     50  1.1.1.1.4.1    martin { "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.1.4.1    martin 
     52  1.1.1.1.4.1    martin /* ext4.cl - 48 bit instruction.  */
     53  1.1.1.1.4.1    martin { "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.1.4.1    martin 
     55  1.1.1.1.4.1    martin /* ins4 - 48 bit instruction.  */
     56  1.1.1.1.4.1    martin { "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.1.4.1    martin 
     58  1.1.1.1.4.1    martin /* ins4.cl - 48 bit instruction.  */
     59  1.1.1.1.4.1    martin { "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.1.4.1    martin 
     61  1.1.1.1.4.1    martin /* mov3b - 64 bit instruction.  */
     62  1.1.1.1.4.1    martin { "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.1.4.1    martin 
     64  1.1.1.1.4.1    martin /* mov4b - 64 bit instruction.  */
     65  1.1.1.1.4.1    martin { "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.1.4.1    martin 
     67  1.1.1.1.4.1    martin /* mov3bcl - 64 bit instruction.  */
     68  1.1.1.1.4.1    martin { "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.1.4.1    martin 
     70  1.1.1.1.4.1    martin /* mov4bcl - 64 bit instruction.  */
     71  1.1.1.1.4.1    martin { "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.1.4.1    martin 
     73  1.1.1.1.4.1    martin /* mov3b.cl - 64 bit instruction.  */
     74  1.1.1.1.4.1    martin { "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.1.4.1    martin 
     76  1.1.1.1.4.1    martin /* mov4b.cl - 64 bit instruction.  */
     77  1.1.1.1.4.1    martin { "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.1.1.4.1    martin /* 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.1.4.1    martin { "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.1.1.4.1    martin /* 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.1.1.4.1    martin /* 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.1.1.4.1    martin /* 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.1.1.4.1    martin /* 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.1.1.4.1    martin /* 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.1.1.4.1    martin 
    583  1.1.1.1.4.1    martin /* BMU Instructions.  */
    584  1.1.1.1.4.1    martin 
    585  1.1.1.1.4.1    martin /* sbdalc dst, src1, type */
    586  1.1.1.1.4.1    martin { "sbdalc", 0x38500040, 0xf8ff09c0, ARC_OPCODE_ARC700, BMU, NPS400, { RA, RB, NPS_BD_TYPE }, { 0 }},
    587  1.1.1.1.4.1    martin 
    588  1.1.1.1.4.1    martin /* bdalc dst, [cm:src1], src1, src2 */
    589  1.1.1.1.4.1    martin { "bdalc", 0x38100000, 0xf8ff0000, ARC_OPCODE_ARC700, BMU, NPS400, { RA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup,  RC }, { 0 }},
    590  1.1.1.1.4.1    martin 
    591  1.1.1.1.4.1    martin /* bdalc dst, [cm:src1], src1, type, num_buff */
    592  1.1.1.1.4.1    martin { "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.1.1.4.1    martin 
    594  1.1.1.1.4.1    martin /* sbdfre 0, src1, src2 */
    595  1.1.1.1.4.1    martin { "sbdfre", 0x3817003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, RB, RC }, { 0 }},
    596  1.1.1.1.4.1    martin 
    597  1.1.1.1.4.1    martin /* bdfre 0, [cm:src1], src1, src2 */
    598  1.1.1.1.4.1    martin { "bdfre", 0x3811003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, RC }, { 0 }},
    599  1.1.1.1.4.1    martin 
    600  1.1.1.1.4.1    martin /* bdfre 0, [cm:src1], src1, type, num_buff */
    601  1.1.1.1.4.1    martin { "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.1.1.4.1    martin 
    603  1.1.1.1.4.1    martin /* bdfre 0, [cm:src1], src1, num_buff */
    604  1.1.1.1.4.1    martin { "bdfre", 0x3851003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, NPS_BMU_NUM }, { 0 }},
    605  1.1.1.1.4.1    martin 
    606  1.1.1.1.4.1    martin /* bdbgt 0, src1, src2 */
    607  1.1.1.1.4.1    martin { "bdbgt", 0x3818003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, RB, RC }, { 0 }},
    608  1.1.1.1.4.1    martin 
    609  1.1.1.1.4.1    martin /* sidxalc dst, src1 */
    610  1.1.1.1.4.1    martin { "sidxalc", 0x385c0040, 0xf8ff0040, ARC_OPCODE_ARC700, BMU, NPS400, { RA, RB }, { 0 }},
    611  1.1.1.1.4.1    martin 
    612  1.1.1.1.4.1    martin /* idxalc dst, [cm:src1], src1, src2 */
    613  1.1.1.1.4.1    martin { "idxalc", 0x381c0000, 0xf8ff0000, ARC_OPCODE_ARC700, BMU, NPS400, { RA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, RC }, { 0 }},
    614  1.1.1.1.4.1    martin 
    615  1.1.1.1.4.1    martin /* idxalc dst, [cm:src1], src1, num_idx */
    616  1.1.1.1.4.1    martin { "idxalc", 0x385c0800, 0xf8ff0800, ARC_OPCODE_ARC700, BMU, NPS400, { RA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, NPS_BMU_NUM }, { 0 }},
    617  1.1.1.1.4.1    martin 
    618  1.1.1.1.4.1    martin /* sidxfre 0, src1, src2 */
    619  1.1.1.1.4.1    martin { "sidxfre", 0x381d003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, RB, RC }, { 0 }},
    620  1.1.1.1.4.1    martin 
    621  1.1.1.1.4.1    martin /* idxfre 0, [cm:src1], src1, src2 */
    622  1.1.1.1.4.1    martin { "idxfre", 0x381e003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, RC }, { 0 }},
    623  1.1.1.1.4.1    martin 
    624  1.1.1.1.4.1    martin /* idxfre 0, [cm:src1], src1, num_buff */
    625  1.1.1.1.4.1    martin { "idxfre", 0x385e003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, NPS_BMU_NUM }, { 0 }},
    626  1.1.1.1.4.1    martin 
    627  1.1.1.1.4.1    martin /* idxbgt 0, src1, src2 */
    628  1.1.1.1.4.1    martin { "idxbgt", 0x3819003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, RB, RC }, { 0 }},
    629  1.1.1.1.4.1    martin 
    630  1.1.1.1.4.1    martin /* efabgt 0, limm, src2 */
    631  1.1.1.1.4.1    martin { "efabgt", 0x3e0d703e, 0xfffff03f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, LIMM, RC }, { 0 }},
    632  1.1.1.1.4.1    martin 
    633  1.1.1.1.4.1    martin /* efabgt 0, src1, limm */
    634  1.1.1.1.4.1    martin { "efabgt", 0x380d0fbe, 0xf8ff8fff, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, RB, LIMM }, { 0 }},
    635  1.1.1.1.4.1    martin 
    636  1.1.1.1.4.1    martin /* efabgt 0, src1, src2 */
    637  1.1.1.1.4.1    martin { "efabgt", 0x380d003e, 0xf8ff003f, ARC_OPCODE_ARC700, BMU, NPS400, { ZA, RB, RC }, { 0 }},
    638  1.1.1.1.4.1    martin 
    639  1.1.1.1.4.1    martin /* efabgt dst, limm, src2 */
    640  1.1.1.1.4.1    martin { "efabgt", 0x3e0d7000, 0xfffff000, ARC_OPCODE_ARC700, BMU, NPS400, { RA, LIMM, RC }, { 0 }},
    641  1.1.1.1.4.1    martin 
    642  1.1.1.1.4.1    martin /* efabgt dst, src1, limm */
    643  1.1.1.1.4.1    martin { "efabgt", 0x380d0f80, 0xf8ff0fc0, ARC_OPCODE_ARC700, BMU, NPS400, { RA, RB, LIMM }, { 0 }},
    644  1.1.1.1.4.1    martin 
    645  1.1.1.1.4.1    martin /* efabgt dst, src1, src2 */
    646  1.1.1.1.4.1    martin { "efabgt", 0x380d0000, 0xf8ff8000, ARC_OPCODE_ARC700, BMU, NPS400, { RA, RB, RC }, { 0 }},
    647  1.1.1.1.4.1    martin 
    648  1.1.1.1.4.1    martin /* PMU Instructions. */
    649  1.1.1.1.4.1    martin 
    650  1.1.1.1.4.1    martin /* jobget<.cl> 0, [cjid:src1] */
    651  1.1.1.1.4.1    martin { "jobget", 0x3e2f7020, 0xfffff03f, ARC_OPCODE_ARC700, PMU, NPS400, { ZA, BRAKET, NPS_CJID, COLON, RC, BRAKET }, { 0 }},
    652  1.1.1.1.4.1    martin 
    653  1.1.1.1.4.1    martin { "jobget", 0x3e2f7021, 0xfffff03f, ARC_OPCODE_ARC700, PMU, NPS400, { ZA, BRAKET, NPS_CJID, COLON, RC, BRAKET }, { C_NPS_CL }},
    654  1.1.1.1.4.1    martin 
    655  1.1.1.1.4.1    martin /* jobdn 0, [cjid:src1], src1, src2 */
    656  1.1.1.1.4.1    martin { "jobdn", 0x3812003e, 0xf8ff803f, ARC_OPCODE_ARC700, PMU, NPS400, { ZA, BRAKET, NPS_CJID, COLON, RB, BRAKETdup, RBdup, RC }, { 0 }},
    657  1.1.1.1.4.1    martin 
    658  1.1.1.1.4.1    martin /* jobdn 0, [cjid:src1], src1, nxt_dst */
    659  1.1.1.1.4.1    martin { "jobdn", 0x3852003e, 0xf8ff803f, ARC_OPCODE_ARC700, PMU, NPS400, { ZA, BRAKET, NPS_CJID, COLON, RB, BRAKETdup, RBdup, NPS_PMU_NXT_DST }, { 0 }},
    660  1.1.1.1.4.1    martin 
    661  1.1.1.1.4.1    martin /* sjobalc dst, src1 */
    662  1.1.1.1.4.1    martin { "sjobalc", 0x385f0040, 0xf8ff8fc0, ARC_OPCODE_ARC700, PMU, NPS400, { RA, RB }, { 0 }},
    663  1.1.1.1.4.1    martin 
    664  1.1.1.1.4.1    martin /* jobalc dst, [cm:src1], src1, num_job */
    665  1.1.1.1.4.1    martin { "jobalc", 0x385f0800, 0xf8ff8800, ARC_OPCODE_ARC700, PMU, NPS400, { RA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, NPS_PMU_NUM_JOB }, { 0 }},
    666  1.1.1.1.4.1    martin 
    667  1.1.1.1.4.1    martin /* jobalc dst, [cm:src1], src1, src2 */
    668  1.1.1.1.4.1    martin { "jobalc", 0x381f0000, 0xf8ff8000, ARC_OPCODE_ARC700, PMU, NPS400, { RA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RBdup, RC }, { 0 }},
    669  1.1.1.1.4.1    martin 
    670  1.1.1.1.4.1    martin /* jobbgt dst, src1, src2 */
    671  1.1.1.1.4.1    martin { "jobbgt", 0x381a0000, 0xf8ff0000, ARC_OPCODE_ARC700, PMU, NPS400, { RA, RB, RC }, { 0 }},
    672  1.1.1.1.4.1    martin 
    673  1.1.1.1.4.1    martin /* cnljob 0 */
    674  1.1.1.1.4.1    martin { "cnljob", 0x3e6f70ff, 0xffffffff, ARC_OPCODE_ARC700, PMU, NPS400, { ZA }, { 0 }},
    675  1.1.1.1.4.1    martin 
    676  1.1.1.1.4.1    martin /* qseq dst, [src1] */
    677  1.1.1.1.4.1    martin { "qseq", 0x386f0028, 0xf8ff803f, ARC_OPCODE_ARC700, PMU, NPS400, { RB, BRAKET, RC, BRAKETdup }, { 0 }},
    678  1.1.1.1.4.1    martin 
    679  1.1.1.1.4.1    martin /* Protocol Decode Instructions.  */
    680  1.1.1.1.4.1    martin 
    681  1.1.1.1.4.1    martin /* dcmac  0,[cm:b],[cm:b],c */
    682  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    684  1.1.1.1.4.1    martin /* dcmac  0,[cm:b],[cm:A],c */
    685  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    687  1.1.1.1.4.1    martin /* dcmac  0,[cm:A],[cm:b],c */
    688  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    690  1.1.1.1.4.1    martin /* dcmac  a,[cm:b],[cm:b],c */
    691  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    693  1.1.1.1.4.1    martin /* dcmac  a,[cm:b],[cm:A],c */
    694  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    696  1.1.1.1.4.1    martin /* dcmac  a,[cm:A],[cm:b],c */
    697  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    699  1.1.1.1.4.1    martin /* dcmac  0,[cm:b],[cm:b],size */
    700  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    702  1.1.1.1.4.1    martin /* dcmac  0,[cm:b],[cm:A],size */
    703  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    705  1.1.1.1.4.1    martin /* dcmac  0,[cm:A],[cm:b],size */
    706  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    708  1.1.1.1.4.1    martin /* dcmac  a,[cm:b],[cm:b],size */
    709  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    711  1.1.1.1.4.1    martin /* dcmac  a,[cm:b],[cm:A],size */
    712  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    714  1.1.1.1.4.1    martin /* dcmac  a,[cm:A],[cm:b],size */
    715  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    717  1.1.1.1.4.1    martin /* Aligned Copy 16/32 Byte Instructions.  */
    718  1.1.1.1.4.1    martin 
    719  1.1.1.1.4.1    martin /* cp16<.na> dst, [cm:src2], [xa:src1] */
    720  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    722  1.1.1.1.4.1    martin /* cp32<.na> dst, [cm:src2], [xa:src1] */
    723  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    725  1.1.1.1.4.1    martin /* cp16<.na> [cm:src2], [xa:src1] */
    726  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    728  1.1.1.1.4.1    martin /* cp32<.na> [cm:src2], [xa:src1] */
    729  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    731  1.1.1.1.4.1    martin /* cp16<.na> dst, [cm:src2], [xa:src1,src2] */
    732  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    734  1.1.1.1.4.1    martin /* cp32<.na> dst, [cm:src2], [xa:src1,src2] */
    735  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    737  1.1.1.1.4.1    martin /* cp16<.na> [cm:src2], [xa:src1,src2] */
    738  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    740  1.1.1.1.4.1    martin /* cp32<.na> [cm:src2], [xa:src1,src2] */
    741  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    743  1.1.1.1.4.1    martin /* cp32 [cm:src2], [jid:src1] */
    744  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    746  1.1.1.1.4.1    martin /* cp32 dst, [cm:src2], [jid:src1] */
    747  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    749  1.1.1.1.4.1    martin /* cp16<.na> [cm:src2],[sd:src1,entry,off] */
    750  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    752  1.1.1.1.4.1    martin /* cp32<.na> [cm:src2],[sd:src1,entry,off] */
    753  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    755  1.1.1.1.4.1    martin /* cp16<.na> dst, [cm:src2],[sd:src1,entry,off] */
    756  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    758  1.1.1.1.4.1    martin /* cp32<.na> dst, [cm:src2],[sd:src1,entry,off] */
    759  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    761  1.1.1.1.4.1    martin /* cp16<.na> [cm:src2],[sd:src1,entry,off, src2] */
    762  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    764  1.1.1.1.4.1    martin /* cp32<.na> [cm:src2],[sd:src1,entry,off, src2] */
    765  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    767  1.1.1.1.4.1    martin /* cp16<.na> dst, [cm:src2],[sd:src1,entry,off,src2] */
    768  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    770  1.1.1.1.4.1    martin /* cp32<.na> dst, [cm:src2],[sd:src1,entry,off,src2] */
    771  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    773  1.1.1.1.4.1    martin /* cp16<.na> [cm:src2],[sd:src1,src2, src2] */
    774  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    776  1.1.1.1.4.1    martin /* cp32<.na> [cm:src2],[sd:src1,src2, src2] */
    777  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    779  1.1.1.1.4.1    martin /* cp16<.na> dst, [cm:src2],[sd:src1,src2,src2] */
    780  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    782  1.1.1.1.4.1    martin /* cp32<.na> dst, [cm:src2],[sd:src1,src2,src2] */
    783  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    785  1.1.1.1.4.1    martin /* cp16<.na> [cm:src2],[sd:src1,src2,src2,src2] */
    786  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    788  1.1.1.1.4.1    martin /* cp32<.na> [cm:src2],[sd:src1,src2,src2,src2] */
    789  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    791  1.1.1.1.4.1    martin /* cp16<.na> dst, [cm:src2],[sd:src1,src2,src2,src2] */
    792  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    794  1.1.1.1.4.1    martin /* cp32<.na> dst, [cm:src2],[sd:src1,src2,src2,src2] */
    795  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    797  1.1.1.1.4.1    martin /* cp16<.na> [cm:src2],[xd:src1,entry,off] */
    798  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    800  1.1.1.1.4.1    martin /* cp32<.na> [cm:src2],[xd:src1,entry,off] */
    801  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    803  1.1.1.1.4.1    martin /* cp16<.na> dst, [cm:src2],[xd:src1,entry,off] */
    804  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    806  1.1.1.1.4.1    martin /* cp32<.na> dst, [cm:src2],[xd:src1,entry,off] */
    807  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    809  1.1.1.1.4.1    martin /* cp16<.na> [cm:src2],[xd:src1,entry,off, src2] */
    810  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    812  1.1.1.1.4.1    martin /* cp32<.na> [cm:src2],[xd:src1,entry,off, src2] */
    813  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    815  1.1.1.1.4.1    martin /* cp16<.na> dst, [cm:src2],[xd:src1,entry,off,src2] */
    816  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    818  1.1.1.1.4.1    martin /* cp32<.na> dst, [cm:src2],[xd:src1,entry,off,src2] */
    819  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    821  1.1.1.1.4.1    martin /* cp16<.na> [cm:src2],[xd:src1,src2, src2] */
    822  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    824  1.1.1.1.4.1    martin /* cp32<.na> [cm:src2],[xd:src1,src2, src2] */
    825  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    827  1.1.1.1.4.1    martin /* cp16<.na> dst, [cm:src2],[xd:src1,src2,src2] */
    828  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    830  1.1.1.1.4.1    martin /* cp32<.na> dst, [cm:src2],[xd:src1,src2,src2] */
    831  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    833  1.1.1.1.4.1    martin /* cp16<.na> [cm:src2],[xd:src1,src2,src2,src2] */
    834  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    836  1.1.1.1.4.1    martin /* cp32<.na> [cm:src2],[xd:src1,src2,src2,src2] */
    837  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    839  1.1.1.1.4.1    martin /* cp16<.na> dst, [cm:src2],[xd:src1,src2,src2,src2] */
    840  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    842  1.1.1.1.4.1    martin /* cp32<.na> dst, [cm:src2],[xd:src1,src2,src2,src2] */
    843  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    845  1.1.1.1.4.1    martin /* cp16<.na> [xa:src1], [cm:src2] */
    846  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    848  1.1.1.1.4.1    martin /* cp32<.na> [xa:src1], [cm:src2] */
    849  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    851  1.1.1.1.4.1    martin /* cp16<.na> [xa:src1,src2], [cm:src2] */
    852  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    854  1.1.1.1.4.1    martin /* cp32<.na> [xa:src1,src2], [cm:src2] */
    855  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    857  1.1.1.1.4.1    martin /* cp32 [jid:src1], [cm:src2] */
    858  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    860  1.1.1.1.4.1    martin /* cp16<.na> [sd:src1,entry,offset],[cm:src2] */
    861  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    863  1.1.1.1.4.1    martin /* cp16<.na> [xd:src1,entry,offset], [cm:src2] */
    864  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    866  1.1.1.1.4.1    martin /* cp32<.na> [sd:src1,entry,offset], [cm:src2] */
    867  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    869  1.1.1.1.4.1    martin /* cp32<.na> [xd:src1,entry,offset], [cm:src2] */
    870  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    872  1.1.1.1.4.1    martin /* cp16<.na> [sd:src1,entry,offset,src2],[cm:src2] */
    873  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    875  1.1.1.1.4.1    martin /* cp16<.na> [xd:src1,entry,offset,src2],[cm:src2] */
    876  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    878  1.1.1.1.4.1    martin /* cp32<.na> [sd:src1,entry,offset,src2],[cm:src2] */
    879  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    881  1.1.1.1.4.1    martin /* cp32<.na> [xd:src1,entry,offset,src2],[cm:src2] */
    882  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    884  1.1.1.1.4.1    martin /* cp16<.na> [sd:src1,src2,src2], [cm:src2] */
    885  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    887  1.1.1.1.4.1    martin /* cp16<.na> [xd:src1,src2,src2], [cm:src2] */
    888  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    890  1.1.1.1.4.1    martin /* cp32<.na> [sd:src1,src2,src2], [cm:src2] */
    891  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    893  1.1.1.1.4.1    martin /* cp32<.na> [xd:src1,src2,src2], [cm:src2] */
    894  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    896  1.1.1.1.4.1    martin /* cp16<.na> [sd:src1,src2,src2,src2], [cm:src2] */
    897  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    899  1.1.1.1.4.1    martin /* cp16<.na> [xd:src1,src2,src2,src2], [cm:src2] */
    900  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    902  1.1.1.1.4.1    martin /* cp32<.na> [sd:src1,src2,src2,src2], [cm:src2] */
    903  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    905  1.1.1.1.4.1    martin /* cp32<.na> [xd:src1,src2,src2,src2], [cm:src2] */
    906  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    908  1.1.1.1.4.1    martin /* Ultra IP Instructions.  */
    909  1.1.1.1.4.1    martin 
    910  1.1.1.1.4.1    martin /* uip<.na> dst, [cm:src2], [cm:src1] */
    911  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    913  1.1.1.1.4.1    martin /* uip<.na> dst, [cm:src2], [cm:src1], src2 */
    914  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    916  1.1.1.1.4.1    martin /* Miscellaneous Instructions.  */
    917  1.1.1.1.4.1    martin 
    918  1.1.1.1.4.1    martin /* whash dst,[cm:src1],src2 */
    919  1.1.1.1.4.1    martin { "whash", 0x38150000, 0xf8ff0000, ARC_OPCODE_ARC700, MISC, NPS400, { RA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RC }, { 0 }},
    920  1.1.1.1.4.1    martin 
    921  1.1.1.1.4.1    martin /* whash 0,[cm:src1],src2 */
    922  1.1.1.1.4.1    martin { "whash", 0x3815003e, 0xf8ff003f, ARC_OPCODE_ARC700, MISC, NPS400, { ZA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, RC }, { 0 }},
    923  1.1.1.1.4.1    martin 
    924  1.1.1.1.4.1    martin /* whash dst,[cm:src1],size */
    925  1.1.1.1.4.1    martin { "whash", 0x38550000, 0xf8ff0000, ARC_OPCODE_ARC700, MISC, NPS400, { RA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, NPS_WHASH_SIZE }, { 0 }},
    926  1.1.1.1.4.1    martin 
    927  1.1.1.1.4.1    martin /* whash 0,[cm:src1],size */
    928  1.1.1.1.4.1    martin { "whash", 0x3855003e, 0xf8ff003f, ARC_OPCODE_ARC700, MISC, NPS400, { ZA, BRAKET, NPS_CM, COLON, RB, BRAKETdup, NPS_WHASH_SIZE }, { 0 }},
    929  1.1.1.1.4.1    martin 
    930  1.1.1.1.4.1    martin /* mcmp<.s><.m> dst,[cm:src1],[cm:src2],src2 */
    931  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    933  1.1.1.1.4.1    martin /* mcmp<.s><.m> dst,[cm:src1,src1],[cm:src2],src2 */
    934  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    936  1.1.1.1.4.1    martin /* mcmp.<s><.m> dst,[cm:src1,offset],[cm:src2],src2 */
    937  1.1.1.1.4.1    martin { "mcmp", 0x48024000, 0xf81fc000, ARC_OPCODE_ARC700, MISC, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_DPI_SRC1_3B,
    938  1.1.1.1.4.1    martin 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.1.4.1    martin 
    940  1.1.1.1.4.1    martin /* mcmp<.s><.m> dst,[cm:src1],[cm: src2],size */
    941  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    943  1.1.1.1.4.1    martin /* mcmp<.s><.m> dst,[cm:src1,offset],[cm:src2],size */
    944  1.1.1.1.4.1    martin { "mcmp", 0x4802c000, 0xf81fc000, ARC_OPCODE_ARC700, MISC, NPS400, { NPS_R_DST_3B, BRAKET, NPS_CM, COLON, NPS_DPI_SRC1_3B,
    945  1.1.1.1.4.1    martin 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.1.4.1    martin 
    947  1.1.1.1.4.1    martin /* mcmp<.s><.m> dst,[cm:src1,src1],[cm:src2],size */
    948  1.1.1.1.4.1    martin { "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.1.4.1    martin 
    950  1.1.1.1.4.1    martin #define ASRI_LIKE(SUBOP2, FLAG)	\
    951  1.1.1.1.4.1    martin   { "asri", (0x3856003e | (SUBOP2 << 6)), 0xf8ff8fff, ARC_OPCODE_ARC700, MISC, NPS400, { ZA, RB }, { FLAG }},
    952  1.1.1.1.4.1    martin 
    953  1.1.1.1.4.1    martin ASRI_LIKE (0x0, 0)
    954  1.1.1.1.4.1    martin ASRI_LIKE (0x1, C_NPS_CORE)
    955  1.1.1.1.4.1    martin ASRI_LIKE (0x2, C_NPS_CLSR)
    956  1.1.1.1.4.1    martin ASRI_LIKE (0x3, C_NPS_ALL)
    957  1.1.1.1.4.1    martin ASRI_LIKE (0x4, C_NPS_GIC)
    958  1.1.1.1.4.1    martin 
    959  1.1.1.1.4.1    martin /* rspi.gic 0,src1 */
    960  1.1.1.1.4.1    martin { "rspi", 0x3856017e, 0xf8ff8fff, ARC_OPCODE_ARC700, MISC, NPS400, { ZA, RB }, { C_NPS_RSPI_GIC }},
    961  1.1.1.1.4.1    martin 
    962  1.1.1.1.4.1    martin /* wkup.cl */
    963  1.1.1.1.4.1    martin { "wkup", 0x385b013e, 0xf8ff8fff, ARC_OPCODE_ARC700, MISC, NPS400, { 0 }, { C_NPS_CL }},
    964  1.1.1.1.4.1    martin 
    965  1.1.1.1.4.1    martin /* wkup 0, src2 */
    966  1.1.1.1.4.1    martin { "wkup", 0x385b003e, 0xf8ff8fff, ARC_OPCODE_ARC700, MISC, NPS400, { ZA, RC }, { 0 }},
    967  1.1.1.1.4.1    martin 
    968  1.1.1.1.4.1    martin /* getsti dst,[cm:src2] */
    969  1.1.1.1.4.1    martin { "getsti", 0x382f0024, 0xf8ff803f, ARC_OPCODE_ARC700, MISC, NPS400, { RB, BRAKET, NPS_CM, COLON, RC, BRAKETdup }, { 0 }},
    970  1.1.1.1.4.1    martin 
    971  1.1.1.1.4.1    martin /* getsti 0, [cm:src2] */
    972  1.1.1.1.4.1    martin { "getsti", 0x3e2f7024, 0xfffff03f, ARC_OPCODE_ARC700, MISC, NPS400, { ZA, BRAKET, NPS_CM, COLON, RC, BRAKETdup }, { 0 }},
    973  1.1.1.1.4.1    martin 
    974  1.1.1.1.4.1    martin /* getrtc dst,[cm:src2] */
    975  1.1.1.1.4.1    martin { "getrtc", 0x382f0025, 0xf8ff803f, ARC_OPCODE_ARC700, MISC, NPS400, { RB, BRAKET, NPS_CM, COLON, RC, BRAKETdup }, { 0 }},
    976  1.1.1.1.4.1    martin 
    977  1.1.1.1.4.1    martin /* getrtc 0, [cm:src2] */
    978  1.1.1.1.4.1    martin { "getrtc", 0x3e2f7025, 0xfffff03f, ARC_OPCODE_ARC700, MISC, NPS400, { ZA, BRAKET, NPS_CM, COLON, RC, BRAKETdup }, { 0 }},
    979  1.1.1.1.4.1    martin 
    980  1.1.1.1.4.1    martin /* Atomic Operations.  */
    981  1.1.1.1.4.1    martin 
    982  1.1.1.1.4.1    martin /* exc<.di><.f> a,a,[xa:b] */
    983  1.1.1.1.4.1    martin { "exc", 0x48060c21, 0xf80fbfff, ARC_OPCODE_ARC700, MISC, 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.1.4.1    martin 
    985  1.1.1.1.4.1    martin /* exc<.di><.f> a,a,[sd:b] */
    986  1.1.1.1.4.1    martin { "exc", 0x48060c61, 0xf80fbfff, ARC_OPCODE_ARC700, MISC, 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.1.4.1    martin 
    988  1.1.1.1.4.1    martin /* exc<.di><.f> a,a,[xd:b] */
    989  1.1.1.1.4.1    martin { "exc", 0x48060c81, 0xf80fbfff, ARC_OPCODE_ARC700, MISC, 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.1.4.1    martin 
    991  1.1.1.1.4.1    martin /* exc<.di><.f> a,a,[b] */
    992  1.1.1.1.4.1    martin { "exc", 0x48060c01, 0xf80fbfff, ARC_OPCODE_ARC700, MISC, NPS400, { NPS_R_DST_3B, NPS_R_SRC1_3B, BRAKET, NPS_R_SRC2_3B, BRAKETdup }, { C_DI14, C_NPS_F }},
    993