|
35 | 35 |
|
36 | 36 | #define MMS processor.memories.MS |
37 | 37 | #define MMC processor.memories.MC |
38 | | -#define MID MACH->MI[IMM] |
39 | | -#define MII MACH->MI[PI1.get()] |
| 38 | +#define MMI MACH->MI |
40 | 39 |
|
41 | 40 | #define BIT_INSTRUCTIONS \ |
42 | 41 | X(XORS, T::xors(PROC, EXTRA)) \ |
|
106 | 105 | X(PRINTCHR, PROC.print_chr(IMM)) \ |
107 | 106 | X(PRINTSTR, PROC.print_str(IMM)) \ |
108 | 107 | X(PRINTFLOATPREC, PROC.print_float_prec(IMM)) \ |
109 | | - X(LDINT, I0 = int(IMM)) \ |
| 108 | + X(LDINT, auto d = &I0; for (int i = 0; i < SIZE; i++) *d++ = int(IMM)) \ |
110 | 109 | X(ADDINT, I0 = PI1 + PI2) \ |
111 | 110 | X(SUBINT, I0 = PI1 - PI2) \ |
112 | 111 | X(MULINT, I0 = PI1 * PI2) \ |
|
121 | 120 | X(GTC, I0 = PI1 > PI2) \ |
122 | 121 | X(EQC, I0 = PI1 == PI2) \ |
123 | 122 | X(JMPI, PROC.PC += I0) \ |
124 | | - X(LDMINT, I0 = MID) \ |
125 | | - X(STMINT, MID = I0) \ |
126 | | - X(LDMINTI, I0 = MII) \ |
127 | | - X(STMINTI, MII = I0) \ |
| 123 | + X(LDMINT, PROC.mem_op(SIZE, PROC.I, MMI, R0, IMM)) \ |
| 124 | + X(STMINT, PROC.mem_op(SIZE, MMI, PROC.I, IMM, R0)) \ |
| 125 | + X(LDMINTI, PROC.mem_op(SIZE, PROC.I, MMI, R0, Ci[REG1])) \ |
| 126 | + X(STMINTI, PROC.mem_op(SIZE, MMI, PROC.I, Ci[REG1], R0)) \ |
128 | 127 | X(PUSHINT, PROC.pushi(I0.get())) \ |
129 | 128 | X(POPINT, PROC.popi(I0)) \ |
130 | 129 | X(MOVINT, I0 = PI1) \ |
|
0 commit comments