From 8d51b3517d2c6d1b57f8719a5b44cde5fcdecbc7 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sun, 28 Feb 2016 18:02:25 -0800 Subject: [PATCH] VAX: Add computed results to instruction history trace --- VAX/vax_cpu.c | 113 +++++- VAX/vax_defs.h | 16 + VAX/vax_sys.c | 1027 ++++++++++++++++++++++++------------------------ 3 files changed, 627 insertions(+), 529 deletions(-) diff --git a/VAX/vax_cpu.c b/VAX/vax_cpu.c index b755b5c4..89526015 100644 --- a/VAX/vax_cpu.c +++ b/VAX/vax_cpu.c @@ -215,18 +215,20 @@ #define WRITE_L(r) if (spec > (GRN | nPC)) \ Write (va, r, L_LONG, WA); \ else R[rn] = (r) -#define WRITE_Q(rl,rh) if (spec > (GRN | nPC)) { \ +#define WRITE_Q(arl,arh) if (spec > (GRN | nPC)) { \ if ((Test (va + 7, WA, &mstat) >= 0) || \ (Test (va, WA, &mstat) < 0)) \ - Write (va, rl, L_LONG, WA); \ - Write (va + 4, rh, L_LONG, WA); \ + Write (va, arl, L_LONG, WA); \ + Write (va + 4, arh, L_LONG, WA); \ } \ else { \ if (rn >= nSP) \ RSVD_ADDR_FAULT; \ - R[rn] = rl; \ - R[rn + 1] = rh; \ - } + R[rn] = arl; \ + R[rn + 1] = arh; \ + } \ + r = arl; \ + rh = arh #define HIST_MIN 64 @@ -238,7 +240,8 @@ typedef struct { int32 PSL; int32 opc; uint8 inst[INST_SIZE]; - int32 opnd[OPND_SIZE]; + uint32 opnd[OPND_SIZE]; + uint32 res[6]; } InstHistory; uint32 *M = NULL; /* memory */ @@ -668,6 +671,43 @@ for ( ;; ) { uint32 va, iad; int32 opnd[OPND_SIZE]; /* operand queue */ +/* Optionally record instruction history results from prior instruction */ + + if (hst_lnt) { + InstHistory *hlast = &hst[hst_p ? hst_p-1 : hst_lnt -1]; + int res = (drom[hlast->opc][0] & DR_M_RESMASK) >> DR_V_RESMASK; + + switch ((drom[hlast->opc][0] & DR_M_RESMASK) >> DR_V_RESMASK) { + case RB_O>>DR_V_RESMASK: + break; + case RB_Q>>DR_V_RESMASK: + hlast->res[1] = rh; + hlast->res[0] = r; + break; + case RB_B>>DR_V_RESMASK: + case RB_W>>DR_V_RESMASK: + case RB_L>>DR_V_RESMASK: + hlast->res[0] = r; + break; + case RB_R5>>DR_V_RESMASK: + hlast->res[5] = R[5]; + hlast->res[4] = R[4]; + case RB_R3>>DR_V_RESMASK: + hlast->res[3] = R[3]; + hlast->res[2] = R[2]; + case RB_R1>>DR_V_RESMASK: + hlast->res[1] = R[1]; + case RB_R0>>DR_V_RESMASK: + hlast->res[0] = R[0]; + break; + case RB_SP>>DR_V_RESMASK: + hlast->res[0] = Read (SP, L_LONG, RA); + break; + default: + break; + } + } + if (cpu_astop) { cpu_astop = 0; ABORT (SCPE_STOP); @@ -1605,17 +1645,20 @@ for ( ;; ) { */ case CLRB: - WRITE_B (0); /* store result */ + r = 0; + WRITE_B (r); /* store result */ CC_ZZ1P; /* set cc's */ break; case CLRW: - WRITE_W (0); /* store result */ + r = 0; + WRITE_W (r); /* store result */ CC_ZZ1P; /* set cc's */ break; case CLRL: - WRITE_L (0); /* store result */ + r = 0; + WRITE_L (r); /* store result */ CC_ZZ1P; /* set cc's */ break; @@ -1714,19 +1757,22 @@ for ( ;; ) { */ case MOVB: - WRITE_B (op0); /* result */ - CC_IIZP_B (op0); /* set cc's */ + r = op0; + WRITE_B (r); /* result */ + CC_IIZP_B (r); /* set cc's */ break; case MOVW: case MOVZBW: - WRITE_W (op0); /* result */ - CC_IIZP_W (op0); /* set cc's */ + r = op0; + WRITE_W (r); /* result */ + CC_IIZP_W (r); /* set cc's */ break; case MOVL: case MOVZBL: case MOVZWL: case MOVAB: case MOVAW: case MOVAL: case MOVAQ: - WRITE_L (op0); /* result */ - CC_IIZP_L (op0); /* set cc's */ + r = op0; + WRITE_L (r); /* result */ + CC_IIZP_L (r); /* set cc's */ break; case MCOMB: @@ -3521,7 +3567,7 @@ for (k = 0; k < count; k++) { /* print specified */ if (hst_switches & SWMASK('T')) /* sim_time */ fprintf(st, "%10.0f ", h->time); fprintf(st, "%08X %08X| ", h->iPC, h->PSL); /* PC, PSL */ - numspec = drom[h->opc][0] & DR_NSPMASK; /* #specifiers */ + numspec = DR_GETNSP (drom[h->opc][0]); /* #specifiers */ if (opcode[h->opc] == NULL) /* undefined? */ fprintf (st, "%03X (undefined)", h->opc); else if (h->PSL & PSL_FPD) /* FPD set? */ @@ -3594,6 +3640,39 @@ for (i = 1, j = 0, more = FALSE; i <= numspec; i++) { /* loop thru specs */ break; } /* end case */ } /* end for */ +if ((line == 0) && ((drom[h->opc][0] & DR_M_RESMASK) >> DR_V_RESMASK)) { + fprintf (st, " ->"); + switch ((drom[h->opc][0] & DR_M_RESMASK) >> DR_V_RESMASK) { + case RB_O>>DR_V_RESMASK: + fprintf (st, " %08X %08X %08X %08X", h->res[0], h->res[1], h->res[2], h->res[3]); + break; + case RB_Q>>DR_V_RESMASK: + fprintf (st, " %08X %08X", h->res[0], h->res[1]); + break; + case RB_B>>DR_V_RESMASK: + case RB_W>>DR_V_RESMASK: + case RB_L>>DR_V_RESMASK: + fprintf (st, " %08X", h->res[0]); + break; + case RB_R5>>DR_V_RESMASK: + case RB_R3>>DR_V_RESMASK: + case RB_R1>>DR_V_RESMASK: + case RB_R0>>DR_V_RESMASK: + if (1) { + static const int rcnts[] = {1, 2, 4, 6}; + int i; + + for (i = 0; i < rcnts[((drom[h->opc][0] & DR_M_RESMASK) - RB_R0) >> DR_V_RESMASK]; i++) + fprintf (st, " R%d:%08X", i, h->res[i]); + } + break; + case RB_SP>>DR_V_RESMASK: + fprintf (st, " SP: %08X", h->res[0]); + break; + default: + break; + } + } return more; } diff --git a/VAX/vax_defs.h b/VAX/vax_defs.h index e7444500..745cedbf 100644 --- a/VAX/vax_defs.h +++ b/VAX/vax_defs.h @@ -381,6 +381,22 @@ #define DR_GETNSP(x) ((x) & DR_NSPMASK) #define DR_GETUSP(x) (((x) >> DR_V_USPMASK) & DR_M_USPMASK) +/* Extra bits in the opcode flag word of the Decode ROM array only for history results */ + +#define DR_V_RESMASK 8 +#define DR_M_RESMASK 0x0F00 +#define RB_0 (0 << DR_V_RESMASK) /* No Results */ +#define RB_B (1 << DR_V_RESMASK) /* Byte Result */ +#define RB_W (2 << DR_V_RESMASK) /* Word Result */ +#define RB_L (3 << DR_V_RESMASK) /* Long Result */ +#define RB_Q (4 << DR_V_RESMASK) /* Quad Result */ +#define RB_O (5 << DR_V_RESMASK) /* Octa Result */ +#define RB_R0 (6 << DR_V_RESMASK) /* Reg R0 */ +#define RB_R1 (7 << DR_V_RESMASK) /* Regs R0-R1 */ +#define RB_R3 (8 << DR_V_RESMASK) /* Regs R0-R3 */ +#define RB_R5 (9 << DR_V_RESMASK) /* Regs R0-R5 */ +#define RB_SP (10 << DR_V_RESMASK) /* @SP */ + /* Decode ROM: specifier entry */ #define DR_ACMASK 0x300 /* type */ diff --git a/VAX/vax_sys.c b/VAX/vax_sys.c index 554e3c2a..8eb9496d 100644 --- a/VAX/vax_sys.c +++ b/VAX/vax_sys.c @@ -111,521 +111,524 @@ const char *sim_stop_messages[] = { - FPD legal flag (DR_F) - number of specifiers for decode bits 2:0> - number of specifiers for unimplemented instructions bits<6:4> + - ONLY for simulator instruction history bits 11:8 reflect where + results are recorded from */ + const uint16 drom[NUM_INST][MAX_SPEC + 1] = { -{0, 0, 0, 0, 0, 0, 0}, /* HALT */ -{0, 0, 0, 0, 0, 0, 0}, /* NOP */ -{0, 0, 0, 0, 0, 0, 0}, /* REI */ -{0, 0, 0, 0, 0, 0, 0}, /* BPT */ -{0, 0, 0, 0, 0, 0, 0}, /* RET */ -{0, 0, 0, 0, 0, 0, 0}, /* RSB */ -{0, 0, 0, 0, 0, 0, 0}, /* LDPCTX */ -{0, 0, 0, 0, 0, 0, 0}, /* SVPCTX */ -{4+DR_F, RW, AB, RW, AB, 0, 0}, /* CVTPS */ -{4+DR_F, RW, AB, RW, AB, 0, 0}, /* CVTSP */ -{6, RL, RL, RL, RL, RL, WL}, /* INDEX */ -{4+DR_F, AB, RL, RW, AB, 0, 0}, /* CRC */ -{3, RB, RW, AB, 0, 0, 0}, /* PROBER */ -{3, RB, RW, AB, 0, 0, 0}, /* PROBEW */ -{2, AB, AB, 0, 0, 0, 0}, /* INSQUE */ -{2, AB, WL, 0, 0, 0, 0}, /* REMQUE */ -{1, BB, 0, 0, 0, 0, 0}, /* BSBB */ -{1, BB, 0, 0, 0, 0, 0}, /* BRB */ -{1, BB, 0, 0, 0, 0, 0}, /* BNEQ */ -{1, BB, 0, 0, 0, 0, 0}, /* BEQL */ -{1, BB, 0, 0, 0, 0, 0}, /* BGTR */ -{1, BB, 0, 0, 0, 0, 0}, /* BLEQ */ -{1, AB, 0, 0, 0, 0, 0}, /* JSB */ -{1, AB, 0, 0, 0, 0, 0}, /* JMP */ -{1, BB, 0, 0, 0, 0, 0}, /* BGEQ */ -{1, BB, 0, 0, 0, 0, 0}, /* BLSS */ -{1, BB, 0, 0, 0, 0, 0}, /* BGTRU */ -{1, BB, 0, 0, 0, 0, 0}, /* BLEQU */ -{1, BB, 0, 0, 0, 0, 0}, /* BVC */ -{1, BB, 0, 0, 0, 0, 0}, /* BVS */ -{1, BB, 0, 0, 0, 0, 0}, /* BCC */ -{1, BB, 0, 0, 0, 0, 0}, /* BCS */ -{4+DR_F, RW, AB, RW, AB, 0, 0}, /* ADDP4 */ -{6+DR_F, RW, AB, RW, AB, RW, AB}, /* ADDP6 */ -{4+DR_F, RW, AB, RW, AB, 0, 0}, /* SUBP4 */ -{6+DR_F, RW, AB, RW, AB, RW, AB}, /* SUBP6 */ -{5+DR_F, RW, AB, AB, RW, AB, 0}, /* CVTPT */ -{6+DR_F, RW, AB, RW, AB, RW, AB}, /* MULP6 */ -{5+DR_F, RW, AB, AB, RW, AB, 0}, /* CVTTP */ -{6+DR_F, RW, AB, RW, AB, RW, AB}, /* DIVP6 */ -{3+DR_F, RW, AB, AB, 0, 0, 0}, /* MOVC3 */ -{3+DR_F, RW, AB, AB, 0, 0, 0}, /* CMPC3 */ -{4+DR_F, RW, AB, AB, RB, 0, 0}, /* SCANC */ -{4+DR_F, RW, AB, AB, RB, 0, 0}, /* SPANC */ -{5+DR_F, RW, AB, RB, RW, AB, 0}, /* MOVC5 */ -{5+DR_F, RW, AB, RB, RW, AB, 0}, /* CMPC5 */ -{6+DR_F, RW, AB, RB, AB, RW, AB}, /* MOVTC */ -{6+DR_F, RW, AB, RB, AB, RW, AB}, /* MOVTUC */ -{1, BW, 0, 0, 0, 0, 0}, /* BSBW */ -{1, BW, 0, 0, 0, 0, 0}, /* BRW */ -{2, RW, WL, 0, 0, 0, 0}, /* CVTWL */ -{2, RW, WB, 0, 0, 0, 0}, /* CVTWB */ -{3+DR_F, RW, AB, AB, 0, 0, 0}, /* MOVP */ -{3+DR_F, RW, AB, AB, 0, 0, 0}, /* CMPP3 */ -{3+DR_F, RW, AB, WL, 0, 0, 0}, /* CVTPL */ -{4+DR_F, RW, AB, RW, AB, 0, 0}, /* CMPP4 */ -{4+DR_F, RW, AB, AB, AB, 0, 0}, /* EDITPC */ -{4+DR_F, RW, AB, RW, AB, 0, 0}, /* MATCHC */ -{3+DR_F, RB, RW, AB, 0, 0, 0}, /* LOCC */ -{3+DR_F, RB, RW, AB, 0, 0, 0}, /* SKPC */ -{2, RW, WL, 0, 0, 0, 0}, /* MOVZWL */ -{4, RW, RW, MW, BW, 0, 0}, /* ACBW */ -{2, AW, WL, 0, 0, 0, 0}, /* MOVAW */ -{1, AW, 0, 0, 0, 0, 0}, /* PUSHAW */ -{2, RF, ML, 0, 0, 0, 0}, /* ADDF2 */ -{3, RF, RF, WL, 0, 0, 0}, /* ADDF3 */ -{2, RF, ML, 0, 0, 0, 0}, /* SUBF2 */ -{3, RF, RF, WL, 0, 0, 0}, /* SUBF3 */ -{2, RF, ML, 0, 0, 0, 0}, /* MULF2 */ -{3, RF, RF, WL, 0, 0, 0}, /* MULF3 */ -{2, RF, ML, 0, 0, 0, 0}, /* DIVF2 */ -{3, RF, RF, WL, 0, 0, 0}, /* DIVF3 */ -{2, RF, WB, 0, 0, 0, 0}, /* CVTFB */ -{2, RF, WW, 0, 0, 0, 0}, /* CVTFW */ -{2, RF, WL, 0, 0, 0, 0}, /* CVTFL */ -{2, RF, WL, 0, 0, 0, 0}, /* CVTRFL */ -{2, RB, WL, 0, 0, 0, 0}, /* CVTBF */ -{2, RW, WL, 0, 0, 0, 0}, /* CVTWF */ -{2, RL, WL, 0, 0, 0, 0}, /* CVTLF */ -{4, RF, RF, ML, BW, 0, 0}, /* ACBF */ -{2, RF, WL, 0, 0, 0, 0}, /* MOVF */ -{2, RF, RF, 0, 0, 0, 0}, /* CMPF */ -{2, RF, WL, 0, 0, 0, 0}, /* MNEGF */ -{1, RF, 0, 0, 0, 0, 0}, /* TSTF */ -{5, RF, RB, RF, WL, WL, 0}, /* EMODF */ -{3, RF, RW, AB, 0, 0, 0}, /* POLYF */ -{2, RF, WQ, 0, 0, 0, 0}, /* CVTFD */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{2, RW, WW, 0, 0, 0, 0}, /* ADAWI */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{2, AB, AQ, 0, 0, 0, 0}, /* INSQHI */ -{2, AB, AQ, 0, 0, 0, 0}, /* INSQTI */ -{2, AQ, WL, 0, 0, 0, 0}, /* REMQHI */ -{2, AQ, WL, 0, 0, 0, 0}, /* REMQTI */ -{2, RD, MQ, 0, 0, 0, 0}, /* ADDD2 */ -{3, RD, RD, WQ, 0, 0, 0}, /* ADDD3 */ -{2, RD, MQ, 0, 0, 0, 0}, /* SUBD2 */ -{3, RD, RD, WQ, 0, 0, 0}, /* SUBD3 */ -{2, RD, MQ, 0, 0, 0, 0}, /* MULD2 */ -{3, RD, RD, WQ, 0, 0, 0}, /* MULD3 */ -{2, RD, MQ, 0, 0, 0, 0}, /* DIVD2 */ -{3, RD, RD, WQ, 0, 0, 0}, /* DIVD3 */ -{2, RD, WB, 0, 0, 0, 0}, /* CVTDB */ -{2, RD, WW, 0, 0, 0, 0}, /* CVTDW */ -{2, RD, WL, 0, 0, 0, 0}, /* CVTDL */ -{2, RD, WL, 0, 0, 0, 0}, /* CVTRDL */ -{2, RB, WQ, 0, 0, 0, 0}, /* CVTBD */ -{2, RW, WQ, 0, 0, 0, 0}, /* CVTWD */ -{2, RL, WQ, 0, 0, 0, 0}, /* CVTLD */ -{4, RD, RD, MQ, BW, 0, 0}, /* ACBD */ -{2, RD, WQ, 0, 0, 0, 0}, /* MOVD */ -{2, RD, RD, 0, 0, 0, 0}, /* CMPD */ -{2, RD, WQ, 0, 0, 0, 0}, /* MNEGD */ -{1, RD, 0, 0, 0, 0, 0}, /* TSTD */ -{5, RD, RB, RD, WL, WQ, 0}, /* EMODD */ -{3, RD, RW, AB, 0, 0, 0}, /* POLYD */ -{2, RD, WL, 0, 0, 0, 0}, /* CVTDF */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{3, RB, RL, WL, 0, 0, 0}, /* ASHL */ -{3, RB, RQ, WQ, 0, 0, 0}, /* ASHQ */ -{4, RL, RL, RL, WQ, 0, 0}, /* EMUL */ -{4, RL, RQ, WL, WL, 0, 0}, /* EDIV */ -{1, WQ, 0, 0, 0, 0, 0}, /* CLRQ */ -{2, RQ, WQ, 0, 0, 0, 0}, /* MOVQ */ -{2, AQ, WL, 0, 0, 0, 0}, /* MOVAQ */ -{1, AQ, 0, 0, 0, 0, 0}, /* PUSHAQ */ -{2, RB, MB, 0, 0, 0, 0}, /* ADDB2 */ -{3, RB, RB, WB, 0, 0, 0}, /* ADDB3 */ -{2, RB, MB, 0, 0, 0, 0}, /* SUBB2 */ -{3, RB, RB, WB, 0, 0, 0}, /* SUBB3 */ -{2, RB, MB, 0, 0, 0, 0}, /* MULB2 */ -{3, RB, RB, WB, 0, 0, 0}, /* MULB3 */ -{2, RB, MB, 0, 0, 0, 0}, /* DIVB2 */ -{3, RB, RB, WB, 0, 0, 0}, /* DIVB3 */ -{2, RB, MB, 0, 0, 0, 0}, /* BISB2 */ -{3, RB, RB, WB, 0, 0, 0}, /* BISB3 */ -{2, RB, MB, 0, 0, 0, 0}, /* BICB2 */ -{3, RB, RB, WB, 0, 0, 0}, /* BICB3 */ -{2, RB, MB, 0, 0, 0, 0}, /* XORB2 */ -{3, RB, RB, WB, 0, 0, 0}, /* XORB3 */ -{2, RB, WB, 0, 0, 0, 0}, /* MNEGB */ -{3, RB, RB, RB, 0, 0, 0}, /* CASEB */ -{2, RB, WB, 0, 0, 0, 0}, /* MOVB */ -{2, RB, RB, 0, 0, 0, 0}, /* CMPB */ -{2, RB, WB, 0, 0, 0, 0}, /* MCOMB */ -{2, RB, RB, 0, 0, 0, 0}, /* BITB */ -{1, WB, 0, 0, 0, 0, 0}, /* CLRB */ -{1, RB, 0, 0, 0, 0, 0}, /* TSTB */ -{1, MB, 0, 0, 0, 0, 0}, /* INCB */ -{1, MB, 0, 0, 0, 0, 0}, /* DECB */ -{2, RB, WL, 0, 0, 0, 0}, /* CVTBL */ -{2, RB, WW, 0, 0, 0, 0}, /* CVTBW */ -{2, RB, WL, 0, 0, 0, 0}, /* MOVZBL */ -{2, RB, WW, 0, 0, 0, 0}, /* MOVZBW */ -{3, RB, RL, WL, 0, 0, 0}, /* ROTL */ -{4, RB, RB, MB, BW, 0, 0}, /* ACBB */ -{2, AB, WL, 0, 0, 0, 0}, /* MOVAB */ -{1, AB, 0, 0, 0, 0, 0}, /* PUSHAB */ -{2, RW, MW, 0, 0, 0, 0}, /* ADDW2 */ -{3, RW, RW, WW, 0, 0, 0}, /* ADDW3 */ -{2, RW, MW, 0, 0, 0, 0}, /* SUBW2 */ -{3, RW, RW, WW, 0, 0, 0}, /* SUBW3 */ -{2, RW, MW, 0, 0, 0, 0}, /* MULW2 */ -{3, RW, RW, WW, 0, 0, 0}, /* MULW3 */ -{2, RW, MW, 0, 0, 0, 0}, /* DIVW2 */ -{3, RW, RW, WW, 0, 0, 0}, /* DIVW3 */ -{2, RW, MW, 0, 0, 0, 0}, /* BISW2 */ -{3, RW, RW, WW, 0, 0, 0}, /* BISW3 */ -{2, RW, MW, 0, 0, 0, 0}, /* BICW2 */ -{3, RW, RW, WW, 0, 0, 0}, /* BICW3 */ -{2, RW, MW, 0, 0, 0, 0}, /* XORW2 */ -{3, RW, RW, WW, 0, 0, 0}, /* XORW3 */ -{2, RW, WW, 0, 0, 0, 0}, /* MNEGW */ -{3, RW, RW, RW, 0, 0, 0}, /* CASEW */ -{2, RW, WW, 0, 0, 0, 0}, /* MOVW */ -{2, RW, RW, 0, 0, 0, 0}, /* CMPW */ -{2, RW, WW, 0, 0, 0, 0}, /* MCOMW */ -{2, RW, RW, 0, 0, 0, 0}, /* BITW */ -{1, WW, 0, 0, 0, 0, 0}, /* CLRW */ -{1, RW, 0, 0, 0, 0, 0}, /* TSTW */ -{1, MW, 0, 0, 0, 0, 0}, /* INCW */ -{1, MW, 0, 0, 0, 0, 0}, /* DECW */ -{1, RW, 0, 0, 0, 0, 0}, /* BISPSW */ -{1, RW, 0, 0, 0, 0, 0}, /* BICPSW */ -{1, RW, 0, 0, 0, 0, 0}, /* POPR */ -{1, RW, 0, 0, 0, 0, 0}, /* PUSHR */ -{1, RW, 0, 0, 0, 0, 0}, /* CHMK */ -{1, RW, 0, 0, 0, 0, 0}, /* CHME */ -{1, RW, 0, 0, 0, 0, 0}, /* CHMS */ -{1, RW, 0, 0, 0, 0, 0}, /* CHMU */ -{2, RL, ML, 0, 0, 0, 0}, /* ADDL2 */ -{3, RL, RL, WL, 0, 0, 0}, /* ADDL3 */ -{2, RL, ML, 0, 0, 0, 0}, /* SUBL2 */ -{3, RL, RL, WL, 0, 0, 0}, /* SUBL3 */ -{2, RL, ML, 0, 0, 0, 0}, /* MULL2 */ -{3, RL, RL, WL, 0, 0, 0}, /* MULL3 */ -{2, RL, ML, 0, 0, 0, 0}, /* DIVL2 */ -{3, RL, RL, WL, 0, 0, 0}, /* DIVL3 */ -{2, RL, ML, 0, 0, 0, 0}, /* BISL2 */ -{3, RL, RL, WL, 0, 0, 0}, /* BISL3 */ -{2, RL, ML, 0, 0, 0, 0}, /* BICL2 */ -{3, RL, RL, WL, 0, 0, 0}, /* BICL3 */ -{2, RL, ML, 0, 0, 0, 0}, /* XORL2 */ -{3, RL, RL, WL, 0, 0, 0}, /* XORL3 */ -{2, RL, WL, 0, 0, 0, 0}, /* MNEGL */ -{3, RL, RL, RL, 0, 0, 0}, /* CASEL */ -{2, RL, WL, 0, 0, 0, 0}, /* MOVL */ -{2, RL, RL, 0, 0, 0, 0}, /* CMPL */ -{2, RL, WL, 0, 0, 0, 0}, /* MCOML */ -{2, RL, RL, 0, 0, 0, 0}, /* BITL */ -{1, WL, 0, 0, 0, 0, 0}, /* CLRL */ -{1, RL, 0, 0, 0, 0, 0}, /* TSTL */ -{1, ML, 0, 0, 0, 0, 0}, /* INCL */ -{1, ML, 0, 0, 0, 0, 0}, /* DECL */ -{2, RL, ML, 0, 0, 0, 0}, /* ADWC */ -{2, RL, ML, 0, 0, 0, 0}, /* SBWC */ -{2, RL, RL, 0, 0, 0, 0}, /* MTPR */ -{2, RL, WL, 0, 0, 0, 0}, /* MFPR */ -{1, WL, 0, 0, 0, 0, 0}, /* MOVPSL */ -{1, RL, 0, 0, 0, 0, 0}, /* PUSHL */ -{2, AL, WL, 0, 0, 0, 0}, /* MOVAL */ -{1, AL, 0, 0, 0, 0, 0}, /* PUSHAL */ -{3, RL, VB, BB, 0, 0, 0}, /* BBS */ -{3, RL, VB, BB, 0, 0, 0}, /* BBC */ -{3, RL, VB, BB, 0, 0, 0}, /* BBSS */ -{3, RL, VB, BB, 0, 0, 0}, /* BBCS */ -{3, RL, VB, BB, 0, 0, 0}, /* BBSC */ -{3, RL, VB, BB, 0, 0, 0}, /* BBCC */ -{3, RL, VB, BB, 0, 0, 0}, /* BBSSI */ -{3, RL, VB, BB, 0, 0, 0}, /* BBCCI */ -{2, RL, BB, 0, 0, 0, 0}, /* BLBS */ -{2, RL, BB, 0, 0, 0, 0}, /* BLBC */ -{4, RL, RB, VB, WL, 0, 0}, /* FFS */ -{4, RL, RB, VB, WL, 0, 0}, /* FFC */ -{4, RL, RB, VB, RL, 0, 0}, /* CMPV */ -{4, RL, RB, VB, RL, 0, 0}, /* CMPZV */ -{4, RL, RB, VB, WL, 0, 0}, /* EXTV */ -{4, RL, RB, VB, WL, 0, 0}, /* EXTZV */ -{4, RL, RL, RB, VB, 0, 0}, /* INSV */ -{4, RL, RL, ML, BW, 0, 0}, /* ACBL */ -{3, RL, ML, BB, 0, 0, 0}, /* AOBLSS */ -{3, RL, ML, BB, 0, 0, 0}, /* AOBLEQ */ -{2, ML, BB, 0, 0, 0, 0}, /* SOBGEQ */ -{2, ML, BB, 0, 0, 0, 0}, /* SOBGTR */ -{2, RL, WB, 0, 0, 0, 0}, /* CVTLB */ -{2, RL, WW, 0, 0, 0, 0}, /* CVTLW */ -{6+DR_F, RB, RW, AB, RB, RW, AB}, /* ASHP */ -{3+DR_F, RL, RW, AB, 0, 0, 0}, /* CVTLP */ -{2, AB, AB, 0, 0, 0, 0}, /* CALLG */ -{2, RL, AB, 0, 0, 0, 0}, /* CALLS */ -{0, 0, 0, 0, 0, 0, 0}, /* XFC */ -{0, 0, 0, 0, 0, 0, 0}, /* 0FD */ -{0, 0, 0, 0, 0, 0, 0}, /* 0FE */ -{0, 0, 0, 0, 0, 0, 0}, /* 0FF */ -{0, 0, 0, 0, 0, 0, 0}, /* 100-10F */ -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, /* 110-11F */ -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, /* 120-12F */ -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, /* 130-13F */ -{0, 0, 0, 0, 0, 0, 0}, -{ODC(2), RD, WO, 0, 0, 0, 0}, /* CVTDH */ -{2, RG, WL, 0, 0, 0, 0}, /* CVTGF */ -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{2, RG, MQ, 0, 0, 0, 0}, /* ADDG2 */ -{3, RG, RG, WQ, 0, 0, 0}, /* ADDG3 */ -{2, RG, MQ, 0, 0, 0, 0}, /* SUBG2 */ -{3, RG, RG, WQ, 0, 0, 0}, /* SUBG3 */ -{2, RG, MQ, 0, 0, 0, 0}, /* MULG2 */ -{3, RG, RG, WQ, 0, 0, 0}, /* MULG3 */ -{2, RG, MQ, 0, 0, 0, 0}, /* DIVG2 */ -{3, RG, RG, WQ, 0, 0, 0}, /* DIVG3 */ -{2, RG, WB, 0, 0, 0, 0}, /* CVTGB */ -{2, RG, WW, 0, 0, 0, 0}, /* CVTGW */ -{2, RG, WL, 0, 0, 0, 0}, /* CVTGL */ -{2, RG, WL, 0, 0, 0, 0}, /* CVTRGL */ -{2, RB, WQ, 0, 0, 0, 0}, /* CVTBG */ -{2, RW, WQ, 0, 0, 0, 0}, /* CVTWG */ -{2, RL, WQ, 0, 0, 0, 0}, /* CVTLG */ -{4, RG, RG, MQ, BW, 0, 0}, /* ACBG */ -{2, RG, WQ, 0, 0, 0, 0}, /* MOVG */ -{2, RG, RG, 0, 0, 0, 0}, /* CMPG */ -{2, RG, WQ, 0, 0, 0, 0}, /* MNEGG */ -{1, RG, 0, 0, 0, 0, 0}, /* TSTG */ -{5, RG, RW, RG, WL, WQ, 0}, /* EMODG */ -{3, RG, RW, AB, 0, 0, 0}, /* POLYG */ -{ODC(2), RG, WO, 0, 0, 0, 0}, /* CVTGH */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{ODC(2), RH, MO, 0, 0, 0, 0}, /* ADDH2 */ -{ODC(3), RH, RH, WO, 0, 0, 0}, /* ADDH3 */ -{ODC(2), RH, MO, 0, 0, 0, 0}, /* SUBH2 */ -{ODC(3), RH, RH, WO, 0, 0, 0}, /* SUBH3 */ -{ODC(2), RH, MO, 0, 0, 0, 0}, /* MULH2 */ -{ODC(3), RH, RH, WO, 0, 0, 0}, /* MULH3 */ -{ODC(2), RH, MO, 0, 0, 0, 0}, /* DIVH2 */ -{ODC(3), RH, RH, WO, 0, 0, 0}, /* DIVH3 */ -{ODC(2), RH, WB, 0, 0, 0, 0}, /* CVTHB */ -{ODC(2), RH, WW, 0, 0, 0, 0}, /* CVTHW */ -{ODC(2), RH, WL, 0, 0, 0, 0}, /* CVTHL */ -{ODC(2), RH, WL, 0, 0, 0, 0}, /* CVTRHL */ -{ODC(2), RB, WO, 0, 0, 0, 0}, /* CVTBH */ -{ODC(2), RW, WO, 0, 0, 0, 0}, /* CVTWH */ -{ODC(2), RL, WO, 0, 0, 0, 0}, /* CVTLH */ -{ODC(4), RH, RH, MO, BW, 0, 0}, /* ACBH */ -{ODC(2), RH, RO, 0, 0, 0, 0}, /* MOVH */ -{ODC(2), RH, RH, 0, 0, 0, 0}, /* CMPH */ -{ODC(2), RH, WO, 0, 0, 0, 0}, /* MNEGH */ -{ODC(1), RH, 0, 0, 0, 0, 0}, /* TSTH */ -{ODC(5), RH, RW, RH, WL, WO, 0}, /* EMODH */ -{ODC(3), RH, RW, AB, 0, 0, 0}, /* POLYH */ -{ODC(2), RH, WQ, 0, 0, 0, 0}, /* CVTHG */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{0, 0, 0, 0, 0, 0, 0}, /* reserved */ -{ODC(1), WO, 0, 0, 0, 0, 0}, /* CLRO */ -{ODC(2), RO, RO, 0, 0, 0, 0}, /* MOVO */ -{ODC(2), AO, WL, 0, 0, 0, 0}, /* MOVAO*/ -{ODC(1), AO, 0, 0, 0, 0, 0}, /* PUSHAO*/ -{0, 0, 0, 0, 0, 0, 0}, /* 180-18F */ -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, /* 190-19F */ -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{ODC(2), RF, WO, 0, 0, 0, 0}, /* CVTFH */ -{2, RF, WQ, 0, 0, 0, 0}, /* CVTFG */ -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, /* 1A0-1AF */ -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, /* 1B0-1BF */ -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, /* 1C0-1CF */ -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, /* 1D0-1DF */ -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, /* 1E0-1EF */ -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, /* 1F0-1FF */ -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{ODC(2), RH, WL, 0, 0, 0, 0}, /* CVTHF */ -{ODC(2), RH, WQ, 0, 0, 0, 0}, /* CVTHD */ -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0}, -{0, 0, 0, 0, 0, 0, 0} +{0, 0, 0, 0, 0, 0, 0}, /* HALT */ +{0, 0, 0, 0, 0, 0, 0}, /* NOP */ +{0, 0, 0, 0, 0, 0, 0}, /* REI */ +{0, 0, 0, 0, 0, 0, 0}, /* BPT */ +{0, 0, 0, 0, 0, 0, 0}, /* RET */ +{0, 0, 0, 0, 0, 0, 0}, /* RSB */ +{0, 0, 0, 0, 0, 0, 0}, /* LDPCTX */ +{0, 0, 0, 0, 0, 0, 0}, /* SVPCTX */ +{4+DR_F, RW, AB, RW, AB, 0, 0}, /* CVTPS */ +{4+DR_F, RW, AB, RW, AB, 0, 0}, /* CVTSP */ +{6 +RB_L, RL, RL, RL, RL, RL, WL}, /* INDEX */ +{4+DR_F +RB_L, AB, RL, RW, AB, 0, 0}, /* CRC */ +{3, RB, RW, AB, 0, 0, 0}, /* PROBER */ +{3, RB, RW, AB, 0, 0, 0}, /* PROBEW */ +{2, AB, AB, 0, 0, 0, 0}, /* INSQUE */ +{2, AB, WL, 0, 0, 0, 0}, /* REMQUE */ +{1, BB, 0, 0, 0, 0, 0}, /* BSBB */ +{1, BB, 0, 0, 0, 0, 0}, /* BRB */ +{1, BB, 0, 0, 0, 0, 0}, /* BNEQ */ +{1, BB, 0, 0, 0, 0, 0}, /* BEQL */ +{1, BB, 0, 0, 0, 0, 0}, /* BGTR */ +{1, BB, 0, 0, 0, 0, 0}, /* BLEQ */ +{1, AB, 0, 0, 0, 0, 0}, /* JSB */ +{1, AB, 0, 0, 0, 0, 0}, /* JMP */ +{1, BB, 0, 0, 0, 0, 0}, /* BGEQ */ +{1, BB, 0, 0, 0, 0, 0}, /* BLSS */ +{1, BB, 0, 0, 0, 0, 0}, /* BGTRU */ +{1, BB, 0, 0, 0, 0, 0}, /* BLEQU */ +{1, BB, 0, 0, 0, 0, 0}, /* BVC */ +{1, BB, 0, 0, 0, 0, 0}, /* BVS */ +{1, BB, 0, 0, 0, 0, 0}, /* BCC */ +{1, BB, 0, 0, 0, 0, 0}, /* BCS */ +{4+DR_F +RB_R3, RW, AB, RW, AB, 0, 0}, /* ADDP4 */ +{6+DR_F +RB_R5, RW, AB, RW, AB, RW, AB}, /* ADDP6 */ +{4+DR_F +RB_R3, RW, AB, RW, AB, 0, 0}, /* SUBP4 */ +{6+DR_F +RB_R5, RW, AB, RW, AB, RW, AB}, /* SUBP6 */ +{5+DR_F +RB_R3, RW, AB, AB, RW, AB, 0}, /* CVTPT */ +{6+DR_F +RB_R5, RW, AB, RW, AB, RW, AB}, /* MULP6 */ +{5+DR_F +RB_R3, RW, AB, AB, RW, AB, 0}, /* CVTTP */ +{6+DR_F +RB_R5, RW, AB, RW, AB, RW, AB}, /* DIVP6 */ +{3+DR_F +RB_R5, RW, AB, AB, 0, 0, 0}, /* MOVC3 */ +{3+DR_F +RB_R3, RW, AB, AB, 0, 0, 0}, /* CMPC3 */ +{4+DR_F +RB_R3, RW, AB, AB, RB, 0, 0}, /* SCANC */ +{4+DR_F +RB_R3, RW, AB, AB, RB, 0, 0}, /* SPANC */ +{5+DR_F +RB_R5, RW, AB, RB, RW, AB, 0}, /* MOVC5 */ +{5+DR_F +RB_R3, RW, AB, RB, RW, AB, 0}, /* CMPC5 */ +{6+DR_F +RB_R5, RW, AB, RB, AB, RW, AB}, /* MOVTC */ +{6+DR_F +RB_R3, RW, AB, RB, AB, RW, AB}, /* MOVTUC */ +{1, BW, 0, 0, 0, 0, 0}, /* BSBW */ +{1, BW, 0, 0, 0, 0, 0}, /* BRW */ +{2 +RB_L, RW, WL, 0, 0, 0, 0}, /* CVTWL */ +{2 +RB_B, RW, WB, 0, 0, 0, 0}, /* CVTWB */ +{3+DR_F +RB_R3, RW, AB, AB, 0, 0, 0}, /* MOVP */ +{3+DR_F +RB_R3, RW, AB, AB, 0, 0, 0}, /* CMPP3 */ +{3+DR_F +RB_L, RW, AB, WL, 0, 0, 0}, /* CVTPL */ +{4+DR_F +RB_R3, RW, AB, RW, AB, 0, 0}, /* CMPP4 */ +{4+DR_F +RB_R5, RW, AB, AB, AB, 0, 0}, /* EDITPC */ +{4+DR_F +RB_R3, RW, AB, RW, AB, 0, 0}, /* MATCHC */ +{3+DR_F +RB_R1, RB, RW, AB, 0, 0, 0}, /* LOCC */ +{3+DR_F +RB_R1, RB, RW, AB, 0, 0, 0}, /* SKPC */ +{2 +RB_L, RW, WL, 0, 0, 0, 0}, /* MOVZWL */ +{4, RW, RW, MW, BW, 0, 0}, /* ACBW */ +{2, AW, WL, 0, 0, 0, 0}, /* MOVAW */ +{1 +RB_SP, AW, 0, 0, 0, 0, 0}, /* PUSHAW */ +{2 +RB_L, RF, ML, 0, 0, 0, 0}, /* ADDF2 */ +{3 +RB_L, RF, RF, WL, 0, 0, 0}, /* ADDF3 */ +{2 +RB_L, RF, ML, 0, 0, 0, 0}, /* SUBF2 */ +{3 +RB_L, RF, RF, WL, 0, 0, 0}, /* SUBF3 */ +{2 +RB_L, RF, ML, 0, 0, 0, 0}, /* MULF2 */ +{3 +RB_L, RF, RF, WL, 0, 0, 0}, /* MULF3 */ +{2 +RB_L, RF, ML, 0, 0, 0, 0}, /* DIVF2 */ +{3 +RB_L, RF, RF, WL, 0, 0, 0}, /* DIVF3 */ +{2 +RB_B, RF, WB, 0, 0, 0, 0}, /* CVTFB */ +{2 +RB_W, RF, WW, 0, 0, 0, 0}, /* CVTFW */ +{2 +RB_L, RF, WL, 0, 0, 0, 0}, /* CVTFL */ +{2 +RB_L, RF, WL, 0, 0, 0, 0}, /* CVTRFL */ +{2 +RB_L, RB, WL, 0, 0, 0, 0}, /* CVTBF */ +{2 +RB_L, RW, WL, 0, 0, 0, 0}, /* CVTWF */ +{2 +RB_L, RL, WL, 0, 0, 0, 0}, /* CVTLF */ +{4, RF, RF, ML, BW, 0, 0}, /* ACBF */ +{2 +RB_L, RF, WL, 0, 0, 0, 0}, /* MOVF */ +{2, RF, RF, 0, 0, 0, 0}, /* CMPF */ +{2 +RB_L, RF, WL, 0, 0, 0, 0}, /* MNEGF */ +{1, RF, 0, 0, 0, 0, 0}, /* TSTF */ +{5, RF, RB, RF, WL, WL, 0}, /* EMODF */ +{3 +RB_R0, RF, RW, AB, 0, 0, 0}, /* POLYF */ +{2 +RB_Q, RF, WQ, 0, 0, 0, 0}, /* CVTFD */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{2 +RB_W, RW, WW, 0, 0, 0, 0}, /* ADAWI */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{2, AB, AQ, 0, 0, 0, 0}, /* INSQHI */ +{2, AB, AQ, 0, 0, 0, 0}, /* INSQTI */ +{2, AQ, WL, 0, 0, 0, 0}, /* REMQHI */ +{2, AQ, WL, 0, 0, 0, 0}, /* REMQTI */ +{2 +RB_Q, RD, MQ, 0, 0, 0, 0}, /* ADDD2 */ +{3 +RB_Q, RD, RD, WQ, 0, 0, 0}, /* ADDD3 */ +{2 +RB_Q, RD, MQ, 0, 0, 0, 0}, /* SUBD2 */ +{3 +RB_Q, RD, RD, WQ, 0, 0, 0}, /* SUBD3 */ +{2 +RB_Q, RD, MQ, 0, 0, 0, 0}, /* MULD2 */ +{3 +RB_Q, RD, RD, WQ, 0, 0, 0}, /* MULD3 */ +{2 +RB_Q, RD, MQ, 0, 0, 0, 0}, /* DIVD2 */ +{3 +RB_Q, RD, RD, WQ, 0, 0, 0}, /* DIVD3 */ +{2 +RB_B, RD, WB, 0, 0, 0, 0}, /* CVTDB */ +{2 +RB_W, RD, WW, 0, 0, 0, 0}, /* CVTDW */ +{2 +RB_L, RD, WL, 0, 0, 0, 0}, /* CVTDL */ +{2 +RB_L, RD, WL, 0, 0, 0, 0}, /* CVTRDL */ +{2 +RB_Q, RB, WQ, 0, 0, 0, 0}, /* CVTBD */ +{2 +RB_Q, RW, WQ, 0, 0, 0, 0}, /* CVTWD */ +{2 +RB_Q, RL, WQ, 0, 0, 0, 0}, /* CVTLD */ +{4, RD, RD, MQ, BW, 0, 0}, /* ACBD */ +{2 +RB_Q, RD, WQ, 0, 0, 0, 0}, /* MOVD */ +{2 +RB_Q, RD, RD, 0, 0, 0, 0}, /* CMPD */ +{2 +RB_Q, RD, WQ, 0, 0, 0, 0}, /* MNEGD */ +{1, RD, 0, 0, 0, 0, 0}, /* TSTD */ +{5, RD, RB, RD, WL, WQ, 0}, /* EMODD */ +{3 +RB_R1, RD, RW, AB, 0, 0, 0}, /* POLYD */ +{2 +RB_L, RD, WL, 0, 0, 0, 0}, /* CVTDF */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{3 +RB_L, RB, RL, WL, 0, 0, 0}, /* ASHL */ +{3 +RB_Q, RB, RQ, WQ, 0, 0, 0}, /* ASHQ */ +{4, RL, RL, RL, WQ, 0, 0}, /* EMUL */ +{4, RL, RQ, WL, WL, 0, 0}, /* EDIV */ +{1 +RB_Q, WQ, 0, 0, 0, 0, 0}, /* CLRQ */ +{2 +RB_Q, RQ, WQ, 0, 0, 0, 0}, /* MOVQ */ +{2 +RB_L, AQ, WL, 0, 0, 0, 0}, /* MOVAQ */ +{1 +RB_SP, AQ, 0, 0, 0, 0, 0}, /* PUSHAQ */ +{2 +RB_B, RB, MB, 0, 0, 0, 0}, /* ADDB2 */ +{3 +RB_B, RB, RB, WB, 0, 0, 0}, /* ADDB3 */ +{2 +RB_B, RB, MB, 0, 0, 0, 0}, /* SUBB2 */ +{3 +RB_B, RB, RB, WB, 0, 0, 0}, /* SUBB3 */ +{2 +RB_B, RB, MB, 0, 0, 0, 0}, /* MULB2 */ +{3 +RB_B, RB, RB, WB, 0, 0, 0}, /* MULB3 */ +{2 +RB_B, RB, MB, 0, 0, 0, 0}, /* DIVB2 */ +{3 +RB_B, RB, RB, WB, 0, 0, 0}, /* DIVB3 */ +{2 +RB_B, RB, MB, 0, 0, 0, 0}, /* BISB2 */ +{3 +RB_B, RB, RB, WB, 0, 0, 0}, /* BISB3 */ +{2 +RB_B, RB, MB, 0, 0, 0, 0}, /* BICB2 */ +{3 +RB_B, RB, RB, WB, 0, 0, 0}, /* BICB3 */ +{2 +RB_B, RB, MB, 0, 0, 0, 0}, /* XORB2 */ +{3 +RB_B, RB, RB, WB, 0, 0, 0}, /* XORB3 */ +{2 +RB_B, RB, WB, 0, 0, 0, 0}, /* MNEGB */ +{3, RB, RB, RB, 0, 0, 0}, /* CASEB */ +{2 +RB_B, RB, WB, 0, 0, 0, 0}, /* MOVB */ +{2, RB, RB, 0, 0, 0, 0}, /* CMPB */ +{2 +RB_B, RB, WB, 0, 0, 0, 0}, /* MCOMB */ +{2 +RB_B, RB, RB, 0, 0, 0, 0}, /* BITB */ +{1 +RB_B, WB, 0, 0, 0, 0, 0}, /* CLRB */ +{1, RB, 0, 0, 0, 0, 0}, /* TSTB */ +{1 +RB_B, MB, 0, 0, 0, 0, 0}, /* INCB */ +{1 +RB_B, MB, 0, 0, 0, 0, 0}, /* DECB */ +{2 +RB_L, RB, WL, 0, 0, 0, 0}, /* CVTBL */ +{2 +RB_W, RB, WW, 0, 0, 0, 0}, /* CVTBW */ +{2 +RB_L, RB, WL, 0, 0, 0, 0}, /* MOVZBL */ +{2 +RB_W, RB, WW, 0, 0, 0, 0}, /* MOVZBW */ +{3 +RB_L, RB, RL, WL, 0, 0, 0}, /* ROTL */ +{4, RB, RB, MB, BW, 0, 0}, /* ACBB */ +{2 +RB_L, AB, WL, 0, 0, 0, 0}, /* MOVAB */ +{1 +RB_SP, AB, 0, 0, 0, 0, 0}, /* PUSHAB */ +{2 +RB_W, RW, MW, 0, 0, 0, 0}, /* ADDW2 */ +{3 +RB_W, RW, RW, WW, 0, 0, 0}, /* ADDW3 */ +{2 +RB_W, RW, MW, 0, 0, 0, 0}, /* SUBW2 */ +{3 +RB_W, RW, RW, WW, 0, 0, 0}, /* SUBW3 */ +{2 +RB_W, RW, MW, 0, 0, 0, 0}, /* MULW2 */ +{3 +RB_W, RW, RW, WW, 0, 0, 0}, /* MULW3 */ +{2 +RB_W, RW, MW, 0, 0, 0, 0}, /* DIVW2 */ +{3 +RB_W, RW, RW, WW, 0, 0, 0}, /* DIVW3 */ +{2 +RB_W, RW, MW, 0, 0, 0, 0}, /* BISW2 */ +{3 +RB_W, RW, RW, WW, 0, 0, 0}, /* BISW3 */ +{2 +RB_W, RW, MW, 0, 0, 0, 0}, /* BICW2 */ +{3 +RB_W, RW, RW, WW, 0, 0, 0}, /* BICW3 */ +{2 +RB_W, RW, MW, 0, 0, 0, 0}, /* XORW2 */ +{3 +RB_W, RW, RW, WW, 0, 0, 0}, /* XORW3 */ +{2 +RB_W, RW, WW, 0, 0, 0, 0}, /* MNEGW */ +{3, RW, RW, RW, 0, 0, 0}, /* CASEW */ +{2 +RB_W, RW, WW, 0, 0, 0, 0}, /* MOVW */ +{2, RW, RW, 0, 0, 0, 0}, /* CMPW */ +{2 +RB_W, RW, WW, 0, 0, 0, 0}, /* MCOMW */ +{2, RW, RW, 0, 0, 0, 0}, /* BITW */ +{1 +RB_W, WW, 0, 0, 0, 0, 0}, /* CLRW */ +{1, RW, 0, 0, 0, 0, 0}, /* TSTW */ +{1 +RB_W, MW, 0, 0, 0, 0, 0}, /* INCW */ +{1 +RB_W, MW, 0, 0, 0, 0, 0}, /* DECW */ +{1, RW, 0, 0, 0, 0, 0}, /* BISPSW */ +{1, RW, 0, 0, 0, 0, 0}, /* BICPSW */ +{1, RW, 0, 0, 0, 0, 0}, /* POPR */ +{1, RW, 0, 0, 0, 0, 0}, /* PUSHR */ +{1, RW, 0, 0, 0, 0, 0}, /* CHMK */ +{1, RW, 0, 0, 0, 0, 0}, /* CHME */ +{1, RW, 0, 0, 0, 0, 0}, /* CHMS */ +{1, RW, 0, 0, 0, 0, 0}, /* CHMU */ +{2 +RB_L, RL, ML, 0, 0, 0, 0}, /* ADDL2 */ +{3 +RB_L, RL, RL, WL, 0, 0, 0}, /* ADDL3 */ +{2 +RB_L, RL, ML, 0, 0, 0, 0}, /* SUBL2 */ +{3 +RB_L, RL, RL, WL, 0, 0, 0}, /* SUBL3 */ +{2 +RB_L, RL, ML, 0, 0, 0, 0}, /* MULL2 */ +{3 +RB_L, RL, RL, WL, 0, 0, 0}, /* MULL3 */ +{2 +RB_L, RL, ML, 0, 0, 0, 0}, /* DIVL2 */ +{3 +RB_L, RL, RL, WL, 0, 0, 0}, /* DIVL3 */ +{2 +RB_L, RL, ML, 0, 0, 0, 0}, /* BISL2 */ +{3 +RB_L, RL, RL, WL, 0, 0, 0}, /* BISL3 */ +{2 +RB_L, RL, ML, 0, 0, 0, 0}, /* BICL2 */ +{3 +RB_L, RL, RL, WL, 0, 0, 0}, /* BICL3 */ +{2 +RB_L, RL, ML, 0, 0, 0, 0}, /* XORL2 */ +{3 +RB_L, RL, RL, WL, 0, 0, 0}, /* XORL3 */ +{2 +RB_L, RL, WL, 0, 0, 0, 0}, /* MNEGL */ +{3, RL, RL, RL, 0, 0, 0}, /* CASEL */ +{2 +RB_L, RL, WL, 0, 0, 0, 0}, /* MOVL */ +{2, RL, RL, 0, 0, 0, 0}, /* CMPL */ +{2 +RB_L, RL, WL, 0, 0, 0, 0}, /* MCOML */ +{2, RL, RL, 0, 0, 0, 0}, /* BITL */ +{1 +RB_L, WL, 0, 0, 0, 0, 0}, /* CLRL */ +{1, RL, 0, 0, 0, 0, 0}, /* TSTL */ +{1 +RB_L, ML, 0, 0, 0, 0, 0}, /* INCL */ +{1 +RB_L, ML, 0, 0, 0, 0, 0}, /* DECL */ +{2 +RB_L, RL, ML, 0, 0, 0, 0}, /* ADWC */ +{2 +RB_L, RL, ML, 0, 0, 0, 0}, /* SBWC */ +{2, RL, RL, 0, 0, 0, 0}, /* MTPR */ +{2 +RB_L, RL, WL, 0, 0, 0, 0}, /* MFPR */ +{1 +RB_L, WL, 0, 0, 0, 0, 0}, /* MOVPSL */ +{1 +RB_SP, RL, 0, 0, 0, 0, 0}, /* PUSHL */ +{2 +RB_L, AL, WL, 0, 0, 0, 0}, /* MOVAL */ +{1 +RB_SP, AL, 0, 0, 0, 0, 0}, /* PUSHAL */ +{3, RL, VB, BB, 0, 0, 0}, /* BBS */ +{3, RL, VB, BB, 0, 0, 0}, /* BBC */ +{3, RL, VB, BB, 0, 0, 0}, /* BBSS */ +{3, RL, VB, BB, 0, 0, 0}, /* BBCS */ +{3, RL, VB, BB, 0, 0, 0}, /* BBSC */ +{3, RL, VB, BB, 0, 0, 0}, /* BBCC */ +{3, RL, VB, BB, 0, 0, 0}, /* BBSSI */ +{3, RL, VB, BB, 0, 0, 0}, /* BBCCI */ +{2, RL, BB, 0, 0, 0, 0}, /* BLBS */ +{2, RL, BB, 0, 0, 0, 0}, /* BLBC */ +{4 +RB_L, RL, RB, VB, WL, 0, 0}, /* FFS */ +{4 +RB_L, RL, RB, VB, WL, 0, 0}, /* FFC */ +{4, RL, RB, VB, RL, 0, 0}, /* CMPV */ +{4, RL, RB, VB, RL, 0, 0}, /* CMPZV */ +{4 +RB_L, RL, RB, VB, WL, 0, 0}, /* EXTV */ +{4 +RB_L, RL, RB, VB, WL, 0, 0}, /* EXTZV */ +{4, RL, RL, RB, VB, 0, 0}, /* INSV */ +{4, RL, RL, ML, BW, 0, 0}, /* ACBL */ +{3, RL, ML, BB, 0, 0, 0}, /* AOBLSS */ +{3, RL, ML, BB, 0, 0, 0}, /* AOBLEQ */ +{2, ML, BB, 0, 0, 0, 0}, /* SOBGEQ */ +{2, ML, BB, 0, 0, 0, 0}, /* SOBGTR */ +{2 +RB_B, RL, WB, 0, 0, 0, 0}, /* CVTLB */ +{2 +RB_W, RL, WW, 0, 0, 0, 0}, /* CVTLW */ +{6+DR_F+RB_R3, RB, RW, AB, RB, RW, AB}, /* ASHP */ +{3+DR_F+RB_R3, RL, RW, AB, 0, 0, 0}, /* CVTLP */ +{2, AB, AB, 0, 0, 0, 0}, /* CALLG */ +{2, RL, AB, 0, 0, 0, 0}, /* CALLS */ +{0, 0, 0, 0, 0, 0, 0}, /* XFC */ +{0, 0, 0, 0, 0, 0, 0}, /* 0FD */ +{0, 0, 0, 0, 0, 0, 0}, /* 0FE */ +{0, 0, 0, 0, 0, 0, 0}, /* 0FF */ +{0, 0, 0, 0, 0, 0, 0}, /* 100-10F */ +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, /* 110-11F */ +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, /* 120-12F */ +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, /* 130-13F */ +{0, 0, 0, 0, 0, 0, 0}, +{ODC(2) +RB_O, RD, WO, 0, 0, 0, 0}, /* CVTDH */ +{2 +RB_L, RG, WL, 0, 0, 0, 0}, /* CVTGF */ +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{2 +RB_Q, RG, MQ, 0, 0, 0, 0}, /* ADDG2 */ +{3 +RB_Q, RG, RG, WQ, 0, 0, 0}, /* ADDG3 */ +{2 +RB_Q, RG, MQ, 0, 0, 0, 0}, /* SUBG2 */ +{3 +RB_Q, RG, RG, WQ, 0, 0, 0}, /* SUBG3 */ +{2 +RB_Q, RG, MQ, 0, 0, 0, 0}, /* MULG2 */ +{3 +RB_Q, RG, RG, WQ, 0, 0, 0}, /* MULG3 */ +{2 +RB_Q, RG, MQ, 0, 0, 0, 0}, /* DIVG2 */ +{3 +RB_Q, RG, RG, WQ, 0, 0, 0}, /* DIVG3 */ +{2 +RB_B, RG, WB, 0, 0, 0, 0}, /* CVTGB */ +{2 +RB_W, RG, WW, 0, 0, 0, 0}, /* CVTGW */ +{2 +RB_L, RG, WL, 0, 0, 0, 0}, /* CVTGL */ +{2 +RB_L, RG, WL, 0, 0, 0, 0}, /* CVTRGL */ +{2 +RB_Q, RB, WQ, 0, 0, 0, 0}, /* CVTBG */ +{2 +RB_Q, RW, WQ, 0, 0, 0, 0}, /* CVTWG */ +{2 +RB_Q, RL, WQ, 0, 0, 0, 0}, /* CVTLG */ +{4, RG, RG, MQ, BW, 0, 0}, /* ACBG */ +{2 +RB_Q, RG, WQ, 0, 0, 0, 0}, /* MOVG */ +{2, RG, RG, 0, 0, 0, 0}, /* CMPG */ +{2 +RB_Q, RG, WQ, 0, 0, 0, 0}, /* MNEGG */ +{1, RG, 0, 0, 0, 0, 0}, /* TSTG */ +{5, RG, RW, RG, WL, WQ, 0}, /* EMODG */ +{3 +RB_R1, RG, RW, AB, 0, 0, 0}, /* POLYG */ +{ODC(2) +RB_O, RG, WO, 0, 0, 0, 0}, /* CVTGH */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{ODC(2) +RB_O, RH, MO, 0, 0, 0, 0}, /* ADDH2 */ +{ODC(3) +RB_O, RH, RH, WO, 0, 0, 0}, /* ADDH3 */ +{ODC(2) +RB_O, RH, MO, 0, 0, 0, 0}, /* SUBH2 */ +{ODC(3) +RB_O, RH, RH, WO, 0, 0, 0}, /* SUBH3 */ +{ODC(2) +RB_O, RH, MO, 0, 0, 0, 0}, /* MULH2 */ +{ODC(3) +RB_O, RH, RH, WO, 0, 0, 0}, /* MULH3 */ +{ODC(2) +RB_O, RH, MO, 0, 0, 0, 0}, /* DIVH2 */ +{ODC(3) +RB_O, RH, RH, WO, 0, 0, 0}, /* DIVH3 */ +{ODC(2) +RB_B, RH, WB, 0, 0, 0, 0}, /* CVTHB */ +{ODC(2) +RB_W, RH, WW, 0, 0, 0, 0}, /* CVTHW */ +{ODC(2) +RB_L, RH, WL, 0, 0, 0, 0}, /* CVTHL */ +{ODC(2) +RB_O, RH, WL, 0, 0, 0, 0}, /* CVTRHL */ +{ODC(2) +RB_O, RB, WO, 0, 0, 0, 0}, /* CVTBH */ +{ODC(2) +RB_O, RW, WO, 0, 0, 0, 0}, /* CVTWH */ +{ODC(2) +RB_O, RL, WO, 0, 0, 0, 0}, /* CVTLH */ +{ODC(4), RH, RH, MO, BW, 0, 0}, /* ACBH */ +{ODC(2) +RB_O, RH, RO, 0, 0, 0, 0}, /* MOVH */ +{ODC(2), RH, RH, 0, 0, 0, 0}, /* CMPH */ +{ODC(2) +RB_O, RH, WO, 0, 0, 0, 0}, /* MNEGH */ +{ODC(1), RH, 0, 0, 0, 0, 0}, /* TSTH */ +{ODC(5), RH, RW, RH, WL, WO, 0}, /* EMODH */ +{ODC(3) +RB_R3, RH, RW, AB, 0, 0, 0}, /* POLYH */ +{ODC(2) +RB_Q, RH, WQ, 0, 0, 0, 0}, /* CVTHG */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{0, 0, 0, 0, 0, 0, 0}, /* reserved */ +{ODC(1) +RB_O, WO, 0, 0, 0, 0, 0}, /* CLRO */ +{ODC(2) +RB_O, RO, RO, 0, 0, 0, 0}, /* MOVO */ +{ODC(2) +RB_L, AO, WL, 0, 0, 0, 0}, /* MOVAO*/ +{ODC(1) +RB_SP, AO, 0, 0, 0, 0, 0}, /* PUSHAO*/ +{0, 0, 0, 0, 0, 0, 0}, /* 180-18F */ +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, /* 190-19F */ +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{ODC(2) +RB_O, RF, WO, 0, 0, 0, 0}, /* CVTFH */ +{2 +RB_Q, RF, WQ, 0, 0, 0, 0}, /* CVTFG */ +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, /* 1A0-1AF */ +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, /* 1B0-1BF */ +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, /* 1C0-1CF */ +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, /* 1D0-1DF */ +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, /* 1E0-1EF */ +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, /* 1F0-1FF */ +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{ODC(2) +RB_B, RH, WL, 0, 0, 0, 0}, /* CVTHF */ +{ODC(2) +RB_Q, RH, WQ, 0, 0, 0, 0}, /* CVTHD */ +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0}, +{0, 0, 0, 0, 0, 0, 0} }; /* Opcode mnemonics table */