diff options
author | Bad Diode <bd@badd10de.dev> | 2023-08-28 13:31:33 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2023-08-28 13:31:33 +0200 |
commit | ee7f1d32a4ded99745a5886eb9839157d5e6ea57 (patch) | |
tree | 3a9987f21aada34e82ecdfe47e116cd4bba9aa2f /src/uxn-core.s | |
parent | 8ea88188b604f42e77ab9e929587f80601e5da85 (diff) | |
download | uxngba-ee7f1d32a4ded99745a5886eb9839157d5e6ea57.tar.gz uxngba-ee7f1d32a4ded99745a5886eb9839157d5e6ea57.zip |
Add nip instructions
Diffstat (limited to 'src/uxn-core.s')
-rw-r--r-- | src/uxn-core.s | 12 |
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 | ||
97 | pop: | 97 | pop: |
98 | sub r1, #1 | ||
98 | b uxn_decode | 99 | b uxn_decode |
99 | 100 | ||
100 | pop2: | 101 | pop2: |
102 | sub r1, #2 | ||
101 | b uxn_decode | 103 | b uxn_decode |
102 | 104 | ||
103 | nip: | 105 | nip: |
106 | ldrb r3, [r1, #-1]! | ||
107 | strb r3, [r1, #-1] | ||
104 | b uxn_decode | 108 | b uxn_decode |
105 | 109 | ||
106 | nip2: | 110 | nip2: |
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 | ||
109 | swp: | 119 | swp: |
@@ -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 |