📄 tic4x.h
字号:
dst2 = Indirect 0,1,IR0,IR1, ENH: register (i) Instr: 2/0 - STF||STF, STI||STI Alias: i||i, i1||i2, i2||i1.*/#define LS_CLASS_INSN(name, opcode, level) \ { name "_" name , opcode, 0xfe000000, "L;i|H,J", level }, \ { name "2_" name "1", opcode, 0xfe000000, "L;i|H,J", level }, \ { name "1_" name "2", opcode, 0xfe000000, "H,J|L;i", level }/* M: General multiply and add/sub operations Syntax: <ia> src3,src4,dst1 || <ib> src2,src1,dst2 [00] - Manual <ia> src3,src1,dst1 || <ib> src2,src4,dst2 [01] - Manual <ia> src1,src3,dst1 || <ib> src2,src4,dst2 [01] <ia> src1,src2,dst1 || <ib> src4,src3,dst2 [02] - Manual <ia> src3,src1,dst1 || <ib> src4,src2,dst2 [03] - Manual <ia> src1,src3,dst1 || <ib> src4,src2,dst2 [03] src1 = Register 0-7 (K) src2 = Register 0-7 (H) src3 = Indirect 0,1,IR0,IR1, ENH: register (j) src4 = Indirect 0,1,IR0,IR1, ENH: register (i) dst1 = Register 0-1 (N) dst2 = Register 2-3 (M) Instr: 4/0 - MPYF3||ADDF3, MPYF3||SUBF3, MPYI3||ADDI3, MPYI3||SUBI3 Alias: a||b, a3||n, a||b3, a3||b3, b||a, b3||a, b||a3, b3||a3*/#define M_CLASS_INSN(namea, nameb, opcode, level) \ { namea "_" nameb, opcode|0x00000000, 0xff000000, "i;j;N|H;K;M", level }, \ { namea "_" nameb, opcode|0x01000000, 0xff000000, "j;K;N|H;i;M", level }, \ { namea "_" nameb, opcode|0x01000000, 0xff000000, "K;j;N|H;i;M", level }, \ { namea "_" nameb, opcode|0x02000000, 0xff000000, "H;K;N|i;j;M", level }, \ { namea "_" nameb, opcode|0x03000000, 0xff000000, "j;K;N|i;H;M", level }, \ { namea "_" nameb, opcode|0x03000000, 0xff000000, "K;j;N|i;H;M", level }, \ { namea "3_" nameb, opcode|0x00000000, 0xff000000, "i;j;N|H;K;M", level }, \ { namea "3_" nameb, opcode|0x01000000, 0xff000000, "j;K;N|H;i;M", level }, \ { namea "3_" nameb, opcode|0x01000000, 0xff000000, "K;j;N|H;i;M", level }, \ { namea "3_" nameb, opcode|0x02000000, 0xff000000, "H;K;N|i;j;M", level }, \ { namea "3_" nameb, opcode|0x03000000, 0xff000000, "j;K;N|i;H;M", level }, \ { namea "3_" nameb, opcode|0x03000000, 0xff000000, "K;j;N|i;H;M", level }, \ { namea "_" nameb "3", opcode|0x00000000, 0xff000000, "i;j;N|H;K;M", level }, \ { namea "_" nameb "3", opcode|0x01000000, 0xff000000, "j;K;N|H;i;M", level }, \ { namea "_" nameb "3", opcode|0x01000000, 0xff000000, "K;j;N|H;i;M", level }, \ { namea "_" nameb "3", opcode|0x02000000, 0xff000000, "H;K;N|i;j;M", level }, \ { namea "_" nameb "3", opcode|0x03000000, 0xff000000, "j;K;N|i;H;M", level }, \ { namea "_" nameb "3", opcode|0x03000000, 0xff000000, "K;j;N|i;H;M", level }, \ { namea "3_" nameb "3", opcode|0x00000000, 0xff000000, "i;j;N|H;K;M", level }, \ { namea "3_" nameb "3", opcode|0x01000000, 0xff000000, "j;K;N|H;i;M", level }, \ { namea "3_" nameb "3", opcode|0x01000000, 0xff000000, "K;j;N|H;i;M", level }, \ { namea "3_" nameb "3", opcode|0x02000000, 0xff000000, "H;K;N|i;j;M", level }, \ { namea "3_" nameb "3", opcode|0x03000000, 0xff000000, "j;K;N|i;H;M", level }, \ { namea "3_" nameb "3", opcode|0x03000000, 0xff000000, "K;j;N|i;H;M", level }, \ { nameb "_" namea, opcode|0x00000000, 0xff000000, "H;K;M|i;j;N", level }, \ { nameb "_" namea, opcode|0x01000000, 0xff000000, "H;i;M|j;K;N", level }, \ { nameb "_" namea, opcode|0x01000000, 0xff000000, "H;i;M|K;j;N", level }, \ { nameb "_" namea, opcode|0x02000000, 0xff000000, "i;j;M|H;K;N", level }, \ { nameb "_" namea, opcode|0x03000000, 0xff000000, "i;H;M|j;K;N", level }, \ { nameb "_" namea, opcode|0x03000000, 0xff000000, "i;H;M|K;j;N", level }, \ { nameb "3_" namea, opcode|0x00000000, 0xff000000, "H;K;M|i;j;N", level }, \ { nameb "3_" namea, opcode|0x01000000, 0xff000000, "H;i;M|j;K;N", level }, \ { nameb "3_" namea, opcode|0x01000000, 0xff000000, "H;i;M|K;j;N", level }, \ { nameb "3_" namea, opcode|0x02000000, 0xff000000, "i;j;M|H;K;N", level }, \ { nameb "3_" namea, opcode|0x03000000, 0xff000000, "i;H;M|j;K;N", level }, \ { nameb "3_" namea, opcode|0x03000000, 0xff000000, "i;H;M|K;j;N", level }, \ { nameb "_" namea "3", opcode|0x00000000, 0xff000000, "H;K;M|i;j;N", level }, \ { nameb "_" namea "3", opcode|0x01000000, 0xff000000, "H;i;M|j;K;N", level }, \ { nameb "_" namea "3", opcode|0x01000000, 0xff000000, "H;i;M|K;j;N", level }, \ { nameb "_" namea "3", opcode|0x02000000, 0xff000000, "i;j;M|H;K;N", level }, \ { nameb "_" namea "3", opcode|0x03000000, 0xff000000, "i;H;M|j;K;N", level }, \ { nameb "_" namea "3", opcode|0x03000000, 0xff000000, "i;H;M|K;j;N", level }, \ { nameb "3_" namea "3", opcode|0x00000000, 0xff000000, "H;K;M|i;j;N", level }, \ { nameb "3_" namea "3", opcode|0x01000000, 0xff000000, "H;i;M|j;K;N", level }, \ { nameb "3_" namea "3", opcode|0x01000000, 0xff000000, "H;i;M|K;j;N", level }, \ { nameb "3_" namea "3", opcode|0x02000000, 0xff000000, "i;j;M|H;K;N", level }, \ { nameb "3_" namea "3", opcode|0x03000000, 0xff000000, "i;H;M|j;K;N", level }, \ { nameb "3_" namea "3", opcode|0x03000000, 0xff000000, "i;H;M|K;j;N", level }/* P: General 2-operand operation with parallell store Syntax: <ia> src2, dst1 || <ib> src3, dst2 src2 = Indirect 0,1,IR0,IR1, ENH: register (i) dst1 = Register 0-7 (L) src3 = Register 0-7 (H) dst2 = Indirect 0,1,IR0,IR1 (J) Instr: 9/2 - ABSF||STF, ABSI||STI, FIX||STI, FLOAT||STF, LDF||STF, LDI||STI, NEGF||STF, NEGI||STI, NOT||STI, C4x: FRIEEE||STF, TOIEEE||STF Alias: a||b, b||a*/#define P_CLASS_INSN(namea, nameb, opcode, level) \ { namea "_" nameb, opcode, 0xfe000000, "i;L|H,J", level }, \ { nameb "_" namea, opcode, 0xfe000000, "H,J|i;L", level }/* Q: General 3-operand operation with parallell store Syntax: <ia> src1, src2, dst1 || <ib> src3, dst2 src1 = Register 0-7 (K) src2 = Indirect 0,1,IR0,IR1, ENH: register (i) dst1 = Register 0-7 (L) src3 = Register 0-7 (H) dst2 = Indirect 0,1,IR0,IR1 (J) Instr: 4/0 - ASH3||STI, LSH3||STI, SUBF3||STF, SUBI3||STI Alias: a||b, b||a, a3||b, b||a3*/#define Q_CLASS_INSN(namea, nameb, opcode, level) \ { namea "_" nameb , opcode, 0xfe000000, "K,i;L|H,J", level }, \ { nameb "_" namea , opcode, 0xfe000000, "H,J|K,i;L", level }, \ { namea "3_" nameb , opcode, 0xfe000000, "K,i;L|H,J", level }, \ { nameb "_" namea "3", opcode, 0xfe000000, "H,J|K,i;L", level }/* QC: General commutative 3-operand operation with parallell store Syntax: <ia> src2, src1, dst1 || <ib> src3, dst2 <ia> src1, src2, dst1 || <ib> src3, dst2 - Manual src1 = Register 0-7 (K) src2 = Indirect 0,1,IR0,IR1, ENH: register (i) dst1 = Register 0-7 (L) src3 = Register 0-7 (H) dst2 = Indirect 0,1,IR0,IR1 (J) Instr: 7/0 - ADDF3||STF, ADDI3||STI, AND3||STI, MPYF3||STF, MPYI3||STI, OR3||STI, XOR3||STI Alias: a||b, b||a, a3||b, b||a3*/#define QC_CLASS_INSN(namea, nameb, opcode, level) \ { namea "_" nameb , opcode, 0xfe000000, "i;K;L|H,J", level }, \ { namea "_" nameb , opcode, 0xfe000000, "K;i;L|H,J", level }, \ { nameb "_" namea , opcode, 0xfe000000, "H,J|i;K;L", level }, \ { nameb "_" namea , opcode, 0xfe000000, "H,J|K;i;L", level }, \ { namea "3_" nameb , opcode, 0xfe000000, "i;K;L|H,J", level }, \ { namea "3_" nameb , opcode, 0xfe000000, "K;i;L|H,J", level }, \ { nameb "_" namea "3", opcode, 0xfe000000, "H,J|i;K;L", level }, \ { nameb "_" namea "3", opcode, 0xfe000000, "H,J|K;i;L", level }/* R: General register integer operation Syntax: <i> dst dst = Register (R) Instr: 6/0 - POP, PUSH, ROL, ROLC, ROR, RORC*/#define R_CLASS_INSN(name, opcode, level) \ { name, opcode, 0xffe0ffff, "R", level }/* RF: General register float operation Syntax: <i> dst dst = Register 0-11 (r) Instr: 2/0 - POPF, PUSHF*/#define RF_CLASS_INSN(name, opcode, level) \ { name, opcode, 0xffe0ffff, "r", level }/* S: General 3-operand float operation Syntax: <i> src2, src1, dst src2 = Register 0-11 (e), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C) src1 = Register 0-11 (g), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O) dst = Register 0-11 (r) Instr: 1/0 - SUBF3 Alias: i, i3*/#define S_CLASS_INSN(name, opcode, level) \ { name, opcode|0x20000000, 0xffe00000, "e,g;r", level }, \ { name, opcode|0x20200000, 0xffe00000, "e,J,r", level }, \ { name, opcode|0x20400000, 0xffe00000, "I,g;r", level }, \ { name, opcode|0x20600000, 0xffe00000, "I,J,r", level }, \ { name, opcode|0x30200000, 0xffe00000, "C,g;r", OP_C4X }, \ { name, opcode|0x30600000, 0xffe00000, "C,O,r", OP_C4X }, \ { name "3", opcode|0x20000000, 0xffe00000, "e,g;r", level }, \ { name "3", opcode|0x20200000, 0xffe00000, "e,J,r", level }, \ { name "3", opcode|0x20400000, 0xffe00000, "I,g;r", level }, \ { name "3", opcode|0x20600000, 0xffe00000, "I,J,r", level }, \ { name "3", opcode|0x30200000, 0xffe00000, "C,g;r", OP_C4X }, \ { name "3", opcode|0x30600000, 0xffe00000, "C,O,r", OP_C4X }/* SC: General commutative 3-operand float operation Syntax: <i> src2, src1, dst - Manual <i> src1, src2, dst src2 = Register 0-11 (e), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C) src1 = Register 0-11 (g), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O) dst = Register 0-11 (r) Instr: 2/0 - ADDF3, MPYF3 Alias: i, i3*/#define SC_CLASS_INSN(name, opcode, level) \ { name, opcode|0x20000000, 0xffe00000, "e,g;r", level }, \ { name, opcode|0x20200000, 0xffe00000, "e,J,r", level }, \ { name, opcode|0x20400000, 0xffe00000, "I,g;r", level }, \ { name, opcode|0x20600000, 0xffe00000, "I,J,r", level }, \ { name, opcode|0x30200000, 0xffe00000, "C,g;r", OP_C4X }, \ { name, opcode|0x30200000, 0xffe00000, "g,C,r", OP_C4X }, \ { name, opcode|0x30600000, 0xffe00000, "C,O,r", OP_C4X }, \ { name "3", opcode|0x20000000, 0xffe00000, "e,g;r", level }, \ { name "3", opcode|0x20200000, 0xffe00000, "e,J,r", level }, \ { name "3", opcode|0x20400000, 0xffe00000, "I,g;r", level }, \ { name "3", opcode|0x20600000, 0xffe00000, "I,J,r", level }, \ { name "3", opcode|0x30200000, 0xffe00000, "g,C,r", OP_C4X }, \ { name "3", opcode|0x30200000, 0xffe00000, "C,g;r", OP_C4X }, \ { name "3", opcode|0x30600000, 0xffe00000, "C,O,r", OP_C4X }/* S2: General 3-operand float operation with 2 args Syntax: <i> src2, src1 src2 = Register 0-11 (e), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C) src1 = Register 0-11 (g), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O) Instr: 1/0 - CMPF3 Alias: i, i3*/#define S2_CLASS_INSN(name, opcode, level) \ { name, opcode|0x20000000, 0xffe00000, "e,g", level }, \ { name, opcode|0x20200000, 0xffe00000, "e,J", level }, \ { name, opcode|0x20400000, 0xffe00000, "I,g", level }, \ { name, opcode|0x20600000, 0xffe00000, "I,J", level }, \ { name, opcode|0x30200000, 0xffe00000, "C,g", OP_C4X }, \ { name, opcode|0x30600000, 0xffe00000, "C,O", OP_C4X }, \ { name "3", opcode|0x20000000, 0xffe00000, "e,g", level }, \ { name "3", opcode|0x20200000, 0xffe00000, "e,J", level }, \ { name "3", opcode|0x20400000, 0xffe00000, "I,g", level }, \ { name "3", opcode|0x20600000, 0xffe00000, "I,J", level }, \ { name "3", opcode|0x30200000, 0xffe00000, "C,g", OP_C4X }, \ { name "3", opcode|0x30600000, 0xffe00000, "C,O", OP_C4X }/* T: General 3-operand integer operand Syntax: <i> src2, src1, dst src2 = Register (E), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C), Immediate (W) src1 = Register (G), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O) dst = Register (R) Instr: 5/0 - ANDN3, ASH3, LSH3, SUBB3, SUBI3 Alias: i, i3*/#define T_CLASS_INSN(name, opcode, level) \ { name, opcode|0x20000000, 0xffe00000, "E,G;R", level }, \ { name, opcode|0x20200000, 0xffe00000, "E,J,R", level }, \ { name, opcode|0x20400000, 0xffe00000, "I,G;R", level }, \ { name, opcode|0x20600000, 0xffe00000, "I,J,R", level }, \ { name, opcode|0x30000000, 0xffe00000, "W,G;R", OP_C4X }, \ { name, opcode|0x30200000, 0xffe00000, "C,G;R", OP_C4X }, \ { name, opcode|0x30400000, 0xffe00000, "W,O,R", OP_C4X }, \ { name, opcode|0x30600000, 0xffe00000, "C,O,R", OP_C4X }, \ { name "3", opcode|0x20000000, 0xffe00000, "E,G;R", level }, \ { name "3", opcode|0x20200000, 0xffe00000, "E,J,R", level }, \ { name "3", opcode|0x20400000, 0xffe00000, "I,G;R", level }, \ { name "3", opcode|0x20600000, 0xffe00000, "I,J,R", level }, \ { name "3", opcode|0x30000000, 0xffe00000, "W,G;R", OP_C4X }, \ { name "3", opcode|0x30200000, 0xffe00000, "C,G;R", OP_C4X }, \ { name "3", opcode|0x30400000, 0xffe00000, "W,O,R", OP_C4X }, \ { name "3", opcode|0x30600000, 0xffe00000, "C,O,R", OP_C4X }/* TC: General commutative 3-operand integer operation Syntax: <i> src2, src1, dst <i> src1, src2, dst src2 = Register (E), Indirect 0,1,IR0,IR1 (I), C4x T2: Indirect (C), Immediate (W) src1 = Register (G), Indirect 0,1,IR0,IR1 (J), C4x T2: Indirect (O) dst = Register (R) Instr: 6/2 - ADDC3, ADDI3, AND3, MPYI3, OR3, XOR3, C4x: MPYSHI, MPYUHI Alias: i, i3*/#define TC_CLASS_INSN(name, opcode, level) \ { name, opcode|0x20000000, 0xffe00000, "E,G;R", level }, \ { name, opcode|0x20200000, 0xffe00000, "E,J,R", level }, \ { name, opcode|0x20400000, 0xffe00000, "I,G;R", level }, \ { name, opcode|0x20600000, 0xffe00000, "I,J,R", level }, \ { name, opcode|0x30000000, 0xffe00000, "W,G;R", OP_C4X }, \ { name, opcode|0x30000000, 0xffe00000, "G,W,R", OP_C4X }, \ { name, opcode|0x30200000, 0xffe00000, "C,G;R", OP_C4X }, \ { name, opcode|0x30200000, 0xffe00000, "G,C,R", OP_C4X }, \ { name, opcode|0x30400000, 0xffe00000, "W,O,R", OP_C4X }, \ { name, opcode|0x30400000, 0xffe00000, "O,W,R", OP_C4X }, \ { name, opcode|0x30600000, 0xffe00000, "C,O,R", OP_C4X }, \ { name "3", opcode|0x20000000, 0xffe00000, "E,G;R", level }, \ { name "3", opcode|0x20200000, 0xffe00000, "E,J,R", level }, \ { name "3", opcode|0x20400000, 0xffe00000, "I,G;R", level }, \ { name "3", opcode|0x20600000, 0xffe00000, "I,J,R", level }, \ { name "3", opcode|0x30000000, 0xffe00000, "W,G;R", OP_C4X }, \ { name "3", opcode|0x30000000, 0xffe00000, "G,W,R", OP_C4X }, \ { name "3", opcode|0x30200000, 0xffe00000, "C,G;R", OP_C4X }, \ { name "3", opcode|0x30200000, 0xffe00000, "G,C,R", OP_C4X }, \ { name "3", opcode|0x30400000, 0xffe00000, "W,O,R", OP_C4X }, \ { name "3", opcode|0x30400000, 0xffe00000, "O,W,R", OP_C4X }, \ { name "3", opcode|0x30600000, 0xffe00000, "C,O,R", OP_C4X }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -