📄 opclasses.h
字号:
/* B7: Limited 2-operand float store operation Syntax: <i> src, dst src = Register 0-11 (r) dst = Direct (@), Indirect (*) Instr: 2/0 - STF, STFI*/#define B7_CLASS(name, level) \ .ifdef level &\name##_B7: &\ name R0, @start /* r,@ */ &\ name R0, *+AR0(5) /* r,* */ &\ .endif/* D: Decrement and brach operations Syntax: <i>c ARn, dst c = condition ARn = AR register 0-7 (A) dst = Register (Q), PC-relative (P) Instr: 2/0 - DBc, DBcD Alias: <namea> <nameb>*/#define D_CLASS(namea, nameb, level) \ .ifdef level &\namea##_D: &\ namea AR0, R0 /* A,Q */ &\ namea AR0, start /* A,P */ &\nameb##_D: &\ nameb AR0, R0 /* A,Q */ &\ nameb AR0, start /* A,P */ &\ .endif/* J: General conditional branch operations Syntax: <i>c dst c = Condition dst = Register (Q), PC-relative (P) Instr: 2/3 - Bc, BcD, C4x: BcAF, BcAT, LAJc Alias: <namea> <nameb>*/#define J_CLASS(namea, nameb, level) \ .ifdef level &\namea##_J: &\ namea R0 /* Q */ &\ namea start /* P */ &\nameb##_J: &\ nameb R0 /* Q */ &\ nameb start /* P */ &\ .endif/* LL: Load-load parallell operation Syntax: <i> src2, dst2 || <i> src1, dst1 src1 = Indirect 0,1,IR0,IR1 (J) dst1 = Register 0-7 (K) src2 = Indirect 0,1,IR0,IR1, ENH: Register (i) dst2 = Register 0-7 (L) Instr: 2/0 - LDF||LDF, LDI||LDI Alias: i||i, i1||i2, i2||i1*/#define LL_CLASS(name, level) \ .ifdef level &\name##_LL: &\ name *+AR0(1), R0 &|| name *+AR1(1), R1 /* i;L|J,K */ &\ name##2 *+AR0(1), R0 &|| name##1 *+AR1(1), R1 /* i;L|J,K */ &\ name##1 *+AR1(1), R1 &|| name##2 *+AR0(1), R0 /* J,K|i;L */ &\ .endif &\ .ifdef TEST_ENH &\name##_LL_enh: &\ name R0, R0 &|| name *+AR1(1), R1 /* i;L|J,K */ &\ name R0 &|| name *+AR1(1), R1 /* i;L|J,K */ &\ name##2 R0, R0 &|| name##1 *+AR1(1), R1 /* i;L|J,K */ &\ name##2 R0 &|| name##1 *+AR1(1), R1 /* i;L|J,K */ &\ name##1 *+AR1(1), R1 &|| name##2 R0, R0 /* J,K|i;L */ &\ name##1 *+AR1(1), R1 &|| name##2 R0 /* J,K|i;L */ &\ .endif/* LS: Store-store parallell operation Syntax: <i> src2, dst2 || <i> src1, dst1 src1 = Register 0-7 (H) dst1 = Indirect 0,1,IR0,IR1 (J) src2 = Register 0-7 (L) 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(name, level) \ .ifdef level &\name##_LS: &\ name R0, *+AR0(1) &|| name R1, *+AR1(1) /* L;i|H,J */ &\ name##2 R0, *+AR0(1) &|| name##1 R1, *+AR1(1) /* L;i|H,J */ &\ name##1 R1, *+AR1(1) &|| name##2 R0, *+AR0(1) /* H,J|L;i */ &\ .endif &\ .ifdef TEST_ENH &\name##_LS_enh: &\ name R0, R0 &|| name R1, *+AR1(1) /* L;i|H,J */ &\ name R0 &|| name R1, *+AR1(1) /* L;i|H,J */ &\ name##2 R0, R0 &|| name##1 R1, *+AR1(1) /* L;i|H,J */ &\ name##2 R0 &|| name##1 R1, *+AR1(1) /* L;i|H,J */ &\ name##1 R1, *+AR1(1) &|| name##2 R0, R0 /* H,J|L;i */ &\ name##1 R1, *+AR1(1) &|| name##2 R0 /* H,J|L;i */ &\ .endif/* 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(namea, nameb, level) \ .ifdef level &\namea##_##nameb##_M: &\ namea *+AR0(1), *+AR1(1), R0 &|| nameb R0, R1, R2 /* i;j;N|H;K;M */ &\ namea *+AR0(1), *+AR1(1), R0 &|| nameb R0, R2 /* i;j;N|H;K;M */ &\ namea *+AR0(1), R0, R0 &|| nameb R0, *+AR1(1), R2 /* j;K;N|H;i;M */ &\ namea *+AR0(1), R0 &|| nameb R0, *+AR1(1), R2 /* j;K;N|H;i;M */ &\ namea R0, *+AR0(1), R0 &|| nameb R0, *+AR1(1), R2 /* K;j;N|H;i;M */ &\ namea R2, R1, R0 &|| nameb *+AR0(1), *+AR1(1), R2 /* H;K;N|i;j;M */ &\ namea R2, R0 &|| nameb *+AR0(1), *+AR1(1), R2 /* H;K;N|i;j;M */ &\ namea *+AR0(1), R1, R0 &|| nameb *+AR1(1), R3, R2 /* j;K;N|i;H;M */ &\ namea *+AR0(1), R0 &|| nameb *+AR1(1), R3, R2 /* j;K;N|i;H;M */ &\ namea *+AR0(1), R1, R0 &|| nameb *+AR1(1), R2 /* j;K;N|i;H;M */ &\ namea *+AR0(1), R0 &|| nameb *+AR1(1), R2 /* j;K;N|i;H;M */ &\ namea R0, *+AR0(1), R0 &|| nameb *+AR1(1), R0, R2 /* K;j;N|i;H;M */ &\ namea R0, *+AR0(1), R0 &|| nameb *+AR1(1), R2 /* K;j;N|i;H;M */ &\ .endif &\ .ifdef TEST_ENH &\namea##_##nameb##_M_enh: &\ namea R0, R0, R0 &|| nameb R2, R2, R2 /* i;j;N|H;K;M */ &\ namea R0, R0 &|| nameb R2, R2, R2 /* i;j;N|H;K;M */ &\ namea R0 &|| nameb R2, R2, R2 /* i;j;N|H;K;M */ &\ namea R0, R0 &|| nameb R2, R2 /* i;j;N|H;K;M */ &\ namea R0 &|| nameb R2, R2 /* i;j;N|H;K;M */ &\ namea R0 &|| nameb R2 /* i;j;N|H;K;M */ &\ namea AR0, AR0, R0 &|| nameb R2, R2, R2 /* i;j;N|H;K;M */ &\ namea AR0, R0, R0 &|| nameb R0, AR0, R2 /* j;K;N|H;i;M */ &\ namea R0, AR0, R0 &|| nameb R0, AR0, R2 /* K;j;N|H;i;M */ &\ namea R2, R1, R0 &|| nameb AR0, AR1, R2 /* H;K;N|i;j;M */ &\ namea AR0, R1, R0 &|| nameb AR0, R3, R2 /* j;K;N|i;H;M */ &\ namea R0, AR0, R0 &|| nameb AR0, R0, R2 /* K;j;N|i;H;M */ &\ .endif &\ .ifdef level &\namea##3_##nameb##_M: &\ namea##3 *+AR0(1), *+AR1(1), R0 &|| nameb R0, R1, R2 /* i;j;N|H;K;M */ &\ namea##3 *+AR0(1), *+AR1(1), R0 &|| nameb R0, R2 /* i;j;N|H;K;M */ &\ namea##3 *+AR0(1), R0, R0 &|| nameb R0, *+AR1(1), R2 /* j;K;N|H;i;M */ &\ namea##3 *+AR0(1), R0 &|| nameb R0, *+AR1(1), R2 /* j;K;N|H;i;M */ &\ namea##3 R0, *+AR0(1), R0 &|| nameb R0, *+AR1(1), R2 /* K;j;N|H;i;M */ &\ namea##3 R2, R1, R0 &|| nameb *+AR0(1), *+AR1(1), R2 /* H;K;N|i;j;M */ &\ namea##3 R2, R0 &|| nameb *+AR0(1), *+AR1(1), R2 /* H;K;N|i;j;M */ &\ namea##3 *+AR0(1), R1, R0 &|| nameb *+AR1(1), R3, R2 /* j;K;N|i;H;M */ &\ namea##3 *+AR0(1), R0 &|| nameb *+AR1(1), R3, R2 /* j;K;N|i;H;M */ &\ namea##3 *+AR0(1), R1, R0 &|| nameb *+AR1(1), R2 /* j;K;N|i;H;M */ &\ namea##3 *+AR0(1), R0 &|| nameb *+AR1(1), R2 /* j;K;N|i;H;M */ &\ namea##3 R0, *+AR0(1), R0 &|| nameb *+AR1(1), R0, R2 /* K;j;N|i;H;M */ &\ namea##3 R0, *+AR0(1), R0 &|| nameb *+AR1(1), R2 /* K;j;N|i;H;M */ &\ .endif &\ .ifdef TEST_ENH &\namea##3_##nameb##_M_enh: &\ namea##3 R0, R0, R0 &|| nameb R2, R2, R2 /* i;j;N|H;K;M */ &\ namea##3 R0, R0 &|| nameb R2, R2, R2 /* i;j;N|H;K;M */ &\ namea##3 R0 &|| nameb R2, R2, R2 /* i;j;N|H;K;M */ &\ namea##3 R0, R0 &|| nameb R2, R2 /* i;j;N|H;K;M */ &\ namea##3 R0 &|| nameb R2, R2 /* i;j;N|H;K;M */ &\ namea##3 R0 &|| nameb R2 /* i;j;N|H;K;M */ &\ namea##3 AR0, AR0, R0 &|| nameb R2, R2, R2 /* i;j;N|H;K;M */ &\ namea##3 AR0, R0, R0 &|| nameb R0, AR0, R2 /* j;K;N|H;i;M */ &\ namea##3 R0, AR0, R0 &|| nameb R0, AR0, R2 /* K;j;N|H;i;M */ &\ namea##3 R2, R1, R0 &|| nameb AR0, AR1, R2 /* H;K;N|i;j;M */ &\ namea##3 AR0, R1, R0 &|| nameb AR0, R3, R2 /* j;K;N|i;H;M */ &\ namea##3 R0, AR0, R0 &|| nameb AR0, R0, R2 /* K;j;N|i;H;M */ &\ .endif &\ .ifdef level &\namea##_##nameb##3_M: &\ namea *+AR0(1), *+AR1(1), R0 &|| nameb##3 R0, R1, R2 /* i;j;N|H;K;M */ &\ namea *+AR0(1), *+AR1(1), R0 &|| nameb##3 R0, R2 /* i;j;N|H;K;M */ &\ namea *+AR0(1), R0, R0 &|| nameb##3 R0, *+AR1(1), R2 /* j;K;N|H;i;M */ &\ namea *+AR0(1), R0 &|| nameb##3 R0, *+AR1(1), R2 /* j;K;N|H;i;M */ &\ namea R0, *+AR0(1), R0 &|| nameb##3 R0, *+AR1(1), R2 /* K;j;N|H;i;M */ &\ namea R2, R1, R0 &|| nameb##3 *+AR0(1), *+AR1(1), R2 /* H;K;N|i;j;M */ &\ namea R2, R0 &|| nameb##3 *+AR0(1), *+AR1(1), R2 /* H;K;N|i;j;M */ &\ namea *+AR0(1), R1, R0 &|| nameb##3 *+AR1(1), R3, R2 /* j;K;N|i;H;M */ &\ namea *+AR0(1), R0 &|| nameb##3 *+AR1(1), R3, R2 /* j;K;N|i;H;M */ &\ namea *+AR0(1), R1, R0 &|| nameb##3 *+AR1(1), R2 /* j;K;N|i;H;M */ &\ namea *+AR0(1), R0 &|| nameb##3 *+AR1(1), R2 /* j;K;N|i;H;M */ &\ namea R0, *+AR0(1), R0 &|| nameb##3 *+AR1(1), R0, R2 /* K;j;N|i;H;M */ &\ namea R0, *+AR0(1), R0 &|| nameb##3 *+AR1(1), R2 /* K;j;N|i;H;M */ &\ .endif &\ .ifdef TEST_ENH &\namea##_##nameb##3_M_enh: &\ namea R0, R0, R0 &|| nameb##3 R2, R2, R2 /* i;j;N|H;K;M */ &\ namea R0, R0 &|| nameb##3 R2, R2, R2 /* i;j;N|H;K;M */ &\ namea R0 &|| nameb##3 R2, R2, R2 /* i;j;N|H;K;M */ &\ namea R0, R0 &|| nameb##3 R2, R2 /* i;j;N|H;K;M */ &\ namea R0 &|| nameb##3 R2, R2 /* i;j;N|H;K;M */ &\ namea R0 &|| nameb##3 R2 /* i;j;N|H;K;M */ &\ namea AR0, AR0, R0 &|| nameb##3 R2, R2, R2 /* i;j;N|H;K;M */ &\ namea AR0, R0, R0 &|| nameb##3 R0, AR0, R2 /* j;K;N|H;i;M */ &\ namea R0, AR0, R0 &|| nameb##3 R0, AR0, R2 /* K;j;N|H;i;M */ &\ namea R2, R1, R0 &|| nameb##3 AR0, AR1, R2 /* H;K;N|i;j;M */ &\ namea AR0, R1, R0 &|| nameb##3 AR0, R3, R2 /* j;K;N|i;H;M */ &\ namea R0, AR0, R0 &|| nameb##3 AR0, R0, R2 /* K;j;N|i;H;M */ &\ .endif &\ .ifdef level &\namea##3_##nameb##3_M: &\ namea##3 *+AR0(1), *+AR1(1), R0 &|| nameb##3 R0, R1, R2 /* i;j;N|H;K;M */ &\ namea##3 *+AR0(1), *+AR1(1), R0 &|| nameb##3 R0, R2 /* i;j;N|H;K;M */ &\ namea##3 *+AR0(1), R0, R0 &|| nameb##3 R0, *+AR1(1), R2 /* j;K;N|H;i;M */ &\ namea##3 *+AR0(1), R0 &|| nameb##3 R0, *+AR1(1), R2 /* j;K;N|H;i;M */ &\ namea##3 R0, *+AR0(1), R0 &|| nameb##3 R0, *+AR1(1), R2 /* K;j;N|H;i;M */ &\ namea##3 R2, R1, R0 &|| nameb##3 *+AR0(1), *+AR1(1), R2 /* H;K;N|i;j;M */ &\ namea##3 R2, R0 &|| nameb##3 *+AR0(1), *+AR1(1), R2 /* H;K;N|i;j;M */ &\ namea##3 *+AR0(1), R1, R0 &|| nameb##3 *+AR1(1), R3, R2 /* j;K;N|i;H;M */ &\ namea##3 *+AR0(1), R0 &|| nameb##3 *+AR1(1), R3, R2 /* j;K;N|i;H;M */ &\ namea##3 *+AR0(1), R1, R0 &|| nameb##3 *+AR1(1), R2 /* j;K;N|i;H;M */ &\ namea##3 *+AR0(1), R0 &|| nameb##3 *+AR1(1), R2 /* j;K;N|i;H;M */ &\ namea##3 R0, *+AR0(1), R0 &|| nameb##3 *+AR1(1), R0, R2 /* K;j;N|i;H;M */ &\ namea##3 R0, *+AR0(1), R0 &|| nameb##3 *+AR1(1), R2 /* K;j;N|i;H;M */ &\ .endif &\ .ifdef TEST_ENH &\namea##3_##nameb##3_M_enh: &\ namea##3 R0, R0, R0 &|| nameb##3 R2, R2, R2 /* i;j;N|H;K;M */ &\ namea##3 R0, R0 &|| nameb##3 R2, R2, R2 /* i;j;N|H;K;M */ &\ namea##3 R0 &|| nameb##3 R2, R2, R2 /* i;j;N|H;K;M */ &\ namea##3 R0, R0 &|| nameb##3 R2, R2 /* i;j;N|H;K;M */ &\ namea##3 R0 &|| nameb##3 R2, R2 /* i;j;N|H;K;M */ &\ namea##3 R0 &|| nameb##3 R2 /* i;j;N|H;K;M */ &\ namea##3 AR0, AR0, R0 &|| nameb##3 R2, R2, R2 /* i;j;N|H;K;M */ &\ namea##3 AR0, R0, R0 &|| nameb##3 R0, AR0, R2 /* j;K;N|H;i;M */ &\ namea##3 R0, AR0, R0 &|| nameb##3 R0, AR0, R2 /* K;j;N|H;i;M */ &\ namea##3 R2, R1, R0 &|| nameb##3 AR0, AR1, R2 /* H;K;N|i;j;M */ &\ namea##3 AR0, R1, R0 &|| nameb##3 AR0, R3, R2 /* j;K;N|i;H;M */ &\ namea##3 R0, AR0, R0 &|| nameb##3 AR0, R0, R2 /* K;j;N|i;H;M */ &\ .endif &\ .ifdef level &\nameb##_##namea##_M: &\ nameb R0, R1, R2 &|| namea *+AR0(1), *+AR1(1), R0 /* H;K;M|i;j;N */ &\ nameb R0, R2 &|| namea *+AR0(1), *+AR1(1), R0 /* H;K;M|i;j;N */ &\ nameb R0, *+AR1(1), R2 &|| namea *+AR0(1), R0, R0 /* H;i;M|j;K;N */ &\ nameb R0, *+AR1(1), R2 &|| namea *+AR0(1), R0 /* H;i;M|j;K;N */ &\ nameb R0, *+AR1(1), R2 &|| namea R0, *+AR0(1), R0 /* H;i;M|K;j;N */ &\ nameb *+AR0(1), *+AR1(1), R2 &|| namea R2, R1, R0 /* i;j;M|H;K;N */ &\ nameb *+AR0(1), *+AR1(1), R2 &|| namea R2, R0 /* i;j;M|H;K;N */ &\ nameb *+AR1(1), R3, R2 &|| namea *+AR0(1), R1, R0 /* i;H;M|j;K;N */ &\ nameb *+AR1(1), R3, R2 &|| namea *+AR0(1), R0 /* i;H;M|j;K;N */ &\ nameb *+AR1(1), R2 &|| namea *+AR0(1), R1, R0 /* i;H;M|j;K;N */ &\ nameb *+AR1(1), R2 &|| namea *+AR0(1), R0 /* i;H;M|j;K;N */ &\ nameb *+AR1(1), R0, R2 &|| namea R0, *+AR0(1), R0 /* i;H;M|K;j;N */ &\ nameb *+AR1(1), R2 &|| namea R0, *+AR0(1), R0 /* i;H;M|K;j;N */ &\ .endif &\ .ifdef TEST_ENH &\nameb##_##namea##_M_enh: &\ nameb R2, R2, R2 &|| namea R0, R0, R0 /* H;K;M|i;j;N */ &\ nameb R2, R2, R2 &|| namea R0, R0 /* H;K;M|i;j;N */ &\ nameb R2, R2, R2 &|| namea R0 /* H;K;M|i;j;N */ &\ nameb R2, R2 &|| namea R0, R0 /* H;K;M|i;j;N */ &\ nameb R2, R2 &|| namea R0 /* H;K;M|i;j;N */ &\ nameb R2 &|| namea R0 /* H;K;M|i;j;N */ &\ nameb R2, R2, R2 &|| namea AR0, AR0, R0 /* H;K;M|i;j;N */ &\ nameb R0, AR0, R2 &|| namea AR0, R0, R0 /* H;i;M|j;K;N */ &\
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -