1*9880d681SAndroid Build Coastguard Worker@ RUN: not llvm-mc -triple thumbv7-apple-ios -filetype=obj %s -o /dev/null 2>&1 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker @ Size: 2 bytes 3*9880d681SAndroid Build Coastguard Worker .thumb_func _f1 4*9880d681SAndroid Build Coastguard Worker .thumb 5*9880d681SAndroid Build Coastguard Worker .globl _f1 6*9880d681SAndroid Build Coastguard Worker_f1: 7*9880d681SAndroid Build Coastguard Worker bx lr 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker @ A misalgined ARM destination. 10*9880d681SAndroid Build Coastguard Worker .arm 11*9880d681SAndroid Build Coastguard Worker .globl _misaligned 12*9880d681SAndroid Build Coastguard Worker_misaligned: 13*9880d681SAndroid Build Coastguard Worker bx lr 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Worker @ And a properly aligned one. 16*9880d681SAndroid Build Coastguard Worker .globl _aligned 17*9880d681SAndroid Build Coastguard Worker .p2align 2 18*9880d681SAndroid Build Coastguard Worker .arm 19*9880d681SAndroid Build Coastguard Worker_aligned: 20*9880d681SAndroid Build Coastguard Worker bx lr 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker @ Align this Thumb function so we can predict the outcome of 23*9880d681SAndroid Build Coastguard Worker @ "Align(PC, 4)" during blx operation. 24*9880d681SAndroid Build Coastguard Worker .thumb_func _test 25*9880d681SAndroid Build Coastguard Worker .thumb 26*9880d681SAndroid Build Coastguard Worker .p2align 2 27*9880d681SAndroid Build Coastguard Worker .globl _test 28*9880d681SAndroid Build Coastguard Worker_test: 29*9880d681SAndroid Build Coastguard Worker blx _misaligned @ PC=0 (mod 4) 30*9880d681SAndroid Build Coastguard Worker movs r0, r0 31*9880d681SAndroid Build Coastguard Worker blx _misaligned @ PC=2 (mod 4) 32*9880d681SAndroid Build Coastguard Worker movs r0, r0 33*9880d681SAndroid Build Coastguard Worker blx _aligned @ PC=0 (mod 4) 34*9880d681SAndroid Build Coastguard Worker movs r0, r0 35*9880d681SAndroid Build Coastguard Worker blx _aligned @ PC=2 (mod 4) 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Worker@ CHECK: error: misaligned ARM call destination 38*9880d681SAndroid Build Coastguard Worker@ CHECK: blx _misaligned 39*9880d681SAndroid Build Coastguard Worker@ CHECK: error: misaligned ARM call destination 40*9880d681SAndroid Build Coastguard Worker@ CHECK: blx _misaligned 41