1*9880d681SAndroid Build Coastguard Worker# RUN: llvm-mc -disassemble -triple thumbv7 2>&1 | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker# XFAIL: * 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker#------------------------------------------------------------------------------ 5*9880d681SAndroid Build Coastguard Worker# Undefined encodings for ldrexd/strexd 6*9880d681SAndroid Build Coastguard Worker#------------------------------------------------------------------------------ 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker# FIXME: "ldrexd r8, r8, [r2]" 9*9880d681SAndroid Build Coastguard Worker# Rt == Rt2 is UNPREDICTABLE 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Worker[0xd2 0xe8 0x7f 0x88] 12*9880d681SAndroid Build Coastguard Worker# CHECK: potentially undefined instruction encoding 13*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0xd2 0xe8 0x7f 0x88] 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Worker# Opcode=2127 Name=t2STREXB Format=ARM_FORMAT_THUMBFRM(25) 16*9880d681SAndroid Build Coastguard Worker# 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 17*9880d681SAndroid Build Coastguard Worker# ------------------------------------------------------------------------------------------------- 18*9880d681SAndroid Build Coastguard Worker# | 1: 1: 1: 0| 1: 0: 0: 0| 1: 1: 0: 0| 0: 0: 1: 0| 1: 0: 0: 0| 1: 1: 1: 1| 0: 1: 0: 0| 0: 0: 1: 0| 19*9880d681SAndroid Build Coastguard Worker# ------------------------------------------------------------------------------------------------- 20*9880d681SAndroid Build Coastguard Worker# 21*9880d681SAndroid Build Coastguard Worker# if d == n || d == t then UNPREDICTABLE 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Worker[0xc2 0xe8 0x42 0x8f] 24*9880d681SAndroid Build Coastguard Worker# CHECK: potentially undefined instruction encoding 25*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0xc2 0xe8 0x42 0x8f] 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Worker# Opcode=2128 Name=t2STREXD Format=ARM_FORMAT_THUMBFRM(25) 28*9880d681SAndroid Build Coastguard Worker# 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 29*9880d681SAndroid Build Coastguard Worker# ------------------------------------------------------------------------------------------------- 30*9880d681SAndroid Build Coastguard Worker# | 1: 1: 1: 0| 1: 0: 0: 0| 1: 1: 0: 0| 0: 0: 1: 0| 0: 1: 1: 1| 1: 0: 0: 0| 0: 1: 1: 1| 1: 0: 0: 0| 31*9880d681SAndroid Build Coastguard Worker# ------------------------------------------------------------------------------------------------- 32*9880d681SAndroid Build Coastguard Worker# 33*9880d681SAndroid Build Coastguard Worker# if d == n || d == t || d == t2 then UNPREDICTABLE 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Worker# FIXME: should be unpredictable since it's "strexd r8, r7, r8, [r2]" 36*9880d681SAndroid Build Coastguard Worker[0xc2 0xe8 0x78 0x78] 37*9880d681SAndroid Build Coastguard Worker# CHECK: potentially undefined instruction encoding 38*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: [0xc2 0xe8 0x78 0x78] 39