aboutsummaryrefslogtreecommitdiffstats
path: root/src/uxn-core.s
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2023-08-28 13:31:33 +0200
committerBad Diode <bd@badd10de.dev>2023-08-28 13:31:33 +0200
commitee7f1d32a4ded99745a5886eb9839157d5e6ea57 (patch)
tree3a9987f21aada34e82ecdfe47e116cd4bba9aa2f /src/uxn-core.s
parent8ea88188b604f42e77ab9e929587f80601e5da85 (diff)
downloaduxngba-ee7f1d32a4ded99745a5886eb9839157d5e6ea57.tar.gz
uxngba-ee7f1d32a4ded99745a5886eb9839157d5e6ea57.zip
Add nip instructions
Diffstat (limited to 'src/uxn-core.s')
-rw-r--r--src/uxn-core.s12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/uxn-core.s b/src/uxn-core.s
index 95afc1a..730da32 100644
--- a/src/uxn-core.s
+++ b/src/uxn-core.s
@@ -95,15 +95,25 @@ inc2:
95 b uxn_decode 95 b uxn_decode
96 96
97pop: 97pop:
98 sub r1, #1
98 b uxn_decode 99 b uxn_decode
99 100
100pop2: 101pop2:
102 sub r1, #2
101 b uxn_decode 103 b uxn_decode
102 104
103nip: 105nip:
106 ldrb r3, [r1, #-1]!
107 strb r3, [r1, #-1]
104 b uxn_decode 108 b uxn_decode
105 109
106nip2: 110nip2:
111 ldrb r3, [r1, #-1]!
112 ldrb r5, [r1, #-1]!
113 orr r3, r3, r5, lsl #8
114 strb r3, [r1, #-1]
115 lsr r3, #8
116 strb r3, [r1, #-2]
107 b uxn_decode 117 b uxn_decode
108 118
109swp: 119swp:
@@ -280,7 +290,7 @@ mul2:
280 ldrb r4, [r1, #-1]! 290 ldrb r4, [r1, #-1]!
281 ldrb r5, [r1, #-1]! 291 ldrb r5, [r1, #-1]!
282 orr r4, r4, r5, lsl #8 292 orr r4, r4, r5, lsl #8
283 mul r3, r3, r4 293 mul r3, r4, r3
284 strb r3, [r1, #1] 294 strb r3, [r1, #1]
285 lsr r3, #8 295 lsr r3, #8
286 strb r3, [r1], #2 296 strb r3, [r1], #2