Asm

/* $Id$ */
/* Copyright (c) 2011-2018 Pierre Pronchery <khorben@defora.org> */
/* This file is part of DeforaOS Devel Asm */
/* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, version 3 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. */
/* generic */
/* conditions */
#define eq 0x0
#define ne 0x1
#define cs 0x2
#define cc 0x3
#define mi 0x4
#define pl 0x5
#define vs 0x6
#define vc 0x7
#define hi 0x8
#define ls 0x9
#define ge 0xa
#define lt 0xb
#define gt 0xc
#define le 0xd
#define al 0xe
/* opcodes */
#define OPNOP AO_IMMEDIATE(0, 32, 0)
#define OP_DR AO_DREGISTER(0, 0, 32, 0)
#define OP_R AO_REGISTER(0, 32, 0)
#define OP_R_CPSR AO_REGISTER(AOF_IMPLICIT, 32, REG_cpsr_id)
#define OP_R_SPSR AO_REGISTER(AOF_IMPLICIT, 32, REG_spsr_id)
/* block data transfer */
#define OPBDTL(cond) ((cond << 28) | (0x4 << 25) | (0x1 << 20))
#define OPBDTLF (32 << AOD_SIZE)
#define OPBDT_U16 AO_IMMEDIATE(0, 16, 0)
#define OPBDTS(cond) ((cond << 28) | (0x4 << 25))
#define OPBDTSF (32 << AOD_SIZE)
/* branch, branch with link */
#define OPB(cond) ((cond << 28) | (0x5 << 25))
#define OPBF (32 << AOD_SIZE)
#define OPB_S24 AO_IMMEDIATE(AOF_SIGNED, 26, 0)
#define OPBL(cond) ((cond << 28) | (0x5 << 25) | (0x1 << 24))
#define OPBLF (32 << AOD_SIZE)
#define OPBL_S24 AO_IMMEDIATE(AOF_SIGNED, 26, 0)
/* branch and exchange */
#define OPBX(cond) ((cond << 28) | (0x12fff1 << 4))
#define OPBXF (32 << AOD_SIZE)
/* coprocessor data operation */
#define OPCDO(cond) ((cond << 28) | (0xe << 24))
#define OPCDOF (32 << AOD_SIZE)
#define OPCDO_U4 AO_IMMEDIATE(0, 4, 0)
/* coprocessor data transfers */
#define OPCDTL(cond) ((cond << 28) | (0x6 << 25) | (0x1 << 20))
#define OPCDTLF (32 << AOD_SIZE)
#define OPCDTL_U4 AO_IMMEDIATE(0, 4, 0)
#define OPCDTL_U8 AO_IMMEDIATE(0, 8, 0)
#define OPCDTS(cond) ((cond << 28) | (0x6 << 25))
#define OPCDTSF (32 << AOD_SIZE)
#define OPCDTS_U4 AO_IMMEDIATE(0, 4, 0)
#define OPCDTS_U8 AO_IMMEDIATE(0, 8, 0)
/* coprocessor register transfers */
#define OPCRTL(cond) ((cond << 28) | (0xe << 24) | (0x1 << 20) | (0x1 << 4))
#define OPCRTLF (32 << AOD_SIZE)
#define OPCRTL_U3 AO_IMMEDIATE(0, 3, 0)
#define OPCRTL_U4 AO_IMMEDIATE(0, 4, 0)
#define OPCRTS(cond) ((cond << 28) | (0xe << 24) | (0x1 << 4))
#define OPCRTSF (32 << AOD_SIZE)
#define OPCRTS_U3 AO_IMMEDIATE(0, 3, 0)
#define OPCRTS_U4 AO_IMMEDIATE(0, 4, 0)
/* data processing */
/* operations */
#define and 0x0
#define eor 0x1
#define sub 0x2
#define rsb 0x3
#define add 0x4
#define adc 0x5
#define sbc 0x6
#define rsc 0x7
#define tst 0x8
#define teq 0x9
#define cmp 0xa
#define cmn 0xb
#define orr 0xc
#define mov 0xd
#define bic 0xe
#define mvn 0xf
#define OPDP(cond, op) ((cond << 28) | (op << 21))
#define OPDPF (32 << AOD_SIZE)
#define OPDPI(cond, op) ((cond << 28) | (op << 21) | (0x1 << 25))
#define OPDPIF (32 << AOD_SIZE)
#define OPDPI_U12 AO_IMMEDIATE(0, 12, 0)
#define OPDPS(cond, op) ((cond << 28) | (op << 21) | (0x1 << 20))
#define OPDPSF (32 << AOD_SIZE)
#define OPDPIS(cond, op)((cond << 28) | (op << 21) | (0x1 << 25) | (0x1 << 20))
#define OPDPISF (32 << AOD_SIZE)
#define OPDPIS_U12 OPDPI_U12
/* multiply and multiply-accumulate */
#define OPMUL(cond) ((cond << 28) | (0x9 << 4))
#define OPMULF (32 << AOD_SIZE)
#define OPMULS(cond) ((cond << 28) | (0x1 << 20) | (0x9 << 4))
#define OPMULSF (32 << AOD_SIZE)
#define OPMULA(cond) ((cond << 28) | (0x1 << 21) | (0x9 << 4))
#define OPMULAF (32 << AOD_SIZE)
#define OPMULAS(cond) ((cond << 28) | (0x1 << 21) | (0x1 << 20) | (0x9 << 4))
#define OPMULASF (32 << AOD_SIZE)
/* psr transfer */
#define OPPT(cond) ((cond << 28) | (0x2 << 23) | (0xf << 16))
#define OPPTF (32 << AOD_SIZE)
#define OPPTI(cond) ((cond << 28) | (0x2 << 23) | (0x29f << 12))
#define OPPTIF (32 << AOD_SIZE)
/* single data transfer */
#define OPSDTL(cond) ((cond << 28) | (0x1 << 26) | (0x1 << 25) | (0x1 << 20))
#define OPSDTLF (32 << AOD_SIZE)
#define OPSDTS(cond) ((cond << 28) | (0x1 << 26) | (0x1 << 25))
#define OPSDTSF (32 << AOD_SIZE)
#define OPSDTLB(cond) ((cond << 28) | (0x1 << 26) | (0x1 << 25) \
| (0x1 << 22) | (0x1 << 20))
#define OPSDTLBF (32 << AOD_SIZE)
#define OPSDTSB(cond) ((cond << 28) | (0x1 << 26) | (0x1 << 25) | (0x1 << 22))
#define OPSDTSBF (32 << AOD_SIZE)
/* single data swap */
#define OPSDS(cond) ((cond << 28) | (0x2 << 23) | (0x9 << 4))
#define OPSDSF (32 << AOD_SIZE)
#define OPSDSB(cond) ((cond << 28) | (0x2 << 23) | (0x1 << 22) | (0x9 << 4))
#define OPSDSBF (32 << AOD_SIZE)
/* software interrupt */
#define OPSI(cond) ((cond << 28) | (0xf << 24))
#define OPSIF (32 << AOD_SIZE)
#define OPSI_U24 AO_IMMEDIATE(0, 24, 0)
/* instructions */
/* adc */
{ "adc", OPDP(al,adc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "adceq", OPDP(eq,adc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "adcne", OPDP(ne,adc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "adccs", OPDP(cs,adc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "adccc", OPDP(cc,adc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "adcmi", OPDP(mi,adc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "adcpl", OPDP(pl,adc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "adcvs", OPDP(vs,adc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "adcvc", OPDP(vc,adc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "adchi", OPDP(hi,adc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "adcls", OPDP(ls,adc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "adcge", OPDP(ge,adc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "adclt", OPDP(lt,adc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "adcgt", OPDP(gt,adc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "adcle", OPDP(le,adc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "adcal", OPDP(al,adc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "adc", OPDPI(al,adc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "adceq", OPDPI(eq,adc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "adcne", OPDPI(ne,adc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "adccs", OPDPI(cs,adc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "adccc", OPDPI(cc,adc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "adcmi", OPDPI(mi,adc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "adcpl", OPDPI(pl,adc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "adcvs", OPDPI(vs,adc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "adcvc", OPDPI(vc,adc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "adchi", OPDPI(hi,adc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "adcls", OPDPI(ls,adc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "adcge", OPDPI(ge,adc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "adclt", OPDPI(lt,adc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "adcgt", OPDPI(gt,adc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "adcle", OPDPI(le,adc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "adcal", OPDPI(al,adc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "adcs", OPDPS(al,adc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "adceqs", OPDPS(eq,adc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "adcnes", OPDPS(ne,adc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "adccss", OPDPS(cs,adc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "adcccs", OPDPS(cc,adc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "adcmis", OPDPS(mi,adc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "adcpls", OPDPS(pl,adc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "adcvss", OPDPS(vs,adc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "adcvcs", OPDPS(vc,adc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "adchis", OPDPS(hi,adc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "adclss", OPDPS(ls,adc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "adcges", OPDPS(ge,adc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "adclts", OPDPS(lt,adc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "adcgts", OPDPS(gt,adc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "adcles", OPDPS(le,adc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "adcals", OPDPS(al,adc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "adcs", OPDPIS(al,adc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "adceqs", OPDPIS(eq,adc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "adcnes", OPDPIS(ne,adc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "adccss", OPDPIS(cs,adc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "adcccs", OPDPIS(cc,adc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "adcmis", OPDPIS(mi,adc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "adcpls", OPDPIS(pl,adc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "adcvss", OPDPIS(vs,adc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "adcvcs", OPDPIS(vc,adc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "adchis", OPDPIS(hi,adc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "adclss", OPDPIS(ls,adc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "adcges", OPDPIS(ge,adc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "adclts", OPDPIS(lt,adc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "adcgts", OPDPIS(gt,adc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "adcles", OPDPIS(le,adc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "adcals", OPDPIS(al,adc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
/* add */
{ "add", OPDP(al,add), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "addeq", OPDP(eq,add), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "addne", OPDP(ne,add), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "addcs", OPDP(cs,add), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "addcc", OPDP(cc,add), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "addmi", OPDP(mi,add), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "addpl", OPDP(pl,add), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "addvs", OPDP(vs,add), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "addvc", OPDP(vc,add), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "addhi", OPDP(hi,add), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "addls", OPDP(ls,add), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "addge", OPDP(ge,add), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "addlt", OPDP(lt,add), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "addgt", OPDP(gt,add), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "addle", OPDP(le,add), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "addal", OPDP(al,add), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "add", OPDPI(al,add), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "addeq", OPDPI(eq,add), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "addne", OPDPI(ne,add), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "addcs", OPDPI(cs,add), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "addcc", OPDPI(cc,add), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "addmi", OPDPI(mi,add), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "addpl", OPDPI(pl,add), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "addvs", OPDPI(vs,add), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "addvc", OPDPI(vc,add), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "addhi", OPDPI(hi,add), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "addls", OPDPI(ls,add), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "addge", OPDPI(ge,add), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "addlt", OPDPI(lt,add), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "addgt", OPDPI(gt,add), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "addle", OPDPI(le,add), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "addal", OPDPI(al,add), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "adds", OPDPS(al,add), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "addeqs", OPDPS(eq,add), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "addnes", OPDPS(ne,add), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "addcss", OPDPS(cs,add), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "addccs", OPDPS(cc,add), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "addmis", OPDPS(mi,add), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "addpls", OPDPS(pl,add), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "addvss", OPDPS(vs,add), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "addvcs", OPDPS(vc,add), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "addhis", OPDPS(hi,add), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "addlss", OPDPS(ls,add), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "addges", OPDPS(ge,add), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "addlts", OPDPS(lt,add), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "addgts", OPDPS(gt,add), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "addles", OPDPS(le,add), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "addals", OPDPS(al,add), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "adds", OPDPIS(al,add), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "addeqs", OPDPIS(eq,add), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "addnes", OPDPIS(ne,add), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "addcss", OPDPIS(cs,add), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "addccs", OPDPIS(cc,add), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "addmis", OPDPIS(mi,add), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "addpls", OPDPIS(pl,add), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "addvss", OPDPIS(vs,add), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "addvcs", OPDPIS(vc,add), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "addhis", OPDPIS(hi,add), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "addlss", OPDPIS(ls,add), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "addges", OPDPIS(ge,add), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "addlts", OPDPIS(lt,add), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "addgts", OPDPIS(gt,add), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "addles", OPDPIS(le,add), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "addals", OPDPIS(al,add), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
/* and */
{ "and", OPDP(al,and), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "andeq", OPDP(eq,and), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "andne", OPDP(ne,and), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "andcs", OPDP(cs,and), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "andcc", OPDP(cc,and), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "andmi", OPDP(mi,and), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "andpl", OPDP(pl,and), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "andvs", OPDP(vs,and), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "andvc", OPDP(vc,and), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "andhi", OPDP(hi,and), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "andls", OPDP(ls,and), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "andge", OPDP(ge,and), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "andlt", OPDP(lt,and), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "andgt", OPDP(gt,and), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "andle", OPDP(le,and), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "andal", OPDP(al,and), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "and", OPDPI(al,and), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "andeq", OPDPI(eq,and), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "andne", OPDPI(ne,and), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "andcs", OPDPI(cs,and), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "andcc", OPDPI(cc,and), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "andmi", OPDPI(mi,and), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "andpl", OPDPI(pl,and), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "andvs", OPDPI(vs,and), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "andvc", OPDPI(vc,and), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "andhi", OPDPI(hi,and), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "andls", OPDPI(ls,and), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "andge", OPDPI(ge,and), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "andlt", OPDPI(lt,and), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "andgt", OPDPI(gt,and), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "andle", OPDPI(le,and), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "andal", OPDPI(al,and), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "ands", OPDPS(al,and), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "andeqs", OPDPS(eq,and), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "andnes", OPDPS(ne,and), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "andcss", OPDPS(cs,and), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "andccs", OPDPS(cc,and), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "andmis", OPDPS(mi,and), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "andpls", OPDPS(pl,and), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "andvss", OPDPS(vs,and), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "andvcs", OPDPS(vc,and), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "andhis", OPDPS(hi,and), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "andlss", OPDPS(ls,and), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "andges", OPDPS(ge,and), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "andlts", OPDPS(lt,and), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "andgts", OPDPS(gt,and), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "andles", OPDPS(le,and), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "andals", OPDPS(al,and), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "ands", OPDPIS(al,and), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "andeqs", OPDPIS(eq,and), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "andnes", OPDPIS(ne,and), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "andcss", OPDPIS(cs,and), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "andccs", OPDPIS(cc,and), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "andmis", OPDPIS(mi,and), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "andpls", OPDPIS(pl,and), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "andvss", OPDPIS(vs,and), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "andvcs", OPDPIS(vc,and), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "andhis", OPDPIS(hi,and), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "andlss", OPDPIS(ls,and), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "andges", OPDPIS(ge,and), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "andlts", OPDPIS(lt,and), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "andgts", OPDPIS(gt,and), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "andles", OPDPIS(le,and), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "andals", OPDPIS(al,and), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
/* b */
{ "b", OPB(al), OPBF, AO_1(OPB_S24) },
{ "beq", OPB(eq), OPBF, AO_1(OPB_S24) },
{ "bne", OPB(ne), OPBF, AO_1(OPB_S24) },
{ "bcs", OPB(cs), OPBF, AO_1(OPB_S24) },
{ "bcc", OPB(cc), OPBF, AO_1(OPB_S24) },
{ "bmi", OPB(mi), OPBF, AO_1(OPB_S24) },
{ "bpl", OPB(pl), OPBF, AO_1(OPB_S24) },
{ "bvs", OPB(vs), OPBF, AO_1(OPB_S24) },
{ "bvc", OPB(vc), OPBF, AO_1(OPB_S24) },
{ "bhi", OPB(hi), OPBF, AO_1(OPB_S24) },
{ "bls", OPB(ls), OPBF, AO_1(OPB_S24) },
{ "bge", OPB(ge), OPBF, AO_1(OPB_S24) },
{ "blt", OPB(lt), OPBF, AO_1(OPB_S24) },
{ "bgt", OPB(gt), OPBF, AO_1(OPB_S24) },
{ "ble", OPB(le), OPBF, AO_1(OPB_S24) },
{ "bal", OPB(al), OPBF, AO_1(OPB_S24) },
/* bic */
{ "bic", OPDP(al,bic), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "biceq", OPDP(eq,bic), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "bicne", OPDP(ne,bic), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "biccs", OPDP(cs,bic), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "biccc", OPDP(cc,bic), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "bicmi", OPDP(mi,bic), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "bicpl", OPDP(pl,bic), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "bicvs", OPDP(vs,bic), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "bicvc", OPDP(vc,bic), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "bichi", OPDP(hi,bic), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "bicls", OPDP(ls,bic), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "bicge", OPDP(ge,bic), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "biclt", OPDP(lt,bic), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "bicgt", OPDP(gt,bic), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "bicle", OPDP(le,bic), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "bical", OPDP(al,bic), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "bic", OPDPI(al,bic), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "biceq", OPDPI(eq,bic), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "bicne", OPDPI(ne,bic), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "biccs", OPDPI(cs,bic), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "biccc", OPDPI(cc,bic), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "bicmi", OPDPI(mi,bic), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "bicpl", OPDPI(pl,bic), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "bicvs", OPDPI(vs,bic), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "bicvc", OPDPI(vc,bic), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "bichi", OPDPI(hi,bic), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "bicls", OPDPI(ls,bic), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "bicge", OPDPI(ge,bic), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "biclt", OPDPI(lt,bic), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "bicgt", OPDPI(gt,bic), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "bicle", OPDPI(le,bic), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "bical", OPDPI(al,bic), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "bics", OPDPS(al,bic), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "biceqs", OPDPS(eq,bic), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "bicnes", OPDPS(ne,bic), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "biccss", OPDPS(cs,bic), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "bicccs", OPDPS(cc,bic), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "bicmis", OPDPS(mi,bic), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "bicpls", OPDPS(pl,bic), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "bicvss", OPDPS(vs,bic), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "bicvcs", OPDPS(vc,bic), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "bichis", OPDPS(hi,bic), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "biclss", OPDPS(ls,bic), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "bicges", OPDPS(ge,bic), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "biclts", OPDPS(lt,bic), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "bicgts", OPDPS(gt,bic), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "bicles", OPDPS(le,bic), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "bicals", OPDPS(al,bic), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "bics", OPDPIS(al,bic), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "biceqs", OPDPIS(eq,bic), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "bicnes", OPDPIS(ne,bic), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "biccss", OPDPIS(cs,bic), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "bicccs", OPDPIS(cc,bic), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "bicmis", OPDPIS(mi,bic), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "bicpls", OPDPIS(pl,bic), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "bicvss", OPDPIS(vs,bic), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "bicvcs", OPDPIS(vc,bic), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "bichis", OPDPIS(hi,bic), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "biclss", OPDPIS(ls,bic), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "bicges", OPDPIS(ge,bic), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "biclts", OPDPIS(lt,bic), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "bicgts", OPDPIS(gt,bic), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "bicles", OPDPIS(le,bic), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "bicals", OPDPIS(al,bic), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
/* bl */
{ "bl", OPBL(al), OPBLF, AO_1(OPBL_S24) },
{ "bleq", OPBL(eq), OPBLF, AO_1(OPBL_S24) },
{ "blne", OPBL(ne), OPBLF, AO_1(OPBL_S24) },
{ "blcs", OPBL(cs), OPBLF, AO_1(OPBL_S24) },
{ "blcc", OPBL(cc), OPBLF, AO_1(OPBL_S24) },
{ "blmi", OPBL(mi), OPBLF, AO_1(OPBL_S24) },
{ "blpl", OPBL(pl), OPBLF, AO_1(OPBL_S24) },
{ "blvs", OPBL(vs), OPBLF, AO_1(OPBL_S24) },
{ "blvc", OPBL(vc), OPBLF, AO_1(OPBL_S24) },
{ "blhi", OPBL(hi), OPBLF, AO_1(OPBL_S24) },
{ "blls", OPBL(ls), OPBLF, AO_1(OPBL_S24) },
{ "blge", OPBL(ge), OPBLF, AO_1(OPBL_S24) },
{ "bllt", OPBL(lt), OPBLF, AO_1(OPBL_S24) },
{ "blgt", OPBL(gt), OPBLF, AO_1(OPBL_S24) },
{ "blle", OPBL(le), OPBLF, AO_1(OPBL_S24) },
{ "blal", OPBL(al), OPBLF, AO_1(OPBL_S24) },
/* bx */
{ "bx", OPBX(al), OPBXF, AO_1(OP_R) },
{ "bxeq", OPBX(eq), OPBXF, AO_1(OP_R) },
{ "bxne", OPBX(ne), OPBXF, AO_1(OP_R) },
{ "bxcs", OPBX(cs), OPBXF, AO_1(OP_R) },
{ "bxcc", OPBX(cc), OPBXF, AO_1(OP_R) },
{ "bxmi", OPBX(mi), OPBXF, AO_1(OP_R) },
{ "bxpl", OPBX(pl), OPBXF, AO_1(OP_R) },
{ "bxvs", OPBX(vs), OPBXF, AO_1(OP_R) },
{ "bxvc", OPBX(vc), OPBXF, AO_1(OP_R) },
{ "bxhi", OPBX(hi), OPBXF, AO_1(OP_R) },
{ "bxls", OPBX(ls), OPBXF, AO_1(OP_R) },
{ "bxge", OPBX(ge), OPBXF, AO_1(OP_R) },
{ "bxlt", OPBX(lt), OPBXF, AO_1(OP_R) },
{ "bxgt", OPBX(gt), OPBXF, AO_1(OP_R) },
{ "bxle", OPBX(le), OPBXF, AO_1(OP_R) },
{ "bxal", OPBX(al), OPBXF, AO_1(OP_R) },
/* cdp */
{ "cdp", OPCDO(al), OPCDOF, AO_3(OPCDO_U4, OPCDO_U4, OP_R) },
{ "cdpeq", OPCDO(eq), OPCDOF, AO_3(OPCDO_U4, OPCDO_U4, OP_R) },
{ "cdpne", OPCDO(ne), OPCDOF, AO_3(OPCDO_U4, OPCDO_U4, OP_R) },
{ "cdpcs", OPCDO(cs), OPCDOF, AO_3(OPCDO_U4, OPCDO_U4, OP_R) },
{ "cdpcc", OPCDO(cc), OPCDOF, AO_3(OPCDO_U4, OPCDO_U4, OP_R) },
{ "cdpmi", OPCDO(mi), OPCDOF, AO_3(OPCDO_U4, OPCDO_U4, OP_R) },
{ "cdppl", OPCDO(pl), OPCDOF, AO_3(OPCDO_U4, OPCDO_U4, OP_R) },
{ "cdpvs", OPCDO(vs), OPCDOF, AO_3(OPCDO_U4, OPCDO_U4, OP_R) },
{ "cdpvc", OPCDO(vc), OPCDOF, AO_3(OPCDO_U4, OPCDO_U4, OP_R) },
{ "cdphi", OPCDO(hi), OPCDOF, AO_3(OPCDO_U4, OPCDO_U4, OP_R) },
{ "cdpls", OPCDO(ls), OPCDOF, AO_3(OPCDO_U4, OPCDO_U4, OP_R) },
{ "cdpge", OPCDO(ge), OPCDOF, AO_3(OPCDO_U4, OPCDO_U4, OP_R) },
{ "cdplt", OPCDO(lt), OPCDOF, AO_3(OPCDO_U4, OPCDO_U4, OP_R) },
{ "cdpgt", OPCDO(gt), OPCDOF, AO_3(OPCDO_U4, OPCDO_U4, OP_R) },
{ "cdple", OPCDO(le), OPCDOF, AO_3(OPCDO_U4, OPCDO_U4, OP_R) },
{ "cdpal", OPCDO(al), OPCDOF, AO_3(OPCDO_U4, OPCDO_U4, OP_R) },
/* cmn */
{ "cmn", OPDP(al,cmn), OPDPF, AO_2(OP_R, OP_R) },
{ "cmneq", OPDP(eq,cmn), OPDPF, AO_2(OP_R, OP_R) },
{ "cmnne", OPDP(ne,cmn), OPDPF, AO_2(OP_R, OP_R) },
{ "cmncs", OPDP(cs,cmn), OPDPF, AO_2(OP_R, OP_R) },
{ "cmncc", OPDP(cc,cmn), OPDPF, AO_2(OP_R, OP_R) },
{ "cmnmi", OPDP(mi,cmn), OPDPF, AO_2(OP_R, OP_R) },
{ "cmnpl", OPDP(pl,cmn), OPDPF, AO_2(OP_R, OP_R) },
{ "cmnvs", OPDP(vs,cmn), OPDPF, AO_2(OP_R, OP_R) },
{ "cmnvc", OPDP(vc,cmn), OPDPF, AO_2(OP_R, OP_R) },
{ "cmnhi", OPDP(hi,cmn), OPDPF, AO_2(OP_R, OP_R) },
{ "cmnls", OPDP(ls,cmn), OPDPF, AO_2(OP_R, OP_R) },
{ "cmnge", OPDP(ge,cmn), OPDPF, AO_2(OP_R, OP_R) },
{ "cmnlt", OPDP(lt,cmn), OPDPF, AO_2(OP_R, OP_R) },
{ "cmngt", OPDP(gt,cmn), OPDPF, AO_2(OP_R, OP_R) },
{ "cmnle", OPDP(le,cmn), OPDPF, AO_2(OP_R, OP_R) },
{ "cmnal", OPDP(al,cmn), OPDPF, AO_2(OP_R, OP_R) },
{ "cmn", OPDPI(al,cmn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmneq", OPDPI(eq,cmn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmnne", OPDPI(ne,cmn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmncs", OPDPI(cs,cmn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmncc", OPDPI(cc,cmn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmnmi", OPDPI(mi,cmn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmnpl", OPDPI(pl,cmn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmnvs", OPDPI(vs,cmn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmnvc", OPDPI(vc,cmn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmnhi", OPDPI(hi,cmn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmnls", OPDPI(ls,cmn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmnge", OPDPI(ge,cmn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmnlt", OPDPI(lt,cmn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmngt", OPDPI(gt,cmn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmnle", OPDPI(le,cmn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmnal", OPDPI(al,cmn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmns", OPDPS(al,cmn), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmneqs", OPDPS(eq,cmn), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmnnes", OPDPS(ne,cmn), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmncss", OPDPS(cs,cmn), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmnccs", OPDPS(cc,cmn), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmnmis", OPDPS(mi,cmn), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmnpls", OPDPS(pl,cmn), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmnvss", OPDPS(vs,cmn), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmnvcs", OPDPS(vc,cmn), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmnhis", OPDPS(hi,cmn), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmnlss", OPDPS(ls,cmn), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmnges", OPDPS(ge,cmn), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmnlts", OPDPS(lt,cmn), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmngts", OPDPS(gt,cmn), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmnles", OPDPS(le,cmn), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmnals", OPDPS(al,cmn), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmns", OPDPIS(al,cmn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmneqs", OPDPIS(eq,cmn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmnnes", OPDPIS(ne,cmn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmncss", OPDPIS(cs,cmn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmnccs", OPDPIS(cc,cmn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmnmis", OPDPIS(mi,cmn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmnpls", OPDPIS(pl,cmn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmnvss", OPDPIS(vs,cmn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmnvcs", OPDPIS(vc,cmn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmnhis", OPDPIS(hi,cmn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmnlss", OPDPIS(ls,cmn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmnges", OPDPIS(ge,cmn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmnlts", OPDPIS(lt,cmn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmngts", OPDPIS(gt,cmn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmnles", OPDPIS(le,cmn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmnals", OPDPIS(al,cmn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
/* cmp */
{ "cmp", OPDP(al,cmp), OPDPF, AO_2(OP_R, OP_R) },
{ "cmpeq", OPDP(eq,cmp), OPDPF, AO_2(OP_R, OP_R) },
{ "cmpne", OPDP(ne,cmp), OPDPF, AO_2(OP_R, OP_R) },
{ "cmpcs", OPDP(cs,cmp), OPDPF, AO_2(OP_R, OP_R) },
{ "cmpcc", OPDP(cc,cmp), OPDPF, AO_2(OP_R, OP_R) },
{ "cmpmi", OPDP(mi,cmp), OPDPF, AO_2(OP_R, OP_R) },
{ "cmppl", OPDP(pl,cmp), OPDPF, AO_2(OP_R, OP_R) },
{ "cmpvs", OPDP(vs,cmp), OPDPF, AO_2(OP_R, OP_R) },
{ "cmpvc", OPDP(vc,cmp), OPDPF, AO_2(OP_R, OP_R) },
{ "cmphi", OPDP(hi,cmp), OPDPF, AO_2(OP_R, OP_R) },
{ "cmpls", OPDP(ls,cmp), OPDPF, AO_2(OP_R, OP_R) },
{ "cmpge", OPDP(ge,cmp), OPDPF, AO_2(OP_R, OP_R) },
{ "cmplt", OPDP(lt,cmp), OPDPF, AO_2(OP_R, OP_R) },
{ "cmpgt", OPDP(gt,cmp), OPDPF, AO_2(OP_R, OP_R) },
{ "cmple", OPDP(le,cmp), OPDPF, AO_2(OP_R, OP_R) },
{ "cmpal", OPDP(al,cmp), OPDPF, AO_2(OP_R, OP_R) },
{ "cmp", OPDPI(al,cmp), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmpeq", OPDPI(eq,cmp), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmpne", OPDPI(ne,cmp), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmpcs", OPDPI(cs,cmp), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmpcc", OPDPI(cc,cmp), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmpmi", OPDPI(mi,cmp), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmppl", OPDPI(pl,cmp), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmpvs", OPDPI(vs,cmp), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmpvc", OPDPI(vc,cmp), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmphi", OPDPI(hi,cmp), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmpls", OPDPI(ls,cmp), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmpge", OPDPI(ge,cmp), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmplt", OPDPI(lt,cmp), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmpgt", OPDPI(gt,cmp), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmple", OPDPI(le,cmp), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmpal", OPDPI(al,cmp), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "cmps", OPDPS(al,cmp), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmpeqs", OPDPS(eq,cmp), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmpnes", OPDPS(ne,cmp), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmpcss", OPDPS(cs,cmp), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmpccs", OPDPS(cc,cmp), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmpmis", OPDPS(mi,cmp), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmppls", OPDPS(pl,cmp), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmpvss", OPDPS(vs,cmp), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmpvcs", OPDPS(vc,cmp), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmphis", OPDPS(hi,cmp), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmplss", OPDPS(ls,cmp), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmpges", OPDPS(ge,cmp), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmplts", OPDPS(lt,cmp), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmpgts", OPDPS(gt,cmp), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmples", OPDPS(le,cmp), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmpals", OPDPS(al,cmp), OPDPSF, AO_2(OP_R, OP_R) },
{ "cmps", OPDPIS(al,cmp), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmpeqs", OPDPIS(eq,cmp), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmpnes", OPDPIS(ne,cmp), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmpcss", OPDPIS(cs,cmp), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmpccs", OPDPIS(cc,cmp), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmpmis", OPDPIS(mi,cmp), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmppls", OPDPIS(pl,cmp), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmpvss", OPDPIS(vs,cmp), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmpvcs", OPDPIS(vc,cmp), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmphis", OPDPIS(hi,cmp), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmplss", OPDPIS(ls,cmp), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmpges", OPDPIS(ge,cmp), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmplts", OPDPIS(lt,cmp), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmpgts", OPDPIS(gt,cmp), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmples", OPDPIS(le,cmp), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "cmpals", OPDPIS(al,cmp), OPDPISF,AO_2(OP_R, OPDPI_U12) },
/* eor */
{ "eor", OPDP(al,eor), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "eoreq", OPDP(eq,eor), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "eorne", OPDP(ne,eor), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "eorcs", OPDP(cs,eor), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "eorcc", OPDP(cc,eor), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "eormi", OPDP(mi,eor), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "eorpl", OPDP(pl,eor), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "eorvs", OPDP(vs,eor), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "eorvc", OPDP(vc,eor), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "eorhi", OPDP(hi,eor), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "eorls", OPDP(ls,eor), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "eorge", OPDP(ge,eor), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "eorlt", OPDP(lt,eor), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "eorgt", OPDP(gt,eor), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "eorle", OPDP(le,eor), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "eoral", OPDP(al,eor), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "eor", OPDPI(al,eor), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "eoreq", OPDPI(eq,eor), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "eorne", OPDPI(ne,eor), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "eorcs", OPDPI(cs,eor), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "eorcc", OPDPI(cc,eor), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "eormi", OPDPI(mi,eor), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "eorpl", OPDPI(pl,eor), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "eorvs", OPDPI(vs,eor), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "eorvc", OPDPI(vc,eor), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "eorhi", OPDPI(hi,eor), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "eorls", OPDPI(ls,eor), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "eorge", OPDPI(ge,eor), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "eorlt", OPDPI(lt,eor), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "eorgt", OPDPI(gt,eor), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "eorle", OPDPI(le,eor), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "eoral", OPDPI(al,eor), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "eors", OPDPS(al,eor), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "eoreqs", OPDPS(eq,eor), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "eornes", OPDPS(ne,eor), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "eorcss", OPDPS(cs,eor), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "eorccs", OPDPS(cc,eor), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "eormis", OPDPS(mi,eor), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "eorpls", OPDPS(pl,eor), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "eorvss", OPDPS(vs,eor), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "eorvcs", OPDPS(vc,eor), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "eorhis", OPDPS(hi,eor), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "eorlss", OPDPS(ls,eor), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "eorges", OPDPS(ge,eor), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "eorlts", OPDPS(lt,eor), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "eorgts", OPDPS(gt,eor), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "eorles", OPDPS(le,eor), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "eorals", OPDPS(al,eor), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "eors", OPDPIS(al,eor), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "eoreqs", OPDPIS(eq,eor), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "eornes", OPDPIS(ne,eor), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "eorcss", OPDPIS(cs,eor), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "eorccs", OPDPIS(cc,eor), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "eormis", OPDPIS(mi,eor), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "eorpls", OPDPIS(pl,eor), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "eorvss", OPDPIS(vs,eor), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "eorvcs", OPDPIS(vc,eor), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "eorhis", OPDPIS(hi,eor), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "eorlss", OPDPIS(ls,eor), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "eorges", OPDPIS(ge,eor), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "eorlts", OPDPIS(lt,eor), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "eorgts", OPDPIS(gt,eor), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "eorles", OPDPIS(le,eor), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "eorals", OPDPIS(al,eor), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
/* ldc */
{ "ldc", OPCDTL(al), OPCDTLF,AO_3(OPCDTL_U4, OP_R, OPCDTL_U8)},
{ "ldceq", OPCDTL(eq), OPCDTLF,AO_3(OPCDTL_U4, OP_R, OPCDTL_U8)},
{ "ldcne", OPCDTL(ne), OPCDTLF,AO_3(OPCDTL_U4, OP_R, OPCDTL_U8)},
{ "ldccs", OPCDTL(cs), OPCDTLF,AO_3(OPCDTL_U4, OP_R, OPCDTL_U8)},
{ "ldccc", OPCDTL(cc), OPCDTLF,AO_3(OPCDTL_U4, OP_R, OPCDTL_U8)},
{ "ldcmi", OPCDTL(mi), OPCDTLF,AO_3(OPCDTL_U4, OP_R, OPCDTL_U8)},
{ "ldcpl", OPCDTL(pl), OPCDTLF,AO_3(OPCDTL_U4, OP_R, OPCDTL_U8)},
{ "ldcvs", OPCDTL(vs), OPCDTLF,AO_3(OPCDTL_U4, OP_R, OPCDTL_U8)},
{ "ldcvc", OPCDTL(vc), OPCDTLF,AO_3(OPCDTL_U4, OP_R, OPCDTL_U8)},
{ "ldchi", OPCDTL(hi), OPCDTLF,AO_3(OPCDTL_U4, OP_R, OPCDTL_U8)},
{ "ldcls", OPCDTL(ls), OPCDTLF,AO_3(OPCDTL_U4, OP_R, OPCDTL_U8)},
{ "ldcge", OPCDTL(ge), OPCDTLF,AO_3(OPCDTL_U4, OP_R, OPCDTL_U8)},
{ "ldclt", OPCDTL(lt), OPCDTLF,AO_3(OPCDTL_U4, OP_R, OPCDTL_U8)},
{ "ldcgt", OPCDTL(gt), OPCDTLF,AO_3(OPCDTL_U4, OP_R, OPCDTL_U8)},
{ "ldcle", OPCDTL(le), OPCDTLF,AO_3(OPCDTL_U4, OP_R, OPCDTL_U8)},
{ "ldcal", OPCDTL(al), OPCDTLF,AO_3(OPCDTL_U4, OP_R, OPCDTL_U8)},
/* ldm */
{ "ldm", OPBDTL(al), OPBDTLF,AO_2(OP_R, OPBDT_U16) },
{ "ldmeq", OPBDTL(eq), OPBDTLF,AO_2(OP_R, OPBDT_U16) },
{ "ldmne", OPBDTL(ne), OPBDTLF,AO_2(OP_R, OPBDT_U16) },
{ "ldmcs", OPBDTL(cs), OPBDTLF,AO_2(OP_R, OPBDT_U16) },
{ "ldmcc", OPBDTL(cc), OPBDTLF,AO_2(OP_R, OPBDT_U16) },
{ "ldmmi", OPBDTL(mi), OPBDTLF,AO_2(OP_R, OPBDT_U16) },
{ "ldmpl", OPBDTL(pl), OPBDTLF,AO_2(OP_R, OPBDT_U16) },
{ "ldmvs", OPBDTL(vs), OPBDTLF,AO_2(OP_R, OPBDT_U16) },
{ "ldmvc", OPBDTL(vc), OPBDTLF,AO_2(OP_R, OPBDT_U16) },
{ "ldmhi", OPBDTL(hi), OPBDTLF,AO_2(OP_R, OPBDT_U16) },
{ "ldmls", OPBDTL(ls), OPBDTLF,AO_2(OP_R, OPBDT_U16) },
{ "ldmge", OPBDTL(ge), OPBDTLF,AO_2(OP_R, OPBDT_U16) },
{ "ldmlt", OPBDTL(lt), OPBDTLF,AO_2(OP_R, OPBDT_U16) },
{ "ldmgt", OPBDTL(gt), OPBDTLF,AO_2(OP_R, OPBDT_U16) },
{ "ldmle", OPBDTL(ge), OPBDTLF,AO_2(OP_R, OPBDT_U16) },
{ "ldmal", OPBDTL(al), OPBDTLF,AO_2(OP_R, OPBDT_U16) },
/* ldr */
{ "ldr", OPSDTL(al), OPSDTLF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldreq", OPSDTL(eq), OPSDTLF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrne", OPSDTL(ne), OPSDTLF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrcs", OPSDTL(cs), OPSDTLF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrcc", OPSDTL(cc), OPSDTLF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrmi", OPSDTL(mi), OPSDTLF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrpl", OPSDTL(pl), OPSDTLF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrvs", OPSDTL(vs), OPSDTLF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrvc", OPSDTL(vc), OPSDTLF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrhi", OPSDTL(hi), OPSDTLF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrls", OPSDTL(ls), OPSDTLF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrge", OPSDTL(ge), OPSDTLF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrlt", OPSDTL(lt), OPSDTLF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrgt", OPSDTL(gt), OPSDTLF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrle", OPSDTL(le), OPSDTLF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldral", OPSDTL(al), OPSDTLF,AO_3(OP_R, OP_DR, OP_R) },
/* ldrb */
{ "ldrb", OPSDTLB(al), OPSDTLBF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldreqb", OPSDTLB(eq), OPSDTLBF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrneb", OPSDTLB(ne), OPSDTLBF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrcsb", OPSDTLB(cs), OPSDTLBF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrccb", OPSDTLB(cc), OPSDTLBF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrmib", OPSDTLB(mi), OPSDTLBF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrplb", OPSDTLB(pl), OPSDTLBF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrvsb", OPSDTLB(vs), OPSDTLBF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrvcb", OPSDTLB(vc), OPSDTLBF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrhib", OPSDTLB(hi), OPSDTLBF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrlsb", OPSDTLB(ls), OPSDTLBF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrgeb", OPSDTLB(ge), OPSDTLBF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrltb", OPSDTLB(lt), OPSDTLBF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrgtb", OPSDTLB(gt), OPSDTLBF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldrleb", OPSDTLB(le), OPSDTLBF,AO_3(OP_R, OP_DR, OP_R) },
{ "ldralb", OPSDTLB(al), OPSDTLBF,AO_3(OP_R, OP_DR, OP_R) },
/* mcr */
{ "mcr", OPCRTS(al), OPCRTSF,AO_3(OPCRTS_U4, OPCRTS_U3, OP_R)},
{ "mcreq", OPCRTS(eq), OPCRTSF,AO_3(OPCRTS_U4, OPCRTS_U3, OP_R)},
{ "mcrne", OPCRTS(ne), OPCRTSF,AO_3(OPCRTS_U4, OPCRTS_U3, OP_R)},
{ "mcrcs", OPCRTS(cs), OPCRTSF,AO_3(OPCRTS_U4, OPCRTS_U3, OP_R)},
{ "mcrcc", OPCRTS(cc), OPCRTSF,AO_3(OPCRTS_U4, OPCRTS_U3, OP_R)},
{ "mcrmi", OPCRTS(mi), OPCRTSF,AO_3(OPCRTS_U4, OPCRTS_U3, OP_R)},
{ "mcrpl", OPCRTS(pl), OPCRTSF,AO_3(OPCRTS_U4, OPCRTS_U3, OP_R)},
{ "mcrvs", OPCRTS(vs), OPCRTSF,AO_3(OPCRTS_U4, OPCRTS_U3, OP_R)},
{ "mcrvc", OPCRTS(vc), OPCRTSF,AO_3(OPCRTS_U4, OPCRTS_U3, OP_R)},
{ "mcrhi", OPCRTS(hi), OPCRTSF,AO_3(OPCRTS_U4, OPCRTS_U3, OP_R)},
{ "mcrls", OPCRTS(ls), OPCRTSF,AO_3(OPCRTS_U4, OPCRTS_U3, OP_R)},
{ "mcrge", OPCRTS(ge), OPCRTSF,AO_3(OPCRTS_U4, OPCRTS_U3, OP_R)},
{ "mcrlt", OPCRTS(lt), OPCRTSF,AO_3(OPCRTS_U4, OPCRTS_U3, OP_R)},
{ "mcrgt", OPCRTS(gt), OPCRTSF,AO_3(OPCRTS_U4, OPCRTS_U3, OP_R)},
{ "mcrle", OPCRTS(le), OPCRTSF,AO_3(OPCRTS_U4, OPCRTS_U3, OP_R)},
{ "mcral", OPCRTS(al), OPCRTSF,AO_3(OPCRTS_U4, OPCRTS_U3, OP_R)},
/* mla */
{ "mla", OPMULA(al), OPMULAF,AO_3(OP_R, OP_R, OP_R) },
{ "mlaeq", OPMULA(eq), OPMULAF,AO_3(OP_R, OP_R, OP_R) },
{ "mlane", OPMULA(ne), OPMULAF,AO_3(OP_R, OP_R, OP_R) },
{ "mlacs", OPMULA(cs), OPMULAF,AO_3(OP_R, OP_R, OP_R) },
{ "mlacc", OPMULA(cc), OPMULAF,AO_3(OP_R, OP_R, OP_R) },
{ "mlami", OPMULA(mi), OPMULAF,AO_3(OP_R, OP_R, OP_R) },
{ "mlapl", OPMULA(pl), OPMULAF,AO_3(OP_R, OP_R, OP_R) },
{ "mlavs", OPMULA(vs), OPMULAF,AO_3(OP_R, OP_R, OP_R) },
{ "mlavc", OPMULA(vc), OPMULAF,AO_3(OP_R, OP_R, OP_R) },
{ "mlahi", OPMULA(hi), OPMULAF,AO_3(OP_R, OP_R, OP_R) },
{ "mlals", OPMULA(ls), OPMULAF,AO_3(OP_R, OP_R, OP_R) },
{ "mlage", OPMULA(ge), OPMULAF,AO_3(OP_R, OP_R, OP_R) },
{ "mlalt", OPMULA(lt), OPMULAF,AO_3(OP_R, OP_R, OP_R) },
{ "mlagt", OPMULA(gt), OPMULAF,AO_3(OP_R, OP_R, OP_R) },
{ "mlale", OPMULA(le), OPMULAF,AO_3(OP_R, OP_R, OP_R) },
{ "mlaal", OPMULA(al), OPMULAF,AO_3(OP_R, OP_R, OP_R) },
{ "mlas", OPMULAS(al), OPMULASF,AO_3(OP_R, OP_R, OP_R) },
{ "mlaeqs", OPMULAS(eq), OPMULASF,AO_3(OP_R, OP_R, OP_R) },
{ "mlanes", OPMULAS(ne), OPMULASF,AO_3(OP_R, OP_R, OP_R) },
{ "mlacss", OPMULAS(cs), OPMULASF,AO_3(OP_R, OP_R, OP_R) },
{ "mlaccs", OPMULAS(cc), OPMULASF,AO_3(OP_R, OP_R, OP_R) },
{ "mlamis", OPMULAS(mi), OPMULASF,AO_3(OP_R, OP_R, OP_R) },
{ "mlapls", OPMULAS(pl), OPMULASF,AO_3(OP_R, OP_R, OP_R) },
{ "mlavss", OPMULAS(vs), OPMULASF,AO_3(OP_R, OP_R, OP_R) },
{ "mlavcs", OPMULAS(vc), OPMULASF,AO_3(OP_R, OP_R, OP_R) },
{ "mlahis", OPMULAS(hi), OPMULASF,AO_3(OP_R, OP_R, OP_R) },
{ "mlalss", OPMULAS(ls), OPMULASF,AO_3(OP_R, OP_R, OP_R) },
{ "mlages", OPMULAS(ge), OPMULASF,AO_3(OP_R, OP_R, OP_R) },
{ "mlalts", OPMULAS(lt), OPMULASF,AO_3(OP_R, OP_R, OP_R) },
{ "mlagts", OPMULAS(gt), OPMULASF,AO_3(OP_R, OP_R, OP_R) },
{ "mlales", OPMULAS(le), OPMULASF,AO_3(OP_R, OP_R, OP_R) },
{ "mlaals", OPMULAS(al), OPMULASF,AO_3(OP_R, OP_R, OP_R) },
/* mov */
{ "mov", OPDP(al,mov), OPDPF, AO_2(OP_R, OP_R) },
{ "moveq", OPDP(eq,mov), OPDPF, AO_2(OP_R, OP_R) },
{ "movne", OPDP(ne,mov), OPDPF, AO_2(OP_R, OP_R) },
{ "movcs", OPDP(cs,mov), OPDPF, AO_2(OP_R, OP_R) },
{ "movcc", OPDP(cc,mov), OPDPF, AO_2(OP_R, OP_R) },
{ "movmi", OPDP(mi,mov), OPDPF, AO_2(OP_R, OP_R) },
{ "movpl", OPDP(pl,mov), OPDPF, AO_2(OP_R, OP_R) },
{ "movvs", OPDP(vs,mov), OPDPF, AO_2(OP_R, OP_R) },
{ "movvc", OPDP(vc,mov), OPDPF, AO_2(OP_R, OP_R) },
{ "movhi", OPDP(hi,mov), OPDPF, AO_2(OP_R, OP_R) },
{ "movls", OPDP(ls,mov), OPDPF, AO_2(OP_R, OP_R) },
{ "movge", OPDP(ge,mov), OPDPF, AO_2(OP_R, OP_R) },
{ "movlt", OPDP(lt,mov), OPDPF, AO_2(OP_R, OP_R) },
{ "movgt", OPDP(gt,mov), OPDPF, AO_2(OP_R, OP_R) },
{ "movle", OPDP(le,mov), OPDPF, AO_2(OP_R, OP_R) },
{ "moval", OPDP(al,mov), OPDPF, AO_2(OP_R, OP_R) },
{ "mov", OPDPI(al,mov), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "moveq", OPDPI(eq,mov), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "movne", OPDPI(ne,mov), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "movcs", OPDPI(cs,mov), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "movcc", OPDPI(cc,mov), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "movmi", OPDPI(mi,mov), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "movpl", OPDPI(pl,mov), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "movvs", OPDPI(vs,mov), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "movvc", OPDPI(vc,mov), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "movhi", OPDPI(hi,mov), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "movls", OPDPI(ls,mov), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "movge", OPDPI(ge,mov), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "movlt", OPDPI(lt,mov), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "movgt", OPDPI(gt,mov), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "movle", OPDPI(le,mov), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "moval", OPDPI(al,mov), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "movs", OPDPS(al,mov), OPDPSF, AO_2(OP_R, OP_R) },
{ "moveqs", OPDPS(eq,mov), OPDPSF, AO_2(OP_R, OP_R) },
{ "movnes", OPDPS(ne,mov), OPDPSF, AO_2(OP_R, OP_R) },
{ "movcss", OPDPS(cs,mov), OPDPSF, AO_2(OP_R, OP_R) },
{ "movccs", OPDPS(cc,mov), OPDPSF, AO_2(OP_R, OP_R) },
{ "movmis", OPDPS(mi,mov), OPDPSF, AO_2(OP_R, OP_R) },
{ "movpls", OPDPS(pl,mov), OPDPSF, AO_2(OP_R, OP_R) },
{ "movvss", OPDPS(vs,mov), OPDPSF, AO_2(OP_R, OP_R) },
{ "movvcs", OPDPS(vc,mov), OPDPSF, AO_2(OP_R, OP_R) },
{ "movhis", OPDPS(hi,mov), OPDPSF, AO_2(OP_R, OP_R) },
{ "movlss", OPDPS(ls,mov), OPDPSF, AO_2(OP_R, OP_R) },
{ "movges", OPDPS(ge,mov), OPDPSF, AO_2(OP_R, OP_R) },
{ "movlts", OPDPS(lt,mov), OPDPSF, AO_2(OP_R, OP_R) },
{ "movgts", OPDPS(gt,mov), OPDPSF, AO_2(OP_R, OP_R) },
{ "movles", OPDPS(le,mov), OPDPSF, AO_2(OP_R, OP_R) },
{ "movals", OPDPS(al,mov), OPDPSF, AO_2(OP_R, OP_R) },
{ "movs", OPDPIS(al,mov), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "moveqs", OPDPIS(eq,mov), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "movnes", OPDPIS(ne,mov), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "movcss", OPDPIS(cs,mov), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "movccs", OPDPIS(cc,mov), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "movmis", OPDPIS(mi,mov), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "movpls", OPDPIS(pl,mov), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "movvss", OPDPIS(vs,mov), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "movvcs", OPDPIS(vc,mov), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "movhis", OPDPIS(hi,mov), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "movlss", OPDPIS(ls,mov), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "movges", OPDPIS(ge,mov), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "movlts", OPDPIS(lt,mov), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "movgts", OPDPIS(gt,mov), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "movles", OPDPIS(le,mov), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "movals", OPDPIS(al,mov), OPDPISF,AO_2(OP_R, OPDPI_U12) },
/* mrc */
{ "mrc", OPCRTL(al), OPCRTLF,AO_3(OPCRTL_U4, OPCRTL_U3, OP_R)},
{ "mrceq", OPCRTL(eq), OPCRTLF,AO_3(OPCRTL_U4, OPCRTL_U3, OP_R)},
{ "mrcne", OPCRTL(ne), OPCRTLF,AO_3(OPCRTL_U4, OPCRTL_U3, OP_R)},
{ "mrccs", OPCRTL(cs), OPCRTLF,AO_3(OPCRTL_U4, OPCRTL_U3, OP_R)},
{ "mrccc", OPCRTL(cc), OPCRTLF,AO_3(OPCRTL_U4, OPCRTL_U3, OP_R)},
{ "mrcmi", OPCRTL(mi), OPCRTLF,AO_3(OPCRTL_U4, OPCRTL_U3, OP_R)},
{ "mrcpl", OPCRTL(pl), OPCRTLF,AO_3(OPCRTL_U4, OPCRTL_U3, OP_R)},
{ "mrcvs", OPCRTL(vs), OPCRTLF,AO_3(OPCRTL_U4, OPCRTL_U3, OP_R)},
{ "mrcvc", OPCRTL(vc), OPCRTLF,AO_3(OPCRTL_U4, OPCRTL_U3, OP_R)},
{ "mrchi", OPCRTL(hi), OPCRTLF,AO_3(OPCRTL_U4, OPCRTL_U3, OP_R)},
{ "mrcls", OPCRTL(ls), OPCRTLF,AO_3(OPCRTL_U4, OPCRTL_U3, OP_R)},
{ "mrcge", OPCRTL(ge), OPCRTLF,AO_3(OPCRTL_U4, OPCRTL_U3, OP_R)},
{ "mrclt", OPCRTL(lt), OPCRTLF,AO_3(OPCRTL_U4, OPCRTL_U3, OP_R)},
{ "mrcgt", OPCRTL(gt), OPCRTLF,AO_3(OPCRTL_U4, OPCRTL_U3, OP_R)},
{ "mrcle", OPCRTL(le), OPCRTLF,AO_3(OPCRTL_U4, OPCRTL_U3, OP_R)},
{ "mrcal", OPCRTL(al), OPCRTLF,AO_3(OPCRTL_U4, OPCRTL_U3, OP_R)},
/* mrs */
{ "mrs", OPPT(al), OPPTF, AO_2(OP_R, OP_R_CPSR) },
{ "mrseq", OPPT(eq), OPPTF, AO_2(OP_R, OP_R_CPSR) },
{ "mrsne", OPPT(ne), OPPTF, AO_2(OP_R, OP_R_CPSR) },
{ "mrscs", OPPT(cs), OPPTF, AO_2(OP_R, OP_R_CPSR) },
{ "mrscc", OPPT(cc), OPPTF, AO_2(OP_R, OP_R_CPSR) },
{ "mrsmi", OPPT(mi), OPPTF, AO_2(OP_R, OP_R_CPSR) },
{ "mrspl", OPPT(pl), OPPTF, AO_2(OP_R, OP_R_CPSR) },
{ "mrsvs", OPPT(vs), OPPTF, AO_2(OP_R, OP_R_CPSR) },
{ "mrsvc", OPPT(vc), OPPTF, AO_2(OP_R, OP_R_CPSR) },
{ "mrshi", OPPT(hi), OPPTF, AO_2(OP_R, OP_R_CPSR) },
{ "mrsls", OPPT(ls), OPPTF, AO_2(OP_R, OP_R_CPSR) },
{ "mrsge", OPPT(ge), OPPTF, AO_2(OP_R, OP_R_CPSR) },
{ "mrslt", OPPT(lt), OPPTF, AO_2(OP_R, OP_R_CPSR) },
{ "mrsgt", OPPT(gt), OPPTF, AO_2(OP_R, OP_R_CPSR) },
{ "mrsle", OPPT(le), OPPTF, AO_2(OP_R, OP_R_CPSR) },
{ "mrsal", OPPT(al), OPPTF, AO_2(OP_R, OP_R_CPSR) },
{ "mrs", OPPT(al), OPPTF, AO_2(OP_R, OP_R_SPSR) },
{ "mrseq", OPPT(eq), OPPTF, AO_2(OP_R, OP_R_SPSR) },
{ "mrsne", OPPT(ne), OPPTF, AO_2(OP_R, OP_R_SPSR) },
{ "mrscs", OPPT(cs), OPPTF, AO_2(OP_R, OP_R_SPSR) },
{ "mrscc", OPPT(cc), OPPTF, AO_2(OP_R, OP_R_SPSR) },
{ "mrsmi", OPPT(mi), OPPTF, AO_2(OP_R, OP_R_SPSR) },
{ "mrspl", OPPT(pl), OPPTF, AO_2(OP_R, OP_R_SPSR) },
{ "mrsvs", OPPT(vs), OPPTF, AO_2(OP_R, OP_R_SPSR) },
{ "mrsvc", OPPT(vc), OPPTF, AO_2(OP_R, OP_R_SPSR) },
{ "mrshi", OPPT(hi), OPPTF, AO_2(OP_R, OP_R_SPSR) },
{ "mrsls", OPPT(ls), OPPTF, AO_2(OP_R, OP_R_SPSR) },
{ "mrsge", OPPT(ge), OPPTF, AO_2(OP_R, OP_R_SPSR) },
{ "mrslt", OPPT(lt), OPPTF, AO_2(OP_R, OP_R_SPSR) },
{ "mrsgt", OPPT(gt), OPPTF, AO_2(OP_R, OP_R_SPSR) },
{ "mrsle", OPPT(le), OPPTF, AO_2(OP_R, OP_R_SPSR) },
{ "mrsal", OPPT(al), OPPTF, AO_2(OP_R, OP_R_SPSR) },
/* msr */
{ "msr", OPPTI(al), OPPTIF, AO_2(OP_R_CPSR, OP_R) },
{ "msreq", OPPTI(eq), OPPTIF, AO_2(OP_R_CPSR, OP_R) },
{ "msrne", OPPTI(ne), OPPTIF, AO_2(OP_R_CPSR, OP_R) },
{ "msrcs", OPPTI(cs), OPPTIF, AO_2(OP_R_CPSR, OP_R) },
{ "msrcc", OPPTI(cc), OPPTIF, AO_2(OP_R_CPSR, OP_R) },
{ "msrmi", OPPTI(mi), OPPTIF, AO_2(OP_R_CPSR, OP_R) },
{ "msrpl", OPPTI(pl), OPPTIF, AO_2(OP_R_CPSR, OP_R) },
{ "msrvs", OPPTI(vs), OPPTIF, AO_2(OP_R_CPSR, OP_R) },
{ "msrvc", OPPTI(vc), OPPTIF, AO_2(OP_R_CPSR, OP_R) },
{ "msrhi", OPPTI(hi), OPPTIF, AO_2(OP_R_CPSR, OP_R) },
{ "msrls", OPPTI(ls), OPPTIF, AO_2(OP_R_CPSR, OP_R) },
{ "msrge", OPPTI(ge), OPPTIF, AO_2(OP_R_CPSR, OP_R) },
{ "msrlt", OPPTI(lt), OPPTIF, AO_2(OP_R_CPSR, OP_R) },
{ "msrgt", OPPTI(gt), OPPTIF, AO_2(OP_R_CPSR, OP_R) },
{ "msrle", OPPTI(le), OPPTIF, AO_2(OP_R_CPSR, OP_R) },
{ "msral", OPPTI(al), OPPTIF, AO_2(OP_R_CPSR, OP_R) },
{ "msr", OPPTI(al), OPPTIF, AO_2(OP_R_SPSR, OP_R) },
{ "msreq", OPPTI(eq), OPPTIF, AO_2(OP_R_SPSR, OP_R) },
{ "msrne", OPPTI(ne), OPPTIF, AO_2(OP_R_SPSR, OP_R) },
{ "msrcs", OPPTI(cs), OPPTIF, AO_2(OP_R_SPSR, OP_R) },
{ "msrcc", OPPTI(cc), OPPTIF, AO_2(OP_R_SPSR, OP_R) },
{ "msrmi", OPPTI(mi), OPPTIF, AO_2(OP_R_SPSR, OP_R) },
{ "msrpl", OPPTI(pl), OPPTIF, AO_2(OP_R_SPSR, OP_R) },
{ "msrvs", OPPTI(vs), OPPTIF, AO_2(OP_R_SPSR, OP_R) },
{ "msrvc", OPPTI(vc), OPPTIF, AO_2(OP_R_SPSR, OP_R) },
{ "msrhi", OPPTI(hi), OPPTIF, AO_2(OP_R_SPSR, OP_R) },
{ "msrls", OPPTI(ls), OPPTIF, AO_2(OP_R_SPSR, OP_R) },
{ "msrge", OPPTI(ge), OPPTIF, AO_2(OP_R_SPSR, OP_R) },
{ "msrlt", OPPTI(lt), OPPTIF, AO_2(OP_R_SPSR, OP_R) },
{ "msrgt", OPPTI(gt), OPPTIF, AO_2(OP_R_SPSR, OP_R) },
{ "msrle", OPPTI(le), OPPTIF, AO_2(OP_R_SPSR, OP_R) },
{ "msral", OPPTI(al), OPPTIF, AO_2(OP_R_SPSR, OP_R) },
/* mul */
{ "mul", OPMUL(al), OPMULF, AO_3(OP_R, OP_R, OP_R) },
{ "muleq", OPMUL(eq), OPMULF, AO_3(OP_R, OP_R, OP_R) },
{ "mulne", OPMUL(ne), OPMULF, AO_3(OP_R, OP_R, OP_R) },
{ "mulcs", OPMUL(cs), OPMULF, AO_3(OP_R, OP_R, OP_R) },
{ "mulcc", OPMUL(cc), OPMULF, AO_3(OP_R, OP_R, OP_R) },
{ "mulmi", OPMUL(mi), OPMULF, AO_3(OP_R, OP_R, OP_R) },
{ "mulpl", OPMUL(pl), OPMULF, AO_3(OP_R, OP_R, OP_R) },
{ "mulvs", OPMUL(vs), OPMULF, AO_3(OP_R, OP_R, OP_R) },
{ "mulvc", OPMUL(vc), OPMULF, AO_3(OP_R, OP_R, OP_R) },
{ "mulhi", OPMUL(hi), OPMULF, AO_3(OP_R, OP_R, OP_R) },
{ "mulls", OPMUL(ls), OPMULF, AO_3(OP_R, OP_R, OP_R) },
{ "mulge", OPMUL(ge), OPMULF, AO_3(OP_R, OP_R, OP_R) },
{ "mullt", OPMUL(lt), OPMULF, AO_3(OP_R, OP_R, OP_R) },
{ "mulgt", OPMUL(gt), OPMULF, AO_3(OP_R, OP_R, OP_R) },
{ "mulle", OPMUL(le), OPMULF, AO_3(OP_R, OP_R, OP_R) },
{ "mulal", OPMUL(al), OPMULF, AO_3(OP_R, OP_R, OP_R) },
/* muls */
{ "muls", OPMULS(al), OPMULSF,AO_3(OP_R, OP_R, OP_R) },
{ "muleqs", OPMULS(eq), OPMULSF,AO_3(OP_R, OP_R, OP_R) },
{ "mulnes", OPMULS(ne), OPMULSF,AO_3(OP_R, OP_R, OP_R) },
{ "mulcss", OPMULS(cs), OPMULSF,AO_3(OP_R, OP_R, OP_R) },
{ "mulccs", OPMULS(cc), OPMULSF,AO_3(OP_R, OP_R, OP_R) },
{ "mulmis", OPMULS(mi), OPMULSF,AO_3(OP_R, OP_R, OP_R) },
{ "mulpls", OPMULS(pl), OPMULSF,AO_3(OP_R, OP_R, OP_R) },
{ "mulvss", OPMULS(vs), OPMULSF,AO_3(OP_R, OP_R, OP_R) },
{ "mulvcs", OPMULS(vc), OPMULSF,AO_3(OP_R, OP_R, OP_R) },
{ "mulhis", OPMULS(hi), OPMULSF,AO_3(OP_R, OP_R, OP_R) },
{ "mullss", OPMULS(ls), OPMULSF,AO_3(OP_R, OP_R, OP_R) },
{ "mulges", OPMULS(ge), OPMULSF,AO_3(OP_R, OP_R, OP_R) },
{ "mullts", OPMULS(lt), OPMULSF,AO_3(OP_R, OP_R, OP_R) },
{ "mulgts", OPMULS(gt), OPMULSF,AO_3(OP_R, OP_R, OP_R) },
{ "mulles", OPMULS(le), OPMULSF,AO_3(OP_R, OP_R, OP_R) },
{ "mulals", OPMULS(al), OPMULSF,AO_3(OP_R, OP_R, OP_R) },
/* mvn */
{ "mvn", OPDP(al,mvn), OPDPF, AO_2(OP_R, OP_R) },
{ "mvneq", OPDP(eq,mvn), OPDPF, AO_2(OP_R, OP_R) },
{ "mvnne", OPDP(ne,mvn), OPDPF, AO_2(OP_R, OP_R) },
{ "mvncs", OPDP(cs,mvn), OPDPF, AO_2(OP_R, OP_R) },
{ "mvncc", OPDP(cc,mvn), OPDPF, AO_2(OP_R, OP_R) },
{ "mvnmi", OPDP(mi,mvn), OPDPF, AO_2(OP_R, OP_R) },
{ "mvnpl", OPDP(pl,mvn), OPDPF, AO_2(OP_R, OP_R) },
{ "mvnvs", OPDP(vs,mvn), OPDPF, AO_2(OP_R, OP_R) },
{ "mvnvc", OPDP(vc,mvn), OPDPF, AO_2(OP_R, OP_R) },
{ "mvnhi", OPDP(hi,mvn), OPDPF, AO_2(OP_R, OP_R) },
{ "mvnls", OPDP(ls,mvn), OPDPF, AO_2(OP_R, OP_R) },
{ "mvnge", OPDP(ge,mvn), OPDPF, AO_2(OP_R, OP_R) },
{ "mvnlt", OPDP(lt,mvn), OPDPF, AO_2(OP_R, OP_R) },
{ "mvngt", OPDP(gt,mvn), OPDPF, AO_2(OP_R, OP_R) },
{ "mvnle", OPDP(le,mvn), OPDPF, AO_2(OP_R, OP_R) },
{ "mvnal", OPDP(al,mvn), OPDPF, AO_2(OP_R, OP_R) },
{ "mvn", OPDPI(al,mvn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "mvneq", OPDPI(eq,mvn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "mvnne", OPDPI(ne,mvn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "mvncs", OPDPI(cs,mvn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "mvncc", OPDPI(cc,mvn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "mvnmi", OPDPI(mi,mvn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "mvnpl", OPDPI(pl,mvn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "mvnvs", OPDPI(vs,mvn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "mvnvc", OPDPI(vc,mvn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "mvnhi", OPDPI(hi,mvn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "mvnls", OPDPI(ls,mvn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "mvnge", OPDPI(ge,mvn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "mvnlt", OPDPI(lt,mvn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "mvngt", OPDPI(gt,mvn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "mvnle", OPDPI(le,mvn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "mvnal", OPDPI(al,mvn), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "mvns", OPDPS(al,mvn), OPDPSF, AO_2(OP_R, OP_R) },
{ "mvneqs", OPDPS(eq,mvn), OPDPSF, AO_2(OP_R, OP_R) },
{ "mvnnes", OPDPS(ne,mvn), OPDPSF, AO_2(OP_R, OP_R) },
{ "mvncss", OPDPS(cs,mvn), OPDPSF, AO_2(OP_R, OP_R) },
{ "mvnccs", OPDPS(cc,mvn), OPDPSF, AO_2(OP_R, OP_R) },
{ "mvnmis", OPDPS(mi,mvn), OPDPSF, AO_2(OP_R, OP_R) },
{ "mvnpls", OPDPS(pl,mvn), OPDPSF, AO_2(OP_R, OP_R) },
{ "mvnvss", OPDPS(vs,mvn), OPDPSF, AO_2(OP_R, OP_R) },
{ "mvnvcs", OPDPS(vc,mvn), OPDPSF, AO_2(OP_R, OP_R) },
{ "mvnhis", OPDPS(hi,mvn), OPDPSF, AO_2(OP_R, OP_R) },
{ "mvnlss", OPDPS(ls,mvn), OPDPSF, AO_2(OP_R, OP_R) },
{ "mvnges", OPDPS(ge,mvn), OPDPSF, AO_2(OP_R, OP_R) },
{ "mvnlts", OPDPS(lt,mvn), OPDPSF, AO_2(OP_R, OP_R) },
{ "mvngts", OPDPS(gt,mvn), OPDPSF, AO_2(OP_R, OP_R) },
{ "mvnles", OPDPS(le,mvn), OPDPSF, AO_2(OP_R, OP_R) },
{ "mvnals", OPDPS(al,mvn), OPDPSF, AO_2(OP_R, OP_R) },
{ "mvns", OPDPIS(al,mvn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "mvneqs", OPDPIS(eq,mvn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "mvnnes", OPDPIS(ne,mvn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "mvncss", OPDPIS(cs,mvn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "mvnccs", OPDPIS(cc,mvn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "mvnmis", OPDPIS(mi,mvn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "mvnpls", OPDPIS(pl,mvn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "mvnvss", OPDPIS(vs,mvn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "mvnvcs", OPDPIS(vc,mvn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "mvnhis", OPDPIS(hi,mvn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "mvnlss", OPDPIS(ls,mvn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "mvnges", OPDPIS(ge,mvn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "mvnlts", OPDPIS(lt,mvn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "mvngts", OPDPIS(gt,mvn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "mvnles", OPDPIS(le,mvn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "mvnals", OPDPIS(al,mvn), OPDPISF,AO_2(OP_R, OPDPI_U12) },
/* nop */
{ "nop", OPDP(al,mov), OPDPF, AO_0() },
/* orr */
{ "orr", OPDP(al,orr), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "orreq", OPDP(eq,orr), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "orrne", OPDP(ne,orr), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "orrcs", OPDP(cs,orr), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "orrcc", OPDP(cc,orr), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "orrmi", OPDP(mi,orr), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "orrpl", OPDP(pl,orr), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "orrvs", OPDP(vs,orr), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "orrvc", OPDP(vc,orr), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "orrhi", OPDP(hi,orr), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "orrls", OPDP(ls,orr), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "orrge", OPDP(ge,orr), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "orrlt", OPDP(lt,orr), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "orrgt", OPDP(gt,orr), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "orrle", OPDP(le,orr), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "orral", OPDP(al,orr), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "orr", OPDPI(al,orr), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "orreq", OPDPI(eq,orr), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "orrne", OPDPI(ne,orr), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "orrcs", OPDPI(cs,orr), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "orrcc", OPDPI(cc,orr), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "orrmi", OPDPI(mi,orr), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "orrpl", OPDPI(pl,orr), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "orrvs", OPDPI(vs,orr), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "orrvc", OPDPI(vc,orr), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "orrhi", OPDPI(hi,orr), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "orrls", OPDPI(ls,orr), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "orrge", OPDPI(ge,orr), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "orrlt", OPDPI(lt,orr), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "orrgt", OPDPI(gt,orr), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "orrle", OPDPI(le,orr), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "orral", OPDPI(al,orr), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "orrs", OPDPS(al,orr), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "orreqs", OPDPS(eq,orr), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "orrnes", OPDPS(ne,orr), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "orrcss", OPDPS(cs,orr), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "orrccs", OPDPS(cc,orr), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "orrmis", OPDPS(mi,orr), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "orrpls", OPDPS(pl,orr), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "orrvss", OPDPS(vs,orr), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "orrvcs", OPDPS(vc,orr), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "orrhis", OPDPS(hi,orr), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "orrlss", OPDPS(ls,orr), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "orrges", OPDPS(ge,orr), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "orrlts", OPDPS(lt,orr), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "orrgts", OPDPS(gt,orr), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "orrles", OPDPS(le,orr), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "orrals", OPDPS(al,orr), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "orrs", OPDPIS(al,orr), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "orreqs", OPDPIS(eq,orr), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "orrnes", OPDPIS(ne,orr), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "orrcss", OPDPIS(cs,orr), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "orrccs", OPDPIS(cc,orr), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "orrmis", OPDPIS(mi,orr), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "orrpls", OPDPIS(pl,orr), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "orrvss", OPDPIS(vs,orr), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "orrvcs", OPDPIS(vc,orr), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "orrhis", OPDPIS(hi,orr), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "orrlss", OPDPIS(ls,orr), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "orrges", OPDPIS(ge,orr), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "orrlts", OPDPIS(lt,orr), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "orrgts", OPDPIS(gt,orr), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "orrles", OPDPIS(le,orr), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "orrals", OPDPIS(al,orr), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
/* rsb */
{ "rsb", OPDP(al,rsb), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbeq", OPDP(eq,rsb), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbne", OPDP(ne,rsb), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbcs", OPDP(cs,rsb), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbcc", OPDP(cc,rsb), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbmi", OPDP(mi,rsb), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbpl", OPDP(pl,rsb), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbvs", OPDP(vs,rsb), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbvc", OPDP(vc,rsb), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbhi", OPDP(hi,rsb), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbls", OPDP(ls,rsb), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbge", OPDP(ge,rsb), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsblt", OPDP(lt,rsb), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbgt", OPDP(gt,rsb), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsble", OPDP(le,rsb), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbal", OPDP(al,rsb), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsb", OPDPI(al,rsb), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsbeq", OPDPI(eq,rsb), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsbne", OPDPI(ne,rsb), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsbcs", OPDPI(cs,rsb), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsbcc", OPDPI(cc,rsb), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsbmi", OPDPI(mi,rsb), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsbpl", OPDPI(pl,rsb), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsbvs", OPDPI(vs,rsb), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsbvc", OPDPI(vc,rsb), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsbhi", OPDPI(hi,rsb), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsbls", OPDPI(ls,rsb), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsbge", OPDPI(ge,rsb), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsblt", OPDPI(lt,rsb), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsbgt", OPDPI(gt,rsb), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsble", OPDPI(le,rsb), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsbal", OPDPI(al,rsb), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsbs", OPDPS(al,rsb), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbeqs", OPDPS(eq,rsb), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbnes", OPDPS(ne,rsb), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbcss", OPDPS(cs,rsb), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbccs", OPDPS(cc,rsb), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbmis", OPDPS(mi,rsb), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbpls", OPDPS(pl,rsb), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbvss", OPDPS(vs,rsb), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbvcs", OPDPS(vc,rsb), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbhis", OPDPS(hi,rsb), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsblss", OPDPS(ls,rsb), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbges", OPDPS(ge,rsb), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsblts", OPDPS(lt,rsb), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbgts", OPDPS(gt,rsb), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbles", OPDPS(le,rsb), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbals", OPDPS(al,rsb), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsbs", OPDPIS(al,rsb), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsbeqs", OPDPIS(eq,rsb), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsbnes", OPDPIS(ne,rsb), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsbcss", OPDPIS(cs,rsb), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsbccs", OPDPIS(cc,rsb), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsbmis", OPDPIS(mi,rsb), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsbpls", OPDPIS(pl,rsb), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsbvss", OPDPIS(vs,rsb), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsbvcs", OPDPIS(vc,rsb), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsbhis", OPDPIS(hi,rsb), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsblss", OPDPIS(ls,rsb), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsbges", OPDPIS(ge,rsb), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsblts", OPDPIS(lt,rsb), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsbgts", OPDPIS(gt,rsb), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsbles", OPDPIS(le,rsb), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsbals", OPDPIS(al,rsb), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
/* rsc */
{ "rsc", OPDP(al,rsc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsceq", OPDP(eq,rsc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rscne", OPDP(ne,rsc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsccs", OPDP(cs,rsc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsccc", OPDP(cc,rsc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rscmi", OPDP(mi,rsc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rscpl", OPDP(pl,rsc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rscvs", OPDP(vs,rsc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rscvc", OPDP(vc,rsc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rschi", OPDP(hi,rsc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rscls", OPDP(ls,rsc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rscge", OPDP(ge,rsc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsclt", OPDP(lt,rsc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rscgt", OPDP(gt,rsc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rscle", OPDP(le,rsc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rscal", OPDP(al,rsc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "rsc", OPDPI(al,rsc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsceq", OPDPI(eq,rsc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rscne", OPDPI(ne,rsc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsccs", OPDPI(cs,rsc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsccc", OPDPI(cc,rsc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rscmi", OPDPI(mi,rsc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rscpl", OPDPI(pl,rsc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rscvs", OPDPI(vs,rsc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rscvc", OPDPI(vc,rsc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rschi", OPDPI(hi,rsc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rscls", OPDPI(ls,rsc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rscge", OPDPI(ge,rsc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rsclt", OPDPI(lt,rsc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rscgt", OPDPI(gt,rsc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rscle", OPDPI(le,rsc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rscal", OPDPI(al,rsc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "rscs", OPDPS(al,rsc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsceqs", OPDPS(eq,rsc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rscnes", OPDPS(ne,rsc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsccss", OPDPS(cs,rsc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rscccs", OPDPS(cc,rsc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rscmis", OPDPS(mi,rsc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rscpls", OPDPS(pl,rsc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rscvss", OPDPS(vs,rsc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rscvcs", OPDPS(vc,rsc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rschis", OPDPS(hi,rsc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsclss", OPDPS(ls,rsc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rscges", OPDPS(ge,rsc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rsclts", OPDPS(lt,rsc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rscgts", OPDPS(gt,rsc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rscles", OPDPS(le,rsc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rscals", OPDPS(al,rsc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "rscs", OPDPIS(al,rsc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsceqs", OPDPIS(eq,rsc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rscnes", OPDPIS(ne,rsc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsccss", OPDPIS(cs,rsc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rscccs", OPDPIS(cc,rsc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rscmis", OPDPIS(mi,rsc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rscpls", OPDPIS(pl,rsc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rscvss", OPDPIS(vs,rsc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rscvcs", OPDPIS(vc,rsc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rschis", OPDPIS(hi,rsc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsclss", OPDPIS(ls,rsc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rscges", OPDPIS(ge,rsc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rsclts", OPDPIS(lt,rsc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rscgts", OPDPIS(gt,rsc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rscles", OPDPIS(le,rsc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "rscals", OPDPIS(al,rsc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
/* sbc */
{ "sbc", OPDP(al,sbc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sbceq", OPDP(eq,sbc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcne", OPDP(ne,sbc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sbccs", OPDP(cs,sbc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sbccc", OPDP(cc,sbc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcmi", OPDP(mi,sbc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcpl", OPDP(pl,sbc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcvs", OPDP(vs,sbc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcvc", OPDP(vc,sbc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sbchi", OPDP(hi,sbc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcls", OPDP(ls,sbc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcge", OPDP(ge,sbc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sbclt", OPDP(lt,sbc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcgt", OPDP(gt,sbc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcle", OPDP(le,sbc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcal", OPDP(al,sbc), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sbc", OPDPI(al,sbc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "sbceq", OPDPI(eq,sbc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "sbcne", OPDPI(ne,sbc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "sbccs", OPDPI(cs,sbc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "sbccc", OPDPI(cc,sbc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "sbcmi", OPDPI(mi,sbc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "sbcpl", OPDPI(pl,sbc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "sbcvs", OPDPI(vs,sbc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "sbcvc", OPDPI(vc,sbc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "sbchi", OPDPI(hi,sbc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "sbcls", OPDPI(ls,sbc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "sbcge", OPDPI(ge,sbc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "sbclt", OPDPI(lt,sbc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "sbcgt", OPDPI(gt,sbc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "sbcle", OPDPI(le,sbc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "sbcal", OPDPI(al,sbc), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "sbcs", OPDPS(al,sbc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sbceqs", OPDPS(eq,sbc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcnes", OPDPS(ne,sbc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sbccss", OPDPS(cs,sbc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcccs", OPDPS(cc,sbc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcmis", OPDPS(mi,sbc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcpls", OPDPS(pl,sbc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcvss", OPDPS(vs,sbc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcvcs", OPDPS(vc,sbc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sbchis", OPDPS(hi,sbc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sbclss", OPDPS(ls,sbc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcges", OPDPS(ge,sbc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sbclts", OPDPS(lt,sbc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcgts", OPDPS(gt,sbc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcles", OPDPS(le,sbc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcals", OPDPS(al,sbc), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sbcs", OPDPIS(al,sbc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "sbceqs", OPDPIS(eq,sbc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "sbcnes", OPDPIS(ne,sbc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "sbccss", OPDPIS(cs,sbc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "sbcccs", OPDPIS(cc,sbc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "sbcmis", OPDPIS(mi,sbc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "sbcpls", OPDPIS(pl,sbc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "sbcvss", OPDPIS(vs,sbc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "sbcvcs", OPDPIS(vc,sbc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "sbchis", OPDPIS(hi,sbc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "sbclss", OPDPIS(ls,sbc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "sbcges", OPDPIS(ge,sbc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "sbclts", OPDPIS(lt,sbc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "sbcgts", OPDPIS(gt,sbc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "sbcles", OPDPIS(le,sbc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "sbcals", OPDPIS(al,sbc), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
/* stc */
{ "stc", OPCDTS(al), OPCDTSF,AO_3(OPCDTS_U4, OP_R, OPCDTS_U8)},
{ "stceq", OPCDTS(eq), OPCDTSF,AO_3(OPCDTS_U4, OP_R, OPCDTS_U8)},
{ "stcne", OPCDTS(ne), OPCDTSF,AO_3(OPCDTS_U4, OP_R, OPCDTS_U8)},
{ "stccs", OPCDTS(cs), OPCDTSF,AO_3(OPCDTS_U4, OP_R, OPCDTS_U8)},
{ "stccc", OPCDTS(cc), OPCDTSF,AO_3(OPCDTS_U4, OP_R, OPCDTS_U8)},
{ "stcmi", OPCDTS(mi), OPCDTSF,AO_3(OPCDTS_U4, OP_R, OPCDTS_U8)},
{ "stcpl", OPCDTS(pl), OPCDTSF,AO_3(OPCDTS_U4, OP_R, OPCDTS_U8)},
{ "stcvs", OPCDTS(vs), OPCDTSF,AO_3(OPCDTS_U4, OP_R, OPCDTS_U8)},
{ "stcvc", OPCDTS(vc), OPCDTSF,AO_3(OPCDTS_U4, OP_R, OPCDTS_U8)},
{ "stchi", OPCDTS(hi), OPCDTSF,AO_3(OPCDTS_U4, OP_R, OPCDTS_U8)},
{ "stcls", OPCDTS(ls), OPCDTSF,AO_3(OPCDTS_U4, OP_R, OPCDTS_U8)},
{ "stcge", OPCDTS(ge), OPCDTSF,AO_3(OPCDTS_U4, OP_R, OPCDTS_U8)},
{ "stclt", OPCDTS(lt), OPCDTSF,AO_3(OPCDTS_U4, OP_R, OPCDTS_U8)},
{ "stcgt", OPCDTS(gt), OPCDTSF,AO_3(OPCDTS_U4, OP_R, OPCDTS_U8)},
{ "stcle", OPCDTS(le), OPCDTSF,AO_3(OPCDTS_U4, OP_R, OPCDTS_U8)},
{ "stcal", OPCDTS(al), OPCDTSF,AO_3(OPCDTS_U4, OP_R, OPCDTS_U8)},
/* stm */
{ "stm", OPBDTS(al), OPBDTSF,AO_2(OP_R, OPBDT_U16) },
{ "stmeq", OPBDTS(eq), OPBDTSF,AO_2(OP_R, OPBDT_U16) },
{ "stmne", OPBDTS(ne), OPBDTSF,AO_2(OP_R, OPBDT_U16) },
{ "stmcs", OPBDTS(cs), OPBDTSF,AO_2(OP_R, OPBDT_U16) },
{ "stmcc", OPBDTS(cc), OPBDTSF,AO_2(OP_R, OPBDT_U16) },
{ "stmmi", OPBDTS(mi), OPBDTSF,AO_2(OP_R, OPBDT_U16) },
{ "stmpl", OPBDTS(pl), OPBDTSF,AO_2(OP_R, OPBDT_U16) },
{ "stmvs", OPBDTS(vs), OPBDTSF,AO_2(OP_R, OPBDT_U16) },
{ "stmvc", OPBDTS(vc), OPBDTSF,AO_2(OP_R, OPBDT_U16) },
{ "stmhi", OPBDTS(hi), OPBDTSF,AO_2(OP_R, OPBDT_U16) },
{ "stmls", OPBDTS(ls), OPBDTSF,AO_2(OP_R, OPBDT_U16) },
{ "stmge", OPBDTS(ge), OPBDTSF,AO_2(OP_R, OPBDT_U16) },
{ "stmlt", OPBDTS(lt), OPBDTSF,AO_2(OP_R, OPBDT_U16) },
{ "stmgt", OPBDTS(gt), OPBDTSF,AO_2(OP_R, OPBDT_U16) },
{ "stmle", OPBDTS(ge), OPBDTSF,AO_2(OP_R, OPBDT_U16) },
{ "stmal", OPBDTS(al), OPBDTSF,AO_2(OP_R, OPBDT_U16) },
/* str */
{ "str", OPSDTS(al), OPSDTSF,AO_3(OP_R, OP_DR, OP_R) },
{ "streq", OPSDTS(eq), OPSDTSF,AO_3(OP_R, OP_DR, OP_R) },
{ "strne", OPSDTS(ne), OPSDTSF,AO_3(OP_R, OP_DR, OP_R) },
{ "strcs", OPSDTS(cs), OPSDTSF,AO_3(OP_R, OP_DR, OP_R) },
{ "strcc", OPSDTS(cc), OPSDTSF,AO_3(OP_R, OP_DR, OP_R) },
{ "strmi", OPSDTS(mi), OPSDTSF,AO_3(OP_R, OP_DR, OP_R) },
{ "strpl", OPSDTS(pl), OPSDTSF,AO_3(OP_R, OP_DR, OP_R) },
{ "strvs", OPSDTS(vs), OPSDTSF,AO_3(OP_R, OP_DR, OP_R) },
{ "strvc", OPSDTS(vc), OPSDTSF,AO_3(OP_R, OP_DR, OP_R) },
{ "strhi", OPSDTS(hi), OPSDTSF,AO_3(OP_R, OP_DR, OP_R) },
{ "strls", OPSDTS(ls), OPSDTSF,AO_3(OP_R, OP_DR, OP_R) },
{ "strge", OPSDTS(ge), OPSDTSF,AO_3(OP_R, OP_DR, OP_R) },
{ "strlt", OPSDTS(lt), OPSDTSF,AO_3(OP_R, OP_DR, OP_R) },
{ "strgt", OPSDTS(gt), OPSDTSF,AO_3(OP_R, OP_DR, OP_R) },
{ "strle", OPSDTS(le), OPSDTSF,AO_3(OP_R, OP_DR, OP_R) },
{ "stral", OPSDTS(al), OPSDTSF,AO_3(OP_R, OP_DR, OP_R) },
/* strb */
{ "strb", OPSDTSB(al), OPSDTSBF,AO_3(OP_R, OP_DR, OP_R) },
{ "streqb", OPSDTSB(eq), OPSDTSBF,AO_3(OP_R, OP_DR, OP_R) },
{ "strneb", OPSDTSB(ne), OPSDTSBF,AO_3(OP_R, OP_DR, OP_R) },
{ "strcsb", OPSDTSB(cs), OPSDTSBF,AO_3(OP_R, OP_DR, OP_R) },
{ "strccb", OPSDTSB(cc), OPSDTSBF,AO_3(OP_R, OP_DR, OP_R) },
{ "strmib", OPSDTSB(mi), OPSDTSBF,AO_3(OP_R, OP_DR, OP_R) },
{ "strplb", OPSDTSB(pl), OPSDTSBF,AO_3(OP_R, OP_DR, OP_R) },
{ "strvsb", OPSDTSB(vs), OPSDTSBF,AO_3(OP_R, OP_DR, OP_R) },
{ "strvcb", OPSDTSB(vc), OPSDTSBF,AO_3(OP_R, OP_DR, OP_R) },
{ "strhib", OPSDTSB(hi), OPSDTSBF,AO_3(OP_R, OP_DR, OP_R) },
{ "strlsb", OPSDTSB(ls), OPSDTSBF,AO_3(OP_R, OP_DR, OP_R) },
{ "strgeb", OPSDTSB(ge), OPSDTSBF,AO_3(OP_R, OP_DR, OP_R) },
{ "strltb", OPSDTSB(lt), OPSDTSBF,AO_3(OP_R, OP_DR, OP_R) },
{ "strgtb", OPSDTSB(gt), OPSDTSBF,AO_3(OP_R, OP_DR, OP_R) },
{ "strleb", OPSDTSB(le), OPSDTSBF,AO_3(OP_R, OP_DR, OP_R) },
{ "stralb", OPSDTSB(al), OPSDTSBF,AO_3(OP_R, OP_DR, OP_R) },
/* sub */
{ "sub", OPDP(al,sub), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "subeq", OPDP(eq,sub), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "subne", OPDP(ne,sub), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "subcs", OPDP(cs,sub), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "subcc", OPDP(cc,sub), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "submi", OPDP(mi,sub), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "subpl", OPDP(pl,sub), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "subvs", OPDP(vs,sub), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "subvc", OPDP(vc,sub), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "subhi", OPDP(hi,sub), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "subls", OPDP(ls,sub), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "subge", OPDP(ge,sub), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sublt", OPDP(lt,sub), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "subgt", OPDP(gt,sub), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "suble", OPDP(le,sub), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "subal", OPDP(al,sub), OPDPF, AO_3(OP_R, OP_R, OP_R) },
{ "sub", OPDPI(al,sub), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "subeq", OPDPI(eq,sub), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "subne", OPDPI(ne,sub), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "subcs", OPDPI(cs,sub), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "subcc", OPDPI(cc,sub), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "submi", OPDPI(mi,sub), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "subpl", OPDPI(pl,sub), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "subvs", OPDPI(vs,sub), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "subvc", OPDPI(vc,sub), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "subhi", OPDPI(hi,sub), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "subls", OPDPI(ls,sub), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "subge", OPDPI(ge,sub), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "sublt", OPDPI(lt,sub), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "subgt", OPDPI(gt,sub), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "suble", OPDPI(le,sub), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "subal", OPDPI(al,sub), OPDPIF, AO_3(OP_R, OP_R, OPDPI_U12) },
{ "subs", OPDPS(al,sub), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "subeqs", OPDPS(eq,sub), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "subnes", OPDPS(ne,sub), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "subcss", OPDPS(cs,sub), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "subccs", OPDPS(cc,sub), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "submis", OPDPS(mi,sub), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "subpls", OPDPS(pl,sub), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "subvss", OPDPS(vs,sub), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "subvcs", OPDPS(vc,sub), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "subhis", OPDPS(hi,sub), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sublss", OPDPS(ls,sub), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "subges", OPDPS(ge,sub), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "sublts", OPDPS(lt,sub), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "subgts", OPDPS(gt,sub), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "subles", OPDPS(le,sub), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "subals", OPDPS(al,sub), OPDPSF, AO_3(OP_R, OP_R, OP_R) },
{ "subs", OPDPIS(al,sub), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "subeqs", OPDPIS(eq,sub), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "subnes", OPDPIS(ne,sub), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "subcss", OPDPIS(cs,sub), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "subccs", OPDPIS(cc,sub), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "submis", OPDPIS(mi,sub), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "subpls", OPDPIS(pl,sub), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "subvss", OPDPIS(vs,sub), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "subvcs", OPDPIS(vc,sub), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "subhis", OPDPIS(hi,sub), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "sublss", OPDPIS(ls,sub), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "subges", OPDPIS(ge,sub), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "sublts", OPDPIS(lt,sub), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "subgts", OPDPIS(gt,sub), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "subles", OPDPIS(le,sub), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
{ "subals", OPDPIS(al,sub), OPDPISF,AO_3(OP_R, OP_R, OPDPIS_U12) },
/* swi */
{ "swi", OPSI(al), OPSIF, AO_1(OPSI_U24) },
{ "swieq", OPSI(eq), OPSIF, AO_1(OPSI_U24) },
{ "swine", OPSI(ne), OPSIF, AO_1(OPSI_U24) },
{ "swics", OPSI(cs), OPSIF, AO_1(OPSI_U24) },
{ "swicc", OPSI(cc), OPSIF, AO_1(OPSI_U24) },
{ "swimi", OPSI(mi), OPSIF, AO_1(OPSI_U24) },
{ "swipl", OPSI(pl), OPSIF, AO_1(OPSI_U24) },
{ "swivs", OPSI(vs), OPSIF, AO_1(OPSI_U24) },
{ "swivc", OPSI(vc), OPSIF, AO_1(OPSI_U24) },
{ "swihi", OPSI(hi), OPSIF, AO_1(OPSI_U24) },
{ "swils", OPSI(ls), OPSIF, AO_1(OPSI_U24) },
{ "swige", OPSI(ge), OPSIF, AO_1(OPSI_U24) },
{ "swilt", OPSI(lt), OPSIF, AO_1(OPSI_U24) },
{ "swigt", OPSI(gt), OPSIF, AO_1(OPSI_U24) },
{ "swile", OPSI(le), OPSIF, AO_1(OPSI_U24) },
{ "swial", OPSI(al), OPSIF, AO_1(OPSI_U24) },
/* swp */
{ "swp", OPSDS(al), OPSDSF, AO_3(OP_R, OP_R, OP_DR) },
{ "swpeq", OPSDS(eq), OPSDSF, AO_3(OP_R, OP_R, OP_DR) },
{ "swpne", OPSDS(ne), OPSDSF, AO_3(OP_R, OP_R, OP_DR) },
{ "swpcs", OPSDS(cs), OPSDSF, AO_3(OP_R, OP_R, OP_DR) },
{ "swpcc", OPSDS(cc), OPSDSF, AO_3(OP_R, OP_R, OP_DR) },
{ "swpmi", OPSDS(mi), OPSDSF, AO_3(OP_R, OP_R, OP_DR) },
{ "swppl", OPSDS(pl), OPSDSF, AO_3(OP_R, OP_R, OP_DR) },
{ "swpvs", OPSDS(vs), OPSDSF, AO_3(OP_R, OP_R, OP_DR) },
{ "swpvc", OPSDS(vc), OPSDSF, AO_3(OP_R, OP_R, OP_DR) },
{ "swphi", OPSDS(hi), OPSDSF, AO_3(OP_R, OP_R, OP_DR) },
{ "swpls", OPSDS(ls), OPSDSF, AO_3(OP_R, OP_R, OP_DR) },
{ "swpge", OPSDS(ge), OPSDSF, AO_3(OP_R, OP_R, OP_DR) },
{ "swplt", OPSDS(lt), OPSDSF, AO_3(OP_R, OP_R, OP_DR) },
{ "swpgt", OPSDS(gt), OPSDSF, AO_3(OP_R, OP_R, OP_DR) },
{ "swple", OPSDS(le), OPSDSF, AO_3(OP_R, OP_R, OP_DR) },
{ "swpal", OPSDS(al), OPSDSF, AO_3(OP_R, OP_R, OP_DR) },
/* swpb */
{ "swpb", OPSDSB(al), OPSDSBF,AO_3(OP_R, OP_R, OP_DR) },
{ "swpeqb", OPSDSB(eq), OPSDSBF,AO_3(OP_R, OP_R, OP_DR) },
{ "swpneb", OPSDSB(ne), OPSDSBF,AO_3(OP_R, OP_R, OP_DR) },
{ "swpcsb", OPSDSB(cs), OPSDSBF,AO_3(OP_R, OP_R, OP_DR) },
{ "swpccb", OPSDSB(cc), OPSDSBF,AO_3(OP_R, OP_R, OP_DR) },
{ "swpmib", OPSDSB(mi), OPSDSBF,AO_3(OP_R, OP_R, OP_DR) },
{ "swpplb", OPSDSB(pl), OPSDSBF,AO_3(OP_R, OP_R, OP_DR) },
{ "swpvsb", OPSDSB(vs), OPSDSBF,AO_3(OP_R, OP_R, OP_DR) },
{ "swpvcb", OPSDSB(vc), OPSDSBF,AO_3(OP_R, OP_R, OP_DR) },
{ "swphib", OPSDSB(hi), OPSDSBF,AO_3(OP_R, OP_R, OP_DR) },
{ "swplsb", OPSDSB(ls), OPSDSBF,AO_3(OP_R, OP_R, OP_DR) },
{ "swpgeb", OPSDSB(ge), OPSDSBF,AO_3(OP_R, OP_R, OP_DR) },
{ "swpltb", OPSDSB(lt), OPSDSBF,AO_3(OP_R, OP_R, OP_DR) },
{ "swpgtb", OPSDSB(gt), OPSDSBF,AO_3(OP_R, OP_R, OP_DR) },
{ "swpleb", OPSDSB(le), OPSDSBF,AO_3(OP_R, OP_R, OP_DR) },
{ "swpalb", OPSDSB(al), OPSDSBF,AO_3(OP_R, OP_R, OP_DR) },
/* teq */
{ "teq", OPDP(al,teq), OPDPF, AO_2(OP_R, OP_R) },
{ "teqeq", OPDP(eq,teq), OPDPF, AO_2(OP_R, OP_R) },
{ "teqne", OPDP(ne,teq), OPDPF, AO_2(OP_R, OP_R) },
{ "teqcs", OPDP(cs,teq), OPDPF, AO_2(OP_R, OP_R) },
{ "teqcc", OPDP(cc,teq), OPDPF, AO_2(OP_R, OP_R) },
{ "teqmi", OPDP(mi,teq), OPDPF, AO_2(OP_R, OP_R) },
{ "teqpl", OPDP(pl,teq), OPDPF, AO_2(OP_R, OP_R) },
{ "teqvs", OPDP(vs,teq), OPDPF, AO_2(OP_R, OP_R) },
{ "teqvc", OPDP(vc,teq), OPDPF, AO_2(OP_R, OP_R) },
{ "teqhi", OPDP(hi,teq), OPDPF, AO_2(OP_R, OP_R) },
{ "teqls", OPDP(ls,teq), OPDPF, AO_2(OP_R, OP_R) },
{ "teqge", OPDP(ge,teq), OPDPF, AO_2(OP_R, OP_R) },
{ "teqlt", OPDP(lt,teq), OPDPF, AO_2(OP_R, OP_R) },
{ "teqgt", OPDP(gt,teq), OPDPF, AO_2(OP_R, OP_R) },
{ "teqle", OPDP(le,teq), OPDPF, AO_2(OP_R, OP_R) },
{ "teqal", OPDP(al,teq), OPDPF, AO_2(OP_R, OP_R) },
{ "teq", OPDPI(al,teq), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "teqeq", OPDPI(eq,teq), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "teqne", OPDPI(ne,teq), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "teqcs", OPDPI(cs,teq), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "teqcc", OPDPI(cc,teq), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "teqmi", OPDPI(mi,teq), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "teqpl", OPDPI(pl,teq), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "teqvs", OPDPI(vs,teq), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "teqvc", OPDPI(vc,teq), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "teqhi", OPDPI(hi,teq), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "teqls", OPDPI(ls,teq), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "teqge", OPDPI(ge,teq), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "teqlt", OPDPI(lt,teq), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "teqgt", OPDPI(gt,teq), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "teqle", OPDPI(le,teq), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "teqal", OPDPI(al,teq), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "teqs", OPDPS(al,teq), OPDPSF, AO_2(OP_R, OP_R) },
{ "teqeqs", OPDPS(eq,teq), OPDPSF, AO_2(OP_R, OP_R) },
{ "teqnes", OPDPS(ne,teq), OPDPSF, AO_2(OP_R, OP_R) },
{ "teqcss", OPDPS(cs,teq), OPDPSF, AO_2(OP_R, OP_R) },
{ "teqccs", OPDPS(cc,teq), OPDPSF, AO_2(OP_R, OP_R) },
{ "teqmis", OPDPS(mi,teq), OPDPSF, AO_2(OP_R, OP_R) },
{ "teqpls", OPDPS(pl,teq), OPDPSF, AO_2(OP_R, OP_R) },
{ "teqvss", OPDPS(vs,teq), OPDPSF, AO_2(OP_R, OP_R) },
{ "teqvcs", OPDPS(vc,teq), OPDPSF, AO_2(OP_R, OP_R) },
{ "teqhis", OPDPS(hi,teq), OPDPSF, AO_2(OP_R, OP_R) },
{ "teqlss", OPDPS(ls,teq), OPDPSF, AO_2(OP_R, OP_R) },
{ "teqges", OPDPS(ge,teq), OPDPSF, AO_2(OP_R, OP_R) },
{ "teqlts", OPDPS(lt,teq), OPDPSF, AO_2(OP_R, OP_R) },
{ "teqgts", OPDPS(gt,teq), OPDPSF, AO_2(OP_R, OP_R) },
{ "teqles", OPDPS(le,teq), OPDPSF, AO_2(OP_R, OP_R) },
{ "teqals", OPDPS(al,teq), OPDPSF, AO_2(OP_R, OP_R) },
{ "teqs", OPDPIS(al,teq), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "teqeqs", OPDPIS(eq,teq), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "teqnes", OPDPIS(ne,teq), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "teqcss", OPDPIS(cs,teq), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "teqccs", OPDPIS(cc,teq), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "teqmis", OPDPIS(mi,teq), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "teqpls", OPDPIS(pl,teq), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "teqvss", OPDPIS(vs,teq), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "teqvcs", OPDPIS(vc,teq), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "teqhis", OPDPIS(hi,teq), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "teqlss", OPDPIS(ls,teq), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "teqges", OPDPIS(ge,teq), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "teqlts", OPDPIS(lt,teq), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "teqgts", OPDPIS(gt,teq), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "teqles", OPDPIS(le,teq), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "teqals", OPDPIS(al,teq), OPDPISF,AO_2(OP_R, OPDPI_U12) },
/* tst */
{ "tst", OPDP(al,tst), OPDPF, AO_2(OP_R, OP_R) },
{ "tsteq", OPDP(eq,tst), OPDPF, AO_2(OP_R, OP_R) },
{ "tstne", OPDP(ne,tst), OPDPF, AO_2(OP_R, OP_R) },
{ "tstcs", OPDP(cs,tst), OPDPF, AO_2(OP_R, OP_R) },
{ "tstcc", OPDP(cc,tst), OPDPF, AO_2(OP_R, OP_R) },
{ "tstmi", OPDP(mi,tst), OPDPF, AO_2(OP_R, OP_R) },
{ "tstpl", OPDP(pl,tst), OPDPF, AO_2(OP_R, OP_R) },
{ "tstvs", OPDP(vs,tst), OPDPF, AO_2(OP_R, OP_R) },
{ "tstvc", OPDP(vc,tst), OPDPF, AO_2(OP_R, OP_R) },
{ "tsthi", OPDP(hi,tst), OPDPF, AO_2(OP_R, OP_R) },
{ "tstls", OPDP(ls,tst), OPDPF, AO_2(OP_R, OP_R) },
{ "tstge", OPDP(ge,tst), OPDPF, AO_2(OP_R, OP_R) },
{ "tstlt", OPDP(lt,tst), OPDPF, AO_2(OP_R, OP_R) },
{ "tstgt", OPDP(gt,tst), OPDPF, AO_2(OP_R, OP_R) },
{ "tstle", OPDP(le,tst), OPDPF, AO_2(OP_R, OP_R) },
{ "tstal", OPDP(al,tst), OPDPF, AO_2(OP_R, OP_R) },
{ "tst", OPDPI(al,tst), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "tsteq", OPDPI(eq,tst), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "tstne", OPDPI(ne,tst), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "tstcs", OPDPI(cs,tst), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "tstcc", OPDPI(cc,tst), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "tstmi", OPDPI(mi,tst), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "tstpl", OPDPI(pl,tst), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "tstvs", OPDPI(vs,tst), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "tstvc", OPDPI(vc,tst), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "tsthi", OPDPI(hi,tst), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "tstls", OPDPI(ls,tst), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "tstge", OPDPI(ge,tst), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "tstlt", OPDPI(lt,tst), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "tstgt", OPDPI(gt,tst), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "tstle", OPDPI(le,tst), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "tstal", OPDPI(al,tst), OPDPIF, AO_2(OP_R, OPDPI_U12) },
{ "tsts", OPDPS(al,tst), OPDPSF, AO_2(OP_R, OP_R) },
{ "tsteqs", OPDPS(eq,tst), OPDPSF, AO_2(OP_R, OP_R) },
{ "tstnes", OPDPS(ne,tst), OPDPSF, AO_2(OP_R, OP_R) },
{ "tstcss", OPDPS(cs,tst), OPDPSF, AO_2(OP_R, OP_R) },
{ "tstccs", OPDPS(cc,tst), OPDPSF, AO_2(OP_R, OP_R) },
{ "tstmis", OPDPS(mi,tst), OPDPSF, AO_2(OP_R, OP_R) },
{ "tstpls", OPDPS(pl,tst), OPDPSF, AO_2(OP_R, OP_R) },
{ "tstvss", OPDPS(vs,tst), OPDPSF, AO_2(OP_R, OP_R) },
{ "tstvcs", OPDPS(vc,tst), OPDPSF, AO_2(OP_R, OP_R) },
{ "tsthis", OPDPS(hi,tst), OPDPSF, AO_2(OP_R, OP_R) },
{ "tstlss", OPDPS(ls,tst), OPDPSF, AO_2(OP_R, OP_R) },
{ "tstges", OPDPS(ge,tst), OPDPSF, AO_2(OP_R, OP_R) },
{ "tstlts", OPDPS(lt,tst), OPDPSF, AO_2(OP_R, OP_R) },
{ "tstgts", OPDPS(gt,tst), OPDPSF, AO_2(OP_R, OP_R) },
{ "tstles", OPDPS(le,tst), OPDPSF, AO_2(OP_R, OP_R) },
{ "tstals", OPDPS(al,tst), OPDPSF, AO_2(OP_R, OP_R) },
{ "tsts", OPDPIS(al,tst), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "tsteqs", OPDPIS(eq,tst), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "tstnes", OPDPIS(ne,tst), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "tstcss", OPDPIS(cs,tst), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "tstccs", OPDPIS(cc,tst), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "tstmis", OPDPIS(mi,tst), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "tstpls", OPDPIS(pl,tst), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "tstvss", OPDPIS(vs,tst), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "tstvcs", OPDPIS(vc,tst), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "tsthis", OPDPIS(hi,tst), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "tstlss", OPDPIS(ls,tst), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "tstges", OPDPIS(ge,tst), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "tstlts", OPDPIS(lt,tst), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "tstgts", OPDPIS(gt,tst), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "tstles", OPDPIS(le,tst), OPDPISF,AO_2(OP_R, OPDPI_U12) },
{ "tstals", OPDPIS(al,tst), OPDPISF,AO_2(OP_R, OPDPI_U12) },