aboutsummaryrefslogtreecommitdiffstats
path: root/src/uxn-core.s
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2023-08-28 14:02:59 +0200
committerBad Diode <bd@badd10de.dev>2023-08-28 14:02:59 +0200
commitba6ed32d1732218f152daae2356f8b0281f5f7b8 (patch)
tree096c1c0ce87ad35c7f8a30eb6076a5ed02c75890 /src/uxn-core.s
parentee7f1d32a4ded99745a5886eb9839157d5e6ea57 (diff)
downloaduxngba-ba6ed32d1732218f152daae2356f8b0281f5f7b8.tar.gz
uxngba-ba6ed32d1732218f152daae2356f8b0281f5f7b8.zip
Add swp, rot, dup, ovr instructions
Diffstat (limited to 'src/uxn-core.s')
-rw-r--r--src/uxn-core.s52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/uxn-core.s b/src/uxn-core.s
index 730da32..7e6ad8a 100644
--- a/src/uxn-core.s
+++ b/src/uxn-core.s
@@ -117,27 +117,79 @@ nip2:
117 b uxn_decode 117 b uxn_decode
118 118
119swp: 119swp:
120 ldrb r3, [r1, #-1]!
121 ldrb r4, [r1, #-1]!
122 strb r3, [r1], #1
123 strb r4, [r1], #1
120 b uxn_decode 124 b uxn_decode
121 125
122swp2: 126swp2:
127 ldrb r3, [r1, #-1]!
128 ldrb r5, [r1, #-1]!
129 orr r3, r3, r5, lsl #8
130 ldrb r4, [r1, #-1]!
131 ldrb r5, [r1, #-1]!
132 orr r4, r4, r5, lsl #8
133 strb r3, [r1, #1]
134 lsr r3, #8
135 strb r3, [r1], #2
136 strb r4, [r1, #1]
137 lsr r4, #8
138 strb r4, [r1], #2
123 b uxn_decode 139 b uxn_decode
124 140
125rot: 141rot:
142 ldrb r5, [r1, #-1]!
143 ldrb r4, [r1, #-1]!
144 ldrb r3, [r1, #-1]!
145 strb r4, [r1], #1
146 strb r5, [r1], #1
147 strb r3, [r1], #1
126 b uxn_decode 148 b uxn_decode
127 149
128rot2: 150rot2:
151 ldrb r5, [r1, #-1]!
152 ldrb r6, [r1, #-1]!
153 orr r5, r5, r6, lsl #8
154 ldrb r4, [r1, #-1]!
155 ldrb r6, [r1, #-1]!
156 orr r4, r4, r6, lsl #8
157 ldrb r3, [r1, #-1]!
158 ldrb r6, [r1, #-1]!
159 orr r3, r3, r6, lsl #8
160 strb r4, [r1, #1]
161 lsr r4, #8
162 strb r4, [r1], #2
163 strb r5, [r1, #1]
164 lsr r5, #8
165 strb r5, [r1], #2
166 strb r3, [r1, #1]
167 lsr r3, #8
168 strb r3, [r1], #2
129 b uxn_decode 169 b uxn_decode
130 170
131dup: 171dup:
172 ldrb r3, [r1, #-1]
173 strb r3, [r1], #1
132 b uxn_decode 174 b uxn_decode
133 175
134dup2: 176dup2:
177 ldrb r3, [r1, #-2]
178 ldrb r4, [r1, #-1]
179 strb r3, [r1], #1
180 strb r4, [r1], #1
135 b uxn_decode 181 b uxn_decode
136 182
137ovr: 183ovr:
184 ldrb r3, [r1, #-2]
185 strb r3, [r1], #1
138 b uxn_decode 186 b uxn_decode
139 187
140ovr2: 188ovr2:
189 ldrb r3, [r1, #-4]
190 ldrb r4, [r1, #-3]
191 strb r3, [r1], #1
192 strb r4, [r1], #1
141 b uxn_decode 193 b uxn_decode
142 194
143equ: 195equ: