1 @ RUN: llvm-mc -triple=armv7-apple-darwin -mcpu=cortex-a8 -show-encoding < %s | FileCheck %s 2 @ RUN: llvm-mc -triple=armebv7-unknown-unknown -mcpu=cortex-a8 -show-encoding < %s | FileCheck --check-prefix=CHECK-BE %s 3 .syntax unified 4 .globl _func 5 6 @ Check that the assembler can handle the documented syntax from the ARM ARM. 7 @ For complex constructs like shifter operands, check more thoroughly for them 8 @ once then spot check that following instructions accept the form generally. 9 @ This gives us good coverage while keeping the overall size of the test 10 @ more reasonable. 11 12 _func: 13 @ CHECK: _func 14 15 @------------------------------------------------------------------------------ 16 @ ADC (immediate) 17 @------------------------------------------------------------------------------ 18 adc r1, r2, #0xf 19 adc r1, r2, #0xf0 20 adc r1, r2, #0xf00 21 adc r1, r2, #0xf000 22 adc r1, r2, #0xf0000 23 adc r1, r2, #0xf00000 24 adc r1, r2, #0xf000000 25 adc r1, r2, #0xf0000000 26 adc r1, r2, #0xf000000f 27 adcs r1, r2, #0xf00 28 adcseq r1, r2, #0xf00 29 adceq r1, r2, #0xf00 30 31 @ CHECK: adc r1, r2, #15 @ encoding: [0x0f,0x10,0xa2,0xe2] 32 @ CHECK: adc r1, r2, #240 @ encoding: [0xf0,0x10,0xa2,0xe2] 33 @ CHECK: adc r1, r2, #3840 @ encoding: [0x0f,0x1c,0xa2,0xe2] 34 @ CHECK: adc r1, r2, #61440 @ encoding: [0x0f,0x1a,0xa2,0xe2] 35 @ CHECK: adc r1, r2, #983040 @ encoding: [0x0f,0x18,0xa2,0xe2] 36 @ CHECK: adc r1, r2, #15728640 @ encoding: [0x0f,0x16,0xa2,0xe2] 37 @ CHECK: adc r1, r2, #251658240 @ encoding: [0x0f,0x14,0xa2,0xe2] 38 @ CHECK: adc r1, r2, #4026531840 @ encoding: [0x0f,0x12,0xa2,0xe2] 39 @ CHECK: adc r1, r2, #4026531855 @ encoding: [0xff,0x12,0xa2,0xe2] 40 41 @ CHECK: adcs r1, r2, #3840 @ encoding: [0x0f,0x1c,0xb2,0xe2] 42 @ CHECK: adcseq r1, r2, #3840 @ encoding: [0x0f,0x1c,0xb2,0x02] 43 @ CHECK: adceq r1, r2, #3840 @ encoding: [0x0f,0x1c,0xa2,0x02] 44 45 @------------------------------------------------------------------------------ 46 @ ADC (register) 47 @ ADC (shifted register) 48 @------------------------------------------------------------------------------ 49 adc r4, r5, r6 50 @ Constant shifts 51 adc r4, r5, r6, lsl #1 52 adc r4, r5, r6, lsl #31 53 adc r4, r5, r6, lsr #1 54 adc r4, r5, r6, lsr #31 55 adc r4, r5, r6, lsr #32 56 adc r4, r5, r6, asr #1 57 adc r4, r5, r6, asr #31 58 adc r4, r5, r6, asr #32 59 adc r4, r5, r6, ror #1 60 adc r4, r5, r6, ror #31 61 62 @ Register shifts 63 adc r6, r7, r8, lsl r9 64 adc r6, r7, r8, lsr r9 65 adc r6, r7, r8, asr r9 66 adc r6, r7, r8, ror r9 67 adc r4, r5, r6, rrx 68 69 @ Destination register is optional 70 adc r5, r6 71 adc r4, r5, lsl #1 72 adc r4, r5, lsl #31 73 adc r4, r5, lsr #1 74 adc r4, r5, lsr #31 75 adc r4, r5, lsr #32 76 adc r4, r5, asr #1 77 adc r4, r5, asr #31 78 adc r4, r5, asr #32 79 adc r4, r5, ror #1 80 adc r4, r5, ror #31 81 adc r4, r5, rrx 82 adc r6, r7, lsl r9 83 adc r6, r7, lsr r9 84 adc r6, r7, asr r9 85 adc r6, r7, ror r9 86 adc r4, r5, rrx 87 88 @ CHECK: adc r4, r5, r6 @ encoding: [0x06,0x40,0xa5,0xe0] 89 90 @ CHECK: adc r4, r5, r6, lsl #1 @ encoding: [0x86,0x40,0xa5,0xe0] 91 @ CHECK: adc r4, r5, r6, lsl #31 @ encoding: [0x86,0x4f,0xa5,0xe0] 92 @ CHECK: adc r4, r5, r6, lsr #1 @ encoding: [0xa6,0x40,0xa5,0xe0] 93 @ CHECK: adc r4, r5, r6, lsr #31 @ encoding: [0xa6,0x4f,0xa5,0xe0] 94 @ CHECK: adc r4, r5, r6, lsr #32 @ encoding: [0x26,0x40,0xa5,0xe0] 95 @ CHECK: adc r4, r5, r6, asr #1 @ encoding: [0xc6,0x40,0xa5,0xe0] 96 @ CHECK: adc r4, r5, r6, asr #31 @ encoding: [0xc6,0x4f,0xa5,0xe0] 97 @ CHECK: adc r4, r5, r6, asr #32 @ encoding: [0x46,0x40,0xa5,0xe0] 98 @ CHECK: adc r4, r5, r6, ror #1 @ encoding: [0xe6,0x40,0xa5,0xe0] 99 @ CHECK: adc r4, r5, r6, ror #31 @ encoding: [0xe6,0x4f,0xa5,0xe0] 100 101 @ CHECK: adc r6, r7, r8, lsl r9 @ encoding: [0x18,0x69,0xa7,0xe0] 102 @ CHECK: adc r6, r7, r8, lsr r9 @ encoding: [0x38,0x69,0xa7,0xe0] 103 @ CHECK: adc r6, r7, r8, asr r9 @ encoding: [0x58,0x69,0xa7,0xe0] 104 @ CHECK: adc r6, r7, r8, ror r9 @ encoding: [0x78,0x69,0xa7,0xe0] 105 @ CHECK: adc r4, r5, r6, rrx @ encoding: [0x66,0x40,0xa5,0xe0] 106 107 @ CHECK: adc r5, r5, r6 @ encoding: [0x06,0x50,0xa5,0xe0] 108 @ CHECK: adc r4, r4, r5, lsl #1 @ encoding: [0x85,0x40,0xa4,0xe0] 109 @ CHECK: adc r4, r4, r5, lsl #31 @ encoding: [0x85,0x4f,0xa4,0xe0] 110 @ CHECK: adc r4, r4, r5, lsr #1 @ encoding: [0xa5,0x40,0xa4,0xe0] 111 @ CHECK: adc r4, r4, r5, lsr #31 @ encoding: [0xa5,0x4f,0xa4,0xe0] 112 @ CHECK: adc r4, r4, r5, lsr #32 @ encoding: [0x25,0x40,0xa4,0xe0] 113 @ CHECK: adc r4, r4, r5, asr #1 @ encoding: [0xc5,0x40,0xa4,0xe0] 114 @ CHECK: adc r4, r4, r5, asr #31 @ encoding: [0xc5,0x4f,0xa4,0xe0] 115 @ CHECK: adc r4, r4, r5, asr #32 @ encoding: [0x45,0x40,0xa4,0xe0] 116 @ CHECK: adc r4, r4, r5, ror #1 @ encoding: [0xe5,0x40,0xa4,0xe0] 117 @ CHECK: adc r4, r4, r5, ror #31 @ encoding: [0xe5,0x4f,0xa4,0xe0] 118 @ CHECK: adc r4, r4, r5, rrx @ encoding: [0x65,0x40,0xa4,0xe0] 119 @ CHECK: adc r6, r6, r7, lsl r9 @ encoding: [0x17,0x69,0xa6,0xe0] 120 @ CHECK: adc r6, r6, r7, lsr r9 @ encoding: [0x37,0x69,0xa6,0xe0] 121 @ CHECK: adc r6, r6, r7, asr r9 @ encoding: [0x57,0x69,0xa6,0xe0] 122 @ CHECK: adc r6, r6, r7, ror r9 @ encoding: [0x77,0x69,0xa6,0xe0] 123 @ CHECK: adc r4, r4, r5, rrx @ encoding: [0x65,0x40,0xa4,0xe0] 124 125 126 @------------------------------------------------------------------------------ 127 @ ADR 128 @------------------------------------------------------------------------------ 129 Lback: 130 adr r2, Lback 131 adr r3, Lforward 132 Lforward: 133 adr r2, #3 134 adr r2, #-3 135 136 @ CHECK: Lback: 137 @ CHECK: adr r2, Lback @ encoding: [A,0x20'A',0x0f'A',0xe2'A'] 138 @ CHECK: @ fixup A - offset: 0, value: Lback, kind: fixup_arm_adr_pcrel_12 139 @ CHECK-BE: adr r2, Lback @ encoding: [0xe2'A',0x0f'A',0x20'A',A] 140 @ CHECK-BE: @ fixup A - offset: 0, value: Lback, kind: fixup_arm_adr_pcrel_12 141 @ CHECK: adr r3, Lforward @ encoding: [A,0x30'A',0x0f'A',0xe2'A'] 142 @ CHECK: @ fixup A - offset: 0, value: Lforward, kind: fixup_arm_adr_pcrel_12 143 @ CHECK-BE: adr r3, Lforward @ encoding: [0xe2'A',0x0f'A',0x30'A',A] 144 @ CHECK-BE: @ fixup A - offset: 0, value: Lforward, kind: fixup_arm_adr_pcrel_12 145 @ CHECK: Lforward: 146 @ CHECK: adr r2, #3 @ encoding: [0x03,0x20,0x8f,0xe2] 147 @ CHECK: adr r2, #-3 @ encoding: [0x03,0x20,0x4f,0xe2] 148 149 adr r1, #-0x0 150 adr r1, #-0x12000000 151 adr r1, #-0x80000001 152 adr r1, #0x12000000 153 adr r1, #0x80000001 154 155 @ CHECK: adr r1, #-0 @ encoding: [0x00,0x10,0x4f,0xe2] 156 @ CHECK: adr r1, #-301989888 @ encoding: [0x12,0x14,0x4f,0xe2] 157 @ CHECK: adr r1, #2147483647 @ encoding: [0x06,0x11,0x4f,0xe2] 158 @ CHECK: adr r1, #301989888 @ encoding: [0x12,0x14,0x8f,0xe2] 159 @ CHECK: adr r1, #-2147483647 @ encoding: [0x06,0x11,0x8f,0xe2] 160 161 @------------------------------------------------------------------------------ 162 @ ADD 163 @------------------------------------------------------------------------------ 164 add r4, r5, #0xf000 165 add r4, r5, r6 166 add r4, r5, r6, lsl #5 167 add r4, r5, r6, lsr #5 168 add r4, r5, r6, lsr #5 169 add r4, r5, r6, asr #5 170 add r4, r5, r6, ror #5 171 add r6, r7, r8, lsl r9 172 add r4, r4, r3, asl r9 173 add r6, r7, r8, lsr r9 174 add r6, r7, r8, asr r9 175 add r6, r7, r8, ror r9 176 add r4, r5, r6, rrx 177 178 @ destination register is optional 179 add r5, #0xf000 180 add r4, r5 181 add r4, r5, lsl #5 182 add r4, r5, lsr #5 183 add r4, r5, lsr #5 184 add r4, r5, asr #5 185 add r4, r5, ror #5 186 add r6, r7, lsl r9 187 add r6, r7, lsr r9 188 add r6, r7, asr r9 189 add r6, r7, ror r9 190 add r4, r5, rrx 191 192 add r0, #-4 193 add r4, r5, #-21 194 add r0, pc, #0xc0000000 195 196 @ CHECK: add r4, r5, #61440 @ encoding: [0x0f,0x4a,0x85,0xe2] 197 @ CHECK: add r4, r5, r6 @ encoding: [0x06,0x40,0x85,0xe0] 198 @ CHECK: add r4, r5, r6, lsl #5 @ encoding: [0x86,0x42,0x85,0xe0] 199 @ CHECK: add r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0x85,0xe0] 200 @ CHECK: add r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0x85,0xe0] 201 @ CHECK: add r4, r5, r6, asr #5 @ encoding: [0xc6,0x42,0x85,0xe0] 202 @ CHECK: add r4, r5, r6, ror #5 @ encoding: [0xe6,0x42,0x85,0xe0] 203 @ CHECK: add r6, r7, r8, lsl r9 @ encoding: [0x18,0x69,0x87,0xe0] 204 @ CHECK: add r4, r4, r3, lsl r9 @ encoding: [0x13,0x49,0x84,0xe0] 205 @ CHECK: add r6, r7, r8, lsr r9 @ encoding: [0x38,0x69,0x87,0xe0] 206 @ CHECK: add r6, r7, r8, asr r9 @ encoding: [0x58,0x69,0x87,0xe0] 207 @ CHECK: add r6, r7, r8, ror r9 @ encoding: [0x78,0x69,0x87,0xe0] 208 @ CHECK: add r4, r5, r6, rrx @ encoding: [0x66,0x40,0x85,0xe0] 209 210 @ CHECK: add r5, r5, #61440 @ encoding: [0x0f,0x5a,0x85,0xe2] 211 @ CHECK: add r4, r4, r5 @ encoding: [0x05,0x40,0x84,0xe0] 212 @ CHECK: add r4, r4, r5, lsl #5 @ encoding: [0x85,0x42,0x84,0xe0] 213 @ CHECK: add r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0x84,0xe0] 214 @ CHECK: add r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0x84,0xe0] 215 @ CHECK: add r4, r4, r5, asr #5 @ encoding: [0xc5,0x42,0x84,0xe0] 216 @ CHECK: add r4, r4, r5, ror #5 @ encoding: [0xe5,0x42,0x84,0xe0] 217 @ CHECK: add r6, r6, r7, lsl r9 @ encoding: [0x17,0x69,0x86,0xe0] 218 @ CHECK: add r6, r6, r7, lsr r9 @ encoding: [0x37,0x69,0x86,0xe0] 219 @ CHECK: add r6, r6, r7, asr r9 @ encoding: [0x57,0x69,0x86,0xe0] 220 @ CHECK: add r6, r6, r7, ror r9 @ encoding: [0x77,0x69,0x86,0xe0] 221 @ CHECK: add r4, r4, r5, rrx @ encoding: [0x65,0x40,0x84,0xe0] 222 223 @ CHECK: sub r0, r0, #4 @ encoding: [0x04,0x00,0x40,0xe2] 224 @ CHECK: sub r4, r5, #21 @ encoding: [0x15,0x40,0x45,0xe2] 225 @ CHECK: adr r0, #-1073741824 @ encoding: [0x03,0x01,0x8f,0xe2] 226 227 @ Test right shift by 32, which is encoded as 0 228 add r3, r1, r2, lsr #32 229 add r3, r1, r2, asr #32 230 @ CHECK: add r3, r1, r2, lsr #32 @ encoding: [0x22,0x30,0x81,0xe0] 231 @ CHECK: add r3, r1, r2, asr #32 @ encoding: [0x42,0x30,0x81,0xe0] 232 233 @------------------------------------------------------------------------------ 234 @ AND 235 @------------------------------------------------------------------------------ 236 and r10, r1, #0xf 237 and r10, r1, r6 238 and r10, r1, r6, lsl #10 239 and r10, r1, r6, lsr #10 240 and r10, r1, r6, lsr #10 241 and r10, r1, r6, asr #10 242 and r10, r1, r6, ror #10 243 and r6, r7, r8, lsl r2 244 and r6, r7, r8, lsr r2 245 and r6, r7, r8, asr r2 246 and r6, r7, r8, ror r2 247 and r10, r1, r6, rrx 248 and r2, r3, #0x7fffffff 249 250 @ destination register is optional 251 and r1, #0xf 252 and r10, r1 253 and r10, r1, lsl #10 254 and r10, r1, lsr #10 255 and r10, r1, lsr #10 256 and r10, r1, asr #10 257 and r10, r1, ror #10 258 and r6, r7, lsl r2 259 and r6, r7, lsr r2 260 and r6, r7, asr r2 261 and r6, r7, ror r2 262 and r10, r1, rrx 263 264 @ CHECK: and r10, r1, #15 @ encoding: [0x0f,0xa0,0x01,0xe2] 265 @ CHECK: and r10, r1, r6 @ encoding: [0x06,0xa0,0x01,0xe0] 266 @ CHECK: and r10, r1, r6, lsl #10 @ encoding: [0x06,0xa5,0x01,0xe0] 267 @ CHECK: and r10, r1, r6, lsr #10 @ encoding: [0x26,0xa5,0x01,0xe0] 268 @ CHECK: and r10, r1, r6, lsr #10 @ encoding: [0x26,0xa5,0x01,0xe0] 269 @ CHECK: and r10, r1, r6, asr #10 @ encoding: [0x46,0xa5,0x01,0xe0] 270 @ CHECK: and r10, r1, r6, ror #10 @ encoding: [0x66,0xa5,0x01,0xe0] 271 @ CHECK: and r6, r7, r8, lsl r2 @ encoding: [0x18,0x62,0x07,0xe0] 272 @ CHECK: and r6, r7, r8, lsr r2 @ encoding: [0x38,0x62,0x07,0xe0] 273 @ CHECK: and r6, r7, r8, asr r2 @ encoding: [0x58,0x62,0x07,0xe0] 274 @ CHECK: and r6, r7, r8, ror r2 @ encoding: [0x78,0x62,0x07,0xe0] 275 @ CHECK: and r10, r1, r6, rrx @ encoding: [0x66,0xa0,0x01,0xe0] 276 @ CHECK: bic r2, r3, #-2147483648 @ encoding: [0x02,0x21,0xc3,0xe3] 277 278 @ CHECK: and r1, r1, #15 @ encoding: [0x0f,0x10,0x01,0xe2] 279 @ CHECK: and r10, r10, r1 @ encoding: [0x01,0xa0,0x0a,0xe0] 280 @ CHECK: and r10, r10, r1, lsl #10 @ encoding: [0x01,0xa5,0x0a,0xe0] 281 @ CHECK: and r10, r10, r1, lsr #10 @ encoding: [0x21,0xa5,0x0a,0xe0] 282 @ CHECK: and r10, r10, r1, lsr #10 @ encoding: [0x21,0xa5,0x0a,0xe0] 283 @ CHECK: and r10, r10, r1, asr #10 @ encoding: [0x41,0xa5,0x0a,0xe0] 284 @ CHECK: and r10, r10, r1, ror #10 @ encoding: [0x61,0xa5,0x0a,0xe0] 285 @ CHECK: and r6, r6, r7, lsl r2 @ encoding: [0x17,0x62,0x06,0xe0] 286 @ CHECK: and r6, r6, r7, lsr r2 @ encoding: [0x37,0x62,0x06,0xe0] 287 @ CHECK: and r6, r6, r7, asr r2 @ encoding: [0x57,0x62,0x06,0xe0] 288 @ CHECK: and r6, r6, r7, ror r2 @ encoding: [0x77,0x62,0x06,0xe0] 289 @ CHECK: and r10, r10, r1, rrx @ encoding: [0x61,0xa0,0x0a,0xe0] 290 291 @ Test right shift by 32, which is encoded as 0 292 and r3, r1, r2, lsr #32 293 and r3, r1, r2, asr #32 294 @ CHECK: and r3, r1, r2, lsr #32 @ encoding: [0x22,0x30,0x01,0xe0] 295 @ CHECK: and r3, r1, r2, asr #32 @ encoding: [0x42,0x30,0x01,0xe0] 296 297 @------------------------------------------------------------------------------ 298 @ ASR 299 @------------------------------------------------------------------------------ 300 asr r2, r4, #32 301 asr r2, r4, #2 302 asr r2, r4, #0 303 asr r4, #2 304 305 @ CHECK: asr r2, r4, #32 @ encoding: [0x44,0x20,0xa0,0xe1] 306 @ CHECK: asr r2, r4, #2 @ encoding: [0x44,0x21,0xa0,0xe1] 307 @ CHECK: mov r2, r4 @ encoding: [0x04,0x20,0xa0,0xe1] 308 @ CHECK: asr r4, r4, #2 @ encoding: [0x44,0x41,0xa0,0xe1] 309 310 311 @------------------------------------------------------------------------------ 312 @ B 313 @------------------------------------------------------------------------------ 314 b _bar 315 beq _baz 316 317 @ CHECK: b _bar @ encoding: [A,A,A,0xea] 318 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_uncondbranch 319 @ CHECK-BE: b _bar @ encoding: [0xea,A,A,A] 320 @ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_uncondbranch 321 @ CHECK: beq _baz @ encoding: [A,A,A,0x0a] 322 @ CHECK: @ fixup A - offset: 0, value: _baz, kind: fixup_arm_condbranch 323 @ CHECK-BE: beq _baz @ encoding: [0x0a,A,A,A] 324 @ CHECK-BE: @ fixup A - offset: 0, value: _baz, kind: fixup_arm_condbranch 325 326 327 @------------------------------------------------------------------------------ 328 @ BFC 329 @------------------------------------------------------------------------------ 330 bfc r5, #3, #17 331 bfccc r5, #3, #17 332 333 @ CHECK: bfc r5, #3, #17 @ encoding: [0x9f,0x51,0xd3,0xe7] 334 @ CHECK: bfclo r5, #3, #17 @ encoding: [0x9f,0x51,0xd3,0x37] 335 336 337 @------------------------------------------------------------------------------ 338 @ BFI 339 @------------------------------------------------------------------------------ 340 bfi r5, r2, #3, #17 341 bfine r5, r2, #3, #17 342 343 @ CHECK: bfi r5, r2, #3, #17 @ encoding: [0x92,0x51,0xd3,0xe7] 344 @ CHECK: bfine r5, r2, #3, #17 @ encoding: [0x92,0x51,0xd3,0x17] 345 346 347 @------------------------------------------------------------------------------ 348 @ BIC 349 @------------------------------------------------------------------------------ 350 bic r10, r1, #0xf 351 bic r10, r1, r6 352 bic r10, r1, r6, lsl #10 353 bic r10, r1, r6, lsr #10 354 bic r10, r1, r6, lsr #10 355 bic r10, r1, r6, asr #10 356 bic r10, r1, r6, ror #10 357 bic r6, r7, r8, lsl r2 358 bic r6, r7, r8, lsr r2 359 bic r6, r7, r8, asr r2 360 bic r6, r7, r8, ror r2 361 bic r10, r1, r6, rrx 362 363 @ destination register is optional 364 bic r1, #0xf 365 bic r10, r1 366 bic r10, r1, lsl #10 367 bic r10, r1, lsr #10 368 bic r10, r1, lsr #10 369 bic r10, r1, asr #10 370 bic r10, r1, ror #10 371 bic r6, r7, lsl r2 372 bic r6, r7, lsr r2 373 bic r6, r7, asr r2 374 bic r6, r7, ror r2 375 bic r10, r1, rrx 376 377 @ CHECK: bic r10, r1, #15 @ encoding: [0x0f,0xa0,0xc1,0xe3] 378 @ CHECK: bic r10, r1, r6 @ encoding: [0x06,0xa0,0xc1,0xe1] 379 @ CHECK: bic r10, r1, r6, lsl #10 @ encoding: [0x06,0xa5,0xc1,0xe1] 380 @ CHECK: bic r10, r1, r6, lsr #10 @ encoding: [0x26,0xa5,0xc1,0xe1] 381 @ CHECK: bic r10, r1, r6, lsr #10 @ encoding: [0x26,0xa5,0xc1,0xe1] 382 @ CHECK: bic r10, r1, r6, asr #10 @ encoding: [0x46,0xa5,0xc1,0xe1] 383 @ CHECK: bic r10, r1, r6, ror #10 @ encoding: [0x66,0xa5,0xc1,0xe1] 384 @ CHECK: bic r6, r7, r8, lsl r2 @ encoding: [0x18,0x62,0xc7,0xe1] 385 @ CHECK: bic r6, r7, r8, lsr r2 @ encoding: [0x38,0x62,0xc7,0xe1] 386 @ CHECK: bic r6, r7, r8, asr r2 @ encoding: [0x58,0x62,0xc7,0xe1] 387 @ CHECK: bic r6, r7, r8, ror r2 @ encoding: [0x78,0x62,0xc7,0xe1] 388 @ CHECK: bic r10, r1, r6, rrx @ encoding: [0x66,0xa0,0xc1,0xe1] 389 390 391 @ CHECK: bic r1, r1, #15 @ encoding: [0x0f,0x10,0xc1,0xe3] 392 @ CHECK: bic r10, r10, r1 @ encoding: [0x01,0xa0,0xca,0xe1] 393 @ CHECK: bic r10, r10, r1, lsl #10 @ encoding: [0x01,0xa5,0xca,0xe1] 394 @ CHECK: bic r10, r10, r1, lsr #10 @ encoding: [0x21,0xa5,0xca,0xe1] 395 @ CHECK: bic r10, r10, r1, lsr #10 @ encoding: [0x21,0xa5,0xca,0xe1] 396 @ CHECK: bic r10, r10, r1, asr #10 @ encoding: [0x41,0xa5,0xca,0xe1] 397 @ CHECK: bic r10, r10, r1, ror #10 @ encoding: [0x61,0xa5,0xca,0xe1] 398 @ CHECK: bic r6, r6, r7, lsl r2 @ encoding: [0x17,0x62,0xc6,0xe1] 399 @ CHECK: bic r6, r6, r7, lsr r2 @ encoding: [0x37,0x62,0xc6,0xe1] 400 @ CHECK: bic r6, r6, r7, asr r2 @ encoding: [0x57,0x62,0xc6,0xe1] 401 @ CHECK: bic r6, r6, r7, ror r2 @ encoding: [0x77,0x62,0xc6,0xe1] 402 @ CHECK: bic r10, r10, r1, rrx @ encoding: [0x61,0xa0,0xca,0xe1] 403 404 @ Test right shift by 32, which is encoded as 0 405 bic r3, r1, r2, lsr #32 406 bic r3, r1, r2, asr #32 407 @ CHECK: bic r3, r1, r2, lsr #32 @ encoding: [0x22,0x30,0xc1,0xe1] 408 @ CHECK: bic r3, r1, r2, asr #32 @ encoding: [0x42,0x30,0xc1,0xe1] 409 410 @------------------------------------------------------------------------------ 411 @ BKPT 412 @------------------------------------------------------------------------------ 413 bkpt #10 414 bkpt #65535 415 416 @ CHECK: bkpt #10 @ encoding: [0x7a,0x00,0x20,0xe1] 417 @ CHECK: bkpt #65535 @ encoding: [0x7f,0xff,0x2f,0xe1] 418 419 @------------------------------------------------------------------------------ 420 @ BL/BLX (immediate) 421 @------------------------------------------------------------------------------ 422 423 bl _bar 424 bleq _bar 425 blx _bar 426 blls #28634268 427 blx #32424576 428 blx #16212288 429 430 @ CHECK: bl _bar @ encoding: [A,A,A,0xeb] 431 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_uncondbl 432 @ CHECK-BE: bl _bar @ encoding: [0xeb,A,A,A] 433 @ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_uncondbl 434 @ CHECK: bleq _bar @ encoding: [A,A,A,0x0b] 435 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_condbl 436 @ CHECK-BE: bleq _bar @ encoding: [0x0b,A,A,A] 437 @ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_condbl 438 @ CHECK: blx _bar @ encoding: [A,A,A,0xfa] 439 @ CHECK: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_blx 440 @ CHECK-BE: blx _bar @ encoding: [0xfa,A,A,A] 441 @ CHECK-BE: @ fixup A - offset: 0, value: _bar, kind: fixup_arm_blx 442 @ CHECK: blls #28634268 @ encoding: [0x27,0x3b,0x6d,0x9b] 443 @ CHECK: blx #32424576 @ encoding: [0xa0,0xb0,0x7b,0xfa] 444 @ CHECK: blx #16212288 @ encoding: [0x50,0xd8,0x3d,0xfa] 445 @------------------------------------------------------------------------------ 446 @ BLX (register) 447 @------------------------------------------------------------------------------ 448 blx r2 449 blxne r2 450 451 @ CHECK: blx r2 @ encoding: [0x32,0xff,0x2f,0xe1] 452 @ CHECK: blxne r2 @ encoding: [0x32,0xff,0x2f,0x11] 453 454 @------------------------------------------------------------------------------ 455 @ BX 456 @------------------------------------------------------------------------------ 457 bx r2 458 bxne r2 459 460 @ CHECK: bx r2 @ encoding: [0x12,0xff,0x2f,0xe1] 461 @ CHECK: bxne r2 @ encoding: [0x12,0xff,0x2f,0x11] 462 463 @------------------------------------------------------------------------------ 464 @ BXJ 465 @------------------------------------------------------------------------------ 466 bxj r2 467 bxjne r2 468 469 @ CHECK: bxj r2 @ encoding: [0x22,0xff,0x2f,0xe1] 470 @ CHECK: bxjne r2 @ encoding: [0x22,0xff,0x2f,0x11] 471 472 473 @------------------------------------------------------------------------------ 474 @ CDP/CDP2 475 @------------------------------------------------------------------------------ 476 cdp p7, #1, c1, c1, c1, #4 477 cdp2 p7, #1, c1, c1, c1, #4 478 cdp2 p12, #0, c6, c12, c0, #7 479 480 @ CHECK: cdp p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xee] 481 @ CHECK: cdp2 p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0xfe] 482 @ CHECK: cdp2 p12, #0, c6, c12, c0, #7 @ encoding: [0xe0,0x6c,0x0c,0xfe] 483 484 cdpne p7, #1, c1, c1, c1, #4 485 @ CHECK: cdpne p7, #1, c1, c1, c1, #4 @ encoding: [0x81,0x17,0x11,0x1e] 486 487 @------------------------------------------------------------------------------ 488 @ CLREX 489 @------------------------------------------------------------------------------ 490 clrex 491 492 @ CHECK: clrex @ encoding: [0x1f,0xf0,0x7f,0xf5] 493 494 495 @------------------------------------------------------------------------------ 496 @ CLZ 497 @------------------------------------------------------------------------------ 498 clz r1, r2 499 clzeq r1, r2 500 501 @ CHECK: clz r1, r2 @ encoding: [0x12,0x1f,0x6f,0xe1] 502 @ CHECK: clzeq r1, r2 @ encoding: [0x12,0x1f,0x6f,0x01] 503 504 @------------------------------------------------------------------------------ 505 @ CMN 506 @------------------------------------------------------------------------------ 507 cmn r1, #0xf 508 cmn r1, r6 509 cmn r1, r6, lsl #10 510 cmn r1, r6, lsr #10 511 cmn sp, r6, lsr #10 512 cmn r1, r6, asr #10 513 cmn r1, r6, ror #10 514 cmn r7, r8, lsl r2 515 cmn sp, r8, lsr r2 516 cmn r7, r8, asr r2 517 cmn r7, r8, ror r2 518 cmn r1, r6, rrx 519 520 @ CHECK: cmn r1, #15 @ encoding: [0x0f,0x00,0x71,0xe3] 521 @ CHECK: cmn r1, r6 @ encoding: [0x06,0x00,0x71,0xe1] 522 @ CHECK: cmn r1, r6, lsl #10 @ encoding: [0x06,0x05,0x71,0xe1] 523 @ CHECK: cmn r1, r6, lsr #10 @ encoding: [0x26,0x05,0x71,0xe1] 524 @ CHECK: cmn sp, r6, lsr #10 @ encoding: [0x26,0x05,0x7d,0xe1] 525 @ CHECK: cmn r1, r6, asr #10 @ encoding: [0x46,0x05,0x71,0xe1] 526 @ CHECK: cmn r1, r6, ror #10 @ encoding: [0x66,0x05,0x71,0xe1] 527 @ CHECK: cmn r7, r8, lsl r2 @ encoding: [0x18,0x02,0x77,0xe1] 528 @ CHECK: cmn sp, r8, lsr r2 @ encoding: [0x38,0x02,0x7d,0xe1] 529 @ CHECK: cmn r7, r8, asr r2 @ encoding: [0x58,0x02,0x77,0xe1] 530 @ CHECK: cmn r7, r8, ror r2 @ encoding: [0x78,0x02,0x77,0xe1] 531 @ CHECK: cmn r1, r6, rrx @ encoding: [0x66,0x00,0x71,0xe1] 532 533 @------------------------------------------------------------------------------ 534 @ CMP 535 @------------------------------------------------------------------------------ 536 cmp r1, #0xf 537 cmp r1, r6 538 cmp r1, r6, lsl #10 539 cmp r1, r6, lsr #10 540 cmp sp, r6, lsr #10 541 cmp r1, r6, asr #10 542 cmp r1, r6, ror #10 543 cmp r7, r8, lsl r2 544 cmp sp, r8, lsr r2 545 cmp r7, r8, asr r2 546 cmp r7, r8, ror r2 547 cmp r1, r6, rrx 548 cmp r0, #-2 549 cmp lr, #0 550 551 @ CHECK: cmp r1, #15 @ encoding: [0x0f,0x00,0x51,0xe3] 552 @ CHECK: cmp r1, r6 @ encoding: [0x06,0x00,0x51,0xe1] 553 @ CHECK: cmp r1, r6, lsl #10 @ encoding: [0x06,0x05,0x51,0xe1] 554 @ CHECK: cmp r1, r6, lsr #10 @ encoding: [0x26,0x05,0x51,0xe1] 555 @ CHECK: cmp sp, r6, lsr #10 @ encoding: [0x26,0x05,0x5d,0xe1] 556 @ CHECK: cmp r1, r6, asr #10 @ encoding: [0x46,0x05,0x51,0xe1] 557 @ CHECK: cmp r1, r6, ror #10 @ encoding: [0x66,0x05,0x51,0xe1] 558 @ CHECK: cmp r7, r8, lsl r2 @ encoding: [0x18,0x02,0x57,0xe1] 559 @ CHECK: cmp sp, r8, lsr r2 @ encoding: [0x38,0x02,0x5d,0xe1] 560 @ CHECK: cmp r7, r8, asr r2 @ encoding: [0x58,0x02,0x57,0xe1] 561 @ CHECK: cmp r7, r8, ror r2 @ encoding: [0x78,0x02,0x57,0xe1] 562 @ CHECK: cmp r1, r6, rrx @ encoding: [0x66,0x00,0x51,0xe1] 563 @ CHECK: cmn r0, #2 @ encoding: [0x02,0x00,0x70,0xe3] 564 @ CHECK: cmp lr, #0 @ encoding: [0x00,0x00,0x5e,0xe3] 565 566 567 @------------------------------------------------------------------------------ 568 @ CPS 569 @------------------------------------------------------------------------------ 570 cpsie aif 571 cps #15 572 cpsid if, #10 573 574 @ CHECK: cpsie aif @ encoding: [0xc0,0x01,0x08,0xf1] 575 @ CHECK: cps #15 @ encoding: [0x0f,0x00,0x02,0xf1] 576 @ CHECK: cpsid if, #10 @ encoding: [0xca,0x00,0x0e,0xf1] 577 578 579 @------------------------------------------------------------------------------ 580 @ DBG 581 @------------------------------------------------------------------------------ 582 dbg #0 583 dbg #5 584 dbg #15 585 586 @ CHECK: dbg #0 @ encoding: [0xf0,0xf0,0x20,0xe3] 587 @ CHECK: dbg #5 @ encoding: [0xf5,0xf0,0x20,0xe3] 588 @ CHECK: dbg #15 @ encoding: [0xff,0xf0,0x20,0xe3] 589 590 591 @------------------------------------------------------------------------------ 592 @ DMB 593 @------------------------------------------------------------------------------ 594 dmb #0xf 595 dmb #0xe 596 dmb #0xd 597 dmb #0xc 598 dmb #0xb 599 dmb #0xa 600 dmb #0x9 601 dmb #0x8 602 dmb #0x7 603 dmb #0x6 604 dmb #0x5 605 dmb #0x4 606 dmb #0x3 607 dmb #0x2 608 dmb #0x1 609 dmb #0x0 610 611 dmb sy 612 dmb st 613 dmb sh 614 dmb ish 615 dmb shst 616 dmb ishst 617 dmb un 618 dmb nsh 619 dmb unst 620 dmb nshst 621 dmb osh 622 dmb oshst 623 dmb 624 625 @ CHECK: dmb sy @ encoding: [0x5f,0xf0,0x7f,0xf5] 626 @ CHECK: dmb st @ encoding: [0x5e,0xf0,0x7f,0xf5] 627 @ CHECK: dmb #0xd @ encoding: [0x5d,0xf0,0x7f,0xf5] 628 @ CHECK: dmb #0xc @ encoding: [0x5c,0xf0,0x7f,0xf5] 629 @ CHECK: dmb ish @ encoding: [0x5b,0xf0,0x7f,0xf5] 630 @ CHECK: dmb ishst @ encoding: [0x5a,0xf0,0x7f,0xf5] 631 @ CHECK: dmb #0x9 @ encoding: [0x59,0xf0,0x7f,0xf5] 632 @ CHECK: dmb #0x8 @ encoding: [0x58,0xf0,0x7f,0xf5] 633 @ CHECK: dmb nsh @ encoding: [0x57,0xf0,0x7f,0xf5] 634 @ CHECK: dmb nshst @ encoding: [0x56,0xf0,0x7f,0xf5] 635 @ CHECK: dmb #0x5 @ encoding: [0x55,0xf0,0x7f,0xf5] 636 @ CHECK: dmb #0x4 @ encoding: [0x54,0xf0,0x7f,0xf5] 637 @ CHECK: dmb osh @ encoding: [0x53,0xf0,0x7f,0xf5] 638 @ CHECK: dmb oshst @ encoding: [0x52,0xf0,0x7f,0xf5] 639 @ CHECK: dmb #0x1 @ encoding: [0x51,0xf0,0x7f,0xf5] 640 @ CHECK: dmb #0x0 @ encoding: [0x50,0xf0,0x7f,0xf5] 641 642 @ CHECK: dmb sy @ encoding: [0x5f,0xf0,0x7f,0xf5] 643 @ CHECK: dmb st @ encoding: [0x5e,0xf0,0x7f,0xf5] 644 @ CHECK: dmb ish @ encoding: [0x5b,0xf0,0x7f,0xf5] 645 @ CHECK: dmb ish @ encoding: [0x5b,0xf0,0x7f,0xf5] 646 @ CHECK: dmb ishst @ encoding: [0x5a,0xf0,0x7f,0xf5] 647 @ CHECK: dmb ishst @ encoding: [0x5a,0xf0,0x7f,0xf5] 648 @ CHECK: dmb nsh @ encoding: [0x57,0xf0,0x7f,0xf5] 649 @ CHECK: dmb nsh @ encoding: [0x57,0xf0,0x7f,0xf5] 650 @ CHECK: dmb nshst @ encoding: [0x56,0xf0,0x7f,0xf5] 651 @ CHECK: dmb nshst @ encoding: [0x56,0xf0,0x7f,0xf5] 652 @ CHECK: dmb osh @ encoding: [0x53,0xf0,0x7f,0xf5] 653 @ CHECK: dmb oshst @ encoding: [0x52,0xf0,0x7f,0xf5] 654 @ CHECK: dmb sy @ encoding: [0x5f,0xf0,0x7f,0xf5] 655 656 @------------------------------------------------------------------------------ 657 @ DSB 658 @------------------------------------------------------------------------------ 659 dsb #0xf 660 dsb #0xe 661 dsb #0xd 662 dsb #0xc 663 dsb #0xb 664 dsb #0xa 665 dsb #0x9 666 dsb #0x8 667 dsb #0x7 668 dsb #0x6 669 dsb #0x5 670 dsb #0x4 671 dsb #0x3 672 dsb #0x2 673 dsb #0x1 674 dsb #0x0 675 676 dsb 8 677 dsb 7 678 679 dsb sy 680 dsb st 681 dsb sh 682 dsb ish 683 dsb shst 684 dsb ishst 685 dsb un 686 dsb nsh 687 dsb unst 688 dsb nshst 689 dsb osh 690 dsb oshst 691 dsb 692 693 @ CHECK: dsb sy @ encoding: [0x4f,0xf0,0x7f,0xf5] 694 @ CHECK: dsb st @ encoding: [0x4e,0xf0,0x7f,0xf5] 695 @ CHECK: dsb #0xd @ encoding: [0x4d,0xf0,0x7f,0xf5] 696 @ CHECK: dsb #0xc @ encoding: [0x4c,0xf0,0x7f,0xf5] 697 @ CHECK: dsb ish @ encoding: [0x4b,0xf0,0x7f,0xf5] 698 @ CHECK: dsb ishst @ encoding: [0x4a,0xf0,0x7f,0xf5] 699 @ CHECK: dsb #0x9 @ encoding: [0x49,0xf0,0x7f,0xf5] 700 @ CHECK: dsb #0x8 @ encoding: [0x48,0xf0,0x7f,0xf5] 701 @ CHECK: dsb nsh @ encoding: [0x47,0xf0,0x7f,0xf5] 702 @ CHECK: dsb nshst @ encoding: [0x46,0xf0,0x7f,0xf5] 703 @ CHECK: dsb #0x5 @ encoding: [0x45,0xf0,0x7f,0xf5] 704 @ CHECK: dsb #0x4 @ encoding: [0x44,0xf0,0x7f,0xf5] 705 @ CHECK: dsb osh @ encoding: [0x43,0xf0,0x7f,0xf5] 706 @ CHECK: dsb oshst @ encoding: [0x42,0xf0,0x7f,0xf5] 707 @ CHECK: dsb #0x1 @ encoding: [0x41,0xf0,0x7f,0xf5] 708 @ CHECK: dsb #0x0 @ encoding: [0x40,0xf0,0x7f,0xf5] 709 710 @ CHECK: dsb #0x8 @ encoding: [0x48,0xf0,0x7f,0xf5] 711 @ CHECK: dsb nsh @ encoding: [0x47,0xf0,0x7f,0xf5] 712 713 @ CHECK: dsb sy @ encoding: [0x4f,0xf0,0x7f,0xf5] 714 @ CHECK: dsb st @ encoding: [0x4e,0xf0,0x7f,0xf5] 715 @ CHECK: dsb ish @ encoding: [0x4b,0xf0,0x7f,0xf5] 716 @ CHECK: dsb ish @ encoding: [0x4b,0xf0,0x7f,0xf5] 717 @ CHECK: dsb ishst @ encoding: [0x4a,0xf0,0x7f,0xf5] 718 @ CHECK: dsb ishst @ encoding: [0x4a,0xf0,0x7f,0xf5] 719 @ CHECK: dsb nsh @ encoding: [0x47,0xf0,0x7f,0xf5] 720 @ CHECK: dsb nsh @ encoding: [0x47,0xf0,0x7f,0xf5] 721 @ CHECK: dsb nshst @ encoding: [0x46,0xf0,0x7f,0xf5] 722 @ CHECK: dsb nshst @ encoding: [0x46,0xf0,0x7f,0xf5] 723 @ CHECK: dsb osh @ encoding: [0x43,0xf0,0x7f,0xf5] 724 @ CHECK: dsb oshst @ encoding: [0x42,0xf0,0x7f,0xf5] 725 @ CHECK: dsb sy @ encoding: [0x4f,0xf0,0x7f,0xf5] 726 727 @ With capitals 728 dsb SY 729 dsb OSHST 730 731 @ CHECK: dsb sy @ encoding: [0x4f,0xf0,0x7f,0xf5] 732 @ CHECK: dsb oshst @ encoding: [0x42,0xf0,0x7f,0xf5] 733 @------------------------------------------------------------------------------ 734 @ EOR 735 @------------------------------------------------------------------------------ 736 eor r4, r5, #0xf000 737 eor r4, r5, r6 738 eor r4, r5, r6, lsl #5 739 eor r4, r5, r6, lsr #5 740 eor r4, r5, r6, lsr #5 741 eor r4, r5, r6, asr #5 742 eor r4, r5, r6, ror #5 743 eor r6, r7, r8, lsl r9 744 eor r6, r7, r8, lsr r9 745 eor r6, r7, r8, asr r9 746 eor r6, r7, r8, ror r9 747 eor r4, r5, r6, rrx 748 749 @ destination register is optional 750 eor r5, #0xf000 751 eor r4, r5 752 eor r4, r5, lsl #5 753 eor r4, r5, lsr #5 754 eor r4, r5, lsr #5 755 eor r4, r5, asr #5 756 eor r4, r5, ror #5 757 eor r6, r7, lsl r9 758 eor r6, r7, lsr r9 759 eor r6, r7, asr r9 760 eor r6, r7, ror r9 761 eor r4, r5, rrx 762 763 @ CHECK: eor r4, r5, #61440 @ encoding: [0x0f,0x4a,0x25,0xe2] 764 @ CHECK: eor r4, r5, r6 @ encoding: [0x06,0x40,0x25,0xe0] 765 @ CHECK: eor r4, r5, r6, lsl #5 @ encoding: [0x86,0x42,0x25,0xe0] 766 @ CHECK: eor r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0x25,0xe0] 767 @ CHECK: eor r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0x25,0xe0] 768 @ CHECK: eor r4, r5, r6, asr #5 @ encoding: [0xc6,0x42,0x25,0xe0] 769 @ CHECK: eor r4, r5, r6, ror #5 @ encoding: [0xe6,0x42,0x25,0xe0] 770 @ CHECK: eor r6, r7, r8, lsl r9 @ encoding: [0x18,0x69,0x27,0xe0] 771 @ CHECK: eor r6, r7, r8, lsr r9 @ encoding: [0x38,0x69,0x27,0xe0] 772 @ CHECK: eor r6, r7, r8, asr r9 @ encoding: [0x58,0x69,0x27,0xe0] 773 @ CHECK: eor r6, r7, r8, ror r9 @ encoding: [0x78,0x69,0x27,0xe0] 774 @ CHECK: eor r4, r5, r6, rrx @ encoding: [0x66,0x40,0x25,0xe0] 775 776 777 @ CHECK: eor r5, r5, #61440 @ encoding: [0x0f,0x5a,0x25,0xe2] 778 @ CHECK: eor r4, r4, r5 @ encoding: [0x05,0x40,0x24,0xe0] 779 @ CHECK: eor r4, r4, r5, lsl #5 @ encoding: [0x85,0x42,0x24,0xe0] 780 @ CHECK: eor r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0x24,0xe0] 781 @ CHECK: eor r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0x24,0xe0] 782 @ CHECK: eor r4, r4, r5, asr #5 @ encoding: [0xc5,0x42,0x24,0xe0] 783 @ CHECK: eor r4, r4, r5, ror #5 @ encoding: [0xe5,0x42,0x24,0xe0] 784 @ CHECK: eor r6, r6, r7, lsl r9 @ encoding: [0x17,0x69,0x26,0xe0] 785 @ CHECK: eor r6, r6, r7, lsr r9 @ encoding: [0x37,0x69,0x26,0xe0] 786 @ CHECK: eor r6, r6, r7, asr r9 @ encoding: [0x57,0x69,0x26,0xe0] 787 @ CHECK: eor r6, r6, r7, ror r9 @ encoding: [0x77,0x69,0x26,0xe0] 788 @ CHECK: eor r4, r4, r5, rrx @ encoding: [0x65,0x40,0x24,0xe0] 789 790 @ Test right shift by 32, which is encoded as 0 791 eor r3, r1, r2, lsr #32 792 eor r3, r1, r2, asr #32 793 @ CHECK: eor r3, r1, r2, lsr #32 @ encoding: [0x22,0x30,0x21,0xe0] 794 @ CHECK: eor r3, r1, r2, asr #32 @ encoding: [0x42,0x30,0x21,0xe0] 795 796 @------------------------------------------------------------------------------ 797 @ ISB 798 @------------------------------------------------------------------------------ 799 isb sy 800 isb 801 isb #15 802 isb #1 803 804 @ CHECK: isb sy @ encoding: [0x6f,0xf0,0x7f,0xf5] 805 @ CHECK: isb sy @ encoding: [0x6f,0xf0,0x7f,0xf5] 806 @ CHECK: isb sy @ encoding: [0x6f,0xf0,0x7f,0xf5] 807 @ CHECK: isb #0x1 @ encoding: [0x61,0xf0,0x7f,0xf5] 808 809 810 @------------------------------------------------------------------------------ 811 @ LDC{L}/LDC2{L} 812 @------------------------------------------------------------------------------ 813 ldc2 p0, c8, [r1, #4] 814 ldc2 p1, c7, [r2] 815 ldc2 p2, c6, [r3, #-224] 816 ldc2 p3, c5, [r4, #-120]! 817 ldc2 p4, c4, [r5], #16 818 ldc2 p5, c3, [r6], #-72 819 ldc2l p6, c2, [r7, #4] 820 ldc2l p7, c1, [r8] 821 ldc2l p8, c0, [r9, #-224] 822 ldc2l p9, c1, [r10, #-120]! 823 ldc2l p0, c2, [r11], #16 824 ldc2l p1, c3, [r12], #-72 825 826 ldc p12, c4, [r0, #4] 827 ldc p13, c5, [r1] 828 ldc p14, c6, [r2, #-224] 829 ldc p15, c7, [r3, #-120]! 830 ldc p5, c8, [r4], #16 831 ldc p4, c9, [r5], #-72 832 ldcl p3, c10, [r6, #4] 833 ldcl p2, c11, [r7] 834 ldcl p1, c12, [r8, #-224] 835 ldcl p0, c13, [r9, #-120]! 836 ldcl p6, c14, [r10], #16 837 ldcl p7, c15, [r11], #-72 838 839 ldclo p12, c4, [r0, #4] 840 ldchi p13, c5, [r1] 841 ldccs p14, c6, [r2, #-224] 842 ldccc p15, c7, [r3, #-120]! 843 ldceq p5, c8, [r4], #16 844 ldcgt p4, c9, [r5], #-72 845 ldcllt p3, c10, [r6, #4] 846 ldclge p2, c11, [r7] 847 ldclle p1, c12, [r8, #-224] 848 ldclne p0, c13, [r9, #-120]! 849 ldcleq p6, c14, [r10], #16 850 ldclhi p7, c15, [r11], #-72 851 852 ldc2 p2, c8, [r1], { 25 } 853 854 @ CHECK: ldc2 p0, c8, [r1, #4] @ encoding: [0x01,0x80,0x91,0xfd] 855 @ CHECK: ldc2 p1, c7, [r2] @ encoding: [0x00,0x71,0x92,0xfd] 856 @ CHECK: ldc2 p2, c6, [r3, #-224] @ encoding: [0x38,0x62,0x13,0xfd] 857 @ CHECK: ldc2 p3, c5, [r4, #-120]! @ encoding: [0x1e,0x53,0x34,0xfd] 858 @ CHECK: ldc2 p4, c4, [r5], #16 @ encoding: [0x04,0x44,0xb5,0xfc] 859 @ CHECK: ldc2 p5, c3, [r6], #-72 @ encoding: [0x12,0x35,0x36,0xfc] 860 @ CHECK: ldc2l p6, c2, [r7, #4] @ encoding: [0x01,0x26,0xd7,0xfd] 861 @ CHECK: ldc2l p7, c1, [r8] @ encoding: [0x00,0x17,0xd8,0xfd] 862 @ CHECK: ldc2l p8, c0, [r9, #-224] @ encoding: [0x38,0x08,0x59,0xfd] 863 @ CHECK: ldc2l p9, c1, [r10, #-120]! @ encoding: [0x1e,0x19,0x7a,0xfd] 864 @ CHECK: ldc2l p0, c2, [r11], #16 @ encoding: [0x04,0x20,0xfb,0xfc] 865 @ CHECK: ldc2l p1, c3, [r12], #-72 @ encoding: [0x12,0x31,0x7c,0xfc] 866 867 @ CHECK: ldc p12, c4, [r0, #4] @ encoding: [0x01,0x4c,0x90,0xed] 868 @ CHECK: ldc p13, c5, [r1] @ encoding: [0x00,0x5d,0x91,0xed] 869 @ CHECK: ldc p14, c6, [r2, #-224] @ encoding: [0x38,0x6e,0x12,0xed] 870 @ CHECK: ldc p15, c7, [r3, #-120]! @ encoding: [0x1e,0x7f,0x33,0xed] 871 @ CHECK: ldc p5, c8, [r4], #16 @ encoding: [0x04,0x85,0xb4,0xec] 872 @ CHECK: ldc p4, c9, [r5], #-72 @ encoding: [0x12,0x94,0x35,0xec] 873 @ CHECK: ldcl p3, c10, [r6, #4] @ encoding: [0x01,0xa3,0xd6,0xed] 874 @ CHECK: ldcl p2, c11, [r7] @ encoding: [0x00,0xb2,0xd7,0xed] 875 @ CHECK: ldcl p1, c12, [r8, #-224] @ encoding: [0x38,0xc1,0x58,0xed] 876 @ CHECK: ldcl p0, c13, [r9, #-120]! @ encoding: [0x1e,0xd0,0x79,0xed] 877 @ CHECK: ldcl p6, c14, [r10], #16 @ encoding: [0x04,0xe6,0xfa,0xec] 878 @ CHECK: ldcl p7, c15, [r11], #-72 @ encoding: [0x12,0xf7,0x7b,0xec] 879 880 @ CHECK: ldclo p12, c4, [r0, #4] @ encoding: [0x01,0x4c,0x90,0x3d] 881 @ CHECK: ldchi p13, c5, [r1] @ encoding: [0x00,0x5d,0x91,0x8d] 882 @ CHECK: ldchs p14, c6, [r2, #-224] @ encoding: [0x38,0x6e,0x12,0x2d] 883 @ CHECK: ldclo p15, c7, [r3, #-120]! @ encoding: [0x1e,0x7f,0x33,0x3d] 884 @ CHECK: ldceq p5, c8, [r4], #16 @ encoding: [0x04,0x85,0xb4,0x0c] 885 @ CHECK: ldcgt p4, c9, [r5], #-72 @ encoding: [0x12,0x94,0x35,0xcc] 886 @ CHECK: ldcllt p3, c10, [r6, #4] @ encoding: [0x01,0xa3,0xd6,0xbd] 887 @ CHECK: ldclge p2, c11, [r7] @ encoding: [0x00,0xb2,0xd7,0xad] 888 @ CHECK: ldclle p1, c12, [r8, #-224] @ encoding: [0x38,0xc1,0x58,0xdd] 889 @ CHECK: ldclne p0, c13, [r9, #-120]! @ encoding: [0x1e,0xd0,0x79,0x1d] 890 @ CHECK: ldcleq p6, c14, [r10], #16 @ encoding: [0x04,0xe6,0xfa,0x0c] 891 @ CHECK: ldclhi p7, c15, [r11], #-72 @ encoding: [0x12,0xf7,0x7b,0x8c] 892 893 @ CHECK: ldc2 p2, c8, [r1], {25} @ encoding: [0x19,0x82,0x91,0xfc] 894 895 896 @------------------------------------------------------------------------------ 897 @ LDM* 898 @------------------------------------------------------------------------------ 899 ldm r2, {r1,r3-r6,sp} 900 ldmia r2, {r1,r3-r6,sp} 901 ldmib r2, {r1,r3-r6,sp} 902 ldmda r2, {r1,r3-r6,sp} 903 ldmdb r2, {r1,r3-r6,sp} 904 ldmfd r2, {r1,r3-r6,sp} 905 906 @ with update 907 ldm r2!, {r1,r3-r6,sp} 908 ldmib r2!, {r1,r3-r6,sp} 909 ldmda r2!, {r1,r3-r6,sp} 910 ldmdb r2!, {r1,r3-r6,sp} 911 912 @ system version 913 ldm r0, {r0, r2, lr}^ 914 ldm sp!, {r0-r3, pc}^ 915 916 @ CHECK: ldm r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe8] 917 @ CHECK: ldm r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe8] 918 @ CHECK: ldmib r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe9] 919 @ CHECK: ldmda r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x12,0xe8] 920 @ CHECK: ldmdb r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x12,0xe9] 921 @ CHECK: ldm r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe8] 922 923 @ CHECK: ldm r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xb2,0xe8] 924 @ CHECK: ldmib r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xb2,0xe9] 925 @ CHECK: ldmda r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x32,0xe8] 926 @ CHECK: ldmdb r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x32,0xe9] 927 @ CHECK: ldm r0, {r0, r2, lr} ^ @ encoding: [0x05,0x40,0xd0,0xe8] 928 @ CHECK: ldm sp!, {r0, r1, r2, r3, pc} ^ @ encoding: [0x0f,0x80,0xfd,0xe8] 929 930 931 @------------------------------------------------------------------------------ 932 @ LDREX/LDREXB/LDREXH/LDREXD 933 @------------------------------------------------------------------------------ 934 ldrexb r3, [r4] 935 ldrexh r2, [r5] 936 ldrex r1, [r7] 937 ldrexd r6, r7, [r8] 938 939 @ CHECK: ldrexb r3, [r4] @ encoding: [0x9f,0x3f,0xd4,0xe1] 940 @ CHECK: ldrexh r2, [r5] @ encoding: [0x9f,0x2f,0xf5,0xe1] 941 @ CHECK: ldrex r1, [r7] @ encoding: [0x9f,0x1f,0x97,0xe1] 942 @ CHECK: ldrexd r6, r7, [r8] @ encoding: [0x9f,0x6f,0xb8,0xe1] 943 944 @------------------------------------------------------------------------------ 945 @ LDRHT 946 @------------------------------------------------------------------------------ 947 ldrhthi r8, [r11], #-0 948 ldrhthi r8, [r11], #0 949 950 @ CHECK: ldrhthi r8, [r11], #-0 @ encoding: [0xb0,0x80,0x7b,0x80] 951 @ CHECK: ldrhthi r8, [r11], #0 @ encoding: [0xb0,0x80,0xfb,0x80] 952 953 @------------------------------------------------------------------------------ 954 @ LSL 955 @------------------------------------------------------------------------------ 956 lsl r2, r4, #31 957 lsl r2, r4, #1 958 lsl r2, r4, #0 959 lsl r4, #1 960 961 @ CHECK: lsl r2, r4, #31 @ encoding: [0x84,0x2f,0xa0,0xe1] 962 @ CHECK: lsl r2, r4, #1 @ encoding: [0x84,0x20,0xa0,0xe1] 963 @ CHECK: mov r2, r4 @ encoding: [0x04,0x20,0xa0,0xe1] 964 @ CHECK: lsl r4, r4, #1 @ encoding: [0x84,0x40,0xa0,0xe1] 965 966 967 @------------------------------------------------------------------------------ 968 @ LSR 969 @------------------------------------------------------------------------------ 970 lsr r2, r4, #32 971 lsr r2, r4, #2 972 lsr r2, r4, #0 973 lsr r4, #2 974 975 @ CHECK: lsr r2, r4, #32 @ encoding: [0x24,0x20,0xa0,0xe1] 976 @ CHECK: lsr r2, r4, #2 @ encoding: [0x24,0x21,0xa0,0xe1] 977 @ CHECK: mov r2, r4 @ encoding: [0x04,0x20,0xa0,0xe1] 978 @ CHECK: lsr r4, r4, #2 @ encoding: [0x24,0x41,0xa0,0xe1] 979 980 981 @------------------------------------------------------------------------------ 982 @ MCR/MCR2 983 @------------------------------------------------------------------------------ 984 mcr p7, #1, r5, c1, c1, #4 985 mcr2 p7, #1, r5, c1, c1, #4 986 987 @ CHECK: mcr p7, #1, r5, c1, c1, #4 @ encoding: [0x91,0x57,0x21,0xee] 988 @ CHECK: mcr2 p7, #1, r5, c1, c1, #4 @ encoding: [0x91,0x57,0x21,0xfe] 989 990 mcrls p7, #1, r5, c1, c1, #4 991 @ CHECK: mcrls p7, #1, r5, c1, c1, #4 @ encoding: [0x91,0x57,0x21,0x9e] 992 993 @------------------------------------------------------------------------------ 994 @ MCRR/MCRR2 995 @------------------------------------------------------------------------------ 996 mcrr p7, #15, r5, r4, c1 997 mcrr2 p7, #15, r5, r4, c1 998 999 @ CHECK: mcrr p7, #15, r5, r4, c1 @ encoding: [0xf1,0x57,0x44,0xec] 1000 @ CHECK: mcrr2 p7, #15, r5, r4, c1 @ encoding: [0xf1,0x57,0x44,0xfc] 1001 1002 mcrrgt p7, #15, r5, r4, c1 1003 @ CHECK: mcrrgt p7, #15, r5, r4, c1 @ encoding: [0xf1,0x57,0x44,0xcc] 1004 1005 @------------------------------------------------------------------------------ 1006 @ MLA 1007 @------------------------------------------------------------------------------ 1008 mla r1,r2,r3,r4 1009 mlas r1,r2,r3,r4 1010 mlane r1,r2,r3,r4 1011 mlasne r1,r2,r3,r4 1012 1013 @ CHECK: mla r1, r2, r3, r4 @ encoding: [0x92,0x43,0x21,0xe0] 1014 @ CHECK: mlas r1, r2, r3, r4 @ encoding: [0x92,0x43,0x31,0xe0] 1015 @ CHECK: mlane r1, r2, r3, r4 @ encoding: [0x92,0x43,0x21,0x10] 1016 @ CHECK: mlasne r1, r2, r3, r4 @ encoding: [0x92,0x43,0x31,0x10] 1017 1018 @------------------------------------------------------------------------------ 1019 @ MLS 1020 @------------------------------------------------------------------------------ 1021 mls r2,r5,r6,r3 1022 mlsne r2,r5,r6,r3 1023 1024 @ CHECK: mls r2, r5, r6, r3 @ encoding: [0x95,0x36,0x62,0xe0] 1025 @ CHECK: mlsne r2, r5, r6, r3 @ encoding: [0x95,0x36,0x62,0x10] 1026 1027 @------------------------------------------------------------------------------ 1028 @ MOV (immediate) 1029 @------------------------------------------------------------------------------ 1030 mov r3, #7 1031 mov r4, #0xff0 1032 mov r5, #0xff0000 1033 mov r6, #0xffff 1034 movw r9, #0xffff 1035 movs r3, #7 1036 moveq r4, #0xff0 1037 movseq r5, #0xff0000 1038 1039 @ CHECK: mov r3, #7 @ encoding: [0x07,0x30,0xa0,0xe3] 1040 @ CHECK: mov r4, #4080 @ encoding: [0xff,0x4e,0xa0,0xe3] 1041 @ CHECK: mov r5, #16711680 @ encoding: [0xff,0x58,0xa0,0xe3] 1042 @ CHECK: movw r6, #65535 @ encoding: [0xff,0x6f,0x0f,0xe3] 1043 @ CHECK: movw r9, #65535 @ encoding: [0xff,0x9f,0x0f,0xe3] 1044 @ CHECK: movs r3, #7 @ encoding: [0x07,0x30,0xb0,0xe3] 1045 @ CHECK: moveq r4, #4080 @ encoding: [0xff,0x4e,0xa0,0x03] 1046 @ CHECK: movseq r5, #16711680 @ encoding: [0xff,0x58,0xb0,0x03] 1047 1048 @------------------------------------------------------------------------------ 1049 @ MOV (register) 1050 @------------------------------------------------------------------------------ 1051 mov r2, r3 1052 movs r2, r3 1053 moveq r2, r3 1054 movseq r2, r3 1055 mov r12, r8, lsl #(2 - 2) 1056 lsl r2, r3, #(2 - 2) 1057 mov r12, r8, lsr #(2 - 2) 1058 lsr r2, r3, #(2 - 2) 1059 mov r12, r8, asr #(2 - 2) 1060 asr r2, r3, #(2 - 2) 1061 mov r12, r8, ror #(2 - 2) 1062 ror r2, r3, #(2 - 2) 1063 1064 @ CHECK: mov r2, r3 @ encoding: [0x03,0x20,0xa0,0xe1] 1065 @ CHECK: movs r2, r3 @ encoding: [0x03,0x20,0xb0,0xe1] 1066 @ CHECK: moveq r2, r3 @ encoding: [0x03,0x20,0xa0,0x01] 1067 @ CHECK: movseq r2, r3 @ encoding: [0x03,0x20,0xb0,0x01] 1068 @ CHECK: mov r12, r8 @ encoding: [0x08,0xc0,0xa0,0xe1] 1069 @ CHECK: mov r2, r3 @ encoding: [0x03,0x20,0xa0,0xe1] 1070 @ CHECK: mov r12, r8 @ encoding: [0x08,0xc0,0xa0,0xe1] 1071 @ CHECK: mov r2, r3 @ encoding: [0x03,0x20,0xa0,0xe1] 1072 @ CHECK: mov r12, r8 @ encoding: [0x08,0xc0,0xa0,0xe1] 1073 @ CHECK: mov r2, r3 @ encoding: [0x03,0x20,0xa0,0xe1] 1074 @ CHECK: mov r12, r8 @ encoding: [0x08,0xc0,0xa0,0xe1] 1075 @ CHECK: mov r2, r3 @ encoding: [0x03,0x20,0xa0,0xe1] 1076 1077 1078 @------------------------------------------------------------------------------ 1079 @ MOVT 1080 @------------------------------------------------------------------------------ 1081 movt r3, #7 1082 movt r6, #0xffff 1083 movteq r4, #0xff0 1084 1085 @ CHECK: movt r3, #7 @ encoding: [0x07,0x30,0x40,0xe3] 1086 @ CHECK: movt r6, #65535 @ encoding: [0xff,0x6f,0x4f,0xe3] 1087 @ CHECK: movteq r4, #4080 @ encoding: [0xf0,0x4f,0x40,0x03] 1088 1089 1090 @------------------------------------------------------------------------------ 1091 @ MRC/MRC2 1092 @------------------------------------------------------------------------------ 1093 mrc p14, #0, r1, c1, c2, #4 1094 mrc p15, #7, apsr_nzcv, c15, c6, #6 1095 mrc2 p14, #0, r1, c1, c2, #4 1096 mrc2 p9, #7, apsr_nzcv, c15, c0, #1 1097 1098 @ CHECK: mrc p14, #0, r1, c1, c2, #4 @ encoding: [0x92,0x1e,0x11,0xee] 1099 @ CHECK: mrc p15, #7, apsr_nzcv, c15, c6, #6 @ encoding: [0xd6,0xff,0xff,0xee] 1100 @ CHECK: mrc2 p14, #0, r1, c1, c2, #4 @ encoding: [0x92,0x1e,0x11,0xfe] 1101 @ CHECK: mrc2 p9, #7, apsr_nzcv, c15, c0, #1 @ encoding: [0x30,0xf9,0xff,0xfe] 1102 1103 mrceq p15, #7, apsr_nzcv, c15, c6, #6 1104 @ CHECK: mrceq p15, #7, apsr_nzcv, c15, c6, #6 @ encoding: [0xd6,0xff,0xff,0x0e] 1105 1106 @------------------------------------------------------------------------------ 1107 @ MRRC/MRRC2 1108 @------------------------------------------------------------------------------ 1109 mrrc p7, #1, r5, r4, c1 1110 mrrc2 p7, #1, r5, r4, c1 1111 1112 @ CHECK: mrrc p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x54,0xec] 1113 @ CHECK: mrrc2 p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x54,0xfc] 1114 1115 mrrclo p7, #1, r5, r4, c1 1116 @ CHECK: mrrclo p7, #1, r5, r4, c1 @ encoding: [0x11,0x57,0x54,0x3c] 1117 1118 @------------------------------------------------------------------------------ 1119 @ MRS 1120 @------------------------------------------------------------------------------ 1121 mrs r8, apsr 1122 mrs r8, cpsr 1123 mrs r8, spsr 1124 @ CHECK: mrs r8, apsr @ encoding: [0x00,0x80,0x0f,0xe1] 1125 @ CHECK: mrs r8, apsr @ encoding: [0x00,0x80,0x0f,0xe1] 1126 @ CHECK: mrs r8, spsr @ encoding: [0x00,0x80,0x4f,0xe1] 1127 1128 1129 1130 @------------------------------------------------------------------------------ 1131 @ MSR 1132 @------------------------------------------------------------------------------ 1133 1134 msr apsr, #5 1135 msr apsr_g, #5 1136 msr apsr_nzcvq, #5 1137 msr APSR_nzcvq, #5 1138 msr apsr_nzcvqg, #5 1139 msr cpsr_fc, #5 1140 msr cpsr_c, #5 1141 msr cpsr_x, #5 1142 msr cpsr_fc, #5 1143 msr cpsr_all, #5 1144 msr cpsr_fsx, #5 1145 msr spsr_fc, #5 1146 msr SPSR_fsxc, #5 1147 msr cpsr_fsxc, #5 1148 1149 @ CHECK: msr APSR_nzcvq, #5 @ encoding: [0x05,0xf0,0x28,0xe3] 1150 @ CHECK: msr APSR_g, #5 @ encoding: [0x05,0xf0,0x24,0xe3] 1151 @ CHECK: msr APSR_nzcvq, #5 @ encoding: [0x05,0xf0,0x28,0xe3] 1152 @ CHECK: msr APSR_nzcvq, #5 @ encoding: [0x05,0xf0,0x28,0xe3] 1153 @ CHECK: msr APSR_nzcvqg, #5 @ encoding: [0x05,0xf0,0x2c,0xe3] 1154 @ CHECK: msr CPSR_fc, #5 @ encoding: [0x05,0xf0,0x29,0xe3] 1155 @ CHECK: msr CPSR_c, #5 @ encoding: [0x05,0xf0,0x21,0xe3] 1156 @ CHECK: msr CPSR_x, #5 @ encoding: [0x05,0xf0,0x22,0xe3] 1157 @ CHECK: msr CPSR_fc, #5 @ encoding: [0x05,0xf0,0x29,0xe3] 1158 @ CHECK: msr CPSR_fc, #5 @ encoding: [0x05,0xf0,0x29,0xe3] 1159 @ CHECK: msr CPSR_fsx, #5 @ encoding: [0x05,0xf0,0x2e,0xe3] 1160 @ CHECK: msr SPSR_fc, #5 @ encoding: [0x05,0xf0,0x69,0xe3] 1161 @ CHECK: msr SPSR_fsxc, #5 @ encoding: [0x05,0xf0,0x6f,0xe3] 1162 @ CHECK: msr CPSR_fsxc, #5 @ encoding: [0x05,0xf0,0x2f,0xe3] 1163 1164 msr apsr, r0 1165 msr apsr_g, r0 1166 msr apsr_nzcvq, r0 1167 msr APSR_nzcvq, r0 1168 msr apsr_nzcvqg, r0 1169 msr cpsr_fc, r0 1170 msr cpsr_c, r0 1171 msr cpsr_x, r0 1172 msr cpsr_fc, r0 1173 msr cpsr_all, r0 1174 msr cpsr_fsx, r0 1175 msr spsr_fc, r0 1176 msr SPSR_fsxc, r0 1177 msr cpsr_fsxc, r0 1178 1179 @ CHECK: msr APSR_nzcvq, r0 @ encoding: [0x00,0xf0,0x28,0xe1] 1180 @ CHECK: msr APSR_g, r0 @ encoding: [0x00,0xf0,0x24,0xe1] 1181 @ CHECK: msr APSR_nzcvq, r0 @ encoding: [0x00,0xf0,0x28,0xe1] 1182 @ CHECK: msr APSR_nzcvq, r0 @ encoding: [0x00,0xf0,0x28,0xe1] 1183 @ CHECK: msr APSR_nzcvqg, r0 @ encoding: [0x00,0xf0,0x2c,0xe1] 1184 @ CHECK: msr CPSR_fc, r0 @ encoding: [0x00,0xf0,0x29,0xe1] 1185 @ CHECK: msr CPSR_c, r0 @ encoding: [0x00,0xf0,0x21,0xe1] 1186 @ CHECK: msr CPSR_x, r0 @ encoding: [0x00,0xf0,0x22,0xe1] 1187 @ CHECK: msr CPSR_fc, r0 @ encoding: [0x00,0xf0,0x29,0xe1] 1188 @ CHECK: msr CPSR_fc, r0 @ encoding: [0x00,0xf0,0x29,0xe1] 1189 @ CHECK: msr CPSR_fsx, r0 @ encoding: [0x00,0xf0,0x2e,0xe1] 1190 @ CHECK: msr SPSR_fc, r0 @ encoding: [0x00,0xf0,0x69,0xe1] 1191 @ CHECK: msr SPSR_fsxc, r0 @ encoding: [0x00,0xf0,0x6f,0xe1] 1192 @ CHECK: msr CPSR_fsxc, r0 @ encoding: [0x00,0xf0,0x2f,0xe1] 1193 1194 @------------------------------------------------------------------------------ 1195 @ MUL 1196 @------------------------------------------------------------------------------ 1197 mul r5, r6, r7 1198 muls r5, r6, r7 1199 mulgt r5, r6, r7 1200 mulsle r5, r6, r7 1201 mul r11, r5 1202 1203 @ CHECK: mul r5, r6, r7 @ encoding: [0x96,0x07,0x05,0xe0] 1204 @ CHECK: muls r5, r6, r7 @ encoding: [0x96,0x07,0x15,0xe0] 1205 @ CHECK: mulgt r5, r6, r7 @ encoding: [0x96,0x07,0x05,0xc0] 1206 @ CHECK: mulsle r5, r6, r7 @ encoding: [0x96,0x07,0x15,0xd0] 1207 1208 1209 @------------------------------------------------------------------------------ 1210 @ MVN (immediate) 1211 @------------------------------------------------------------------------------ 1212 mvn r3, #7 1213 mvn r4, #0xff0 1214 mvn r5, #0xff0000 1215 mvns r3, #7 1216 mvneq r4, #0xff0 1217 mvnseq r5, #0xff0000 1218 1219 @ CHECK: mvn r3, #7 @ encoding: [0x07,0x30,0xe0,0xe3] 1220 @ CHECK: mvn r4, #4080 @ encoding: [0xff,0x4e,0xe0,0xe3] 1221 @ CHECK: mvn r5, #16711680 @ encoding: [0xff,0x58,0xe0,0xe3] 1222 @ CHECK: mvns r3, #7 @ encoding: [0x07,0x30,0xf0,0xe3] 1223 @ CHECK: mvneq r4, #4080 @ encoding: [0xff,0x4e,0xe0,0x03] 1224 @ CHECK: mvnseq r5, #16711680 @ encoding: [0xff,0x58,0xf0,0x03] 1225 1226 1227 @------------------------------------------------------------------------------ 1228 @ MVN (register) 1229 @------------------------------------------------------------------------------ 1230 mvn r2, r3 1231 mvns r2, r3 1232 mvn r5, r6, lsl #19 1233 mvn r5, r6, lsr #9 1234 mvn r5, r6, asr #4 1235 mvn r5, r6, ror #6 1236 mvn r5, r6, rrx 1237 mvneq r2, r3 1238 mvnseq r2, r3, lsl #10 1239 1240 @ CHECK: mvn r2, r3 @ encoding: [0x03,0x20,0xe0,0xe1] 1241 @ CHECK: mvns r2, r3 @ encoding: [0x03,0x20,0xf0,0xe1] 1242 @ CHECK: mvn r5, r6, lsl #19 @ encoding: [0x86,0x59,0xe0,0xe1] 1243 @ CHECK: mvn r5, r6, lsr #9 @ encoding: [0xa6,0x54,0xe0,0xe1] 1244 @ CHECK: mvn r5, r6, asr #4 @ encoding: [0x46,0x52,0xe0,0xe1] 1245 @ CHECK: mvn r5, r6, ror #6 @ encoding: [0x66,0x53,0xe0,0xe1] 1246 @ CHECK: mvn r5, r6, rrx @ encoding: [0x66,0x50,0xe0,0xe1] 1247 @ CHECK: mvneq r2, r3 @ encoding: [0x03,0x20,0xe0,0x01] 1248 @ CHECK: mvnseq r2, r3, lsl #10 @ encoding: [0x03,0x25,0xf0,0x01] 1249 1250 1251 @------------------------------------------------------------------------------ 1252 @ MVN (shifted register) 1253 @------------------------------------------------------------------------------ 1254 mvn r5, r6, lsl r7 1255 mvns r5, r6, lsr r7 1256 mvngt r5, r6, asr r7 1257 mvnslt r5, r6, ror r7 1258 1259 @ CHECK: mvn r5, r6, lsl r7 @ encoding: [0x16,0x57,0xe0,0xe1] 1260 @ CHECK: mvns r5, r6, lsr r7 @ encoding: [0x36,0x57,0xf0,0xe1] 1261 @ CHECK: mvngt r5, r6, asr r7 @ encoding: [0x56,0x57,0xe0,0xc1] 1262 @ CHECK: mvnslt r5, r6, ror r7 @ encoding: [0x76,0x57,0xf0,0xb1] 1263 1264 @------------------------------------------------------------------------------ 1265 @ NEG 1266 @------------------------------------------------------------------------------ 1267 neg r5, r8 1268 1269 @ CHECK: rsb r5, r8, #0 @ encoding: [0x00,0x50,0x68,0xe2] 1270 1271 1272 @------------------------------------------------------------------------------ 1273 @ NOP 1274 @------------------------------------------------------------------------------ 1275 nop 1276 nop.w 1277 nopgt 1278 1279 @ CHECK: nop @ encoding: [0x00,0xf0,0x20,0xe3] 1280 @ CHECK: nop @ encoding: [0x00,0xf0,0x20,0xe3] 1281 @ CHECK: nopgt @ encoding: [0x00,0xf0,0x20,0xc3] 1282 1283 1284 @------------------------------------------------------------------------------ 1285 @ ORR 1286 @------------------------------------------------------------------------------ 1287 orr r4, r5, #0xf000 1288 orr r4, r5, r6 1289 orr r4, r5, r6, lsl #5 1290 orr r4, r5, r6, lsr #5 1291 orr r4, r5, r6, lsr #5 1292 orr r4, r5, r6, asr #5 1293 orr r4, r5, r6, ror #5 1294 orr r6, r7, r8, lsl r9 1295 orr r6, r7, r8, lsr r9 1296 orr r6, r7, r8, asr r9 1297 orr r6, r7, r8, ror r9 1298 orr r4, r5, r6, rrx 1299 1300 @ destination register is optional 1301 orr r5, #0xf000 1302 orr r4, r5 1303 orr r4, r5, lsl #5 1304 orr r4, r5, lsr #5 1305 orr r4, r5, lsr #5 1306 orr r4, r5, asr #5 1307 orr r4, r5, ror #5 1308 orr r6, r7, lsl r9 1309 orr r6, r7, lsr r9 1310 orr r6, r7, asr r9 1311 orr r6, r7, ror r9 1312 orr r4, r5, rrx 1313 1314 @ CHECK: orr r4, r5, #61440 @ encoding: [0x0f,0x4a,0x85,0xe3] 1315 @ CHECK: orr r4, r5, r6 @ encoding: [0x06,0x40,0x85,0xe1] 1316 @ CHECK: orr r4, r5, r6, lsl #5 @ encoding: [0x86,0x42,0x85,0xe1] 1317 @ CHECK: orr r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0x85,0xe1] 1318 @ CHECK: orr r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0x85,0xe1] 1319 @ CHECK: orr r4, r5, r6, asr #5 @ encoding: [0xc6,0x42,0x85,0xe1] 1320 @ CHECK: orr r4, r5, r6, ror #5 @ encoding: [0xe6,0x42,0x85,0xe1] 1321 @ CHECK: orr r6, r7, r8, lsl r9 @ encoding: [0x18,0x69,0x87,0xe1] 1322 @ CHECK: orr r6, r7, r8, lsr r9 @ encoding: [0x38,0x69,0x87,0xe1] 1323 @ CHECK: orr r6, r7, r8, asr r9 @ encoding: [0x58,0x69,0x87,0xe1] 1324 @ CHECK: orr r6, r7, r8, ror r9 @ encoding: [0x78,0x69,0x87,0xe1] 1325 @ CHECK: orr r4, r5, r6, rrx @ encoding: [0x66,0x40,0x85,0xe1] 1326 1327 @ CHECK: orr r5, r5, #61440 @ encoding: [0x0f,0x5a,0x85,0xe3] 1328 @ CHECK: orr r4, r4, r5 @ encoding: [0x05,0x40,0x84,0xe1] 1329 @ CHECK: orr r4, r4, r5, lsl #5 @ encoding: [0x85,0x42,0x84,0xe1] 1330 @ CHECK: orr r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0x84,0xe1] 1331 @ CHECK: orr r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0x84,0xe1] 1332 @ CHECK: orr r4, r4, r5, asr #5 @ encoding: [0xc5,0x42,0x84,0xe1] 1333 @ CHECK: orr r4, r4, r5, ror #5 @ encoding: [0xe5,0x42,0x84,0xe1] 1334 @ CHECK: orr r6, r6, r7, lsl r9 @ encoding: [0x17,0x69,0x86,0xe1] 1335 @ CHECK: orr r6, r6, r7, lsr r9 @ encoding: [0x37,0x69,0x86,0xe1] 1336 @ CHECK: orr r6, r6, r7, asr r9 @ encoding: [0x57,0x69,0x86,0xe1] 1337 @ CHECK: orr r6, r6, r7, ror r9 @ encoding: [0x77,0x69,0x86,0xe1] 1338 @ CHECK: orr r4, r4, r5, rrx @ encoding: [0x65,0x40,0x84,0xe1] 1339 1340 orrseq r4, r5, #0xf000 1341 orrne r4, r5, r6 1342 orrseq r4, r5, r6, lsl #5 1343 orrlo r6, r7, r8, ror r9 1344 orrshi r4, r5, r6, rrx 1345 orrcs r5, #0xf000 1346 orrseq r4, r5 1347 orrne r6, r7, asr r9 1348 orrslt r6, r7, ror r9 1349 orrsgt r4, r5, rrx 1350 1351 @ CHECK: orrseq r4, r5, #61440 @ encoding: [0x0f,0x4a,0x95,0x03] 1352 @ CHECK: orrne r4, r5, r6 @ encoding: [0x06,0x40,0x85,0x11] 1353 @ CHECK: orrseq r4, r5, r6, lsl #5 @ encoding: [0x86,0x42,0x95,0x01] 1354 @ CHECK: orrlo r6, r7, r8, ror r9 @ encoding: [0x78,0x69,0x87,0x31] 1355 @ CHECK: orrshi r4, r5, r6, rrx @ encoding: [0x66,0x40,0x95,0x81] 1356 @ CHECK: orrhs r5, r5, #61440 @ encoding: [0x0f,0x5a,0x85,0x23] 1357 @ CHECK: orrseq r4, r4, r5 @ encoding: [0x05,0x40,0x94,0x01] 1358 @ CHECK: orrne r6, r6, r7, asr r9 @ encoding: [0x57,0x69,0x86,0x11] 1359 @ CHECK: orrslt r6, r6, r7, ror r9 @ encoding: [0x77,0x69,0x96,0xb1] 1360 @ CHECK: orrsgt r4, r4, r5, rrx @ encoding: [0x65,0x40,0x94,0xc1] 1361 1362 @ Test right shift by 32, which is encoded as 0 1363 orr r3, r1, r2, lsr #32 1364 orr r3, r1, r2, asr #32 1365 @ CHECK: orr r3, r1, r2, lsr #32 @ encoding: [0x22,0x30,0x81,0xe1] 1366 @ CHECK: orr r3, r1, r2, asr #32 @ encoding: [0x42,0x30,0x81,0xe1] 1367 1368 @------------------------------------------------------------------------------ 1369 @ PKH 1370 @------------------------------------------------------------------------------ 1371 pkhbt r2, r2, r3 1372 pkhbt r2, r2, r3, lsl #31 1373 pkhbt r2, r2, r3, lsl #0 1374 pkhbt r2, r2, r3, lsl #15 1375 1376 pkhtb r2, r2, r3 1377 pkhtb r2, r2, r3, asr #31 1378 pkhtb r2, r2, r3, asr #15 1379 1380 @ CHECK: pkhbt r2, r2, r3 @ encoding: [0x13,0x20,0x82,0xe6] 1381 @ CHECK: pkhbt r2, r2, r3, lsl #31 @ encoding: [0x93,0x2f,0x82,0xe6] 1382 @ CHECK: pkhbt r2, r2, r3 @ encoding: [0x13,0x20,0x82,0xe6] 1383 @ CHECK: pkhbt r2, r2, r3, lsl #15 @ encoding: [0x93,0x27,0x82,0xe6] 1384 1385 @ CHECK: pkhbt r2, r2, r3 @ encoding: [0x13,0x20,0x82,0xe6] 1386 @ CHECK: pkhtb r2, r2, r3, asr #31 @ encoding: [0xd3,0x2f,0x82,0xe6] 1387 @ CHECK: pkhtb r2, r2, r3, asr #15 @ encoding: [0xd3,0x27,0x82,0xe6] 1388 1389 @------------------------------------------------------------------------------ 1390 @ FIXME: PLD 1391 @------------------------------------------------------------------------------ 1392 @------------------------------------------------------------------------------ 1393 @ FIXME: PLI 1394 @------------------------------------------------------------------------------ 1395 1396 1397 @------------------------------------------------------------------------------ 1398 @ POP 1399 @------------------------------------------------------------------------------ 1400 pop {r7} 1401 pop {r7, r8, r9, r10} 1402 1403 @ CHECK: pop {r7} @ encoding: [0x04,0x70,0x9d,0xe4] 1404 @ CHECK: pop {r7, r8, r9, r10} @ encoding: [0x80,0x07,0xbd,0xe8] 1405 1406 1407 @------------------------------------------------------------------------------ 1408 @ PUSH 1409 @------------------------------------------------------------------------------ 1410 push {r7} 1411 push {r7, r8, r9, r10} 1412 1413 @ CHECK: push {r7} @ encoding: [0x04,0x70,0x2d,0xe5] 1414 @ CHECK: push {r7, r8, r9, r10} @ encoding: [0x80,0x07,0x2d,0xe9] 1415 1416 1417 @------------------------------------------------------------------------------ 1418 @ QADD/QADD16/QADD8 1419 @------------------------------------------------------------------------------ 1420 qadd r1, r2, r3 1421 qaddne r1, r2, r3 1422 qadd16 r1, r2, r3 1423 qadd16gt r1, r2, r3 1424 qadd8 r1, r2, r3 1425 qadd8le r1, r2, r3 1426 1427 @ CHECK: qadd r1, r2, r3 @ encoding: [0x52,0x10,0x03,0xe1] 1428 @ CHECK: qaddne r1, r2, r3 @ encoding: [0x52,0x10,0x03,0x11] 1429 @ CHECK: qadd16 r1, r2, r3 @ encoding: [0x13,0x1f,0x22,0xe6] 1430 @ CHECK: qadd16gt r1, r2, r3 @ encoding: [0x13,0x1f,0x22,0xc6] 1431 @ CHECK: qadd8 r1, r2, r3 @ encoding: [0x93,0x1f,0x22,0xe6] 1432 @ CHECK: qadd8le r1, r2, r3 @ encoding: [0x93,0x1f,0x22,0xd6] 1433 1434 1435 @------------------------------------------------------------------------------ 1436 @ QDADD/QDSUB 1437 @------------------------------------------------------------------------------ 1438 qdadd r6, r7, r8 1439 qdaddhi r6, r7, r8 1440 qdsub r6, r7, r8 1441 qdsubhi r6, r7, r8 1442 1443 @ CHECK: qdadd r6, r7, r8 @ encoding: [0x57,0x60,0x48,0xe1] 1444 @ CHECK: qdaddhi r6, r7, r8 @ encoding: [0x57,0x60,0x48,0x81] 1445 @ CHECK: qdsub r6, r7, r8 @ encoding: [0x57,0x60,0x68,0xe1] 1446 @ CHECK: qdsubhi r6, r7, r8 @ encoding: [0x57,0x60,0x68,0x81] 1447 1448 1449 @------------------------------------------------------------------------------ 1450 @ QSAX 1451 @------------------------------------------------------------------------------ 1452 qsax r9, r12, r0 1453 qsaxeq r9, r12, r0 1454 1455 @ CHECK: qsax r9, r12, r0 @ encoding: [0x50,0x9f,0x2c,0xe6] 1456 @ CHECK: qsaxeq r9, r12, r0 @ encoding: [0x50,0x9f,0x2c,0x06] 1457 1458 1459 @------------------------------------------------------------------------------ 1460 @ QSUB/QSUB16/QSUB8 1461 @------------------------------------------------------------------------------ 1462 qsub r1, r2, r3 1463 qsubne r1, r2, r3 1464 qsub16 r1, r2, r3 1465 qsub16gt r1, r2, r3 1466 qsub8 r1, r2, r3 1467 qsub8le r1, r2, r3 1468 1469 @ CHECK: qsub r1, r2, r3 @ encoding: [0x52,0x10,0x23,0xe1] 1470 @ CHECK: qsubne r1, r2, r3 @ encoding: [0x52,0x10,0x23,0x11] 1471 @ CHECK: qsub16 r1, r2, r3 @ encoding: [0x73,0x1f,0x22,0xe6] 1472 @ CHECK: qsub16gt r1, r2, r3 @ encoding: [0x73,0x1f,0x22,0xc6] 1473 @ CHECK: qsub8 r1, r2, r3 @ encoding: [0xf3,0x1f,0x22,0xe6] 1474 @ CHECK: qsub8le r1, r2, r3 @ encoding: [0xf3,0x1f,0x22,0xd6] 1475 1476 1477 @------------------------------------------------------------------------------ 1478 @ RBIT 1479 @------------------------------------------------------------------------------ 1480 rbit r1, r2 1481 rbitne r1, r2 1482 1483 @ CHECK: rbit r1, r2 @ encoding: [0x32,0x1f,0xff,0xe6] 1484 @ CHECK: rbitne r1, r2 @ encoding: [0x32,0x1f,0xff,0x16] 1485 1486 1487 @------------------------------------------------------------------------------ 1488 @ REV/REV16/REVSH 1489 @------------------------------------------------------------------------------ 1490 rev r1, r9 1491 revne r1, r5 1492 rev16 r8, r3 1493 rev16ne r12, r4 1494 revsh r4, r9 1495 revshne r9, r1 1496 1497 @ CHECK: rev r1, r9 @ encoding: [0x39,0x1f,0xbf,0xe6] 1498 @ CHECK: revne r1, r5 @ encoding: [0x35,0x1f,0xbf,0x16] 1499 @ CHECK: rev16 r8, r3 @ encoding: [0xb3,0x8f,0xbf,0xe6] 1500 @ CHECK: rev16ne r12, r4 @ encoding: [0xb4,0xcf,0xbf,0x16] 1501 @ CHECK: revsh r4, r9 @ encoding: [0xb9,0x4f,0xff,0xe6] 1502 @ CHECK: revshne r9, r1 @ encoding: [0xb1,0x9f,0xff,0x16] 1503 1504 1505 @------------------------------------------------------------------------------ 1506 @ RFE 1507 @------------------------------------------------------------------------------ 1508 rfeda r2 1509 rfedb r3 1510 rfeia r5 1511 rfeib r6 1512 1513 rfeda r4! 1514 rfedb r7! 1515 rfeia r9! 1516 rfeib r8! 1517 1518 rfefa r2 1519 rfeea r3 1520 rfefd r5 1521 rfeed r6 1522 1523 rfefa r4! 1524 rfeea r7! 1525 rfefd r9! 1526 rfeed r8! 1527 1528 rfe r1 1529 rfe r1! 1530 1531 @ CHECK: rfeda r2 @ encoding: [0x00,0x0a,0x12,0xf8] 1532 @ CHECK: rfedb r3 @ encoding: [0x00,0x0a,0x13,0xf9] 1533 @ CHECK: rfeia r5 @ encoding: [0x00,0x0a,0x95,0xf8] 1534 @ CHECK: rfeib r6 @ encoding: [0x00,0x0a,0x96,0xf9] 1535 1536 @ CHECK: rfeda r4! @ encoding: [0x00,0x0a,0x34,0xf8] 1537 @ CHECK: rfedb r7! @ encoding: [0x00,0x0a,0x37,0xf9] 1538 @ CHECK: rfeia r9! @ encoding: [0x00,0x0a,0xb9,0xf8] 1539 @ CHECK: rfeib r8! @ encoding: [0x00,0x0a,0xb8,0xf9] 1540 1541 @ CHECK: rfeda r2 @ encoding: [0x00,0x0a,0x12,0xf8] 1542 @ CHECK: rfedb r3 @ encoding: [0x00,0x0a,0x13,0xf9] 1543 @ CHECK: rfeia r5 @ encoding: [0x00,0x0a,0x95,0xf8] 1544 @ CHECK: rfeib r6 @ encoding: [0x00,0x0a,0x96,0xf9] 1545 1546 @ CHECK: rfeda r4! @ encoding: [0x00,0x0a,0x34,0xf8] 1547 @ CHECK: rfedb r7! @ encoding: [0x00,0x0a,0x37,0xf9] 1548 @ CHECK: rfeia r9! @ encoding: [0x00,0x0a,0xb9,0xf8] 1549 @ CHECK: rfeib r8! @ encoding: [0x00,0x0a,0xb8,0xf9] 1550 1551 @ CHECK: rfeia r1 @ encoding: [0x00,0x0a,0x91,0xf8] 1552 @ CHECK: rfeia r1! @ encoding: [0x00,0x0a,0xb1,0xf8] 1553 1554 1555 @------------------------------------------------------------------------------ 1556 @ ROR 1557 @------------------------------------------------------------------------------ 1558 ror r2, r4, #31 1559 ror r2, r4, #1 1560 ror r2, r4, #0 1561 ror r4, #1 1562 1563 @ CHECK: ror r2, r4, #31 @ encoding: [0xe4,0x2f,0xa0,0xe1] 1564 @ CHECK: ror r2, r4, #1 @ encoding: [0xe4,0x20,0xa0,0xe1] 1565 @ CHECK: mov r2, r4 @ encoding: [0x04,0x20,0xa0,0xe1] 1566 @ CHECK: ror r4, r4, #1 @ encoding: [0xe4,0x40,0xa0,0xe1] 1567 1568 1569 @------------------------------------------------------------------------------ 1570 @ RSB 1571 @------------------------------------------------------------------------------ 1572 rsb r4, r5, #0xf000 1573 rsb r4, r5, r6 1574 rsb r4, r5, r6, lsl #5 1575 rsblo r4, r5, r6, lsr #5 1576 rsb r4, r5, r6, lsr #5 1577 rsb r4, r5, r6, asr #5 1578 rsb r4, r5, r6, ror #5 1579 rsb r6, r7, r8, lsl r9 1580 rsb r6, r7, r8, lsr r9 1581 rsb r6, r7, r8, asr r9 1582 rsble r6, r7, r8, ror r9 1583 rsb r4, r5, r6, rrx 1584 1585 @ destination register is optional 1586 rsb r5, #0xf000 1587 rsb r4, r5 1588 rsb r4, r5, lsl #5 1589 rsb r4, r5, lsr #5 1590 rsbne r4, r5, lsr #5 1591 rsb r4, r5, asr #5 1592 rsb r4, r5, ror #5 1593 rsbgt r6, r7, lsl r9 1594 rsb r6, r7, lsr r9 1595 rsb r6, r7, asr r9 1596 rsb r6, r7, ror r9 1597 rsb r4, r5, rrx 1598 1599 @ CHECK: rsb r4, r5, #61440 @ encoding: [0x0f,0x4a,0x65,0xe2] 1600 @ CHECK: rsb r4, r5, r6 @ encoding: [0x06,0x40,0x65,0xe0] 1601 @ CHECK: rsb r4, r5, r6, lsl #5 @ encoding: [0x86,0x42,0x65,0xe0] 1602 @ CHECK: rsblo r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0x65,0x30] 1603 @ CHECK: rsb r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0x65,0xe0] 1604 @ CHECK: rsb r4, r5, r6, asr #5 @ encoding: [0xc6,0x42,0x65,0xe0] 1605 @ CHECK: rsb r4, r5, r6, ror #5 @ encoding: [0xe6,0x42,0x65,0xe0] 1606 @ CHECK: rsb r6, r7, r8, lsl r9 @ encoding: [0x18,0x69,0x67,0xe0] 1607 @ CHECK: rsb r6, r7, r8, lsr r9 @ encoding: [0x38,0x69,0x67,0xe0] 1608 @ CHECK: rsb r6, r7, r8, asr r9 @ encoding: [0x58,0x69,0x67,0xe0] 1609 @ CHECK: rsble r6, r7, r8, ror r9 @ encoding: [0x78,0x69,0x67,0xd0] 1610 @ CHECK: rsb r4, r5, r6, rrx @ encoding: [0x66,0x40,0x65,0xe0] 1611 1612 @ CHECK: rsb r5, r5, #61440 @ encoding: [0x0f,0x5a,0x65,0xe2] 1613 @ CHECK: rsb r4, r4, r5 @ encoding: [0x05,0x40,0x64,0xe0] 1614 @ CHECK: rsb r4, r4, r5, lsl #5 @ encoding: [0x85,0x42,0x64,0xe0] 1615 @ CHECK: rsb r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0x64,0xe0] 1616 @ CHECK: rsbne r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0x64,0x10] 1617 @ CHECK: rsb r4, r4, r5, asr #5 @ encoding: [0xc5,0x42,0x64,0xe0] 1618 @ CHECK: rsb r4, r4, r5, ror #5 @ encoding: [0xe5,0x42,0x64,0xe0] 1619 @ CHECK: rsbgt r6, r6, r7, lsl r9 @ encoding: [0x17,0x69,0x66,0xc0] 1620 @ CHECK: rsb r6, r6, r7, lsr r9 @ encoding: [0x37,0x69,0x66,0xe0] 1621 @ CHECK: rsb r6, r6, r7, asr r9 @ encoding: [0x57,0x69,0x66,0xe0] 1622 @ CHECK: rsb r6, r6, r7, ror r9 @ encoding: [0x77,0x69,0x66,0xe0] 1623 @ CHECK: rsb r4, r4, r5, rrx @ encoding: [0x65,0x40,0x64,0xe0] 1624 1625 @------------------------------------------------------------------------------ 1626 @ RSC 1627 @------------------------------------------------------------------------------ 1628 rsc r4, r5, #0xf000 1629 rsc r4, r5, r6 1630 rsc r4, r5, r6, lsl #5 1631 rsclo r4, r5, r6, lsr #5 1632 rsc r4, r5, r6, lsr #5 1633 rsc r4, r5, r6, asr #5 1634 rsc r4, r5, r6, ror #5 1635 rsc r6, r7, r8, lsl r9 1636 rsc r6, r7, r8, lsr r9 1637 rsc r6, r7, r8, asr r9 1638 rscle r6, r7, r8, ror r9 1639 rscs r1, r8, #4064 1640 1641 @ destination register is optional 1642 rsc r5, #0xf000 1643 rsc r4, r5 1644 rsc r4, r5, lsl #5 1645 rsc r4, r5, lsr #5 1646 rscne r4, r5, lsr #5 1647 rsc r4, r5, asr #5 1648 rsc r4, r5, ror #5 1649 rscgt r6, r7, lsl r9 1650 rsc r6, r7, lsr r9 1651 rsc r6, r7, asr r9 1652 rsc r6, r7, ror r9 1653 1654 @ CHECK: rsc r4, r5, #61440 @ encoding: [0x0f,0x4a,0xe5,0xe2] 1655 @ CHECK: rsc r4, r5, r6 @ encoding: [0x06,0x40,0xe5,0xe0] 1656 @ CHECK: rsc r4, r5, r6, lsl #5 @ encoding: [0x86,0x42,0xe5,0xe0] 1657 @ CHECK: rsclo r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0xe5,0x30] 1658 @ CHECK: rsc r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0xe5,0xe0] 1659 @ CHECK: rsc r4, r5, r6, asr #5 @ encoding: [0xc6,0x42,0xe5,0xe0] 1660 @ CHECK: rsc r4, r5, r6, ror #5 @ encoding: [0xe6,0x42,0xe5,0xe0] 1661 @ CHECK: rsc r6, r7, r8, lsl r9 @ encoding: [0x18,0x69,0xe7,0xe0] 1662 @ CHECK: rsc r6, r7, r8, lsr r9 @ encoding: [0x38,0x69,0xe7,0xe0] 1663 @ CHECK: rsc r6, r7, r8, asr r9 @ encoding: [0x58,0x69,0xe7,0xe0] 1664 @ CHECK: rscle r6, r7, r8, ror r9 @ encoding: [0x78,0x69,0xe7,0xd0] 1665 @ CHECK: rscs r1, r8, #4064 @ encoding: [0xfe,0x1e,0xf8,0xe2] 1666 1667 @ CHECK: rsc r5, r5, #61440 @ encoding: [0x0f,0x5a,0xe5,0xe2] 1668 @ CHECK: rsc r4, r4, r5 @ encoding: [0x05,0x40,0xe4,0xe0] 1669 @ CHECK: rsc r4, r4, r5, lsl #5 @ encoding: [0x85,0x42,0xe4,0xe0] 1670 @ CHECK: rsc r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0xe4,0xe0] 1671 @ CHECK: rscne r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0xe4,0x10] 1672 @ CHECK: rsc r4, r4, r5, asr #5 @ encoding: [0xc5,0x42,0xe4,0xe0] 1673 @ CHECK: rsc r4, r4, r5, ror #5 @ encoding: [0xe5,0x42,0xe4,0xe0] 1674 @ CHECK: rscgt r6, r6, r7, lsl r9 @ encoding: [0x17,0x69,0xe6,0xc0] 1675 @ CHECK: rsc r6, r6, r7, lsr r9 @ encoding: [0x37,0x69,0xe6,0xe0] 1676 @ CHECK: rsc r6, r6, r7, asr r9 @ encoding: [0x57,0x69,0xe6,0xe0] 1677 @ CHECK: rsc r6, r6, r7, ror r9 @ encoding: [0x77,0x69,0xe6,0xe0] 1678 1679 @------------------------------------------------------------------------------ 1680 @ RRX/RRXS 1681 @------------------------------------------------------------------------------ 1682 1683 rrx r0, r1 1684 rrx sp, pc 1685 rrx pc, lr 1686 rrx lr, sp 1687 1688 @ CHECK: rrx r0, r1 @ encoding: [0x61,0x00,0xa0,0xe1] 1689 @ CHECK: rrx sp, pc @ encoding: [0x6f,0xd0,0xa0,0xe1] 1690 @ CHECK: rrx pc, lr @ encoding: [0x6e,0xf0,0xa0,0xe1] 1691 @ CHECK: rrx lr, sp @ encoding: [0x6d,0xe0,0xa0,0xe1] 1692 1693 rrxs r0, r1 1694 rrxs sp, pc 1695 rrxs pc, lr 1696 rrxs lr, sp 1697 1698 @CHECK: rrxs r0, r1 @ encoding: [0x61,0x00,0xb0,0xe1] 1699 @CHECK: rrxs sp, pc @ encoding: [0x6f,0xd0,0xb0,0xe1] 1700 @CHECK: rrxs pc, lr @ encoding: [0x6e,0xf0,0xb0,0xe1] 1701 @CHECK: rrxs lr, sp @ encoding: [0x6d,0xe0,0xb0,0xe1] 1702 1703 @ ------------------------------------------------------------------------------ 1704 @ SADD16/SADD8 1705 @------------------------------------------------------------------------------ 1706 sadd16 r1, r2, r3 1707 sadd16gt r1, r2, r3 1708 sadd8 r1, r2, r3 1709 sadd8le r1, r2, r3 1710 1711 @ CHECK: sadd16 r1, r2, r3 @ encoding: [0x13,0x1f,0x12,0xe6] 1712 @ CHECK: sadd16gt r1, r2, r3 @ encoding: [0x13,0x1f,0x12,0xc6] 1713 @ CHECK: sadd8 r1, r2, r3 @ encoding: [0x93,0x1f,0x12,0xe6] 1714 @ CHECK: sadd8le r1, r2, r3 @ encoding: [0x93,0x1f,0x12,0xd6] 1715 1716 1717 @------------------------------------------------------------------------------ 1718 @ SASX 1719 @------------------------------------------------------------------------------ 1720 sasx r9, r12, r0 1721 sasxeq r9, r12, r0 1722 1723 @ CHECK: sasx r9, r12, r0 @ encoding: [0x30,0x9f,0x1c,0xe6] 1724 @ CHECK: sasxeq r9, r12, r0 @ encoding: [0x30,0x9f,0x1c,0x06] 1725 1726 1727 @------------------------------------------------------------------------------ 1728 @ SBC 1729 @------------------------------------------------------------------------------ 1730 sbc r4, r5, #0xf000 1731 sbc r4, r5, r6 1732 sbc r4, r5, r6, lsl #5 1733 sbc r4, r5, r6, lsr #5 1734 sbc r4, r5, r6, lsr #5 1735 sbc r4, r5, r6, asr #5 1736 sbc r4, r5, r6, ror #5 1737 sbc r6, r7, r8, lsl r9 1738 sbc r6, r7, r8, lsr r9 1739 sbc r6, r7, r8, asr r9 1740 sbc r6, r7, r8, ror r9 1741 1742 @ destination register is optional 1743 sbc r5, #0xf000 1744 sbc r4, r5 1745 sbc r4, r5, lsl #5 1746 sbc r4, r5, lsr #5 1747 sbc r4, r5, lsr #5 1748 sbc r4, r5, asr #5 1749 sbc r4, r5, ror #5 1750 sbc r6, r7, lsl r9 1751 sbc r6, r7, lsr r9 1752 sbc r6, r7, asr r9 1753 sbc r6, r7, ror r9 1754 1755 @ CHECK: sbc r4, r5, #61440 @ encoding: [0x0f,0x4a,0xc5,0xe2] 1756 @ CHECK: sbc r4, r5, r6 @ encoding: [0x06,0x40,0xc5,0xe0] 1757 @ CHECK: sbc r4, r5, r6, lsl #5 @ encoding: [0x86,0x42,0xc5,0xe0] 1758 @ CHECK: sbc r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0xc5,0xe0] 1759 @ CHECK: sbc r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0xc5,0xe0] 1760 @ CHECK: sbc r4, r5, r6, asr #5 @ encoding: [0xc6,0x42,0xc5,0xe0] 1761 @ CHECK: sbc r4, r5, r6, ror #5 @ encoding: [0xe6,0x42,0xc5,0xe0] 1762 @ CHECK: sbc r6, r7, r8, lsl r9 @ encoding: [0x18,0x69,0xc7,0xe0] 1763 @ CHECK: sbc r6, r7, r8, lsr r9 @ encoding: [0x38,0x69,0xc7,0xe0] 1764 @ CHECK: sbc r6, r7, r8, asr r9 @ encoding: [0x58,0x69,0xc7,0xe0] 1765 @ CHECK: sbc r6, r7, r8, ror r9 @ encoding: [0x78,0x69,0xc7,0xe0] 1766 1767 @ CHECK: sbc r5, r5, #61440 @ encoding: [0x0f,0x5a,0xc5,0xe2] 1768 @ CHECK: sbc r4, r4, r5 @ encoding: [0x05,0x40,0xc4,0xe0] 1769 @ CHECK: sbc r4, r4, r5, lsl #5 @ encoding: [0x85,0x42,0xc4,0xe0] 1770 @ CHECK: sbc r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0xc4,0xe0] 1771 @ CHECK: sbc r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0xc4,0xe0] 1772 @ CHECK: sbc r4, r4, r5, asr #5 @ encoding: [0xc5,0x42,0xc4,0xe0] 1773 @ CHECK: sbc r4, r4, r5, ror #5 @ encoding: [0xe5,0x42,0xc4,0xe0] 1774 @ CHECK: sbc r6, r6, r7, lsl r9 @ encoding: [0x17,0x69,0xc6,0xe0] 1775 @ CHECK: sbc r6, r6, r7, lsr r9 @ encoding: [0x37,0x69,0xc6,0xe0] 1776 @ CHECK: sbc r6, r6, r7, asr r9 @ encoding: [0x57,0x69,0xc6,0xe0] 1777 @ CHECK: sbc r6, r6, r7, ror r9 @ encoding: [0x77,0x69,0xc6,0xe0] 1778 1779 1780 @------------------------------------------------------------------------------ 1781 @ SBFX 1782 @------------------------------------------------------------------------------ 1783 sbfx r4, r5, #16, #1 1784 sbfxgt r4, r5, #16, #16 1785 1786 @ CHECK: sbfx r4, r5, #16, #1 @ encoding: [0x55,0x48,0xa0,0xe7] 1787 @ CHECK: sbfxgt r4, r5, #16, #16 @ encoding: [0x55,0x48,0xaf,0xc7] 1788 1789 1790 @------------------------------------------------------------------------------ 1791 @ SEL 1792 @------------------------------------------------------------------------------ 1793 sel r9, r2, r1 1794 selne r9, r2, r1 1795 1796 @ CHECK: sel r9, r2, r1 @ encoding: [0xb1,0x9f,0x82,0xe6] 1797 @ CHECK: selne r9, r2, r1 @ encoding: [0xb1,0x9f,0x82,0x16] 1798 1799 1800 @------------------------------------------------------------------------------ 1801 @ SETEND 1802 @------------------------------------------------------------------------------ 1803 setend be 1804 setend BE 1805 setend le 1806 setend LE 1807 1808 @ CHECK: setend be @ encoding: [0x00,0x02,0x01,0xf1] 1809 @ CHECK: setend be @ encoding: [0x00,0x02,0x01,0xf1] 1810 @ CHECK: setend le @ encoding: [0x00,0x00,0x01,0xf1] 1811 @ CHECK: setend le @ encoding: [0x00,0x00,0x01,0xf1] 1812 1813 1814 @------------------------------------------------------------------------------ 1815 @ SEV 1816 @------------------------------------------------------------------------------ 1817 sev 1818 seveq 1819 1820 @ CHECK: sev @ encoding: [0x04,0xf0,0x20,0xe3] 1821 @ CHECK: seveq @ encoding: [0x04,0xf0,0x20,0x03] 1822 1823 1824 @------------------------------------------------------------------------------ 1825 @ SHADD16/SHADD8 1826 @------------------------------------------------------------------------------ 1827 shadd16 r4, r8, r2 1828 shadd16gt r4, r8, r2 1829 shadd8 r4, r8, r2 1830 shadd8gt r4, r8, r2 1831 1832 @ CHECK: shadd16 r4, r8, r2 @ encoding: [0x12,0x4f,0x38,0xe6] 1833 @ CHECK: shadd16gt r4, r8, r2 @ encoding: [0x12,0x4f,0x38,0xc6] 1834 @ CHECK: shadd8 r4, r8, r2 @ encoding: [0x92,0x4f,0x38,0xe6] 1835 @ CHECK: shadd8gt r4, r8, r2 @ encoding: [0x92,0x4f,0x38,0xc6] 1836 1837 1838 @------------------------------------------------------------------------------ 1839 @ SHASX 1840 @------------------------------------------------------------------------------ 1841 shasx r4, r8, r2 1842 shasxgt r4, r8, r2 1843 1844 @ CHECK: shasx r4, r8, r2 @ encoding: [0x32,0x4f,0x38,0xe6] 1845 @ CHECK: shasxgt r4, r8, r2 @ encoding: [0x32,0x4f,0x38,0xc6] 1846 1847 1848 @------------------------------------------------------------------------------ 1849 @ SHSUB16/SHSUB8 1850 @------------------------------------------------------------------------------ 1851 shsub16 r4, r8, r2 1852 shsub16gt r4, r8, r2 1853 shsub8 r4, r8, r2 1854 shsub8gt r4, r8, r2 1855 1856 @ CHECK: shsub16 r4, r8, r2 @ encoding: [0x72,0x4f,0x38,0xe6] 1857 @ CHECK: shsub16gt r4, r8, r2 @ encoding: [0x72,0x4f,0x38,0xc6] 1858 @ CHECK: shsub8 r4, r8, r2 @ encoding: [0xf2,0x4f,0x38,0xe6] 1859 @ CHECK: shsub8gt r4, r8, r2 @ encoding: [0xf2,0x4f,0x38,0xc6] 1860 1861 @------------------------------------------------------------------------------ 1862 @ SMLABB/SMLABT/SMLATB/SMLATT 1863 @------------------------------------------------------------------------------ 1864 smlabb r3, r1, r9, r0 1865 smlabt r5, r6, r4, r1 1866 smlatb r4, r2, r3, r2 1867 smlatt r8, r3, r8, r4 1868 smlabbge r3, r1, r9, r0 1869 smlabtle r5, r6, r4, r1 1870 smlatbne r4, r2, r3, r2 1871 smlatteq r8, r3, r8, r4 1872 1873 @ CHECK: smlabb r3, r1, r9, r0 @ encoding: [0x81,0x09,0x03,0xe1] 1874 @ CHECK: smlabt r5, r6, r4, r1 @ encoding: [0xc6,0x14,0x05,0xe1] 1875 @ CHECK: smlatb r4, r2, r3, r2 @ encoding: [0xa2,0x23,0x04,0xe1] 1876 @ CHECK: smlatt r8, r3, r8, r4 @ encoding: [0xe3,0x48,0x08,0xe1] 1877 @ CHECK: smlabbge r3, r1, r9, r0 @ encoding: [0x81,0x09,0x03,0xa1] 1878 @ CHECK: smlabtle r5, r6, r4, r1 @ encoding: [0xc6,0x14,0x05,0xd1] 1879 @ CHECK: smlatbne r4, r2, r3, r2 @ encoding: [0xa2,0x23,0x04,0x11] 1880 @ CHECK: smlatteq r8, r3, r8, r4 @ encoding: [0xe3,0x48,0x08,0x01] 1881 1882 @------------------------------------------------------------------------------ 1883 @ SMLAD/SMLADX 1884 @------------------------------------------------------------------------------ 1885 smlad r2, r3, r5, r8 1886 smladx r2, r3, r5, r8 1887 smladeq r2, r3, r5, r8 1888 smladxhi r2, r3, r5, r8 1889 1890 @ CHECK: smlad r2, r3, r5, r8 @ encoding: [0x13,0x85,0x02,0xe7] 1891 @ CHECK: smladx r2, r3, r5, r8 @ encoding: [0x33,0x85,0x02,0xe7] 1892 @ CHECK: smladeq r2, r3, r5, r8 @ encoding: [0x13,0x85,0x02,0x07] 1893 @ CHECK: smladxhi r2, r3, r5, r8 @ encoding: [0x33,0x85,0x02,0x87] 1894 1895 1896 @------------------------------------------------------------------------------ 1897 @ SMLAL 1898 @------------------------------------------------------------------------------ 1899 smlal r2, r3, r5, r8 1900 smlals r2, r3, r5, r8 1901 smlaleq r2, r3, r5, r8 1902 smlalshi r2, r3, r5, r8 1903 1904 @ CHECK: smlal r2, r3, r5, r8 @ encoding: [0x95,0x28,0xe3,0xe0] 1905 @ CHECK: smlals r2, r3, r5, r8 @ encoding: [0x95,0x28,0xf3,0xe0] 1906 @ CHECK: smlaleq r2, r3, r5, r8 @ encoding: [0x95,0x28,0xe3,0x00] 1907 @ CHECK: smlalshi r2, r3, r5, r8 @ encoding: [0x95,0x28,0xf3,0x80] 1908 1909 1910 @------------------------------------------------------------------------------ 1911 @ SMLALBB/SMLALBT/SMLALTB/SMLALTT 1912 @------------------------------------------------------------------------------ 1913 smlalbb r3, r1, r9, r0 1914 smlalbt r5, r6, r4, r1 1915 smlaltb r4, r2, r3, r2 1916 smlaltt r8, r3, r8, r4 1917 smlalbbge r3, r1, r9, r0 1918 smlalbtle r5, r6, r4, r1 1919 smlaltbne r4, r2, r3, r2 1920 smlaltteq r8, r3, r8, r4 1921 1922 @ CHECK: smlalbb r3, r1, r9, r0 @ encoding: [0x89,0x30,0x41,0xe1] 1923 @ CHECK: smlalbt r5, r6, r4, r1 @ encoding: [0xc4,0x51,0x46,0xe1] 1924 @ CHECK: smlaltb r4, r2, r3, r2 @ encoding: [0xa3,0x42,0x42,0xe1] 1925 @ CHECK: smlaltt r8, r3, r8, r4 @ encoding: [0xe8,0x84,0x43,0xe1] 1926 @ CHECK: smlalbbge r3, r1, r9, r0 @ encoding: [0x89,0x30,0x41,0xa1] 1927 @ CHECK: smlalbtle r5, r6, r4, r1 @ encoding: [0xc4,0x51,0x46,0xd1] 1928 @ CHECK: smlaltbne r4, r2, r3, r2 @ encoding: [0xa3,0x42,0x42,0x11] 1929 @ CHECK: smlaltteq r8, r3, r8, r4 @ encoding: [0xe8,0x84,0x43,0x01] 1930 1931 1932 @------------------------------------------------------------------------------ 1933 @ SMLALD/SMLALDX 1934 @------------------------------------------------------------------------------ 1935 smlald r2, r3, r5, r8 1936 smlaldx r2, r3, r5, r8 1937 smlaldeq r2, r3, r5, r8 1938 smlaldxhi r2, r3, r5, r8 1939 1940 @ CHECK: smlald r2, r3, r5, r8 @ encoding: [0x15,0x28,0x43,0xe7] 1941 @ CHECK: smlaldx r2, r3, r5, r8 @ encoding: [0x35,0x28,0x43,0xe7] 1942 @ CHECK: smlaldeq r2, r3, r5, r8 @ encoding: [0x15,0x28,0x43,0x07] 1943 @ CHECK: smlaldxhi r2, r3, r5, r8 @ encoding: [0x35,0x28,0x43,0x87] 1944 1945 1946 @------------------------------------------------------------------------------ 1947 @ SMLAWB/SMLAWT 1948 @------------------------------------------------------------------------------ 1949 smlawb r2, r3, r10, r8 1950 smlawt r8, r3, r5, r9 1951 smlawbeq r2, r7, r5, r8 1952 smlawthi r1, r3, r0, r8 1953 1954 @ CHECK: smlawb r2, r3, r10, r8 @ encoding: [0x83,0x8a,0x22,0xe1] 1955 @ CHECK: smlawt r8, r3, r5, r9 @ encoding: [0xc3,0x95,0x28,0xe1] 1956 @ CHECK: smlawbeq r2, r7, r5, r8 @ encoding: [0x87,0x85,0x22,0x01] 1957 @ CHECK: smlawthi r1, r3, r0, r8 @ encoding: [0xc3,0x80,0x21,0x81] 1958 1959 1960 @------------------------------------------------------------------------------ 1961 @ SMLSD/SMLSDX 1962 @------------------------------------------------------------------------------ 1963 smlsd r2, r3, r5, r8 1964 smlsdx r2, r3, r5, r8 1965 smlsdeq r2, r3, r5, r8 1966 smlsdxhi r2, r3, r5, r8 1967 1968 @ CHECK: smlsd r2, r3, r5, r8 @ encoding: [0x53,0x85,0x02,0xe7] 1969 @ CHECK: smlsdx r2, r3, r5, r8 @ encoding: [0x73,0x85,0x02,0xe7] 1970 @ CHECK: smlsdeq r2, r3, r5, r8 @ encoding: [0x53,0x85,0x02,0x07] 1971 @ CHECK: smlsdxhi r2, r3, r5, r8 @ encoding: [0x73,0x85,0x02,0x87] 1972 1973 1974 @------------------------------------------------------------------------------ 1975 @ SMLSLD/SMLSLDX 1976 @------------------------------------------------------------------------------ 1977 smlsld r2, r9, r5, r1 1978 smlsldx r4, r11, r2, r8 1979 smlsldeq r8, r2, r5, r6 1980 smlsldxhi r1, r0, r3, r8 1981 1982 @ CHECK: smlsld r2, r9, r5, r1 @ encoding: [0x55,0x21,0x49,0xe7] 1983 @ CHECK: smlsldx r4, r11, r2, r8 @ encoding: [0x72,0x48,0x4b,0xe7] 1984 @ CHECK: smlsldeq r8, r2, r5, r6 @ encoding: [0x55,0x86,0x42,0x07] 1985 @ CHECK: smlsldxhi r1, r0, r3, r8 @ encoding: [0x73,0x18,0x40,0x87] 1986 1987 1988 @------------------------------------------------------------------------------ 1989 @ SMMLA/SMMLAR 1990 @------------------------------------------------------------------------------ 1991 smmla r1, r2, r3, r4 1992 smmlar r4, r3, r2, r1 1993 smmlalo r1, r2, r3, r4 1994 smmlarcs r4, r3, r2, r1 1995 1996 @ CHECK: smmla r1, r2, r3, r4 @ encoding: [0x12,0x43,0x51,0xe7] 1997 @ CHECK: smmlar r4, r3, r2, r1 @ encoding: [0x33,0x12,0x54,0xe7] 1998 @ CHECK: smmlalo r1, r2, r3, r4 @ encoding: [0x12,0x43,0x51,0x37] 1999 @ CHECK: smmlarhs r4, r3, r2, r1 @ encoding: [0x33,0x12,0x54,0x27] 2000 2001 2002 @------------------------------------------------------------------------------ 2003 @ SMMLS/SMMLSR 2004 @------------------------------------------------------------------------------ 2005 smmls r1, r2, r3, r4 2006 smmlsr r4, r3, r2, r1 2007 smmlslo r1, r2, r3, r4 2008 smmlsrcs r4, r3, r2, r1 2009 2010 @ CHECK: smmls r1, r2, r3, r4 @ encoding: [0xd2,0x43,0x51,0xe7] 2011 @ CHECK: smmlsr r4, r3, r2, r1 @ encoding: [0xf3,0x12,0x54,0xe7] 2012 @ CHECK: smmlslo r1, r2, r3, r4 @ encoding: [0xd2,0x43,0x51,0x37] 2013 @ CHECK: smmlsrhs r4, r3, r2, r1 @ encoding: [0xf3,0x12,0x54,0x27] 2014 2015 2016 @------------------------------------------------------------------------------ 2017 @ SMMUL/SMMULR 2018 @------------------------------------------------------------------------------ 2019 smmul r2, r3, r4 2020 smmulr r3, r2, r1 2021 smmulcc r2, r3, r4 2022 smmulrhs r3, r2, r1 2023 2024 @ CHECK: smmul r2, r3, r4 @ encoding: [0x13,0xf4,0x52,0xe7] 2025 @ CHECK: smmulr r3, r2, r1 @ encoding: [0x32,0xf1,0x53,0xe7] 2026 @ CHECK: smmullo r2, r3, r4 @ encoding: [0x13,0xf4,0x52,0x37] 2027 @ CHECK: smmulrhs r3, r2, r1 @ encoding: [0x32,0xf1,0x53,0x27] 2028 2029 2030 @------------------------------------------------------------------------------ 2031 @ SMUAD/SMUADX 2032 @------------------------------------------------------------------------------ 2033 smuad r2, r3, r4 2034 smuadx r3, r2, r1 2035 smuadlt r2, r3, r4 2036 smuadxge r3, r2, r1 2037 2038 @ CHECK: smuad r2, r3, r4 @ encoding: [0x13,0xf4,0x02,0xe7] 2039 @ CHECK: smuadx r3, r2, r1 @ encoding: [0x32,0xf1,0x03,0xe7] 2040 @ CHECK: smuadlt r2, r3, r4 @ encoding: [0x13,0xf4,0x02,0xb7] 2041 @ CHECK: smuadxge r3, r2, r1 @ encoding: [0x32,0xf1,0x03,0xa7] 2042 2043 2044 @------------------------------------------------------------------------------ 2045 @ SMULBB/SMULBT/SMULTB/SMULTT 2046 @------------------------------------------------------------------------------ 2047 smulbb r3, r9, r0 2048 smulbt r5, r4, r1 2049 smultb r4, r2, r2 2050 smultt r8, r3, r4 2051 smulbbge r1, r9, r0 2052 smulbtle r5, r6, r4 2053 smultbne r2, r3, r2 2054 smultteq r8, r3, r4 2055 2056 @ CHECK: smulbb r3, r9, r0 @ encoding: [0x89,0x00,0x63,0xe1] 2057 @ CHECK: smulbt r5, r4, r1 @ encoding: [0xc4,0x01,0x65,0xe1] 2058 @ CHECK: smultb r4, r2, r2 @ encoding: [0xa2,0x02,0x64,0xe1] 2059 @ CHECK: smultt r8, r3, r4 @ encoding: [0xe3,0x04,0x68,0xe1] 2060 @ CHECK: smulbbge r1, r9, r0 @ encoding: [0x89,0x00,0x61,0xa1] 2061 @ CHECK: smulbtle r5, r6, r4 @ encoding: [0xc6,0x04,0x65,0xd1] 2062 @ CHECK: smultbne r2, r3, r2 @ encoding: [0xa3,0x02,0x62,0x11] 2063 @ CHECK: smultteq r8, r3, r4 @ encoding: [0xe3,0x04,0x68,0x01] 2064 2065 2066 @------------------------------------------------------------------------------ 2067 @ SMULL 2068 @------------------------------------------------------------------------------ 2069 smull r3, r9, r0, r1 2070 smulls r3, r9, r0, r2 2071 smulleq r8, r3, r4, r5 2072 smullseq r8, r3, r4, r3 2073 2074 @ CHECK: smull r3, r9, r0, r1 @ encoding: [0x90,0x31,0xc9,0xe0] 2075 @ CHECK: smulls r3, r9, r0, r2 @ encoding: [0x90,0x32,0xd9,0xe0] 2076 @ CHECK: smulleq r8, r3, r4, r5 @ encoding: [0x94,0x85,0xc3,0x00] 2077 @ CHECK: smullseq r8, r3, r4, r3 @ encoding: [0x94,0x83,0xd3,0x00] 2078 2079 2080 @------------------------------------------------------------------------------ 2081 @ SMULWB/SMULWT 2082 @------------------------------------------------------------------------------ 2083 smulwb r3, r9, r0 2084 smulwt r3, r9, r2 2085 2086 @ CHECK: smulwb r3, r9, r0 @ encoding: [0xa9,0x00,0x23,0xe1] 2087 @ CHECK: smulwt r3, r9, r2 @ encoding: [0xe9,0x02,0x23,0xe1] 2088 2089 2090 @------------------------------------------------------------------------------ 2091 @ SMUSD/SMUSDX 2092 @------------------------------------------------------------------------------ 2093 smusd r3, r0, r1 2094 smusdx r3, r9, r2 2095 smusdeq r8, r3, r2 2096 smusdxne r7, r4, r3 2097 2098 @ CHECK: smusd r3, r0, r1 @ encoding: [0x50,0xf1,0x03,0xe7] 2099 @ CHECK: smusdx r3, r9, r2 @ encoding: [0x79,0xf2,0x03,0xe7] 2100 @ CHECK: smusdeq r8, r3, r2 @ encoding: [0x53,0xf2,0x08,0x07] 2101 @ CHECK: smusdxne r7, r4, r3 @ encoding: [0x74,0xf3,0x07,0x17] 2102 2103 2104 @------------------------------------------------------------------------------ 2105 @ SRS 2106 @------------------------------------------------------------------------------ 2107 srsda sp, #5 2108 srsdb sp, #1 2109 srsia sp, #0 2110 srsib sp, #15 2111 2112 srsda sp!, #31 2113 srsdb sp!, #19 2114 srsia sp!, #2 2115 srsib sp!, #14 2116 2117 srsfa sp, #11 2118 srsea sp, #10 2119 srsfd sp, #9 2120 srsed sp, #5 2121 2122 srsfa sp!, #5 2123 srsea sp!, #5 2124 srsfd sp!, #5 2125 srsed sp!, #5 2126 2127 srs sp, #5 2128 srs sp!, #5 2129 2130 @ CHECK: srsda sp, #5 @ encoding: [0x05,0x05,0x4d,0xf8] 2131 @ CHECK: srsdb sp, #1 @ encoding: [0x01,0x05,0x4d,0xf9] 2132 @ CHECK: srsia sp, #0 @ encoding: [0x00,0x05,0xcd,0xf8] 2133 @ CHECK: srsib sp, #15 @ encoding: [0x0f,0x05,0xcd,0xf9] 2134 2135 @ CHECK: srsda sp!, #31 @ encoding: [0x1f,0x05,0x6d,0xf8] 2136 @ CHECK: srsdb sp!, #19 @ encoding: [0x13,0x05,0x6d,0xf9] 2137 @ CHECK: srsia sp!, #2 @ encoding: [0x02,0x05,0xed,0xf8] 2138 @ CHECK: srsib sp!, #14 @ encoding: [0x0e,0x05,0xed,0xf9] 2139 2140 @ CHECK: srsib sp, #11 @ encoding: [0x0b,0x05,0xcd,0xf9] 2141 @ CHECK: srsia sp, #10 @ encoding: [0x0a,0x05,0xcd,0xf8] 2142 @ CHECK: srsdb sp, #9 @ encoding: [0x09,0x05,0x4d,0xf9] 2143 @ CHECK: srsda sp, #5 @ encoding: [0x05,0x05,0x4d,0xf8] 2144 2145 @ CHECK: srsib sp!, #5 @ encoding: [0x05,0x05,0xed,0xf9] 2146 @ CHECK: srsia sp!, #5 @ encoding: [0x05,0x05,0xed,0xf8] 2147 @ CHECK: srsdb sp!, #5 @ encoding: [0x05,0x05,0x6d,0xf9] 2148 @ CHECK: srsda sp!, #5 @ encoding: [0x05,0x05,0x6d,0xf8] 2149 2150 @ CHECK: srsia sp, #5 @ encoding: [0x05,0x05,0xcd,0xf8] 2151 @ CHECK: srsia sp!, #5 @ encoding: [0x05,0x05,0xed,0xf8] 2152 2153 @ Compatibility aliases. 2154 srsda #5 2155 srsdb #1 2156 srsia #0 2157 srsib #15 2158 2159 srsda #31! 2160 srsdb #19! 2161 srsia #2! 2162 srsib #14! 2163 2164 srsfa #11 2165 srsea #10 2166 srsfd #9 2167 srsed #5 2168 2169 srsfa #5! 2170 srsea #5! 2171 srsfd #5! 2172 srsed #5! 2173 2174 srs #5 2175 srs #5! 2176 2177 @ CHECK: srsda sp, #5 @ encoding: [0x05,0x05,0x4d,0xf8] 2178 @ CHECK: srsdb sp, #1 @ encoding: [0x01,0x05,0x4d,0xf9] 2179 @ CHECK: srsia sp, #0 @ encoding: [0x00,0x05,0xcd,0xf8] 2180 @ CHECK: srsib sp, #15 @ encoding: [0x0f,0x05,0xcd,0xf9] 2181 @ CHECK: srsda sp!, #31 @ encoding: [0x1f,0x05,0x6d,0xf8] 2182 @ CHECK: srsdb sp!, #19 @ encoding: [0x13,0x05,0x6d,0xf9] 2183 @ CHECK: srsia sp!, #2 @ encoding: [0x02,0x05,0xed,0xf8] 2184 @ CHECK: srsib sp!, #14 @ encoding: [0x0e,0x05,0xed,0xf9] 2185 @ CHECK: srsib sp, #11 @ encoding: [0x0b,0x05,0xcd,0xf9] 2186 @ CHECK: srsia sp, #10 @ encoding: [0x0a,0x05,0xcd,0xf8] 2187 @ CHECK: srsdb sp, #9 @ encoding: [0x09,0x05,0x4d,0xf9] 2188 @ CHECK: srsda sp, #5 @ encoding: [0x05,0x05,0x4d,0xf8] 2189 @ CHECK: srsib sp!, #5 @ encoding: [0x05,0x05,0xed,0xf9] 2190 @ CHECK: srsia sp!, #5 @ encoding: [0x05,0x05,0xed,0xf8] 2191 @ CHECK: srsdb sp!, #5 @ encoding: [0x05,0x05,0x6d,0xf9] 2192 @ CHECK: srsda sp!, #5 @ encoding: [0x05,0x05,0x6d,0xf8] 2193 @ CHECK: srsia sp, #5 @ encoding: [0x05,0x05,0xcd,0xf8] 2194 @ CHECK: srsia sp!, #5 @ encoding: [0x05,0x05,0xed,0xf8] 2195 2196 2197 @------------------------------------------------------------------------------ 2198 @ SSAT 2199 @------------------------------------------------------------------------------ 2200 ssat r8, #1, r10 2201 ssat r8, #1, r10, lsl #0 2202 ssat r8, #1, r10, lsl #31 2203 ssat r8, #1, r10, asr #32 2204 ssat r8, #1, r10, asr #1 2205 2206 @ CHECK: ssat r8, #1, r10 @ encoding: [0x1a,0x80,0xa0,0xe6] 2207 @ CHECK: ssat r8, #1, r10 @ encoding: [0x1a,0x80,0xa0,0xe6] 2208 @ CHECK: ssat r8, #1, r10, lsl #31 @ encoding: [0x9a,0x8f,0xa0,0xe6] 2209 @ CHECK: ssat r8, #1, r10, asr #32 @ encoding: [0x5a,0x80,0xa0,0xe6] 2210 @ CHECK: ssat r8, #1, r10, asr #1 @ encoding: [0xda,0x80,0xa0,0xe6] 2211 2212 2213 @------------------------------------------------------------------------------ 2214 @ SSAT16 2215 @------------------------------------------------------------------------------ 2216 ssat16 r2, #1, r7 2217 ssat16 r3, #16, r5 2218 2219 @ CHECK: ssat16 r2, #1, r7 @ encoding: [0x37,0x2f,0xa0,0xe6] 2220 @ CHECK: ssat16 r3, #16, r5 @ encoding: [0x35,0x3f,0xaf,0xe6] 2221 2222 2223 @------------------------------------------------------------------------------ 2224 @ SSAX 2225 @------------------------------------------------------------------------------ 2226 ssax r2, r3, r4 2227 ssaxlt r2, r3, r4 2228 2229 @ CHECK: ssax r2, r3, r4 @ encoding: [0x54,0x2f,0x13,0xe6] 2230 @ CHECK: ssaxlt r2, r3, r4 @ encoding: [0x54,0x2f,0x13,0xb6] 2231 2232 @------------------------------------------------------------------------------ 2233 @ SSUB16/SSUB8 2234 @------------------------------------------------------------------------------ 2235 ssub16 r1, r0, r6 2236 ssub16ne r5, r3, r2 2237 ssub8 r9, r2, r4 2238 ssub8eq r5, r1, r2 2239 2240 @ CHECK: ssub16 r1, r0, r6 @ encoding: [0x76,0x1f,0x10,0xe6] 2241 @ CHECK: ssub16ne r5, r3, r2 @ encoding: [0x72,0x5f,0x13,0x16] 2242 @ CHECK: ssub8 r9, r2, r4 @ encoding: [0xf4,0x9f,0x12,0xe6] 2243 @ CHECK: ssub8eq r5, r1, r2 @ encoding: [0xf2,0x5f,0x11,0x06] 2244 2245 @------------------------------------------------------------------------------ 2246 @ STC{L}/STC2{L} 2247 @------------------------------------------------------------------------------ 2248 stc2 p0, c8, [r1, #4] 2249 stc2 p1, c7, [r2] 2250 stc2 p2, c6, [r3, #-224] 2251 stc2 p3, c5, [r4, #-120]! 2252 stc2 p4, c4, [r5], #16 2253 stc2 p5, c3, [r6], #-72 2254 stc2l p6, c2, [r7, #4] 2255 stc2l p7, c1, [r8] 2256 stc2l p8, c0, [r9, #-224] 2257 stc2l p9, c1, [r10, #-120]! 2258 stc2l p0, c2, [r11], #16 2259 stc2l p1, c3, [r12], #-72 2260 2261 stc p12, c4, [r0, #4] 2262 stc p13, c5, [r1] 2263 stc p14, c6, [r2, #-224] 2264 stc p15, c7, [r3, #-120]! 2265 stc p5, c8, [r4], #16 2266 stc p4, c9, [r5], #-72 2267 stcl p3, c10, [r6, #4] 2268 stcl p2, c11, [r7] 2269 stcl p1, c12, [r8, #-224] 2270 stcl p0, c13, [r9, #-120]! 2271 stcl p6, c14, [r10], #16 2272 stcl p7, c15, [r11], #-72 2273 2274 stclo p12, c4, [r0, #4] 2275 stchi p13, c5, [r1] 2276 stccs p14, c6, [r2, #-224] 2277 stccc p15, c7, [r3, #-120]! 2278 stceq p5, c8, [r4], #16 2279 stcgt p4, c9, [r5], #-72 2280 stcllt p3, c10, [r6, #4] 2281 stclge p2, c11, [r7] 2282 stclle p1, c12, [r8, #-224] 2283 stclne p0, c13, [r9, #-120]! 2284 stcleq p6, c14, [r10], #16 2285 stclhi p7, c15, [r11], #-72 2286 2287 stc2 p2, c8, [r1], { 25 } 2288 2289 @ CHECK: stc2 p0, c8, [r1, #4] @ encoding: [0x01,0x80,0x81,0xfd] 2290 @ CHECK: stc2 p1, c7, [r2] @ encoding: [0x00,0x71,0x82,0xfd] 2291 @ CHECK: stc2 p2, c6, [r3, #-224] @ encoding: [0x38,0x62,0x03,0xfd] 2292 @ CHECK: stc2 p3, c5, [r4, #-120]! @ encoding: [0x1e,0x53,0x24,0xfd] 2293 @ CHECK: stc2 p4, c4, [r5], #16 @ encoding: [0x04,0x44,0xa5,0xfc] 2294 @ CHECK: stc2 p5, c3, [r6], #-72 @ encoding: [0x12,0x35,0x26,0xfc] 2295 @ CHECK: stc2l p6, c2, [r7, #4] @ encoding: [0x01,0x26,0xc7,0xfd] 2296 @ CHECK: stc2l p7, c1, [r8] @ encoding: [0x00,0x17,0xc8,0xfd] 2297 @ CHECK: stc2l p8, c0, [r9, #-224] @ encoding: [0x38,0x08,0x49,0xfd] 2298 @ CHECK: stc2l p9, c1, [r10, #-120]! @ encoding: [0x1e,0x19,0x6a,0xfd] 2299 @ CHECK: stc2l p0, c2, [r11], #16 @ encoding: [0x04,0x20,0xeb,0xfc] 2300 @ CHECK: stc2l p1, c3, [r12], #-72 @ encoding: [0x12,0x31,0x6c,0xfc] 2301 2302 @ CHECK: stc p12, c4, [r0, #4] @ encoding: [0x01,0x4c,0x80,0xed] 2303 @ CHECK: stc p13, c5, [r1] @ encoding: [0x00,0x5d,0x81,0xed] 2304 @ CHECK: stc p14, c6, [r2, #-224] @ encoding: [0x38,0x6e,0x02,0xed] 2305 @ CHECK: stc p15, c7, [r3, #-120]! @ encoding: [0x1e,0x7f,0x23,0xed] 2306 @ CHECK: stc p5, c8, [r4], #16 @ encoding: [0x04,0x85,0xa4,0xec] 2307 @ CHECK: stc p4, c9, [r5], #-72 @ encoding: [0x12,0x94,0x25,0xec] 2308 @ CHECK: stcl p3, c10, [r6, #4] @ encoding: [0x01,0xa3,0xc6,0xed] 2309 @ CHECK: stcl p2, c11, [r7] @ encoding: [0x00,0xb2,0xc7,0xed] 2310 @ CHECK: stcl p1, c12, [r8, #-224] @ encoding: [0x38,0xc1,0x48,0xed] 2311 @ CHECK: stcl p0, c13, [r9, #-120]! @ encoding: [0x1e,0xd0,0x69,0xed] 2312 @ CHECK: stcl p6, c14, [r10], #16 @ encoding: [0x04,0xe6,0xea,0xec] 2313 @ CHECK: stcl p7, c15, [r11], #-72 @ encoding: [0x12,0xf7,0x6b,0xec] 2314 2315 @ CHECK: stclo p12, c4, [r0, #4] @ encoding: [0x01,0x4c,0x80,0x3d] 2316 @ CHECK: stchi p13, c5, [r1] @ encoding: [0x00,0x5d,0x81,0x8d] 2317 @ CHECK: stchs p14, c6, [r2, #-224] @ encoding: [0x38,0x6e,0x02,0x2d] 2318 @ CHECK: stclo p15, c7, [r3, #-120]! @ encoding: [0x1e,0x7f,0x23,0x3d] 2319 @ CHECK: stceq p5, c8, [r4], #16 @ encoding: [0x04,0x85,0xa4,0x0c] 2320 @ CHECK: stcgt p4, c9, [r5], #-72 @ encoding: [0x12,0x94,0x25,0xcc] 2321 @ CHECK: stcllt p3, c10, [r6, #4] @ encoding: [0x01,0xa3,0xc6,0xbd] 2322 @ CHECK: stclge p2, c11, [r7] @ encoding: [0x00,0xb2,0xc7,0xad] 2323 @ CHECK: stclle p1, c12, [r8, #-224] @ encoding: [0x38,0xc1,0x48,0xdd] 2324 @ CHECK: stclne p0, c13, [r9, #-120]! @ encoding: [0x1e,0xd0,0x69,0x1d] 2325 @ CHECK: stcleq p6, c14, [r10], #16 @ encoding: [0x04,0xe6,0xea,0x0c] 2326 @ CHECK: stclhi p7, c15, [r11], #-72 @ encoding: [0x12,0xf7,0x6b,0x8c] 2327 2328 @ CHECK: stc2 p2, c8, [r1], {25} @ encoding: [0x19,0x82,0x81,0xfc] 2329 2330 2331 @------------------------------------------------------------------------------ 2332 @ STM* 2333 @------------------------------------------------------------------------------ 2334 stm r2, {r1,r3-r6,sp} 2335 stmia r3, {r1,r3-r6,lr} 2336 stmib r4, {r1,r3-r6,sp} 2337 stmda r5, {r1,r3-r6,sp} 2338 stmdb r6, {r1,r3-r6,r8} 2339 stmfd sp, {r1,r3-r6,sp} 2340 2341 @ with update 2342 stm r8!, {r1,r3-r6,sp} 2343 stmib r9!, {r1,r3-r6,sp} 2344 stmda sp!, {r1,r3-r6} 2345 stmdb r0!, {r1,r5,r7,sp} 2346 2347 @ CHECK: stm r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe8] 2348 @ CHECK: stm r3, {r1, r3, r4, r5, r6, lr} @ encoding: [0x7a,0x40,0x83,0xe8] 2349 @ CHECK: stmib r4, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x84,0xe9] 2350 @ CHECK: stmda r5, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x05,0xe8] 2351 @ CHECK: stmdb r6, {r1, r3, r4, r5, r6, r8} @ encoding: [0x7a,0x01,0x06,0xe9] 2352 @ CHECK: stmdb sp, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x0d,0xe9] 2353 2354 @ CHECK: stm r8!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa8,0xe8] 2355 @ CHECK: stmib r9!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa9,0xe9] 2356 @ CHECK: stmda sp!, {r1, r3, r4, r5, r6} @ encoding: [0x7a,0x00,0x2d,0xe8] 2357 @ CHECK: stmdb r0!, {r1, r5, r7, sp} @ encoding: [0xa2,0x20,0x20,0xe9] 2358 2359 2360 @------------------------------------------------------------------------------ 2361 @ STREX/STREXB/STREXH/STREXD 2362 @------------------------------------------------------------------------------ 2363 strexb r1, r3, [r4] 2364 strexh r4, r2, [r5] 2365 strex r2, r1, [r7] 2366 strexd r6, r2, r3, [r8] 2367 2368 @ CHECK: strexb r1, r3, [r4] @ encoding: [0x93,0x1f,0xc4,0xe1] 2369 @ CHECK: strexh r4, r2, [r5] @ encoding: [0x92,0x4f,0xe5,0xe1] 2370 @ CHECK: strex r2, r1, [r7] @ encoding: [0x91,0x2f,0x87,0xe1] 2371 @ CHECK: strexd r6, r2, r3, [r8] @ encoding: [0x92,0x6f,0xa8,0xe1] 2372 2373 @------------------------------------------------------------------------------ 2374 @ STR 2375 @------------------------------------------------------------------------------ 2376 strpl r3, [r10, #-0]! 2377 strpl r3, [r10, #0]! 2378 2379 @ CHECK: strpl r3, [r10, #-0]! @ encoding: [0x00,0x30,0x2a,0x55] 2380 @ CHECK: strpl r3, [r10, #0]! @ encoding: [0x00,0x30,0xaa,0x55] 2381 2382 @------------------------------------------------------------------------------ 2383 @ SUB 2384 @------------------------------------------------------------------------------ 2385 sub r4, r5, #0xf000 2386 sub r4, r5, r6 2387 sub r4, r5, r6, lsl #5 2388 sub r4, r5, r6, lsr #5 2389 sub r4, r5, r6, lsr #5 2390 sub r4, r5, r6, asr #5 2391 sub r4, r5, r6, ror #5 2392 sub r6, r7, r8, lsl r9 2393 sub r6, r7, r8, lsr r9 2394 sub r6, r7, r8, asr r9 2395 sub r6, r7, r8, ror r9 2396 2397 @ destination register is optional 2398 sub r5, #0xf000 2399 sub r4, r5 2400 sub r4, r5, lsl #5 2401 sub r4, r5, lsr #5 2402 sub r4, r5, lsr #5 2403 sub r4, r5, asr #5 2404 sub r4, r5, ror #5 2405 sub r6, r7, lsl r9 2406 sub r6, r7, lsr r9 2407 sub r6, r7, asr r9 2408 sub r6, r7, ror r9 2409 2410 @ CHECK: sub r4, r5, #61440 @ encoding: [0x0f,0x4a,0x45,0xe2] 2411 @ CHECK: sub r4, r5, r6 @ encoding: [0x06,0x40,0x45,0xe0] 2412 @ CHECK: sub r4, r5, r6, lsl #5 @ encoding: [0x86,0x42,0x45,0xe0] 2413 @ CHECK: sub r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0x45,0xe0] 2414 @ CHECK: sub r4, r5, r6, lsr #5 @ encoding: [0xa6,0x42,0x45,0xe0] 2415 @ CHECK: sub r4, r5, r6, asr #5 @ encoding: [0xc6,0x42,0x45,0xe0] 2416 @ CHECK: sub r4, r5, r6, ror #5 @ encoding: [0xe6,0x42,0x45,0xe0] 2417 @ CHECK: sub r6, r7, r8, lsl r9 @ encoding: [0x18,0x69,0x47,0xe0] 2418 @ CHECK: sub r6, r7, r8, lsr r9 @ encoding: [0x38,0x69,0x47,0xe0] 2419 @ CHECK: sub r6, r7, r8, asr r9 @ encoding: [0x58,0x69,0x47,0xe0] 2420 @ CHECK: sub r6, r7, r8, ror r9 @ encoding: [0x78,0x69,0x47,0xe0] 2421 2422 2423 @ CHECK: sub r5, r5, #61440 @ encoding: [0x0f,0x5a,0x45,0xe2] 2424 @ CHECK: sub r4, r4, r5 @ encoding: [0x05,0x40,0x44,0xe0] 2425 @ CHECK: sub r4, r4, r5, lsl #5 @ encoding: [0x85,0x42,0x44,0xe0] 2426 @ CHECK: sub r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0x44,0xe0] 2427 @ CHECK: sub r4, r4, r5, lsr #5 @ encoding: [0xa5,0x42,0x44,0xe0] 2428 @ CHECK: sub r4, r4, r5, asr #5 @ encoding: [0xc5,0x42,0x44,0xe0] 2429 @ CHECK: sub r4, r4, r5, ror #5 @ encoding: [0xe5,0x42,0x44,0xe0] 2430 @ CHECK: sub r6, r6, r7, lsl r9 @ encoding: [0x17,0x69,0x46,0xe0] 2431 @ CHECK: sub r6, r6, r7, lsr r9 @ encoding: [0x37,0x69,0x46,0xe0] 2432 @ CHECK: sub r6, r6, r7, asr r9 @ encoding: [0x57,0x69,0x46,0xe0] 2433 @ CHECK: sub r6, r6, r7, ror r9 @ encoding: [0x77,0x69,0x46,0xe0] 2434 2435 @ Test right shift by 32, which is encoded as 0 2436 sub r3, r1, r2, lsr #32 2437 sub r3, r1, r2, asr #32 2438 @ CHECK: sub r3, r1, r2, lsr #32 @ encoding: [0x22,0x30,0x41,0xe0] 2439 @ CHECK: sub r3, r1, r2, asr #32 @ encoding: [0x42,0x30,0x41,0xe0] 2440 2441 @------------------------------------------------------------------------------ 2442 @ SVC 2443 @------------------------------------------------------------------------------ 2444 svc #16 2445 svc #0 2446 svc #0xffffff 2447 2448 @ CHECK: svc #16 @ encoding: [0x10,0x00,0x00,0xef] 2449 @ CHECK: svc #0 @ encoding: [0x00,0x00,0x00,0xef] 2450 @ CHECK: svc #16777215 @ encoding: [0xff,0xff,0xff,0xef] 2451 2452 2453 @------------------------------------------------------------------------------ 2454 @ SWP/SWPB 2455 @------------------------------------------------------------------------------ 2456 swp r1, r2, [r3] 2457 swp r4, r4, [r6] 2458 swpb r5, r1, [r9] 2459 2460 @ CHECK: swp r1, r2, [r3] @ encoding: [0x92,0x10,0x03,0xe1] 2461 @ CHECK: swp r4, r4, [r6] @ encoding: [0x94,0x40,0x06,0xe1] 2462 @ CHECK: swpb r5, r1, [r9] @ encoding: [0x91,0x50,0x49,0xe1] 2463 2464 2465 @------------------------------------------------------------------------------ 2466 @ SXTAB 2467 @------------------------------------------------------------------------------ 2468 sxtab r2, r3, r4 2469 sxtab r4, r5, r6, ror #0 2470 sxtablt r6, r2, r9, ror #8 2471 sxtab r5, r1, r4, ror #16 2472 sxtab r7, r8, r3, ror #24 2473 2474 @ CHECK: sxtab r2, r3, r4 @ encoding: [0x74,0x20,0xa3,0xe6] 2475 @ CHECK: sxtab r4, r5, r6 @ encoding: [0x76,0x40,0xa5,0xe6] 2476 @ CHECK: sxtablt r6, r2, r9, ror #8 @ encoding: [0x79,0x64,0xa2,0xb6] 2477 @ CHECK: sxtab r5, r1, r4, ror #16 @ encoding: [0x74,0x58,0xa1,0xe6] 2478 @ CHECK: sxtab r7, r8, r3, ror #24 @ encoding: [0x73,0x7c,0xa8,0xe6] 2479 2480 2481 @------------------------------------------------------------------------------ 2482 @ SXTAB16 2483 @------------------------------------------------------------------------------ 2484 sxtab16ge r0, r1, r4 2485 sxtab16 r6, r2, r7, ror #0 2486 sxtab16 r3, r5, r8, ror #8 2487 sxtab16 r3, r2, r1, ror #16 2488 sxtab16eq r1, r2, r3, ror #24 2489 2490 @ CHECK: sxtab16ge r0, r1, r4 @ encoding: [0x74,0x00,0x81,0xa6] 2491 @ CHECK: sxtab16 r6, r2, r7 @ encoding: [0x77,0x60,0x82,0xe6] 2492 @ CHECK: sxtab16 r3, r5, r8, ror #8 @ encoding: [0x78,0x34,0x85,0xe6] 2493 @ CHECK: sxtab16 r3, r2, r1, ror #16 @ encoding: [0x71,0x38,0x82,0xe6] 2494 @ CHECK: sxtab16eq r1, r2, r3, ror #24 @ encoding: [0x73,0x1c,0x82,0x06] 2495 2496 @------------------------------------------------------------------------------ 2497 @ SXTAH 2498 @------------------------------------------------------------------------------ 2499 sxtah r1, r3, r9 2500 sxtahhi r6, r1, r6, ror #0 2501 sxtah r3, r8, r3, ror #8 2502 sxtahlo r2, r2, r4, ror #16 2503 sxtah r9, r3, r3, ror #24 2504 2505 @ CHECK: sxtah r1, r3, r9 @ encoding: [0x79,0x10,0xb3,0xe6] 2506 @ CHECK: sxtahhi r6, r1, r6 @ encoding: [0x76,0x60,0xb1,0x86] 2507 @ CHECK: sxtah r3, r8, r3, ror #8 @ encoding: [0x73,0x34,0xb8,0xe6] 2508 @ CHECK: sxtahlo r2, r2, r4, ror #16 @ encoding: [0x74,0x28,0xb2,0x36] 2509 @ CHECK: sxtah r9, r3, r3, ror #24 @ encoding: [0x73,0x9c,0xb3,0xe6] 2510 2511 @------------------------------------------------------------------------------ 2512 @ SXTB 2513 @------------------------------------------------------------------------------ 2514 sxtbge r2, r4 2515 sxtb r5, r6, ror #0 2516 sxtb r6, r9, ror #8 2517 sxtbcc r5, r1, ror #16 2518 sxtb r8, r3, ror #24 2519 2520 @ CHECK: sxtbge r2, r4 @ encoding: [0x74,0x20,0xaf,0xa6] 2521 @ CHECK: sxtb r5, r6 @ encoding: [0x76,0x50,0xaf,0xe6] 2522 @ CHECK: sxtb r6, r9, ror #8 @ encoding: [0x79,0x64,0xaf,0xe6] 2523 @ CHECK: sxtblo r5, r1, ror #16 @ encoding: [0x71,0x58,0xaf,0x36] 2524 @ CHECK: sxtb r8, r3, ror #24 @ encoding: [0x73,0x8c,0xaf,0xe6] 2525 2526 2527 @------------------------------------------------------------------------------ 2528 @ SXTB16 2529 @------------------------------------------------------------------------------ 2530 sxtb16 r1, r4 2531 sxtb16 r6, r7, ror #0 2532 sxtb16cs r3, r5, ror #8 2533 sxtb16 r3, r1, ror #16 2534 sxtb16ge r2, r3, ror #24 2535 2536 @ CHECK: sxtb16 r1, r4 @ encoding: [0x74,0x10,0x8f,0xe6] 2537 @ CHECK: sxtb16 r6, r7 @ encoding: [0x77,0x60,0x8f,0xe6] 2538 @ CHECK: sxtb16hs r3, r5, ror #8 @ encoding: [0x75,0x34,0x8f,0x26] 2539 @ CHECK: sxtb16 r3, r1, ror #16 @ encoding: [0x71,0x38,0x8f,0xe6] 2540 @ CHECK: sxtb16ge r2, r3, ror #24 @ encoding: [0x73,0x2c,0x8f,0xa6] 2541 2542 2543 @------------------------------------------------------------------------------ 2544 @ SXTH 2545 @------------------------------------------------------------------------------ 2546 sxthne r3, r9 2547 sxth r1, r6, ror #0 2548 sxth r3, r8, ror #8 2549 sxthle r2, r2, ror #16 2550 sxth r9, r3, ror #24 2551 2552 @ CHECK: sxthne r3, r9 @ encoding: [0x79,0x30,0xbf,0x16] 2553 @ CHECK: sxth r1, r6 @ encoding: [0x76,0x10,0xbf,0xe6] 2554 @ CHECK: sxth r3, r8, ror #8 @ encoding: [0x78,0x34,0xbf,0xe6] 2555 @ CHECK: sxthle r2, r2, ror #16 @ encoding: [0x72,0x28,0xbf,0xd6] 2556 @ CHECK: sxth r9, r3, ror #24 @ encoding: [0x73,0x9c,0xbf,0xe6] 2557 2558 2559 @------------------------------------------------------------------------------ 2560 @ TEQ 2561 @------------------------------------------------------------------------------ 2562 teq r5, #0xf000 2563 teq r4, r5 2564 teq r4, r5, lsl #5 2565 teq r4, r5, lsr #5 2566 teq r4, r5, lsr #5 2567 teq r4, r5, asr #5 2568 teq r4, r5, ror #5 2569 teq r6, r7, lsl r9 2570 teq r6, r7, lsr r9 2571 teq r6, r7, asr r9 2572 teq r6, r7, ror r9 2573 2574 @ CHECK: teq r5, #61440 @ encoding: [0x0f,0x0a,0x35,0xe3] 2575 @ CHECK: teq r4, r5 @ encoding: [0x05,0x00,0x34,0xe1] 2576 @ CHECK: teq r4, r5, lsl #5 @ encoding: [0x85,0x02,0x34,0xe1] 2577 @ CHECK: teq r4, r5, lsr #5 @ encoding: [0xa5,0x02,0x34,0xe1] 2578 @ CHECK: teq r4, r5, lsr #5 @ encoding: [0xa5,0x02,0x34,0xe1] 2579 @ CHECK: teq r4, r5, asr #5 @ encoding: [0xc5,0x02,0x34,0xe1] 2580 @ CHECK: teq r4, r5, ror #5 @ encoding: [0xe5,0x02,0x34,0xe1] 2581 @ CHECK: teq r6, r7, lsl r9 @ encoding: [0x17,0x09,0x36,0xe1] 2582 @ CHECK: teq r6, r7, lsr r9 @ encoding: [0x37,0x09,0x36,0xe1] 2583 @ CHECK: teq r6, r7, asr r9 @ encoding: [0x57,0x09,0x36,0xe1] 2584 @ CHECK: teq r6, r7, ror r9 @ encoding: [0x77,0x09,0x36,0xe1] 2585 2586 2587 @------------------------------------------------------------------------------ 2588 @ TST 2589 @------------------------------------------------------------------------------ 2590 tst r5, #0xf000 2591 tst r4, r5 2592 tst r4, r5, lsl #5 2593 tst r4, r5, lsr #5 2594 tst r4, r5, lsr #5 2595 tst r4, r5, asr #5 2596 tst r4, r5, ror #5 2597 tst r6, r7, lsl r9 2598 tst r6, r7, lsr r9 2599 tst r6, r7, asr r9 2600 tst r6, r7, ror r9 2601 2602 @ CHECK: tst r5, #61440 @ encoding: [0x0f,0x0a,0x15,0xe3] 2603 @ CHECK: tst r4, r5 @ encoding: [0x05,0x00,0x14,0xe1] 2604 @ CHECK: tst r4, r5, lsl #5 @ encoding: [0x85,0x02,0x14,0xe1] 2605 @ CHECK: tst r4, r5, lsr #5 @ encoding: [0xa5,0x02,0x14,0xe1] 2606 @ CHECK: tst r4, r5, lsr #5 @ encoding: [0xa5,0x02,0x14,0xe1] 2607 @ CHECK: tst r4, r5, asr #5 @ encoding: [0xc5,0x02,0x14,0xe1] 2608 @ CHECK: tst r4, r5, ror #5 @ encoding: [0xe5,0x02,0x14,0xe1] 2609 @ CHECK: tst r6, r7, lsl r9 @ encoding: [0x17,0x09,0x16,0xe1] 2610 @ CHECK: tst r6, r7, lsr r9 @ encoding: [0x37,0x09,0x16,0xe1] 2611 @ CHECK: tst r6, r7, asr r9 @ encoding: [0x57,0x09,0x16,0xe1] 2612 @ CHECK: tst r6, r7, ror r9 @ encoding: [0x77,0x09,0x16,0xe1] 2613 2614 2615 @------------------------------------------------------------------------------ 2616 @ UADD16/UADD8 2617 @------------------------------------------------------------------------------ 2618 uadd16 r1, r2, r3 2619 uadd16gt r1, r2, r3 2620 uadd8 r1, r2, r3 2621 uadd8le r1, r2, r3 2622 2623 @ CHECK: uadd16 r1, r2, r3 @ encoding: [0x13,0x1f,0x52,0xe6] 2624 @ CHECK: uadd16gt r1, r2, r3 @ encoding: [0x13,0x1f,0x52,0xc6] 2625 @ CHECK: uadd8 r1, r2, r3 @ encoding: [0x93,0x1f,0x52,0xe6] 2626 @ CHECK: uadd8le r1, r2, r3 @ encoding: [0x93,0x1f,0x52,0xd6] 2627 2628 2629 @------------------------------------------------------------------------------ 2630 @ UASX 2631 @------------------------------------------------------------------------------ 2632 uasx r9, r12, r0 2633 uasxeq r9, r12, r0 2634 2635 @ CHECK: uasx r9, r12, r0 @ encoding: [0x30,0x9f,0x5c,0xe6] 2636 @ CHECK: uasxeq r9, r12, r0 @ encoding: [0x30,0x9f,0x5c,0x06] 2637 2638 2639 @------------------------------------------------------------------------------ 2640 @ UBFX 2641 @------------------------------------------------------------------------------ 2642 ubfx r4, r5, #16, #1 2643 ubfxgt r4, r5, #16, #16 2644 2645 @ CHECK: ubfx r4, r5, #16, #1 @ encoding: [0x55,0x48,0xe0,0xe7] 2646 @ CHECK: ubfxgt r4, r5, #16, #16 @ encoding: [0x55,0x48,0xef,0xc7] 2647 2648 2649 @------------------------------------------------------------------------------ 2650 @ UHADD16/UHADD8 2651 @------------------------------------------------------------------------------ 2652 uhadd16 r4, r8, r2 2653 uhadd16gt r4, r8, r2 2654 uhadd8 r4, r8, r2 2655 uhadd8gt r4, r8, r2 2656 2657 @ CHECK: uhadd16 r4, r8, r2 @ encoding: [0x12,0x4f,0x78,0xe6] 2658 @ CHECK: uhadd16gt r4, r8, r2 @ encoding: [0x12,0x4f,0x78,0xc6] 2659 @ CHECK: uhadd8 r4, r8, r2 @ encoding: [0x92,0x4f,0x78,0xe6] 2660 @ CHECK: uhadd8gt r4, r8, r2 @ encoding: [0x92,0x4f,0x78,0xc6] 2661 2662 2663 @------------------------------------------------------------------------------ 2664 @ UHASX 2665 @------------------------------------------------------------------------------ 2666 uhasx r4, r8, r2 2667 uhasxgt r4, r8, r2 2668 2669 @ CHECK: uhasx r4, r8, r2 @ encoding: [0x32,0x4f,0x78,0xe6] 2670 @ CHECK: uhasxgt r4, r8, r2 @ encoding: [0x32,0x4f,0x78,0xc6] 2671 2672 2673 @------------------------------------------------------------------------------ 2674 @ UHSUB16/UHSUB8 2675 @------------------------------------------------------------------------------ 2676 uhsub16 r4, r8, r2 2677 uhsub16gt r4, r8, r2 2678 uhsub8 r4, r8, r2 2679 uhsub8gt r4, r8, r2 2680 2681 @ CHECK: uhsub16 r4, r8, r2 @ encoding: [0x72,0x4f,0x78,0xe6] 2682 @ CHECK: uhsub16gt r4, r8, r2 @ encoding: [0x72,0x4f,0x78,0xc6] 2683 @ CHECK: uhsub8 r4, r8, r2 @ encoding: [0xf2,0x4f,0x78,0xe6] 2684 @ CHECK: uhsub8gt r4, r8, r2 @ encoding: [0xf2,0x4f,0x78,0xc6] 2685 2686 2687 @------------------------------------------------------------------------------ 2688 @ UMAAL 2689 @------------------------------------------------------------------------------ 2690 umaal r3, r4, r5, r6 2691 umaallt r3, r4, r5, r6 2692 2693 @ CHECK: umaal r3, r4, r5, r6 @ encoding: [0x95,0x36,0x44,0xe0] 2694 @ CHECK: umaallt r3, r4, r5, r6 @ encoding: [0x95,0x36,0x44,0xb0] 2695 2696 2697 @------------------------------------------------------------------------------ 2698 @ UMLAL 2699 @------------------------------------------------------------------------------ 2700 umlal r2, r4, r6, r8 2701 umlalgt r6, r1, r2, r6 2702 umlals r2, r9, r2, r3 2703 umlalseq r3, r5, r1, r2 2704 2705 @ CHECK: umlal r2, r4, r6, r8 @ encoding: [0x96,0x28,0xa4,0xe0] 2706 @ CHECK: umlalgt r6, r1, r2, r6 @ encoding: [0x92,0x66,0xa1,0xc0] 2707 @ CHECK: umlals r2, r9, r2, r3 @ encoding: [0x92,0x23,0xb9,0xe0] 2708 @ CHECK: umlalseq r3, r5, r1, r2 @ encoding: [0x91,0x32,0xb5,0x00] 2709 2710 2711 @------------------------------------------------------------------------------ 2712 @ UMULL 2713 @------------------------------------------------------------------------------ 2714 umull r2, r4, r6, r8 2715 umullgt r6, r1, r2, r6 2716 umulls r2, r9, r2, r3 2717 umullseq r3, r5, r1, r2 2718 2719 @ CHECK: umull r2, r4, r6, r8 @ encoding: [0x96,0x28,0x84,0xe0] 2720 @ CHECK: umullgt r6, r1, r2, r6 @ encoding: [0x92,0x66,0x81,0xc0] 2721 @ CHECK: umulls r2, r9, r2, r3 @ encoding: [0x92,0x23,0x99,0xe0] 2722 @ CHECK: umullseq r3, r5, r1, r2 @ encoding: [0x91,0x32,0x95,0x00] 2723 2724 2725 @------------------------------------------------------------------------------ 2726 @ UQADD16/UQADD8 2727 @------------------------------------------------------------------------------ 2728 uqadd16 r1, r2, r3 2729 uqadd16gt r4, r7, r9 2730 uqadd8 r3, r4, r8 2731 uqadd8le r8, r1, r2 2732 2733 2734 @ CHECK: uqadd16 r1, r2, r3 @ encoding: [0x13,0x1f,0x62,0xe6] 2735 @ CHECK: uqadd16gt r4, r7, r9 @ encoding: [0x19,0x4f,0x67,0xc6] 2736 @ CHECK: uqadd8 r3, r4, r8 @ encoding: [0x98,0x3f,0x64,0xe6] 2737 @ CHECK: uqadd8le r8, r1, r2 @ encoding: [0x92,0x8f,0x61,0xd6] 2738 2739 2740 @------------------------------------------------------------------------------ 2741 @ UQASX 2742 @------------------------------------------------------------------------------ 2743 uqasx r2, r4, r1 2744 uqasxhi r5, r2, r9 2745 2746 @ CHECK: uqasx r2, r4, r1 @ encoding: [0x31,0x2f,0x64,0xe6] 2747 @ CHECK: uqasxhi r5, r2, r9 @ encoding: [0x39,0x5f,0x62,0x86] 2748 2749 2750 @------------------------------------------------------------------------------ 2751 @ UQSAX 2752 @------------------------------------------------------------------------------ 2753 uqsax r1, r3, r7 2754 uqsaxal r3, r6, r2 2755 2756 @ CHECK: uqsax r1, r3, r7 @ encoding: [0x57,0x1f,0x63,0xe6] 2757 @ CHECK: uqsax r3, r6, r2 @ encoding: [0x52,0x3f,0x66,0xe6] 2758 2759 2760 @------------------------------------------------------------------------------ 2761 @ UQSUB16/UQSUB8 2762 @------------------------------------------------------------------------------ 2763 uqsub16 r1, r5, r3 2764 uqsub16gt r3, r2, r5 2765 uqsub8 r2, r1, r4 2766 uqsub8le r4, r6, r9 2767 2768 @ CHECK: uqsub16 r1, r5, r3 @ encoding: [0x73,0x1f,0x65,0xe6] 2769 @ CHECK: uqsub16gt r3, r2, r5 @ encoding: [0x75,0x3f,0x62,0xc6] 2770 @ CHECK: uqsub8 r2, r1, r4 @ encoding: [0xf4,0x2f,0x61,0xe6] 2771 @ CHECK: uqsub8le r4, r6, r9 @ encoding: [0xf9,0x4f,0x66,0xd6] 2772 2773 2774 @------------------------------------------------------------------------------ 2775 @ USADA8/USAD8 2776 @------------------------------------------------------------------------------ 2777 usad8 r2, r1, r4 2778 usad8le r4, r6, r9 2779 usada8 r1, r5, r3, r7 2780 usada8gt r3, r2, r5, r1 2781 2782 @ CHECK: usad8 r2, r1, r4 @ encoding: [0x11,0xf4,0x82,0xe7] 2783 @ CHECK: usad8le r4, r6, r9 @ encoding: [0x16,0xf9,0x84,0xd7] 2784 @ CHECK: usada8 r1, r5, r3, r7 @ encoding: [0x15,0x73,0x81,0xe7] 2785 @ CHECK: usada8gt r3, r2, r5, r1 @ encoding: [0x12,0x15,0x83,0xc7] 2786 2787 2788 @------------------------------------------------------------------------------ 2789 @ USAT 2790 @------------------------------------------------------------------------------ 2791 usat r8, #1, r10 2792 usat r8, #4, r10, lsl #0 2793 usat r8, #5, r10, lsl #31 2794 usat r8, #31, r10, asr #32 2795 usat r8, #16, r10, asr #1 2796 2797 @ CHECK: usat r8, #1, r10 @ encoding: [0x1a,0x80,0xe1,0xe6] 2798 @ CHECK: usat r8, #4, r10 @ encoding: [0x1a,0x80,0xe4,0xe6] 2799 @ CHECK: usat r8, #5, r10, lsl #31 @ encoding: [0x9a,0x8f,0xe5,0xe6] 2800 @ CHECK: usat r8, #31, r10, asr #32 @ encoding: [0x5a,0x80,0xff,0xe6] 2801 @ CHECK: usat r8, #16, r10, asr #1 @ encoding: [0xda,0x80,0xf0,0xe6] 2802 2803 2804 @------------------------------------------------------------------------------ 2805 @ USAT16 2806 @------------------------------------------------------------------------------ 2807 usat16 r2, #2, r7 2808 usat16 r3, #15, r5 2809 2810 @ CHECK: usat16 r2, #2, r7 @ encoding: [0x37,0x2f,0xe2,0xe6] 2811 @ CHECK: usat16 r3, #15, r5 @ encoding: [0x35,0x3f,0xef,0xe6] 2812 2813 2814 @------------------------------------------------------------------------------ 2815 @ USAX 2816 @------------------------------------------------------------------------------ 2817 usax r2, r3, r4 2818 usaxne r2, r3, r4 2819 2820 @ CHECK: usax r2, r3, r4 @ encoding: [0x54,0x2f,0x53,0xe6] 2821 @ CHECK: usaxne r2, r3, r4 @ encoding: [0x54,0x2f,0x53,0x16] 2822 2823 @------------------------------------------------------------------------------ 2824 @ USUB16/USUB8 2825 @------------------------------------------------------------------------------ 2826 usub16 r4, r2, r7 2827 usub16hi r1, r1, r3 2828 usub8 r1, r8, r5 2829 usub8le r9, r2, r3 2830 2831 @ CHECK: usub16 r4, r2, r7 @ encoding: [0x77,0x4f,0x52,0xe6] 2832 @ CHECK: usub16hi r1, r1, r3 @ encoding: [0x73,0x1f,0x51,0x86] 2833 @ CHECK: usub8 r1, r8, r5 @ encoding: [0xf5,0x1f,0x58,0xe6] 2834 @ CHECK: usub8le r9, r2, r3 @ encoding: [0xf3,0x9f,0x52,0xd6] 2835 2836 2837 @------------------------------------------------------------------------------ 2838 @ UXTAB 2839 @------------------------------------------------------------------------------ 2840 uxtab r2, r3, r4 2841 uxtab r4, r5, r6, ror #0 2842 uxtablt r6, r2, r9, ror #8 2843 uxtab r5, r1, r4, ror #16 2844 uxtab r7, r8, r3, ror #24 2845 2846 @ CHECK: uxtab r2, r3, r4 @ encoding: [0x74,0x20,0xe3,0xe6] 2847 @ CHECK: uxtab r4, r5, r6 @ encoding: [0x76,0x40,0xe5,0xe6] 2848 @ CHECK: uxtablt r6, r2, r9, ror #8 @ encoding: [0x79,0x64,0xe2,0xb6] 2849 @ CHECK: uxtab r5, r1, r4, ror #16 @ encoding: [0x74,0x58,0xe1,0xe6] 2850 @ CHECK: uxtab r7, r8, r3, ror #24 @ encoding: [0x73,0x7c,0xe8,0xe6] 2851 2852 2853 @------------------------------------------------------------------------------ 2854 @ UXTAB16 2855 @------------------------------------------------------------------------------ 2856 uxtab16ge r0, r1, r4 2857 uxtab16 r6, r2, r7, ror #0 2858 uxtab16 r3, r5, r8, ror #8 2859 uxtab16 r3, r2, r1, ror #16 2860 uxtab16eq r1, r2, r3, ror #24 2861 2862 @ CHECK: uxtab16ge r0, r1, r4 @ encoding: [0x74,0x00,0xc1,0xa6] 2863 @ CHECK: uxtab16 r6, r2, r7 @ encoding: [0x77,0x60,0xc2,0xe6] 2864 @ CHECK: uxtab16 r3, r5, r8, ror #8 @ encoding: [0x78,0x34,0xc5,0xe6] 2865 @ CHECK: uxtab16 r3, r2, r1, ror #16 @ encoding: [0x71,0x38,0xc2,0xe6] 2866 @ CHECK: uxtab16eq r1, r2, r3, ror #24 @ encoding: [0x73,0x1c,0xc2,0x06] 2867 2868 2869 @------------------------------------------------------------------------------ 2870 @ UXTAH 2871 @------------------------------------------------------------------------------ 2872 uxtah r1, r3, r9 2873 uxtahhi r6, r1, r6, ror #0 2874 uxtah r3, r8, r3, ror #8 2875 uxtahlo r2, r2, r4, ror #16 2876 uxtah r9, r3, r3, ror #24 2877 2878 @ CHECK: uxtah r1, r3, r9 @ encoding: [0x79,0x10,0xf3,0xe6] 2879 @ CHECK: uxtahhi r6, r1, r6 @ encoding: [0x76,0x60,0xf1,0x86] 2880 @ CHECK: uxtah r3, r8, r3, ror #8 @ encoding: [0x73,0x34,0xf8,0xe6] 2881 @ CHECK: uxtahlo r2, r2, r4, ror #16 @ encoding: [0x74,0x28,0xf2,0x36] 2882 @ CHECK: uxtah r9, r3, r3, ror #24 @ encoding: [0x73,0x9c,0xf3,0xe6] 2883 2884 @------------------------------------------------------------------------------ 2885 @ UXTB 2886 @------------------------------------------------------------------------------ 2887 uxtbge r2, r4 2888 uxtb r5, r6, ror #0 2889 uxtb r6, r9, ror #8 2890 uxtbcc r5, r1, ror #16 2891 uxtb r8, r3, ror #24 2892 2893 @ CHECK: uxtbge r2, r4 @ encoding: [0x74,0x20,0xef,0xa6] 2894 @ CHECK: uxtb r5, r6 @ encoding: [0x76,0x50,0xef,0xe6] 2895 @ CHECK: uxtb r6, r9, ror #8 @ encoding: [0x79,0x64,0xef,0xe6] 2896 @ CHECK: uxtblo r5, r1, ror #16 @ encoding: [0x71,0x58,0xef,0x36] 2897 @ CHECK: uxtb r8, r3, ror #24 @ encoding: [0x73,0x8c,0xef,0xe6] 2898 2899 2900 @------------------------------------------------------------------------------ 2901 @ UXTB16 2902 @------------------------------------------------------------------------------ 2903 uxtb16 r1, r4 2904 uxtb16 r6, r7, ror #0 2905 uxtb16cs r3, r5, ror #8 2906 uxtb16 r3, r1, ror #16 2907 uxtb16ge r2, r3, ror #24 2908 2909 @ CHECK: uxtb16 r1, r4 @ encoding: [0x74,0x10,0xcf,0xe6] 2910 @ CHECK: uxtb16 r6, r7 @ encoding: [0x77,0x60,0xcf,0xe6] 2911 @ CHECK: uxtb16hs r3, r5, ror #8 @ encoding: [0x75,0x34,0xcf,0x26] 2912 @ CHECK: uxtb16 r3, r1, ror #16 @ encoding: [0x71,0x38,0xcf,0xe6] 2913 @ CHECK: uxtb16ge r2, r3, ror #24 @ encoding: [0x73,0x2c,0xcf,0xa6] 2914 2915 2916 @------------------------------------------------------------------------------ 2917 @ UXTH 2918 @------------------------------------------------------------------------------ 2919 uxthne r3, r9 2920 uxth r1, r6, ror #0 2921 uxth r3, r8, ror #8 2922 uxthle r2, r2, ror #16 2923 uxth r9, r3, ror #24 2924 2925 @ CHECK: uxthne r3, r9 @ encoding: [0x79,0x30,0xff,0x16] 2926 @ CHECK: uxth r1, r6 @ encoding: [0x76,0x10,0xff,0xe6] 2927 @ CHECK: uxth r3, r8, ror #8 @ encoding: [0x78,0x34,0xff,0xe6] 2928 @ CHECK: uxthle r2, r2, ror #16 @ encoding: [0x72,0x28,0xff,0xd6] 2929 @ CHECK: uxth r9, r3, ror #24 @ encoding: [0x73,0x9c,0xff,0xe6] 2930 2931 2932 @------------------------------------------------------------------------------ 2933 @ WFE/WFI/YIELD 2934 @------------------------------------------------------------------------------ 2935 wfe 2936 wfehi 2937 wfi 2938 wfilt 2939 yield 2940 yieldne 2941 hint #4 2942 hint #3 2943 hint #2 2944 hint #1 2945 hint #0 2946 hintgt #239 2947 2948 @ CHECK: wfe @ encoding: [0x02,0xf0,0x20,0xe3] 2949 @ CHECK: wfehi @ encoding: [0x02,0xf0,0x20,0x83] 2950 @ CHECK: wfi @ encoding: [0x03,0xf0,0x20,0xe3] 2951 @ CHECK: wfilt @ encoding: [0x03,0xf0,0x20,0xb3] 2952 @ CHECK: yield @ encoding: [0x01,0xf0,0x20,0xe3] 2953 @ CHECK: yieldne @ encoding: [0x01,0xf0,0x20,0x13] 2954 @ CHECK: sev @ encoding: [0x04,0xf0,0x20,0xe3] 2955 @ CHECK: wfi @ encoding: [0x03,0xf0,0x20,0xe3] 2956 @ CHECK: wfe @ encoding: [0x02,0xf0,0x20,0xe3] 2957 @ CHECK: yield @ encoding: [0x01,0xf0,0x20,0xe3] 2958 @ CHECK: nop @ encoding: [0x00,0xf0,0x20,0xe3] 2959 @ CHECK: hintgt #239 @ encoding: [0xef,0xf0,0x20,0xc3] 2960