⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gencode.c

📁 gdb-6.0 linux 下的调试工具
💻 C
📖 第 1 页 / 共 4 页
字号:
  { "n", "m", "mov.l @(<disp>,<REG_M>),<REG_N>", "0101nnnnmmmmi4*4",    "MA (1);",    "R[n] = RLAT (i + R[m]);",    "L (n);",  },  { "n", "m0", "mov.l @(R0,<REG_M>),<REG_N>", "0000nnnnmmmm1110",    "MA (1);",    "R[n] = RLAT (R0 + R[m]);",    "L (n);",  },  { "nm", "m", "mov.l @<REG_M>+,<REG_N>", "0110nnnnmmmm0110",    "MA (1);",    "R[n] = RLAT (R[m]);",    "R[m] += 4;",    "L (n);",  },  { "n", "m", "mov.l @<REG_M>,<REG_N>", "0110nnnnmmmm0010",    "MA (1);",    "R[n] = RLAT (R[m]);",    "L (n);",  },  { "", "0", "mov.l R0,@(<disp>,GBR)", "11000010i8*4....",    "MA (1);",    "WLAT (i + GBR, R0);",  },  { "", "nm", "mov.l <REG_M>,@(<disp>,<REG_N>)", "0001nnnnmmmmi4*4",    "MA (1);",    "WLAT (i + R[n], R[m]);",  },  { "", "nm0", "mov.l <REG_M>,@(R0,<REG_N>)", "0000nnnnmmmm0110",    "MA (1);",    "WLAT (R0 + R[n], R[m]);",  },  { "", "nm", "mov.l <REG_M>,@-<REG_N>", "0010nnnnmmmm0110",    "MA (1) ;",    "R[n] -= 4;",    "WLAT (R[n], R[m]);",  },  { "", "nm", "mov.l <REG_M>,@<REG_N>", "0010nnnnmmmm0010",    "MA (1);",    "WLAT (R[n], R[m]);",  },  { "0", "", "mov.w @(<disp>,GBR),R0", "11000101i8*2....",    "MA (1)",    ";R0 = RSWAT (i + GBR);",    "L (0);",  },  { "n", "", "mov.w @(<disp>,PC),<REG_N>", "1001nnnni8p2....",    "MA (1);",    "R[n] = RSWAT (PH2T (PC + 4 + i));",    "L (n);",  },  { "0", "m", "mov.w @(<disp>,<REG_M>),R0", "10000101mmmmi4*2",    "MA (1);",    "R0 = RSWAT (i + R[m]);",    "L (0);",  },  { "n", "m0", "mov.w @(R0,<REG_M>),<REG_N>", "0000nnnnmmmm1101",    "MA (1);",    "R[n] = RSWAT (R0 + R[m]);",    "L (n);",  },  { "nm", "n", "mov.w @<REG_M>+,<REG_N>", "0110nnnnmmmm0101",    "MA (1);",    "R[n] = RSWAT (R[m]);",    "R[m] += 2;",    "L (n);",  },  { "n", "m", "mov.w @<REG_M>,<REG_N>", "0110nnnnmmmm0001",    "MA (1);",    "R[n] = RSWAT (R[m]);",    "L (n);",  },  { "", "0", "mov.w R0,@(<disp>,GBR)", "11000001i8*2....",    "MA (1);",    "WWAT (i + GBR, R0);",  },  { "", "0m", "mov.w R0,@(<disp>,<REG_M>)", "10000001mmmmi4*2",    "MA (1);",    "WWAT (i + R[m], R0);",  },  { "", "m0n", "mov.w <REG_M>,@(R0,<REG_N>)", "0000nnnnmmmm0101",    "MA (1);",    "WWAT (R0 + R[n], R[m]);",  },  { "n", "mn", "mov.w <REG_M>,@-<REG_N>", "0010nnnnmmmm0101",    "MA (1);",    "R[n] -= 2;",    "WWAT (R[n], R[m]);",  },  { "", "nm", "mov.w <REG_M>,@<REG_N>", "0010nnnnmmmm0001",    "MA (1);",    "WWAT (R[n], R[m]);",  },  { "0", "", "mova @(<disp>,PC),R0", "11000111i8p4....",    "R0 = ((i + 4 + PH2T (PC)) & ~0x3);",  },  { "0", "", "movca.l @R0, <REG_N>", "0000nnnn11000011",    "/* FIXME: Not implemented */",    "RAISE_EXCEPTION (SIGILL);",  },  { "n", "", "movt <REG_N>", "0000nnnn00101001",    "R[n] = T;",  },  { "", "mn", "mul.l <REG_M>,<REG_N>", "0000nnnnmmmm0111",    "MACL = ((int)R[n]) * ((int)R[m]);",  },#if 0  { "", "nm", "mul.l <REG_M>,<REG_N>", "0000nnnnmmmm0111",    "MACL = R[n] * R[m];",  },#endif  /* muls.w - see muls */  { "", "mn", "muls <REG_M>,<REG_N>", "0010nnnnmmmm1111",    "MACL = ((int)(short)R[n]) * ((int)(short)R[m]);",  },  /* mulu.w - see mulu */  { "", "mn", "mulu <REG_M>,<REG_N>", "0010nnnnmmmm1110",    "MACL = (((unsigned int)(unsigned short)R[n])",    "        * ((unsigned int)(unsigned short)R[m]));",  },  { "n", "m", "neg <REG_M>,<REG_N>", "0110nnnnmmmm1011",    "R[n] = - R[m];",  },  { "n", "m", "negc <REG_M>,<REG_N>", "0110nnnnmmmm1010",    "ult = -T;",    "SET_SR_T (ult > 0);",    "R[n] = ult - R[m];",    "SET_SR_T (T || (R[n] > ult));",  },  { "", "", "nop", "0000000000001001",    "/* nop */",  },  { "n", "m", "not <REG_M>,<REG_N>", "0110nnnnmmmm0111",    "R[n] = ~R[m];",  },  { "0", "", "ocbi @<REG_N>", "0000nnnn10010011",    "/* FIXME: Not implemented */",    "RAISE_EXCEPTION (SIGILL);",  },  { "0", "", "ocbp @<REG_N>", "0000nnnn10100011",    "/* FIXME: Not implemented */",    "RAISE_EXCEPTION (SIGILL);",  },  { "", "n", "ocbwb @<REG_N>", "0000nnnn10110011",    "RSBAT (R[n]); /* Take exceptions like byte load.  */",    "/* FIXME: Cache not implemented */",  },  { "0", "", "or #<imm>,R0", "11001011i8*1....",    "R0 |= i;",  },  { "n", "m", "or <REG_M>,<REG_N>", "0010nnnnmmmm1011",    "R[n] |= R[m];",  },  { "", "0", "or.b #<imm>,@(R0,GBR)", "11001111i8*1....",    "MA (1);",    "WBAT (R0 + GBR, (RBAT (R0 + GBR) | i));",  },  { "", "n", "pref @<REG_N>", "0000nnnn10000011",    "/* Except for the effect on the cache - which is not simulated -",    "   this is like a nop.  */",  },  { "n", "n", "rotcl <REG_N>", "0100nnnn00100100",    "ult = R[n] < 0;",    "R[n] = (R[n] << 1) | T;",    "SET_SR_T (ult);",  },  { "n", "n", "rotcr <REG_N>", "0100nnnn00100101",    "ult = R[n] & 1;",    "R[n] = (UR[n] >> 1) | (T << 31);",    "SET_SR_T (ult);",  },  { "n", "n", "rotl <REG_N>", "0100nnnn00000100",    "SET_SR_T (R[n] < 0);",    "R[n] <<= 1;",    "R[n] |= T;",  },  { "n", "n", "rotr <REG_N>", "0100nnnn00000101",    "SET_SR_T (R[n] & 1);",    "R[n] = UR[n] >> 1;",    "R[n] |= (T << 31);",  },  { "", "", "rte", "0000000000101011", #if 0    /* SH-[12] */    "int tmp = PC;",    "SET_NIP (PT2H (RLAT (R[15]) + 2));",    "R[15] += 4;",    "SET_SR (RLAT (R[15]) & 0x3f3);",    "R[15] += 4;",    "Delay_Slot (PC + 2);",#else    "SET_SR (SSR);",    "SET_NIP (PT2H (SPC));",    "cycles += 2;",    "Delay_Slot (PC + 2);",#endif  },  { "", "", "rts", "0000000000001011",    "SET_NIP (PT2H (PR));",    "cycles += 2;",    "Delay_Slot (PC + 2);",  },  /* sh-dsp */  { "", "n", "setrc <REG_N>", "0100nnnn00010100",    "SET_RC (R[n]);",  },  { "", "n", "setrc #<imm>", "10000010i8*1....",    /* It would be more realistic to let loop_start point to some static       memory that contains an illegal opcode and then give a bus error when       the loop is eventually encountered, but it seems not only simpler,       but also more debugging-friendly to just catch the failure here.  */    "if (BUSERROR (RS | RE, maskw))",    "  RAISE_EXCEPTION (SIGILL);",    "else {",    "  SET_RC (i);",    "  loop = get_loop_bounds (RS, RE, memory, mem_end, maskw, endianw);",    "  CHECK_INSN_PTR (insn_ptr);",    "}",  },  { "", "", "sets", "0000000001011000",    "SET_SR_S (1);",  },  { "", "", "sett", "0000000000011000",    "SET_SR_T (1);",  },  { "n", "mn", "shad <REG_M>,<REG_N>", "0100nnnnmmmm1100",    "R[n] = (R[m] < 0) ? (R[n] >> ((-R[m])&0x1f)) : (R[n] << (R[m] & 0x1f));",  },  { "n", "n", "shal <REG_N>", "0100nnnn00100000",    "SET_SR_T (R[n] < 0);",    "R[n] <<= 1;",  },  { "n", "n", "shar <REG_N>", "0100nnnn00100001",    "SET_SR_T (R[n] & 1);",    "R[n] = R[n] >> 1;",  },  { "n", "mn", "shld <REG_M>,<REG_N>", "0100nnnnmmmm1101",    "R[n] = (R[m] < 0) ? (UR[n] >> ((-R[m])&0x1f)): (R[n] << (R[m] & 0x1f));",  },  { "n", "n", "shll <REG_N>", "0100nnnn00000000",    "SET_SR_T (R[n] < 0);",    "R[n] <<= 1;",  },  { "n", "n", "shll2 <REG_N>", "0100nnnn00001000",    "R[n] <<= 2;",  },  { "n", "n", "shll8 <REG_N>", "0100nnnn00011000",    "R[n] <<= 8;",  },  { "n", "n", "shll16 <REG_N>", "0100nnnn00101000",    "R[n] <<= 16;",  },  { "n", "n", "shlr <REG_N>", "0100nnnn00000001",    "SET_SR_T (R[n] & 1);",    "R[n] = UR[n] >> 1;",  },  { "n", "n", "shlr2 <REG_N>", "0100nnnn00001001",    "R[n] = UR[n] >> 2;",  },  { "n", "n", "shlr8 <REG_N>", "0100nnnn00011001",    "R[n] = UR[n] >> 8;",  },  { "n", "n", "shlr16 <REG_N>", "0100nnnn00101001",    "R[n] = UR[n] >> 16;",  },  { "", "", "sleep", "0000000000011011",    "nip += trap (0xc3, R0, PC, memory, maskl, maskw, endianw);",  },  { "n", "", "stc <CREG_M>,<REG_N>", "0000nnnnmmmm0010",    "R[n] = CREG (m);",  },#if 0  { "n", "", "stc SGR,<REG_N>", "0000nnnn00111010",    "R[n] = SGR;",  },  { "n", "", "stc DBR,<REG_N>", "0000nnnn11111010",    "R[n] = DBR;",  },#endif  { "n", "n", "stc.l <CREG_M>,@-<REG_N>", "0100nnnnmmmm0011",    "MA (1);",    "R[n] -= 4;",    "WLAT (R[n], CREG (m));",  },#if 0  { "n", "n", "stc.l SGR,@-<REG_N>", "0100nnnn00110010",    "MA (1);",    "R[n] -= 4;",    "WLAT (R[n], SGR);",  },  { "n", "n", "stc.l DBR,@-<REG_N>", "0100nnnn11110010",    "MA (1);",    "R[n] -= 4;",    "WLAT (R[n], DBR);",  },#endif  { "n", "", "sts <SREG_M>,<REG_N>", "0000nnnnssss1010",    "R[n] = SREG (m);",  },  { "n", "n", "sts.l <SREG_M>,@-<REG_N>", "0100nnnnssss0010",    "MA (1);",    "R[n] -= 4;",    "WLAT (R[n], SREG (m));",  },  { "n", "nm", "sub <REG_M>,<REG_N>", "0011nnnnmmmm1000",    "R[n] -= R[m];",  },  { "n", "nm", "subc <REG_M>,<REG_N>", "0011nnnnmmmm1010",    "ult = R[n] - T;",    "SET_SR_T (ult > R[n]);",    "R[n] = ult - R[m];",    "SET_SR_T (T || (R[n] > ult));",  },  { "n", "nm", "subv <REG_M>,<REG_N>", "0011nnnnmmmm1011",    "ult = R[n] - R[m];",    "SET_SR_T (((R[n] ^ R[m]) & (ult ^ R[n])) >> 31);",    "R[n] = ult;",  },  { "n", "nm", "swap.b <REG_M>,<REG_N>", "0110nnnnmmmm1000",    "R[n] = ((R[m] & 0xffff0000)",    "        | ((R[m] << 8) & 0xff00)",    "        | ((R[m] >> 8) & 0x00ff));",  },  { "n", "nm", "swap.w <REG_M>,<REG_N>", "0110nnnnmmmm1001",    "R[n] = (((R[m] << 16) & 0xffff0000)",    "        | ((R[m] >> 16) & 0x00ffff));",  },  { "", "n", "tas.b @<REG_N>", "0100nnnn00011011",    "MA (1);",    "ult = RBAT(R[n]);",    "SET_SR_T (ult == 0);",    "WBAT(R[n],ult|0x80);",  },  { "0", "", "trapa #<imm>", "11000011i8*1....",     "long imm = 0xff & i;",    "if (i < 20 || i == 33 || i == 34 || i == 0xc3)",    "  nip += trap (i, R, PC, memory, maskl, maskw,endianw);",#if 0    "else {",    /* SH-[12] */    "  R[15]-=4;",    "  WLAT (R[15], GET_SR());",    "  R[15]-=4;",    "  WLAT (R[15], PH2T (PC + 2));",#else    "else if (!SR_BL) {",    "  SSR = GET_SR();",    "  SPC = PH2T (PC + 2);",    "  SET_SR (GET_SR() | SR_MASK_MD | SR_MASK_BL | SR_MASK_RB);",    "  /* FIXME: EXPEVT = 0x00000160; */",#endif    "  SET_NIP (PT2H (RLAT (VBR + (imm<<2))));",    "}",  },  { "", "mn", "tst <REG_M>,<REG_N>", "0010nnnnmmmm1000",    "SET_SR_T ((R[n] & R[m]) == 0);",  },  { "", "0", "tst #<imm>,R0", "11001000i8*1....",    "SET_SR_T ((R0 & i) == 0);",  },  { "", "0", "tst.b #<imm>,@(R0,GBR)", "11001100i8*1....",    "MA (1);",    "SET_SR_T ((RBAT (GBR+R0) & i) == 0);",  },  { "", "0", "xor #<imm>,R0", "11001010i8*1....",    "R0 ^= i;",  },  { "n", "mn", "xor <REG_M>,<REG_N>", "0010nnnnmmmm1010",    "R[n] ^= R[m];",  },  { "", "0", "xor.b #<imm>,@(R0,GBR)", "11001110i8*1....",    "MA (1);",    "ult = RBAT (GBR+R0);",    "ult ^= i;",    "WBAT (GBR + R0, ult);",  },  { "n", "nm", "xtrct <REG_M>,<REG_N>", "0010nnnnmmmm1101",    "R[n] = (((R[n] >> 16) & 0xffff)",    "        | ((R[m] << 16) & 0xffff0000));",  },#if 0  { "divs.l <REG_M>,<REG_N>", "0100nnnnmmmm1110",    "divl(0,R[n],R[m]);",  },  { "divu.l <REG_M>,<REG_N>", "0100nnnnmmmm1101",    "divl(0,R[n],R[m]);",  },#endif  {0, 0}};op movsxy_tab[] ={/* If this is disabled, the simulator speeds up by about 12% on a   450 MHz PIII - 9% with ACE_FAST.   Maybe we should have separate simulator loops?  */#if 1  { "n", "n", "movs.w @-<REG_N>,<DSP_REG_M>", "111101NNMMMM0000",    "MA (1);",    "R[n] -= 2;",    "DSP_R (m) = RSWAT (R[n]) << 16;",    "DSP_GRD (m) = SIGN32 (DSP_R (m));",  },  { "", "n",  "movs.w @<REG_N>,<DSP_REG_M>",  "111101NNMMMM0100",    "MA (1);",    "DSP_R (m) = RSWAT (R[n]) << 16;",    "DSP_GRD (m) = SIGN32 (DSP_R (m));",  },  { "n", "n", "movs.w @<REG_N>+,<DSP_REG_M>", "111101NNMMMM1000",    "MA (1);",    "DSP_R (m) = RSWAT (R[n]) << 16;",    "DSP_GRD (m) = SIGN32 (DSP_R (m));",    "R[n] += 2;",  },  { "n", "n8","movs.w @<REG_N>+REG_8,<DSP_REG_M>", "111101NNMMMM1100",    "MA (1);",    "DSP_R (m) = RSWAT (R[n]) << 16;",    "DSP_GRD (m) = SIGN32 (DSP_R (m));",    "R[n] += R[8];",  },  { "n", "n", "movs.w @-<REG_N>,<DSP_GRD_M>", "111101NNGGGG0000",    "MA (1);",    "R[n] -= 2;",    "DSP_R (m) = RSWAT (R[n]);",  },  { "", "n",  "movs.w @<REG_N>,<DSP_GRD_M>",  "111101NNGGGG0100",    "MA (1);",    "DSP_R (m) = RSWAT (R[n]);",  },  { "n", "n", "movs.w @<REG_N>+,<DSP_GRD_M>", "111101NNGGGG1000",    "MA (1);",    "DSP_R (m) = RSWAT (R[n]);",    "R[n] += 2;",  },  { "n", "n8","movs.w @<REG_N>+REG_8,<DSP_GRD_M>", "111101NNGGGG1100",    "MA (1);",    "DSP_R (m) = RSWAT (R[n]);",    "R[n] += R[8];",  },  { "n", "n", "<DSP_REG_M>,movs.w @-<REG_N>", "111101NNMMMM0001",    "MA (1);",    "R[n] -= 2;",    "WWAT (R[n], DSP_R (m) >> 16);",  },  { "", "n",  "movs.w <DSP_REG_M>,@<REG_N>",  "111101NNMMMM0101",    "MA (1);",    "WWAT (R[n], DSP_R (m) >> 16);",  },  { "n", "n", "movs.w <DSP_REG_M>,@<REG_N>+", "111101NNMMMM1001",    "MA (1);",    "WWAT (R[n], DSP_R (m) >> 16);",    "R[n] += 2;",  },  { "n", "n8","movs.w <DSP_REG_M>,@<REG_N>+REG_8", "111101NNMMMM1101",    "MA (1);",    "WWAT (R[n], DSP_R (m) >> 16);",    "R[n] += R[8];",  },  { "n", "n", "movs.w <DSP_GRD_M>,@-<REG_N>", "111101NNGGGG0001",    "MA (1);",    "R[n] -= 2;",    "WWAT (R[n], SEXT (DSP_R (m)));",  },  { "", "n",  "movs.w <DSP_GRD_M>,@<REG_N>",  "111101NNGGGG0101",    "MA (1);",    "WWAT (R[n], SEXT (DSP_R (m)));",  },  { "n", "n", "movs.w <DSP_GRD_M>,@<REG_N>+", "111101NNGGGG1001",    "MA (1);",    "WWAT (R[n], SEXT (DSP_R (m)));",    "R[n] += 2;",  },  { "n", "n8","movs.w <DSP_GRD_M>,@<REG_N>+REG_8", "111101NNGGGG1101",    "MA (1);",    "WWAT (R[n], SEXT (DSP_R (m)));",    "R[n] += R[8];",  },  { "n", "n", "movs.l @-<REG_N>,<DSP_REG_M>", "111101NNMMMM0010",    "MA (1);",    "R[n] -= 4;",    "DSP_R (m) = RLAT (R[n]);",    "DSP_GRD (m) = SIGN32 (DSP_R (m));",  },  { "", "n",  "movs.l @<REG_N>,<DSP_REG_M>",  "111101NNMMMM0110",    "MA (1);",    "DSP_R (m) = RLAT (R[n]);",    "DSP_GRD (m) = SIGN32 (DSP_R (m));",  },  { "n", "n", "movs.l @<REG_N>+,<DSP_REG_M>", "111101NNMMMM1010",    "MA (1);",    "DSP_R (m) = RLAT (R[n]);",    "DSP_GRD (m) = SIGN32 (DSP_R (m));",    "R[n] += 4;",  },  { "n", "n8","movs.l @<REG_N>+REG_8,<DSP_REG_M>", "111101NNMMMM1110",    "MA (1);",    "DSP_R (m) = RLAT (R[n]);",    "DSP_GRD (m) = SIGN32 (DSP_R (m));",    "R[n] += R[8];",  },  { "n", "n", "<DSP_REG_M>,movs.l @-<REG_N>", "111101NNMMMM0011",    "MA (1);",    "R[n] -= 4;",    "WLAT (R[n], DSP_R (m));",  },  { "", "n",  "movs.l <DSP_REG_M>,@<REG_N>",  "111101NNMMMM0111",    "MA (1);",    "WLAT (R[n], DSP_R (m));",  },  { "n", "n", "movs.l <DSP_REG_M>,@<REG_N>+", "111101NNMMMM1011",    "MA (1);",    "WLAT (R[n], DSP_R (m));",    "R[n] += 4;",  },  { "n", "n8","movs.l <DSP_REG_M>,@<REG_N>+REG_8", "111101NNMMMM1111",    "MA (1);",    "WLAT (R[n], DSP_R (m));",    "R[n] += R[8];",  },  { "n", "n", "<DSP_GRD_M>,movs.l @-<REG_N>", "111101NNGGGG0011",    "MA (1);",    "R[n] -= 4;",    "WLAT (R[n], SEXT (DSP_R (m)));",  },  { "", "n",  "movs.l <DSP_GRD_M>,@<REG_N>",  "111101NNGGGG0111",    "MA (1);",    "WLAT (R[n], SEXT (DSP_R (m)));",  },  { "n", "n", "movs.l <DSP_GRD_M>,@<REG_N>+", "111101NNGGGG1011",    "MA (1);",    "WLAT (R[n], SEXT (DSP_R (m)));",    "R[n] += 4;",  },  { "n", "n8","movs.l <DSP_GRD_M>,@<REG_N>+REG_8", "111101NNGGGG1111",    "MA (1);",    "WLAT (R[n], SEXT (DSP_R (m)));",    "R[n] += R[8];",  },  { "", "n", "movx.w @<REG_x>,<DSP_XX>",   "111100xxXX000100",    "DSP_R (m) = RSWAT (R[n]) << 16;",    "iword &= 0xfd53; goto top;",  },  { "n", "n", "movx.w @<REG_x>+,<DSP_XX>", "111100xxXX001000",    "DSP_R (m) = RSWAT (R[n]) << 16;",    "R[n] += ((R[n] & 0xffff) == MOD_ME) ? MOD_DELTA : 2;",    "iword &= 0xfd53; goto top;",  },  { "n", "n8","movx.w @<REG_x>+REG_8,<DSP_XX>", "111100xxXX001000",    "DSP_R (m) = RSWAT (R[n]) << 16;",    "R[n] += ((R[n] & 0xffff) == MOD_ME) ? MOD_DELTA : R[8];",    "iword &= 0xfd53; goto top;",  },  { "", "n", "movx.w <DSP_Aa>,@<REG_x>",   "111100xxaa100100",    "WWAT (R[n], DSP_R (m) >> 16);",    "iword &= 0xfd53; goto top;",  },  { "n", "n", "movx.w <DSP_Aa>,@<REG_x>+", "111100xxaa101000",    "WWAT (R[n], DSP_R (m) >> 16);",    "R[n] += ((R[n] & 0xffff) == MOD_ME) ? MOD_DELTA : 2;",    "iword &= 0xfd53; goto top;",  },  { "n", "n8","movx.w <DSP_Aa>,@<REG_x>+REG_8","111100xxaa101000",    "WWAT (R[n], DSP_R (m) >> 16);",    "R[n] += ((R[n] & 0xffff) == MOD_ME) ? MOD_DELTA : R[8];",    "iword &= 0xfd53; goto top;",  },  { "", "n", "movy.w @<REG_y>,<DSP_YY>",   "111100yyYY000001",    "DSP_R (m) = RSWAT (R[n]) << 16;",  },  { "n", "n", "movy.w @<REG_x>+,<DSP_YY>", "111100yyYY000010",    "DSP_R (m) = RSWAT (R[n]) << 16;",    "R[n] += ((R[n] | ~0xffff) == MOD_ME) ? MOD_DELTA : 2;",  },  { "n", "n9","movy.w @<REG_x>+REG_9,<DSP_YY>", "111100yyYY000010",    "DSP_R (m) = RSWAT (R[n]) << 16;",    "R[n] += ((R[n] | ~0xffff) == MOD_ME) ? MOD_DELTA : R[9];",  },  { "", "n", "movy.w <DSP_Aa>,@<REG_x>",   "111100yyAA010001",    "WWAT (R[n], DSP_R (m) >> 16);",  },  { "n", "n", "movy.w <DSP_Aa>,@<REG_x>+", "111100yyAA010010",    "WWAT (R[n], DSP_R (m) >> 16);",    "R[n] += ((R[n] | ~0xffff) == MOD_ME) ? MOD_DELTA : 2;",  },  { "n", "n9", "movy.w <DSP_Aa>,@<REG_x>+REG_9", "111100yyAA010010",    "WWAT (R[n], DSP_R (m) >> 16);",    "R[n] += ((R[n] | ~0xffff) == MOD_ME) ? MOD_DELTA : R[9];",  },  { "", "", "nopx nopy", "1111000000000000",    "/* nop */",  },  { "", "", "ppi", "1111100000000000",    "ppi_insn (RIAT (nip));",    "nip += 2;",    "iword &= 0xf7ff; goto top;",  },#endif  {0, 0}};op ppi_tab[] ={  { "","", "pshl #<imm>,dz",	"00000iiim16.zzzz",    "int Sz = DSP_R (z) & 0xffff0000;",    "",

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -