aboutsummaryrefslogtreecommitdiffstats
path: root/src/uxn-core.s
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2023-08-28 20:04:12 +0200
committerBad Diode <bd@badd10de.dev>2023-08-28 20:04:12 +0200
commitac0bc3913a1a8fdf20d5e3bf3d0631f54ae1fbac (patch)
treef5d876bd5a27e1c3dea21a40d014d033cb9964b9 /src/uxn-core.s
parentd1f218fdaa8ab08508e565b8169a904d47dda1b3 (diff)
downloaduxngba-ac0bc3913a1a8fdf20d5e3bf3d0631f54ae1fbac.tar.gz
uxngba-ac0bc3913a1a8fdf20d5e3bf3d0631f54ae1fbac.zip
Add load operations ldr/ldr2
Diffstat (limited to 'src/uxn-core.s')
-rw-r--r--src/uxn-core.s17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/uxn-core.s b/src/uxn-core.s
index ed860d6..7d5eb69 100644
--- a/src/uxn-core.s
+++ b/src/uxn-core.s
@@ -66,6 +66,10 @@ uxn_ret:
66 ldrb \a, [r1, #-1]! 66 ldrb \a, [r1, #-1]!
67.endm 67.endm
68 68
69.macro wpop8s a
70 ldrsb \a, [r1, #-1]!
71.endm
72
69.macro wpop16 a, b 73.macro wpop16 a, b
70 ldrb \a, [r1, #-1]! 74 ldrb \a, [r1, #-1]!
71 ldrb \b, [r1, #-1]! 75 ldrb \b, [r1, #-1]!
@@ -111,6 +115,10 @@ uxn_ret:
111 ldrb \dst, [r7, \off] 115 ldrb \dst, [r7, \off]
112.endm 116.endm
113 117
118.macro rload8 dst, off
119 ldrb \dst, [r0, \off]
120.endm
121
114@ OP table 122@ OP table
115op_table: 123op_table:
116 .word brk @ 0x00 124 .word brk @ 0x00
@@ -619,9 +627,18 @@ stz2:
619 b uxn_decode 627 b uxn_decode
620 628
621ldr: 629ldr:
630 wpop8s r4
631 rload8 r3, r4
632 wpush8 r3
622 b uxn_decode 633 b uxn_decode
623 634
624ldr2: 635ldr2:
636 wpop8s r4
637 rload8 r3, r4
638 wpush8 r3
639 add r4, #1
640 rload8 r3, r4
641 wpush8 r3
625 b uxn_decode 642 b uxn_decode
626 643
627str: 644str: