📄 opclasses.h
字号:
name##3 *+AR0(1), R1, R0 /* I,g;r */ &\ name##3 *+AR0(1), R0 /* I,g;r */ &\ name##3 *+AR0(1), *+AR1(1), R0 /* I,J,r */ &\ .endif &\ .ifdef TEST_C4X &\name##3_S_c4x: &\ name##3 *+AR0(5), R1, R0 /* C,g;r */ &\ name##3 *+AR0(5), R0 /* C,g;r */ &\ name##3 *+AR0(5), *+AR1(5), R0 /* C,O,r */ &\ .endif /* 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(name, level) \ .ifdef level &\name##_SC: &\ 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##_SC_c4x: &\ name *+AR0(5), R1, R0 /* C,g;r */ &\ name *+AR0(5), R0 /* C,g;r */ &\ name R1, *+AR0(5), R0 /* g,C,r */ &\ name *+AR0(5), *+AR1(5), R0 /* C,O,r */ &\ .endif &\ .ifdef level &\name##3_SC: &\ name##3 R2, R1, R0 /* e,g;r */ &\ name##3 R1, R0 /* e,g;r */ &\ name##3 R1, *+AR0(1), R0 /* e,J,r */ &\ name##3 *+AR0(1), R1, R0 /* I,g;r */ &\ name##3 *+AR0(1), R0 /* I,g;r */ &\ name##3 *+AR0(1), *+AR1(1), R0 /* I,J,r */ &\ .endif &\ .ifdef TEST_C4X &\name##3_SC_c4x: &\ name##3 *+AR0(5), R1, R0 /* C,g;r */ &\ name##3 *+AR0(5), R0 /* C,g;r */ &\ name##3 R1, *+AR0(5), R0 /* g,C,r */ &\ name##3 *+AR0(5), *+AR1(5), R0 /* C,O,r */ &\ .endif /* 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(name, level) \ .ifdef level &\name##_S2: &\ name R2, R1 /* e,g */ &\ name R1, *+AR0(1) /* e,J */ &\ name *+AR0(1), R1 /* I,g */ &\ name *+AR0(1), *+AR1(1) /* I,J */ &\ .endif &\ .ifdef TEST_C4X &\name##_S2_c4x: &\ name *+AR0(5), R1 /* C,g */ &\ name *+AR0(5), *+AR1(5) /* C,O */ &\ .endif &\ .ifdef level &\name##3_S2: &\ name##3 R2, R1 /* e,g */ &\ name##3 R1, *+AR0(1) /* e,J */ &\ name##3 *+AR0(1), R1 /* I,g */ &\ name##3 *+AR0(1), *+AR1(1) /* I,J */ &\ .endif &\ .ifdef TEST_C4X &\name##3_S2_c4x: &\ name##3 *+AR0(5), R1 /* C,g */ &\ name##3 *+AR0(5), *+AR1(5) /* C,O */ &\ .endif /* 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(name, level) \ .ifdef level &\name##_T: &\ name AR2, AR1, AR0 /* E,G;R */ &\ name AR1, AR0 /* E,G;R */ &\ name AR1, *+AR0(1), AR0 /* E,J,R */ &\ name *+AR0(1), AR1, AR0 /* I,G;R */ &\ name *+AR0(1), AR0 /* I,G;R */ &\ name *+AR1(1), *+AR0(1), AR0 /* I,J,R */ &\ .endif &\ .ifdef TEST_C4X &\name##_T_sc: &\ name -5, AR1, AR0 /* W,G;R */ &\ name -5, AR0 /* W,G;R */ &\ name *+AR0(5), AR1, AR0 /* C,G;R */ &\ name *+AR0(5), AR0 /* C,G;R */ &\ name -5, *+AR0(5), AR0 /* W,O,R */ &\ name *+AR0(5), *+AR1(5), AR0 /* C,O,R */ &\ .endif &\ .ifdef level &\name##3_T: &\ name##3 AR2, AR1, AR0 /* E,G;R */ &\ name##3 AR1, AR0 /* E,G;R */ &\ name##3 AR1, *+AR0(1), AR0 /* E,J,R */ &\ name##3 *+AR0(1), AR1, AR0 /* I,G;R */ &\ name##3 *+AR0(1), AR0 /* I,G;R */ &\ name##3 *+AR1(1), *+AR0(1), AR0 /* I,J,R */ &\ .endif &\ .ifdef TEST_C4X &\name##3_T_sc: &\ name##3 -5, AR1, AR0 /* W,G;R */ &\ name##3 -5, AR0 /* W,G;R */ &\ name##3 *+AR0(5), AR1, AR0 /* C,G;R */ &\ name##3 *+AR0(5), AR0 /* C,G;R */ &\ name##3 -5, *+AR0(5), AR0 /* W,O,R */ &\ name##3 *+AR0(5), *+AR1(5), AR0 /* C,O,R */ &\ .endif/* 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(name, level) \ .ifdef level &\name##_TC: &\ name AR2, AR1, AR0 /* E,G;R */ &\ name AR1, AR0 /* E,G;R */ &\ name AR1, *+AR0(1), AR0 /* E,J,R */ &\ name *+AR0(1), AR1, AR0 /* I,G;R */ &\ name *+AR0(1), AR0 /* I,G;R */ &\ name *+AR1(1), *+AR0(1), AR0 /* I,J,R */ &\ .endif &\ .ifdef TEST_C4X &\name##_TC_c4x: &\ name -5, AR1, AR0 /* W,G;R */ &\ name -5, AR0 /* W,G;R */ &\ name AR1, -5, AR0 /* G,W,R */ &\ name *+AR0(5), AR1, AR0 /* C,G;R */ &\ name *+AR0(5), AR0 /* C,G;R */ &\ name AR1, *+AR0(5), AR0 /* G,C,R */ &\ name -5, *+AR0(5), AR0 /* W,O,R */ &\ name *+AR0(5), -5, AR0 /* O,W,R */ &\ name *+AR0(5), *+AR1(5), AR0 /* C,O,R */ &\ .endif &\ .ifdef level &\name##3_TC: &\ name##3 AR2, AR1, AR0 /* E,G;R */ &\ name##3 AR1, AR0 /* E,G;R */ &\ name##3 AR1, *+AR0(1), AR0 /* E,J,R */ &\ name##3 *+AR0(1), AR1, AR0 /* I,G;R */ &\ name##3 *+AR0(1), AR0 /* I,G;R */ &\ name##3 *+AR1(1), *+AR0(1), AR0 /* I,J,R */ &\ .endif &\ .ifdef TEST_C4X &\name##3_TC_c4x: &\ name##3 -5, AR1, AR0 /* W,G;R */ &\ name##3 -5, AR0 /* W,G;R */ &\ name##3 AR1, -5, AR0 /* G,W,R */ &\ name##3 *+AR0(5), AR1, AR0 /* C,G;R */ &\ name##3 *+AR0(5), AR0 /* C,G;R */ &\ name##3 AR1, *+AR0(5), AR0 /* G,C,R */ &\ name##3 -5, *+AR0(5), AR0 /* W,O,R */ &\ name##3 *+AR0(5), -5, AR0 /* O,W,R */ &\ name##3 *+AR0(5), *+AR1(5), AR0 /* C,O,R */ &\ .endif/* T2: General 3-operand integer operation with 2 args Syntax: <i> src2, src1 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) Instr: 1/0 - CMPI3 Alias: i, i3*/#define T2_CLASS(name, level) \ .ifdef level &\name##_T2: &\ name AR2, AR1 /* E,G */ &\ name AR1, *+AR0(1) /* E,J */ &\ name *+AR0(1), AR1 /* I,G */ &\ name *+AR1(1), *+AR0(1) /* I,J */ &\ .endif &\ .ifdef TEST_C4X &\name##_T2_c4x: &\ name -5, AR1 /* W,G */ &\ name *+AR0(5), AR1 /* C,G */ &\ name -5, *+AR0(5) /* W,O */ &\ name *+AR0(5), *+AR1(5) /* C,O */ &\ .endif &\ .ifdef level &\name##3_T2: &\ name##3 AR2, AR1 /* E,G */ &\ name##3 AR1, *+AR0(1) /* E,J */ &\ name##3 *+AR0(1), AR1 /* I,G */ &\ name##3 *+AR1(1), *+AR0(1) /* I,J */ &\ .endif &\ .ifdef TEST_C4X &\name##3_T2_c4x: &\ name##3 -5, AR1 /* W,G */ &\ name##3 *+AR0(5), AR1 /* C,G */ &\ name##3 -5, *+AR0(5) /* W,O */ &\ name##3 *+AR0(5), *+AR1(5) /* C,O */ &\ .endif/* T2C: General commutative 3-operand integer operation with 2 args Syntax: <i> src2, src1 - Manual <i> src1, src2 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 (0) Instr: 1/0 - TSTB3 Alias: i, i3*/#define T2C_CLASS(name, level) \ .ifdef level &\name##_T2C: &\ name AR2, AR1 /* E,G */ &\ name AR1, *+AR0(1) /* E,J */ &\ name *+AR0(1), AR1 /* I,G */ &\ name *+AR1(1), *+AR0(1) /* I,J */ &\ .endif &\ .ifdef TEST_C4X &\name##_T2C_c4x: &\ name -5, AR1 /* W,G */ &\ name AR1, -5 /* G,W */ &\ name *+AR0(5), AR1 /* C,G */ &\ name AR1, *+AR0(5) /* G,C */ &\ name -5, *+AR0(5) /* W,O */ &\ name *+AR0(5), -5 /* O,W */ &\ name *+AR0(5), *+AR1(5) /* C,O */ &\ .endif &\ .ifdef level &\name##3_T2C: &\ name##3 AR2, AR1 /* E,G */ &\ name##3 AR1, *+AR0(1) /* E,J */ &\ name##3 *+AR0(1), AR1 /* I,G */ &\ name##3 *+AR1(1), *+AR0(1) /* I,J */ &\ .endif &\ .ifdef TEST_C4X &\name##3_T2C_c4x: &\ name##3 -5, AR1 /* W,G */ &\ name##3 AR1, -5 /* G,W */ &\ name##3 *+AR0(5), AR1 /* C,G */ &\ name##3 AR1, *+AR0(5) /* G,C */ &\ name##3 -5, *+AR0(5) /* W,O */ &\ name##3 *+AR0(5), -5 /* O,W */ &\ name##3 *+AR0(5), *+AR1(5) /* C,O */ &\ .endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -