528 lines · plain
1# RUN: llvm-mc -triple=thumbv6-apple-darwin -disassemble -show-encoding < %s | FileCheck %s2 3#------------------------------------------------------------------------------4# ADC (register)5#------------------------------------------------------------------------------6# CHECK: adcs r4, r67 80x74 0x419 10 11#------------------------------------------------------------------------------12# ADD (immediate)13#------------------------------------------------------------------------------14# CHECK: adds r1, r2, #315# CHECK: adds r2, r2, #316# CHECK: adds r2, #817 180xd1 0x1c190xd2 0x1c200x08 0x3221 22#------------------------------------------------------------------------------23# ADD (register)24#------------------------------------------------------------------------------25# CHECK: adds r1, r2, r326# CHECK: add r2, r827 280xd1 0x18290x42 0x4430 31#------------------------------------------------------------------------------32# ADD (SP plus immediate)33#------------------------------------------------------------------------------34# CHECK: add sp, #50835# CHECK: add sp, #436# CHECK: add r2, sp, #837# CHECK: add r2, sp, #102038 390x7f 0xb0400x01 0xb0410x02 0xaa420xff 0xaa43 44 45#------------------------------------------------------------------------------46# ADD (SP plus register)47#------------------------------------------------------------------------------48# CHECK: add sp, r349# CHECK: add r2, sp, r250 510x9d 0x44520x6a 0x4453 54#------------------------------------------------------------------------------55# ADR56#------------------------------------------------------------------------------57# CHECK: adr r5, #058# CHECK: adr r2, #1259# CHECK: adr r3, #1020600x00 0xa5610x03 0xa2620xff 0xa363 64#------------------------------------------------------------------------------65# ASR (immediate)66#------------------------------------------------------------------------------67# CHECK: asrs r2, r3, #3268# CHECK: asrs r2, r3, #569# CHECK: asrs r2, r3, #170 710x1a 0x10720x5a 0x11730x5a 0x1074 75#------------------------------------------------------------------------------76# ASR (register)77#------------------------------------------------------------------------------78# CHECK: asrs r5, r279 800x15 0x4181 82#------------------------------------------------------------------------------83# BICS84#------------------------------------------------------------------------------85# CHECK: bics r1, r686 870xb1 0x4388 89#------------------------------------------------------------------------------90# B91#------------------------------------------------------------------------------92# CHECK: bls #128 @ encoding: [0x40,0xd9]93# CHECK: beq #-256 @ encoding: [0x80,0xd0]94 950x40 0xd9960x80 0xd097 98#------------------------------------------------------------------------------99# BKPT100#------------------------------------------------------------------------------101# CHECK: bkpt #0102# CHECK: bkpt #255103 1040x00 0xbe1050xff 0xbe106 107#------------------------------------------------------------------------------108# BLX (register)109#------------------------------------------------------------------------------110# CHECK: blx r4111 1120xa0 0x47113 114#------------------------------------------------------------------------------115# BX116#------------------------------------------------------------------------------117# CHECK: bx r2118 1190x10 0x47120 121#------------------------------------------------------------------------------122# CMN123#------------------------------------------------------------------------------124# CHECK: cmn r5, r1125 1260xcd 0x42127 128#------------------------------------------------------------------------------129# CMP130#------------------------------------------------------------------------------131# CHECK: cmp r6, #32132# CHECK: cmp r3, r4133# CHECK: cmp r8, r1134 1350x20 0x2e1360xa3 0x421370x88 0x45138 139#------------------------------------------------------------------------------140# EOR141#------------------------------------------------------------------------------142# CHECK: eors r4, r5143 1440x6c 0x40145 146#------------------------------------------------------------------------------147# LDM148#------------------------------------------------------------------------------149# CHECK: ldm r3, {r0, r1, r2, r3, r4, r5, r6, r7}150# CHECK: ldm r2!, {r1, r3, r4, r5, r7}151# CHECK: ldm r1, {r1}152 1530xff 0xcb1540xba 0xca1550x02 0xc9156 157 158#------------------------------------------------------------------------------159# LDR (immediate)160#------------------------------------------------------------------------------161# CHECK: ldr r1, [r5]162# CHECK: ldr r2, [r6, #32]163# CHECK: ldr r3, [r7, #124]164# CHECK: ldr r1, [sp]165# CHECK: ldr r2, [sp, #24]166# CHECK: ldr r3, [sp, #1020]167# CHECK: ldr r1, [pc, #12]168 169 1700x29 0x681710x32 0x6a1720xfb 0x6f1730x00 0x991740x06 0x9a1750xff 0x9b1760x03 0x49177 178#------------------------------------------------------------------------------179# LDR (register)180#------------------------------------------------------------------------------181# CHECK: ldr r1, [r2, r3]182 1830xd1 0x58184 185 186#------------------------------------------------------------------------------187# LDRB (immediate)188#------------------------------------------------------------------------------189# CHECK: ldrb r4, [r3]190# CHECK: ldrb r5, [r6]191# CHECK: ldrb r6, [r7, #31]192 1930x1c 0x781940x35 0x781950xfe 0x7f196 197 198#------------------------------------------------------------------------------199# LDRB (register)200#------------------------------------------------------------------------------201# CHECK: ldrb r6, [r4, r5]202 2030x66 0x5d204 205 206#------------------------------------------------------------------------------207# LDRH (immediate)208#------------------------------------------------------------------------------209# CHECK: ldrh r3, [r3]210# CHECK: ldrh r4, [r6, #2]211# CHECK: ldrh r5, [r7, #62]212 2130x1b 0x882140x74 0x882150xfd 0x8f216 217#------------------------------------------------------------------------------218# LDRH (register)219#------------------------------------------------------------------------------220# CHECK: ldrh r6, [r2, r6]221 2220x96 0x5b223 224 225#------------------------------------------------------------------------------226# LDRSB/LDRSH227#------------------------------------------------------------------------------228# CHECK: ldrsb r6, [r2, r6]229# CHECK: ldrsh r3, [r7, r1]230 2310x96 0x572320x7b 0x5e233 234#------------------------------------------------------------------------------235# LSL (immediate)236#------------------------------------------------------------------------------237# CHECK: movs r4, r5238# CHECK: lsls r4, r5, #4239 2400x2c 0x002410x2c 0x01242 243 244#------------------------------------------------------------------------------245# LSL (register)246#------------------------------------------------------------------------------247# CHECK: lsls r2, r6248 2490xb2 0x40250 251 252#------------------------------------------------------------------------------253# LSR (immediate)254#------------------------------------------------------------------------------255# CHECK: lsrs r1, r3, #1256# CHECK: lsrs r1, r3, #32257 2580x59 0x082590x19 0x08260 261 262#------------------------------------------------------------------------------263# LSR (register)264#------------------------------------------------------------------------------265# CHECK: lsrs r2, r6266 2670xf2 0x40268 269#------------------------------------------------------------------------------270# MOV (immediate)271#------------------------------------------------------------------------------272# CHECK: movs r2, #0273# CHECK: movs r2, #255274# CHECK: movs r2, #23275 2760x00 0x222770xff 0x222780x17 0x22279 280 281#------------------------------------------------------------------------------282# MOV (register)283#------------------------------------------------------------------------------284# CHECK: mov r3, r4285# CHECK: movs r1, r3286# CHECK: mov r8, r8287 2880x23 0x462890x19 0x002900xc0 0x46291 292 293#------------------------------------------------------------------------------294# MUL295#------------------------------------------------------------------------------296# CHECK: muls r1, r2, r1297# CHECK: muls r3, r4298 2990x51 0x433000x63 0x43301 302 303#------------------------------------------------------------------------------304# MVN305#------------------------------------------------------------------------------306# CHECK: mvns r6, r3307 3080xde 0x43309 310#------------------------------------------------------------------------------311# NEG312#------------------------------------------------------------------------------313# CHECK: rsbs r3, r4, #0314 3150x63 0x42316 317 318#------------------------------------------------------------------------------319# ORR320#------------------------------------------------------------------------------321# CHECK: orrs r3, r4322 3230x23 0x43324 325#------------------------------------------------------------------------------326# POP327#------------------------------------------------------------------------------328# CHECK: pop {r2, r3, r6}329 3300x4c 0xbc331 332 333#------------------------------------------------------------------------------334# PUSH335#------------------------------------------------------------------------------336# CHECK: push {r1, r2, r7}337 3380x86 0xb4339 340 341#------------------------------------------------------------------------------342# REV/REV16/REVSH343#------------------------------------------------------------------------------344# CHECK: rev r6, r3345# CHECK: rev16 r7, r2346# CHECK: revsh r5, r1347 3480x1e 0xba3490x57 0xba3500xcd 0xba351 352 353#------------------------------------------------------------------------------354# ROR355#------------------------------------------------------------------------------356# CHECK: rors r2, r7357 3580xfa 0x41359 360#------------------------------------------------------------------------------361# RSB362#------------------------------------------------------------------------------363# CHECK: rsbs r1, r3, #0364 3650x59 0x42366 367 368#------------------------------------------------------------------------------369# SBC370#------------------------------------------------------------------------------371# CHECK: sbcs r4, r3372 3730x9c 0x41374 375 376#------------------------------------------------------------------------------377# SETEND378#------------------------------------------------------------------------------379# CHECK: setend be380# CHECK: setend le381 3820x58 0xb63830x50 0xb6384 385#------------------------------------------------------------------------------386# STM387#------------------------------------------------------------------------------388# CHECK: stm r1!, {r2, r6}389# CHECK: stm r1!, {r1, r2, r3, r7}390 3910x44 0xc13920x8e 0xc1393 394 395#------------------------------------------------------------------------------396# STR (immediate)397#------------------------------------------------------------------------------398# CHECK: str r2, [r7]399# CHECK: str r2, [r7]400# CHECK: str r5, [r1, #4]401# CHECK: str r3, [r7, #124]402# CHECK: str r2, [sp]403# CHECK: str r3, [sp]404# CHECK: str r4, [sp, #20]405# CHECK: str r5, [sp, #1020]406 4070x3a 0x604080x3a 0x604090x4d 0x604100xfb 0x674110x00 0x924120x00 0x934130x05 0x944140xff 0x95415 416 417#------------------------------------------------------------------------------418# STR (register)419#------------------------------------------------------------------------------420# CHECK: str r2, [r7, r3]421 4220xfa 0x50423 424 425#------------------------------------------------------------------------------426# STRB (immediate)427#------------------------------------------------------------------------------428# CHECK: strb r4, [r3]429# CHECK: strb r5, [r6]430# CHECK: strb r6, [r7, #31]431 4320x1c 0x704330x35 0x704340xfe 0x77435 436 437#------------------------------------------------------------------------------438# STRB (register)439#------------------------------------------------------------------------------440# CHECK: strb r6, [r4, r5]441 4420x66 0x55443 444 445#------------------------------------------------------------------------------446# STRH (immediate)447#------------------------------------------------------------------------------448# CHECK: strh r3, [r3]449# CHECK: strh r4, [r6, #2]450# CHECK: strh r5, [r7, #62]451 4520x1b 0x804530x74 0x804540xfd 0x87455 456 457#------------------------------------------------------------------------------458# STRH (register)459#------------------------------------------------------------------------------460# CHECK: strh r6, [r2, r6]461 4620x96 0x53463 464 465#------------------------------------------------------------------------------466# SUB (immediate)467#------------------------------------------------------------------------------468# CHECK: subs r1, r2, #3469# CHECK: subs r2, #3470# CHECK: subs r2, #8471 4720xd1 0x1e4730x03 0x3a4740x08 0x3a475 476#------------------------------------------------------------------------------477# SUB (register)478#------------------------------------------------------------------------------479# CHECK: subs r1, r2, r3480 4810xd1 0x1a482 483#------------------------------------------------------------------------------484# SUB (SP minus immediate)485#------------------------------------------------------------------------------486# CHECK: sub sp, #12487# CHECK: sub sp, #508488 4890x83 0xb04900xff 0xb0491 492#------------------------------------------------------------------------------493# SVC494#------------------------------------------------------------------------------495# CHECK: svc #0496# CHECK: svc #255497 4980x00 0xdf4990xff 0xdf500 501 502#------------------------------------------------------------------------------503# SXTB/SXTH504#------------------------------------------------------------------------------505# CHECK: sxtb r3, r5506# CHECK: sxth r3, r5507 5080x6b 0xb25090x2b 0xb2510 511 512#------------------------------------------------------------------------------513# TST514#------------------------------------------------------------------------------515# CHECK: tst r6, r1516 5170x0e 0x42518 519 520#------------------------------------------------------------------------------521# UXTB/UXTH522#------------------------------------------------------------------------------523# CHECK: uxtb r7, r2524# CHECK: uxth r1, r4525 5260xd7 0xb25270xa1 0xb2528