Browse Source

Move stack opcodes.

opcode-swap
Andrew Alderwick 4 years ago
parent
commit
d5253086b5
  1. 4
      projects/library/asma.tal
  2. 10
      src/uxn.c
  3. 2
      src/uxnasm.c

4
projects/library/asma.tal

@ -949,11 +949,11 @@
&_entry :&GTH :&ROT &_disasm "LIT 00 &_entry :&GTH :&ROT &_disasm "LIT 00
&INC $2 $2 "INC 00 &INC $2 $2 "INC 00
&POP $2 $2 "POP 00 &POP $2 $2 "POP 00
&DUP $2 $2 "DUP 00
&NIP :&MUL :&OVR "NIP 00 &NIP :&MUL :&OVR "NIP 00
&SWP $2 $2 "SWP 00 &SWP $2 $2 "SWP 00
&OVR :&ORA :&POP "OVR 00
&ROT :&NIP :&STR "ROT 00 &ROT :&NIP :&STR "ROT 00
&DUP $2 $2 "DUP 00
&OVR :&ORA :&POP "OVR 00
&EQU $2 $2 "EQU 00 &EQU $2 $2 "EQU 00
&NEQ $2 $2 "NEQ 00 &NEQ $2 $2 "NEQ 00
&GTH :&DIV :&JSR "GTH 00 &GTH :&DIV :&JSR "GTH 00

10
src/uxn.c

@ -70,11 +70,11 @@ uxn_eval(Uxn *u, Uint16 pc)
else { a = u->ram[pc]; PUSH8(src, a) pc++; } break; else { a = u->ram[pc]; PUSH8(src, a) pc++; } break;
case 0x01: /* INC */ POP(a) PUSH(src, a + 1) break; case 0x01: /* INC */ POP(a) PUSH(src, a + 1) break;
case 0x02: /* POP */ POP(a) break; case 0x02: /* POP */ POP(a) break;
case 0x03: /* DUP */ POP(a) PUSH(src, a) PUSH(src, a) break; case 0x03: /* NIP */ POP(a) POP(b) PUSH(src, a) break;
case 0x04: /* NIP */ POP(a) POP(b) PUSH(src, a) break; case 0x04: /* SWP */ POP(a) POP(b) PUSH(src, a) PUSH(src, b) break;
case 0x05: /* SWP */ POP(a) POP(b) PUSH(src, a) PUSH(src, b) break; case 0x05: /* ROT */ POP(a) POP(b) POP(c) PUSH(src, b) PUSH(src, a) PUSH(src, c) break;
case 0x06: /* OVR */ POP(a) POP(b) PUSH(src, b) PUSH(src, a) PUSH(src, b) break; case 0x06: /* DUP */ POP(a) PUSH(src, a) PUSH(src, a) break;
case 0x07: /* ROT */ POP(a) POP(b) POP(c) PUSH(src, b) PUSH(src, a) PUSH(src, c) break; case 0x07: /* OVR */ POP(a) POP(b) PUSH(src, b) PUSH(src, a) PUSH(src, b) break;
/* Logic */ /* Logic */
case 0x08: /* EQU */ POP(a) POP(b) PUSH8(src, b == a) break; case 0x08: /* EQU */ POP(a) POP(b) PUSH8(src, b == a) break;
case 0x09: /* NEQ */ POP(a) POP(b) PUSH8(src, b != a) break; case 0x09: /* NEQ */ POP(a) POP(b) PUSH8(src, b != a) break;

2
src/uxnasm.c

@ -49,7 +49,7 @@ static int litlast = 0;
/* clang-format off */ /* clang-format off */
static char ops[][4] = { static char ops[][4] = {
"LIT", "INC", "POP", "DUP", "NIP", "SWP", "OVR", "ROT", "LIT", "INC", "POP", "NIP", "SWP", "ROT", "DUP", "OVR",
"EQU", "NEQ", "GTH", "LTH", "JMP", "JCN", "JSR", "STH", "EQU", "NEQ", "GTH", "LTH", "JMP", "JCN", "JSR", "STH",
"LDZ", "STZ", "LDR", "STR", "LDA", "STA", "DEI", "DEO", "LDZ", "STZ", "LDR", "STR", "LDA", "STA", "DEI", "DEO",
"ADD", "SUB", "MUL", "DIV", "AND", "ORA", "EOR", "SFT" "ADD", "SUB", "MUL", "DIV", "AND", "ORA", "EOR", "SFT"

Loading…
Cancel
Save