commit a124ca9

Devine Lu Linvega  ·  2023-01-03 19:09:30 +0000 UTC
parent 194e9c8
Faster CALL opcodes
1 files changed,  +4, -4
+4, -4
 1@@ -48,10 +48,10 @@ uxn_eval(Uxn *u, Uint16 pc)
 2 		switch(instr & 0x1f) {
 3 		case 0x00:
 4 		/* Literals/Calls */
 5-		if(instr == 0x20)      /* JMI  */ { sp = &u->wst->ptr; PEEK16(a, pc) pc = a; }
 6-		else if(instr == 0x40) /* JCI  */ { sp = &u->wst->ptr; src = u->wst; POP8(a) PEEK16(b, pc) pc = a ? (Uint16)b : pc + 2; }
 7-		else if(instr == 0x60) /* JSI  */ { sp = &u->wst->ptr; PEEK16(a, pc) PUSH16(u->rst, pc + 2) pc = a; }
 8-		else if(bs)            /* LIT2 */ { PEEK16(a, pc) PUSH16(src, a) pc = pc + 2; }
 9+		if(instr == 0x20)      /* JMI  */ { PEEK16(a, pc) pc = a; }
10+		else if(instr == 0x40) /* JCI  */ { sp = &u->wst->ptr; src = u->wst; POP8(a) if(a) { PEEK16(b, pc) pc = b; } else { pc += 2; } }
11+		else if(instr == 0x60) /* JSI  */ { PEEK16(a, pc) PUSH16(u->rst, pc + 2) pc = a; }
12+		else if(bs)            /* LIT2 */ { PEEK16(a, pc) PUSH16(src, a) pc += 2; }
13 		else                   /* LITr */ { a = u->ram[pc++]; PUSH8(src, a) } break;
14 		/* ALU */
15 		case 0x01: /* INC */ POP(a) PUSH(src, a + 1) break;