linux-packaging-mono/external/llvm/test/MC/ARM/t2-modified-immediate-fixup.s
Xamarin Public Jenkins (auto-signing) 279aa8f685 Imported Upstream version 5.18.0.246
Former-commit-id: 0c7ce5b1a7851e13f22acfd379b7f9fb304e4833
2019-01-23 08:21:40 +00:00

46 lines
1.2 KiB
ArmAsm

@ PR28647
@ RUN: llvm-mc < %s -triple=thumbv7a-linux-gnueabi -filetype=obj -o - \
@ RUN: | llvm-objdump --disassemble -triple=thumbv7a-linux-gnueabi - | FileCheck %s
.text
.syntax unified
.balign 2
@ Thumb2 modified immediate instructions
add r1,r1, sym0
sub r1,r2, sym1
cmp r2, sym2
and r4,r4, sym3
orr r8,r9, sym4
teq r1, sym5
tst r1, sym6
sbc r1,r1, sym7
adc r1,r0, sym8
@CHECK: add.w r1, r1, #255
@CHECK: sub.w r1, r2, #16711935
@CHECK: cmp.w r2, #4278255360
@CHECK: and r4, r4, #303174162
@CHECK: orr r8, r9, #2852126720
@CHECK: teq.w r1, #1426063360
@CHECK: tst.w r1, #713031680
@CHECK: sbc r1, r1, #2785280
@CHECK: adc r1, r0, #340
.L1:
sub r3, r3, #.L2 - .L1
.L2:
@CHECK: sub.w r3, r3, #4
@ mov without :upper16: or :lower16: should match mov with modified immediate
mov r1, sym3
@CHECK: mov.w r1, #303174162
@ Modified immediate constants
.equ sym0, 0x000000ff
.equ sym1, 0x00ff00ff
.equ sym2, 0xff00ff00
.equ sym3, 0x12121212
.equ sym4, 0xaa000000
.equ sym5, 0x55000000
.equ sym6, 0x2a800000
.equ sym7, 0x002a8000
.equ sym8, 0x00000154