aboutsummaryrefslogtreecommitdiffstats
path: root/src/uxn-core.s
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2023-08-28 14:23:35 +0200
committerBad Diode <bd@badd10de.dev>2023-08-28 14:23:35 +0200
commitaaff9e5fbcb0ff3939750429de9b9900feb17178 (patch)
tree4733be45809e41950b52b4d05d70cdbce8d75490 /src/uxn-core.s
parentba6ed32d1732218f152daae2356f8b0281f5f7b8 (diff)
downloaduxngba-aaff9e5fbcb0ff3939750429de9b9900feb17178.tar.gz
uxngba-aaff9e5fbcb0ff3939750429de9b9900feb17178.zip
Add equ, neq, gth, lth instructions
Diffstat (limited to 'src/uxn-core.s')
-rw-r--r--src/uxn-core.s62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/uxn-core.s b/src/uxn-core.s
index 7e6ad8a..6a4b84d 100644
--- a/src/uxn-core.s
+++ b/src/uxn-core.s
@@ -193,27 +193,89 @@ ovr2:
193 b uxn_decode 193 b uxn_decode
194 194
195equ: 195equ:
196 ldrb r3, [r1, #-1]!
197 ldrb r4, [r1, #-1]!
198 sub r3, r4, r3
199 rsbs r4, r3, #0
200 adc r4, r4, r3
201 strb r4, [r1], #1
196 b uxn_decode 202 b uxn_decode
197 203
198equ2: 204equ2:
205 ldrb r3, [r1, #-1]!
206 ldrb r5, [r1, #-1]!
207 orr r3, r3, r5, lsl #8
208 ldrb r4, [r1, #-1]!
209 ldrb r5, [r1, #-1]!
210 orr r4, r4, r5, lsl #8
211 sub r3, r4, r3
212 rsbs r4, r3, #0
213 adc r4, r4, r3
214 strb r4, [r1], #1
199 b uxn_decode 215 b uxn_decode
200 216
201neq: 217neq:
218 ldrb r3, [r1, #-1]!
219 ldrb r4, [r1, #-1]!
220 subs r3, r4, r3
221 movne r3, #1
222 strb r3, [r1], #1
202 b uxn_decode 223 b uxn_decode
203 224
204neq2: 225neq2:
226 ldrb r3, [r1, #-1]!
227 ldrb r5, [r1, #-1]!
228 orr r3, r3, r5, lsl #8
229 ldrb r4, [r1, #-1]!
230 ldrb r5, [r1, #-1]!
231 orr r4, r4, r5, lsl #8
232 subs r3, r4, r3
233 movne r3, #1
234 strb r3, [r1], #1
205 b uxn_decode 235 b uxn_decode
206 236
207gth: 237gth:
238 ldrb r3, [r1, #-1]!
239 ldrb r4, [r1, #-1]!
240 cmp r4, r3
241 movls r3, #0
242 movhi r3, #1
243 strb r3, [r1], #1
208 b uxn_decode 244 b uxn_decode
209 245
210gth2: 246gth2:
247 ldrb r3, [r1, #-1]!
248 ldrb r5, [r1, #-1]!
249 orr r3, r3, r5, lsl #8
250 ldrb r4, [r1, #-1]!
251 ldrb r5, [r1, #-1]!
252 orr r4, r4, r5, lsl #8
253 cmp r4, r3
254 movls r3, #0
255 movhi r3, #1
256 strb r3, [r1], #1
211 b uxn_decode 257 b uxn_decode
212 258
213lth: 259lth:
260 ldrb r3, [r1, #-1]!
261 ldrb r4, [r1, #-1]!
262 cmp r4, r3
263 movcs r3, #0
264 movcc r3, #1
265 strb r3, [r1], #1
214 b uxn_decode 266 b uxn_decode
215 267
216lth2: 268lth2:
269 ldrb r3, [r1, #-1]!
270 ldrb r5, [r1, #-1]!
271 orr r3, r3, r5, lsl #8
272 ldrb r4, [r1, #-1]!
273 ldrb r5, [r1, #-1]!
274 orr r4, r4, r5, lsl #8
275 cmp r4, r3
276 movcs r3, #0
277 movcc r3, #1
278 strb r3, [r1], #1
217 b uxn_decode 279 b uxn_decode
218 280
219jmp: 281jmp: