diff options
Diffstat (limited to 'src/uxn-core.s')
-rw-r--r-- | src/uxn-core.s | 39 |
1 files changed, 24 insertions, 15 deletions
diff --git a/src/uxn-core.s b/src/uxn-core.s index e35707f..95afc1a 100644 --- a/src/uxn-core.s +++ b/src/uxn-core.s | |||
@@ -79,9 +79,19 @@ lit2r: | |||
79 | b uxn_decode | 79 | b uxn_decode |
80 | 80 | ||
81 | inc: | 81 | inc: |
82 | ldrb r3, [r1, #-1]! | ||
83 | add r3, #1 | ||
84 | strb r3, [r1], #1 | ||
82 | b uxn_decode | 85 | b uxn_decode |
83 | 86 | ||
84 | inc2: | 87 | inc2: |
88 | ldrb r3, [r1, #-1]! | ||
89 | ldrb r5, [r1, #-1]! | ||
90 | orr r3, r3, r5, lsl #8 | ||
91 | add r3, r3, #1 | ||
92 | strb r3, [r1, #1] | ||
93 | lsr r3, #8 | ||
94 | strb r3, [r1], #2 | ||
85 | b uxn_decode | 95 | b uxn_decode |
86 | 96 | ||
87 | pop: | 97 | pop: |
@@ -226,14 +236,14 @@ add: | |||
226 | add2: | 236 | add2: |
227 | ldrb r3, [r1, #-1]! | 237 | ldrb r3, [r1, #-1]! |
228 | ldrb r5, [r1, #-1]! | 238 | ldrb r5, [r1, #-1]! |
229 | orr r3, r5, r3, lsl #8 | 239 | orr r3, r3, r5, lsl #8 |
230 | ldrb r4, [r1, #-1]! | 240 | ldrb r4, [r1, #-1]! |
231 | ldrb r5, [r1, #-1]! | 241 | ldrb r5, [r1, #-1]! |
232 | orr r4, r5, r4, lsl #8 | 242 | orr r4, r4, r5, lsl #8 |
233 | add r3, r3, r4 | 243 | add r3, r3, r4 |
234 | strb r3, [r1], #1 | 244 | strb r3, [r1, #1] |
235 | lsr r3, #8 | 245 | lsr r3, #8 |
236 | strb r3, [r1], #1 | 246 | strb r3, [r1], #2 |
237 | b uxn_decode | 247 | b uxn_decode |
238 | 248 | ||
239 | sub: | 249 | sub: |
@@ -246,14 +256,14 @@ sub: | |||
246 | sub2: | 256 | sub2: |
247 | ldrb r3, [r1, #-1]! | 257 | ldrb r3, [r1, #-1]! |
248 | ldrb r5, [r1, #-1]! | 258 | ldrb r5, [r1, #-1]! |
249 | orr r3, r5, r3, lsl #8 | 259 | orr r3, r3, r5, lsl #8 |
250 | ldrb r4, [r1, #-1]! | 260 | ldrb r4, [r1, #-1]! |
251 | ldrb r5, [r1, #-1]! | 261 | ldrb r5, [r1, #-1]! |
252 | orr r4, r5, r4, lsl #8 | 262 | orr r4, r4, r5, lsl #8 |
253 | sub r3, r4, r3 | 263 | sub r3, r4, r3 |
254 | strb r3, [r1], #1 | 264 | strb r3, [r1, #1] |
255 | lsr r3, #8 | 265 | lsr r3, #8 |
256 | strb r3, [r1], #1 | 266 | strb r3, [r1], #2 |
257 | b uxn_decode | 267 | b uxn_decode |
258 | 268 | ||
259 | mul: | 269 | mul: |
@@ -266,15 +276,14 @@ mul: | |||
266 | mul2: | 276 | mul2: |
267 | ldrb r3, [r1, #-1]! | 277 | ldrb r3, [r1, #-1]! |
268 | ldrb r5, [r1, #-1]! | 278 | ldrb r5, [r1, #-1]! |
269 | orr r3, r5, r3, lsl #8 | 279 | orr r3, r3, r5, lsl #8 |
270 | ldrb r4, [r1, #-1]! | 280 | ldrb r4, [r1, #-1]! |
271 | ldrb r5, [r1, #-1]! | 281 | ldrb r5, [r1, #-1]! |
272 | orr r4, r5, r4, lsl #8 | 282 | orr r4, r4, r5, lsl #8 |
273 | mul r5, r3, r4 | 283 | mul r3, r3, r4 |
274 | lsr r3, r5, #24 | 284 | strb r3, [r1, #1] |
275 | strb r3, [r1], #1 | 285 | lsr r3, #8 |
276 | lsr r5, #16 | 286 | strb r3, [r1], #2 |
277 | strb r5, [r1], #1 | ||
278 | b uxn_decode | 287 | b uxn_decode |
279 | 288 | ||
280 | div: | 289 | div: |