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