📄 opclasses.h
字号:
nameb R0, AR0, R2 &|| namea R0, AR0, R0 /* H;i;M|K;j;N */ &\ nameb AR0, AR1, R2 &|| namea R2, R1, R0 /* i;j;M|H;K;N */ &\ nameb AR0, R3, R2 &|| namea AR0, R1, R0 /* i;H;M|j;K;N */ &\ nameb AR0, R0, R2 &|| namea R0, AR0, R0 /* i;H;M|K;j;N */ &\ .endif &\ .ifdef level &\nameb##3_##namea##_M: &\ nameb##3 R0, R1, R2 &|| namea *+AR0(1), *+AR1(1), R0 /* H;K;M|i;j;N */ &\ nameb##3 R0, R2 &|| namea *+AR0(1), *+AR1(1), R0 /* H;K;M|i;j;N */ &\ nameb##3 R0, *+AR1(1), R2 &|| namea *+AR0(1), R0, R0 /* H;i;M|j;K;N */ &\ nameb##3 R0, *+AR1(1), R2 &|| namea *+AR0(1), R0 /* H;i;M|j;K;N */ &\ nameb##3 R0, *+AR1(1), R2 &|| namea R0, *+AR0(1), R0 /* H;i;M|K;j;N */ &\ nameb##3 *+AR0(1), *+AR1(1), R2 &|| namea R2, R1, R0 /* i;j;M|H;K;N */ &\ nameb##3 *+AR0(1), *+AR1(1), R2 &|| namea R2, R0 /* i;j;M|H;K;N */ &\ nameb##3 *+AR1(1), R3, R2 &|| namea *+AR0(1), R1, R0 /* i;H;M|j;K;N */ &\ nameb##3 *+AR1(1), R3, R2 &|| namea *+AR0(1), R0 /* i;H;M|j;K;N */ &\ nameb##3 *+AR1(1), R2 &|| namea *+AR0(1), R1, R0 /* i;H;M|j;K;N */ &\ nameb##3 *+AR1(1), R2 &|| namea *+AR0(1), R0 /* i;H;M|j;K;N */ &\ nameb##3 *+AR1(1), R0, R2 &|| namea R0, *+AR0(1), R0 /* i;H;M|K;j;N */ &\ nameb##3 *+AR1(1), R2 &|| namea R0, *+AR0(1), R0 /* i;H;M|K;j;N */ &\ .endif &\ .ifdef TEST_ENH &\nameb##3_##namea##_M_enh: &\ nameb##3 R2, R2, R2 &|| namea R0, R0, R0 /* H;K;M|i;j;N */ &\ nameb##3 R2, R2, R2 &|| namea R0, R0 /* H;K;M|i;j;N */ &\ nameb##3 R2, R2, R2 &|| namea R0 /* H;K;M|i;j;N */ &\ nameb##3 R2, R2 &|| namea R0, R0 /* H;K;M|i;j;N */ &\ nameb##3 R2, R2 &|| namea R0 /* H;K;M|i;j;N */ &\ nameb##3 R2 &|| namea R0 /* H;K;M|i;j;N */ &\ nameb##3 R2, R2, R2 &|| namea AR0, AR0, R0 /* H;K;M|i;j;N */ &\ nameb##3 R0, AR0, R2 &|| namea AR0, R0, R0 /* H;i;M|j;K;N */ &\ nameb##3 R0, AR0, R2 &|| namea R0, AR0, R0 /* H;i;M|K;j;N */ &\ nameb##3 AR0, AR1, R2 &|| namea R2, R1, R0 /* i;j;M|H;K;N */ &\ nameb##3 AR0, R3, R2 &|| namea AR0, R1, R0 /* i;H;M|j;K;N */ &\ nameb##3 AR0, R0, R2 &|| namea R0, AR0, R0 /* i;H;M|K;j;N */ &\ .endif &\ .ifdef level &\nameb##_##namea##3_M: &\ nameb R0, R1, R2 &|| namea##3 *+AR0(1), *+AR1(1), R0 /* H;K;M|i;j;N */ &\ nameb R0, R2 &|| namea##3 *+AR0(1), *+AR1(1), R0 /* H;K;M|i;j;N */ &\ nameb R0, *+AR1(1), R2 &|| namea##3 *+AR0(1), R0, R0 /* H;i;M|j;K;N */ &\ nameb R0, *+AR1(1), R2 &|| namea##3 *+AR0(1), R0 /* H;i;M|j;K;N */ &\ nameb R0, *+AR1(1), R2 &|| namea##3 R0, *+AR0(1), R0 /* H;i;M|K;j;N */ &\ nameb *+AR0(1), *+AR1(1), R2 &|| namea##3 R2, R1, R0 /* i;j;M|H;K;N */ &\ nameb *+AR0(1), *+AR1(1), R2 &|| namea##3 R2, R0 /* i;j;M|H;K;N */ &\ nameb *+AR1(1), R3, R2 &|| namea##3 *+AR0(1), R1, R0 /* i;H;M|j;K;N */ &\ nameb *+AR1(1), R3, R2 &|| namea##3 *+AR0(1), R0 /* i;H;M|j;K;N */ &\ nameb *+AR1(1), R2 &|| namea##3 *+AR0(1), R1, R0 /* i;H;M|j;K;N */ &\ nameb *+AR1(1), R2 &|| namea##3 *+AR0(1), R0 /* i;H;M|j;K;N */ &\ nameb *+AR1(1), R0, R2 &|| namea##3 R0, *+AR0(1), R0 /* i;H;M|K;j;N */ &\ nameb *+AR1(1), R2 &|| namea##3 R0, *+AR0(1), R0 /* i;H;M|K;j;N */ &\ .endif &\ .ifdef TEST_ENH &\nameb##_##namea##3_M_enh: &\ nameb R2, R2, R2 &|| namea##3 R0, R0, R0 /* H;K;M|i;j;N */ &\ nameb R2, R2, R2 &|| namea##3 R0, R0 /* H;K;M|i;j;N */ &\ nameb R2, R2, R2 &|| namea##3 R0 /* H;K;M|i;j;N */ &\ nameb R2, R2 &|| namea##3 R0, R0 /* H;K;M|i;j;N */ &\ nameb R2, R2 &|| namea##3 R0 /* H;K;M|i;j;N */ &\ nameb R2 &|| namea##3 R0 /* H;K;M|i;j;N */ &\ nameb R2, R2, R2 &|| namea##3 AR0, AR0, R0 /* H;K;M|i;j;N */ &\ nameb R0, AR0, R2 &|| namea##3 AR0, R0, R0 /* H;i;M|j;K;N */ &\ nameb R0, AR0, R2 &|| namea##3 R0, AR0, R0 /* H;i;M|K;j;N */ &\ nameb AR0, AR1, R2 &|| namea##3 R2, R1, R0 /* i;j;M|H;K;N */ &\ nameb AR0, R3, R2 &|| namea##3 AR0, R1, R0 /* i;H;M|j;K;N */ &\ nameb AR0, R0, R2 &|| namea##3 R0, AR0, R0 /* i;H;M|K;j;N */ &\ .endif &\ .ifdef level &\nameb##3_##namea##3_M: &\ nameb##3 R0, R1, R2 &|| namea##3 *+AR0(1), *+AR1(1), R0 /* H;K;M|i;j;N */ &\ nameb##3 R0, R2 &|| namea##3 *+AR0(1), *+AR1(1), R0 /* H;K;M|i;j;N */ &\ nameb##3 R0, *+AR1(1), R2 &|| namea##3 *+AR0(1), R0, R0 /* H;i;M|j;K;N */ &\ nameb##3 R0, *+AR1(1), R2 &|| namea##3 *+AR0(1), R0 /* H;i;M|j;K;N */ &\ nameb##3 R0, *+AR1(1), R2 &|| namea##3 R0, *+AR0(1), R0 /* H;i;M|K;j;N */ &\ nameb##3 *+AR0(1), *+AR1(1), R2 &|| namea##3 R2, R1, R0 /* i;j;M|H;K;N */ &\ nameb##3 *+AR0(1), *+AR1(1), R2 &|| namea##3 R2, R0 /* i;j;M|H;K;N */ &\ nameb##3 *+AR1(1), R3, R2 &|| namea##3 *+AR0(1), R1, R0 /* i;H;M|j;K;N */ &\ nameb##3 *+AR1(1), R3, R2 &|| namea##3 *+AR0(1), R0 /* i;H;M|j;K;N */ &\ nameb##3 *+AR1(1), R2 &|| namea##3 *+AR0(1), R1, R0 /* i;H;M|j;K;N */ &\ nameb##3 *+AR1(1), R2 &|| namea##3 *+AR0(1), R0 /* i;H;M|j;K;N */ &\ nameb##3 *+AR1(1), R0, R2 &|| namea##3 R0, *+AR0(1), R0 /* i;H;M|K;j;N */ &\ nameb##3 *+AR1(1), R2 &|| namea##3 R0, *+AR0(1), R0 /* i;H;M|K;j;N */ &\ .endif &\ .ifdef TEST_ENH &\nameb##3_##namea##3_M_enh: &\ nameb##3 R2, R2, R2 &|| namea##3 R0, R0, R0 /* H;K;M|i;j;N */ &\ nameb##3 R2, R2, R2 &|| namea##3 R0, R0 /* H;K;M|i;j;N */ &\ nameb##3 R2, R2, R2 &|| namea##3 R0 /* H;K;M|i;j;N */ &\ nameb##3 R2, R2 &|| namea##3 R0, R0 /* H;K;M|i;j;N */ &\ nameb##3 R2, R2 &|| namea##3 R0 /* H;K;M|i;j;N */ &\ nameb##3 R2 &|| namea##3 R0 /* H;K;M|i;j;N */ &\ nameb##3 R2, R2, R2 &|| namea##3 AR0, AR0, R0 /* H;K;M|i;j;N */ &\ nameb##3 R0, AR0, R2 &|| namea##3 AR0, R0, R0 /* H;i;M|j;K;N */ &\ nameb##3 R0, AR0, R2 &|| namea##3 R0, AR0, R0 /* H;i;M|K;j;N */ &\ nameb##3 AR0, AR1, R2 &|| namea##3 R2, R1, R0 /* i;j;M|H;K;N */ &\ nameb##3 AR0, R3, R2 &|| namea##3 AR0, R1, R0 /* i;H;M|j;K;N */ &\ nameb##3 AR0, R0, R2 &|| namea##3 R0, AR0, R0 /* i;H;M|K;j;N */ &\ .endif/* 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(namea, nameb, level) \ .ifdef level &\namea##_##nameb##_P: &\ namea *+AR0(1), R0 &|| nameb R1, *+AR1(1) /* i;L|H,J */ &\ nameb R1, *+AR1(1) &|| namea *+AR0(1), R0 /* H,J|i;L */ &\ .endif &\ .ifdef TEST_ENH &\namea##_##nameb##_P_enh: &\ namea R0, R0 &|| nameb R1, *+AR1(1) /* i;L|H,J */ &\ namea R0 &|| nameb R1, *+AR1(1) /* i;L|H,J */ &\ nameb R1, *+AR1(1) &|| namea R0, R0 /* H,J|i;L */ &\ nameb R1, *+AR1(1) &|| namea R0 /* H,J|i;L */ &\ .endif /* 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(namea, nameb, level) \ .ifdef level &\namea##_##nameb##_Q: &\ namea R0, *+AR0(1), R0 &|| nameb R1, *+AR1(1) /* K,i;L|H,J */ &\ nameb R1, *+AR1(1) &|| namea R0, *+AR0(1), R0 /* H,J|K,i;L */ &\ .endif &\ .ifdef TEST_ENH &\namea##_##nameb##_Q_enh: &\ namea R0, R0, R0 &|| nameb R1, *+AR1(1) /* K,i;L|H,J */ &\ namea R0, R0 &|| nameb R1, *+AR1(1) /* K,i;L|H,J */ &\ nameb R1, *+AR1(1) &|| namea R0, R0, R0 /* H,J|K,i;L */ &\ nameb R1, *+AR1(1) &|| namea R0, R0 /* H,J|K,i;L */ &\ .endif &\ .ifdef level &\namea##3_##nameb##_Q: &\ namea##3 R0, *+AR0(1), R0 &|| nameb R1, *+AR1(1) /* K,i;L|H,J */ &\ nameb R1, *+AR1(1) &|| namea##3 R0, *+AR0(1), R0 /* H,J|K,i;L */ &\ .endif &\ .ifdef TEST_ENH &\namea##3_##nameb##_Q_enh: &\ namea##3 R0, R0, R0 &|| nameb R1, *+AR1(1) /* K,i;L|H,J */ &\ namea##3 R0, R0 &|| nameb R1, *+AR1(1) /* K,i;L|H,J */ &\ nameb R1, *+AR1(1) &|| namea##3 R0, R0, R0 /* H,J|K,i;L */ &\ nameb R1, *+AR1(1) &|| namea##3 R0, R0 /* H,J|K,i;L */ &\ .endif/* 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(namea, nameb, level) \ .ifdef level &\namea##_##nameb##_QC: &\ namea *+AR0(1), R1, R0 &|| nameb R1, *+AR1(1) /* i;K;L|H,J */ &\ namea *+AR0(1), R0 &|| nameb R1, *+AR1(1) /* i;K;L|H,J */ &\ namea R0, *+AR0(1), R0 &|| nameb R1, *+AR1(1) /* K;i;L|H,J */ &\ nameb R1, *+AR1(1) &|| namea *+AR0(1), R1, R0 /* H,J|i;K;L */ &\ nameb R1, *+AR1(1) &|| namea *+AR0(1), R0 /* H,J|i;K;L */ &\ nameb R1, *+AR1(1) &|| namea R0, *+AR0(1), R0 /* H,J|K;i;L */ &\ .endif &\ .ifdef TEST_ENH &\namea##_##nameb##_QC_enh: &\ namea AR0, R1, R0 &|| nameb R1, *+AR1(1) /* i;K;L|H,J */ &\ namea R2, R1, R0 &|| nameb R1, *+AR1(1) /* i;K;L|H,J */ &\ namea R1, R0 &|| nameb R1, *+AR1(1) /* i;K;L|H,J */ &\ namea R0 &|| nameb R1, *+AR1(1) /* i;K;L|H,J */ &\ namea R0, AR0, R0 &|| nameb R1, *+AR1(1) /* K;i;L|H,J */ &\ nameb R1, *+AR1(1) &|| namea AR0, R1, R0 /* H,J|i;K;L */ &\ nameb R1, *+AR1(1) &|| namea R2, R1, R0 /* H,J|i;K;L */ &\ nameb R1, *+AR1(1) &|| namea R1, R0 /* H,J|i;K;L */ &\ nameb R1, *+AR1(1) &|| namea R0 /* H,J|i;K;L */ &\ nameb R1, *+AR1(1) &|| namea R0, AR0, R0 /* H,J|K;i;L */ &\ .endif &\ .ifdef level &\namea##3_##nameb##_QC: &\ namea##3 *+AR0(1), R1, R0 &|| nameb R1, *+AR1(1) /* i;K;L|H,J */ &\ namea##3 *+AR0(1), R0 &|| nameb R1, *+AR1(1) /* i;K;L|H,J */ &\ namea##3 R0, *+AR0(1), R0 &|| nameb R1, *+AR1(1) /* K;i;L|H,J */ &\ nameb R1, *+AR1(1) &|| namea##3 *+AR0(1), R1, R0 /* H,J|i;K;L */ &\ nameb R1, *+AR1(1) &|| namea##3 *+AR0(1), R0 /* H,J|i;K;L */ &\ nameb R1, *+AR1(1) &|| namea##3 R0, *+AR0(1), R0 /* H,J|K;i;L */ &\ .endif &\ .ifdef TEST_ENH &\namea##3_##nameb##_QC_enh: &\ namea##3 AR0, R1, R0 &|| nameb R1, *+AR1(1) /* i;K;L|H,J */ &\ namea##3 R2, R1, R0 &|| nameb R1, *+AR1(1) /* i;K;L|H,J */ &\ namea##3 R1, R0 &|| nameb R1, *+AR1(1) /* i;K;L|H,J */ &\ namea##3 R0 &|| nameb R1, *+AR1(1) /* i;K;L|H,J */ &\ namea##3 R0, AR0, R0 &|| nameb R1, *+AR1(1) /* K;i;L|H,J */ &\ nameb R1, *+AR1(1) &|| namea##3 AR0, R1, R0 /* H,J|i;K;L */ &\ nameb R1, *+AR1(1) &|| namea##3 R2, R1, R0 /* H,J|i;K;L */ &\ nameb R1, *+AR1(1) &|| namea##3 R1, R0 /* H,J|i;K;L */ &\ nameb R1, *+AR1(1) &|| namea##3 R0 /* H,J|i;K;L */ &\ nameb R1, *+AR1(1) &|| namea##3 R0, AR0, R0 /* H,J|K;i;L */ &\ .endif/* R: General register integer operation Syntax: <i> dst dst = Register (R) Instr: 6/0 - POP, PUSH, ROL, ROLC, ROR, RORC*/#define R_CLASS(name, level) \ .ifdef level &\name##_R: &\ name AR0 /* R */ &\ .endif/* RF: General register float operation Syntax: <i> dst dst = Register 0-11 (r) Instr: 2/0 - POPF, PUSHF*/#define RF_CLASS(name, level) \ .ifdef level &\name##_RF: &\ name F0 /* r */ &\ .endif/* 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(name, level) \ .ifdef level &\name##_S: &\ name R2, R1, R0 /* e,g;r */ &\ name R1, R0 /* e,g;r */ &\ name R1, *+AR0(1), R0 /* e,J,r */ &\ name *+AR0(1), R1, R0 /* I,g;r */ &\ name *+AR0(1), R0 /* I,g;r */ &\ name *+AR0(1), *+AR1(1), R0 /* I,J,r */ &\ .endif &\ .ifdef TEST_C4X &\name##_S_c4x: &\ name *+AR0(5), R1, R0 /* C,g;r */ &\ name *+AR0(5), R0 /* C,g;r */ &\ name *+AR0(5), *+AR1(5), R0 /* C,O,r */ &\ .endif &\ .ifdef level &\name##3_S: &\ name##3 R2, R1, R0 /* e,g;r */ &\ name##3 R1, R0 /* e,g;r */ &\ name##3 R1, *+AR0(1), R0 /* e,J,r */ &\
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -