1*9880d681SAndroid Build Coastguard Worker# RUN: not llvm-mc -disassemble %s -triple=thumbv7em 2>&1 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker# RUN: not llvm-mc -disassemble %s -triple=thumbv7m 2>&1 | FileCheck --check-prefix=CHECK --check-prefix=CHECK-V7M %s 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker#------------------------------------------------------------------------------ 5*9880d681SAndroid Build Coastguard Worker# Undefined encodings for mrs 6*9880d681SAndroid Build Coastguard Worker#------------------------------------------------------------------------------ 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker# invalid SYSm 9*9880d681SAndroid Build Coastguard Worker# CHECK: warning: invalid instruction encoding 10*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0xef 0xf3 0x80 0x80] 11*9880d681SAndroid Build Coastguard Worker[0xef 0xf3 0x80 0x80] 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker#------------------------------------------------------------------------------ 14*9880d681SAndroid Build Coastguard Worker# Undefined encodings for msr 15*9880d681SAndroid Build Coastguard Worker#------------------------------------------------------------------------------ 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker# invalid mask = '00' 18*9880d681SAndroid Build Coastguard Worker# CHECK: warning: potentially undefined instruction encoding 19*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x80 0xf3 0x00 0x80] 20*9880d681SAndroid Build Coastguard Worker[0x80 0xf3 0x00 0x80] 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker# invalid mask = '11' with SYSm not in {0..3} 23*9880d681SAndroid Build Coastguard Worker# CHECK: warning: potentially undefined instruction encoding 24*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x80 0xf3 0x05 0x8c] 25*9880d681SAndroid Build Coastguard Worker[0x80 0xf3 0x05 0x8c] 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Worker# invalid mask = '01' (ThumbV7M does not have the DSP extension) 28*9880d681SAndroid Build Coastguard Worker# CHECK-V7M: warning: potentially undefined instruction encoding 29*9880d681SAndroid Build Coastguard Worker# CHECK-V7M-NEXT: [0x80 0xf3 0x00 0x84] 30*9880d681SAndroid Build Coastguard Worker[0x80 0xf3 0x00 0x84] 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Worker# invalid SYSm 33*9880d681SAndroid Build Coastguard Worker# CHECK: warning: invalid instruction encoding 34*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0x80 0xf3 0x80 0x88] 35*9880d681SAndroid Build Coastguard Worker[0x80 0xf3 0x80 0x88] 36