1# RUN: not llvm-mc -disassemble -triple=thumbv8m.main -mattr=+cdecp0 -mattr=+cdecp1 < %s 2>%t | FileCheck %s 2# RUN: FileCheck <%t --check-prefix=ERROR %s 3 4# GCP instructions 5 6# CHECK: mrc p3, #1, r3, c15, c15, #5 7[0x3f,0xee,0xbf,0x33] 8# CHECK-NEXT: mcr2 p3, #2, r2, c7, c11, #7 9[0x47,0xfe,0xfb,0x23] 10 11# Predication 12 13# CHECK: itte eq 14[0x06,0xbf] 15itte eq 16# CHECK-NEXT: cx1aeq p0, r3, #8191 17[0x3f,0xfe,0xbf,0x30] 18# CHECK-NEXT: cx2aeq p0, r2, r3, #123 19[0x43,0xfe,0xbb,0x20] 20# CHECK-NEXT: cx3ane p0, r1, r5, r7, #63 21[0xf5,0xfe,0xb1,0x70] 22# CHECK-NEXT: itte eq 23[0x06,0xbf] 24# CHECK-NEXT: cx1daeq p0, r0, r1, #8191 25[0x3f,0xfe,0xff,0x00] 26# CHECK-NEXT: cx2daeq p0, r0, r1, r3, #123 27[0x43,0xfe,0xfb,0x00] 28# CHECK-NEXT: cx3dane p0, r0, r1, r5, r7, #63 29[0xf5,0xfe,0xf0,0x70] 30 31# CX1 32 33# CHECK-NEXT: cx1 p0, r3, #8191 34[0x3f,0xee,0xbf,0x30] 35# CHECK-NEXT: cx1a p1, r2, #0 36[0x00,0xfe,0x00,0x21] 37# CHECK-NEXT: cx1d p0, r4, r5, #1234 38[0x09,0xee,0xd2,0x40] 39# CHECK-NEXT: cx1da p1, r2, r3, #1234 40[0x09,0xfe,0xd2,0x21] 41# CHECK-NEXT: cx1 p0, apsr_nzcv, #8191 42[0x3f,0xee,0xbf,0xf0] 43 44# ERROR: [[@LINE+2]]:{{[0-9]+}}: warning: potentially undefined instruction encoding 45# CHECK-NEXT: cx1 p0, sp, #8191 46[0x3f,0xee,0xbf,0xd0] 47# ERROR: [[@LINE+2]]:{{[0-9]+}}: warning: potentially undefined instruction encoding 48# CHECK-NEXT: cx1d p0, r12, sp, #1234 49[0x09,0xee,0xd2,0xc0] 50# ERROR: [[@LINE+2]]:{{[0-9]+}}: warning: potentially undefined instruction encoding 51# CHECK-NEXT: cx1d p0, r2, r3, #1234 52[0x09,0xee,0xd2,0x30] 53 54# CX2 55 56# CHECK-NEXT: cx2 p0, r3, r7, #0 57[0x47,0xee,0x00,0x30] 58# CHECK-NEXT: cx2a p0, r1, r4, #511 59[0x74,0xfe,0xbf,0x10] 60# CHECK-NEXT: cx2d p0, r2, r3, r1, #123 61[0x41,0xee,0xfb,0x20] 62# CHECK-NEXT: cx2da p0, r2, r3, r7, #123 63[0x47,0xfe,0xfb,0x20] 64# CHECK-NEXT: cx2da p1, r10, r11, apsr_nzcv, #123 65[0x4f,0xfe,0xfb,0xa1] 66 67# ERROR: [[@LINE+2]]:{{[0-9]+}}: warning: potentially undefined instruction encoding 68# CHECK-NEXT: cx2a p0, r1, sp, #511 69[0x7d,0xfe,0xbf,0x10] 70# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 71[0x4f,0xfe,0xfb,0xe1] 72 73# CX3 74 75# CHECK-NEXT: cx3 p0, r1, r2, r3, #0 76[0x82,0xee,0x01,0x30] 77# CHECK-NEXT: cx3a p0, r1, r5, r7, #63 78[0xf5,0xfe,0xb1,0x70] 79# CHECK-NEXT: cx3d p1, r0, r1, r7, r1, #12 80[0x97,0xee,0xc0,0x11] 81# CHECK-NEXT: cx3da p0, r8, r9, r2, r3, #12 82[0x92,0xfe,0xc8,0x30] 83# CHECK-NEXT: cx3 p1, apsr_nzcv, r7, apsr_nzcv, #12 84[0x97,0xee,0x8f,0xf1] 85# CHECK-NEXT: cx3d p0, r8, r9, apsr_nzcv, apsr_nzcv, #12 86[0x9f,0xee,0xc8,0xf0] 87 88# ERROR: [[@LINE+2]]:{{[0-9]+}}: warning: potentially undefined instruction encoding 89# CHECK-NEXT: cx3 p0, r1, r2, sp, #0 90[0x82,0xee,0x01,0xd0] 91# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 92[0x9f,0xee,0xce,0xf0] 93 94# VCX1 95 96# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 97[0x69,0xec,0x92,0x50] 98# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 99[0x6f,0xfc,0xbf,0x31] 100# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 101[0x20,0xed,0x00,0x00] 102# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 103[0x2f,0xfd,0xbf,0x31] 104# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 105[0x29,0xec,0xd2,0x20] 106# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 107[0x2f,0xfd,0xff,0xa1] 108 109# VCX2 110 111# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 112[0x33,0xec,0x2f,0x00] 113# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 114[0x7f,0xfc,0xb0,0x00] 115# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 116[0x30,0xed,0x2f,0x00] 117# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 118[0x3f,0xfd,0xb6,0x10] 119# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 120[0x3e,0xed,0xfe,0x01] 121# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 122[0x3f,0xfd,0xde,0x61] 123 124# VCX3 125 126# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 127[0x8f,0xec,0x90,0x00] 128# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 129[0xf8,0xfc,0xb5,0x01] 130# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 131[0x8f,0xed,0x87,0x00] 132# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 133[0xb6,0xfd,0xb6,0x11] 134# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 135[0xae,0xed,0xc0,0x00] 136# ERROR: [[@LINE+1]]:{{[0-9]+}}: warning: invalid instruction encoding 137[0xbe,0xfd,0x7e,0x61] 138