brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.0 KiB · 7c0c19a Raw
142 lines · plain
1// RUN: llvm-mc -triple thumbv8.1m.main-arm-none-eabi -mattr=+pacbti %s -show-encoding -o - | FileCheck %s --check-prefixes=CHECK,CHECK-PACBTI2// RUN: not llvm-mc -triple thumbv8.1m.main-arm-none-eabi -mattr=-pacbti %s -show-encoding -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-NOPACBTI3// RUN: not llvm-mc -triple thumbv7m-arm-none-eabi %s -show-encoding -o - 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-NOPACBTI4 5// Non Hint Space instructions and system regs6 7// CHECK-PACBTI: autg	r0, r1, r2             @ encoding: [0x51,0xfb,0x02,0x0f]8// CHECK-NOPACBTI: error: instruction requires: pacbti9autg r0, r1, r210// CHECK-PACBTI: autg	r12, lr, sp            @ encoding: [0x5e,0xfb,0x0d,0xcf]11// CHECK-NOPACBTI: error: instruction requires: pacbti12autg ip, lr, sp13// CHECK-PACBTI: bxaut	r0, r1, r2             @ encoding: [0x51,0xfb,0x12,0x0f]14// CHECK-NOPACBTI: error: instruction requires: pacbti15bxaut r0, r1, r216 17// CHECK-PACBTI: pacg r0, r1, r2               @ encoding: [0x61,0xfb,0x02,0xf0]18// CHECK-NOPACBTI: error: instruction requires: pacbti19pacg r0, r1, r220// CHECK-PACBTI: pacg r12, lr, sp              @ encoding: [0x6e,0xfb,0x0d,0xfc]21// CHECK-NOPACBTI: error: instruction requires: pacbti22pacg ip, lr, sp23 24// CHECK-PACBTI: msr	pac_key_p_0, r0           @ encoding: [0x80,0xf3,0x20,0x88]25// CHECK-NOPACBTI: error: invalid operand for instruction26msr pac_key_p_0, r027// CHECK-PACBTI: msr	pac_key_p_1, r0           @ encoding: [0x80,0xf3,0x21,0x88]28// CHECK-NOPACBTI: error: invalid operand for instruction29msr pac_key_p_1, r030// CHECK-PACBTI: msr	pac_key_p_2, r0           @ encoding: [0x80,0xf3,0x22,0x88]31// CHECK-NOPACBTI: error: invalid operand for instruction32msr pac_key_p_2, r033// CHECK-PACBTI: msr	pac_key_p_3, r0           @ encoding: [0x80,0xf3,0x23,0x88]34// CHECK-NOPACBTI: error: invalid operand for instruction35msr pac_key_p_3, r036// CHECK-PACBTI: msr	pac_key_u_0, r0           @ encoding: [0x80,0xf3,0x24,0x88]37// CHECK-NOPACBTI: error: invalid operand for instruction38msr pac_key_u_0, r039// CHECK-PACBTI: msr	pac_key_u_1, r0           @ encoding: [0x80,0xf3,0x25,0x88]40// CHECK-NOPACBTI: error: invalid operand for instruction41msr pac_key_u_1, r042// CHECK-PACBTI: msr	pac_key_u_2, r0           @ encoding: [0x80,0xf3,0x26,0x88]43// CHECK-NOPACBTI: error: invalid operand for instruction44msr pac_key_u_2, r045// CHECK-PACBTI: msr	pac_key_u_3, r0           @ encoding: [0x80,0xf3,0x27,0x88]46// CHECK-NOPACBTI: error: invalid operand for instruction47msr pac_key_u_3, r048// CHECK-PACBTI: msr	pac_key_p_0_ns, r0        @ encoding: [0x80,0xf3,0xa0,0x88]49// CHECK-NOPACBTI: error: invalid operand for instruction50msr pac_key_p_0_ns, r051// CHECK-PACBTI: msr	pac_key_p_1_ns, r0        @ encoding: [0x80,0xf3,0xa1,0x88]52// CHECK-NOPACBTI: error: invalid operand for instruction53msr pac_key_p_1_ns, r054// CHECK-PACBTI: msr	pac_key_p_2_ns, r0        @ encoding: [0x80,0xf3,0xa2,0x88]55// CHECK-NOPACBTI: error: invalid operand for instruction56msr pac_key_p_2_ns, r057// CHECK-PACBTI: msr	pac_key_p_3_ns, r0        @ encoding: [0x80,0xf3,0xa3,0x88]58// CHECK-NOPACBTI: error: invalid operand for instruction59msr pac_key_p_3_ns, r060// CHECK-PACBTI: msr	pac_key_u_0_ns, r0        @ encoding: [0x80,0xf3,0xa4,0x88]61// CHECK-NOPACBTI: error: invalid operand for instruction62msr pac_key_u_0_ns, r063// CHECK-PACBTI: msr	pac_key_u_1_ns, r0        @ encoding: [0x80,0xf3,0xa5,0x88]64// CHECK-NOPACBTI: error: invalid operand for instruction65msr pac_key_u_1_ns, r066// CHECK-PACBTI: msr	pac_key_u_2_ns, r0        @ encoding: [0x80,0xf3,0xa6,0x88]67// CHECK-NOPACBTI: error: invalid operand for instruction68msr pac_key_u_2_ns, r069// CHECK-PACBTI: msr	pac_key_u_3_ns, r0        @ encoding: [0x80,0xf3,0xa7,0x88]70// CHECK-NOPACBTI: error: invalid operand for instruction71msr pac_key_u_3_ns, r072 73// CHECK-PACBTI: mrs	r0, pac_key_p_0           @ encoding: [0xef,0xf3,0x20,0x80]74// CHECK-NOPACBTI: error: invalid operand for instruction75mrs r0, pac_key_p_076// CHECK-PACBTI: mrs	r0, pac_key_p_1           @ encoding: [0xef,0xf3,0x21,0x80]77// CHECK-NOPACBTI: error: invalid operand for instruction78mrs r0, pac_key_p_179// CHECK-PACBTI: mrs	r0, pac_key_p_2           @ encoding: [0xef,0xf3,0x22,0x80]80// CHECK-NOPACBTI: error: invalid operand for instruction81mrs r0, pac_key_p_282// CHECK-PACBTI: mrs	r0, pac_key_p_3           @ encoding: [0xef,0xf3,0x23,0x80]83// CHECK-NOPACBTI: error: invalid operand for instruction84mrs r0, pac_key_p_385// CHECK-PACBTI: mrs	r0, pac_key_u_0           @ encoding: [0xef,0xf3,0x24,0x80]86// CHECK-NOPACBTI: error: invalid operand for instruction87mrs r0, pac_key_u_088// CHECK-PACBTI: mrs	r0, pac_key_u_1           @ encoding: [0xef,0xf3,0x25,0x80]89// CHECK-NOPACBTI: error: invalid operand for instruction90mrs r0, pac_key_u_191// CHECK-PACBTI: mrs	r0, pac_key_u_2           @ encoding: [0xef,0xf3,0x26,0x80]92// CHECK-NOPACBTI: error: invalid operand for instruction93mrs r0, pac_key_u_294// CHECK-PACBTI: mrs	r0, pac_key_u_3           @ encoding: [0xef,0xf3,0x27,0x80]95// CHECK-NOPACBTI: error: invalid operand for instruction96mrs r0, pac_key_u_397// CHECK-PACBTI: mrs	r0, pac_key_p_0_ns        @ encoding: [0xef,0xf3,0xa0,0x80]98// CHECK-NOPACBTI: error: invalid operand for instruction99mrs r0, pac_key_p_0_ns100// CHECK-PACBTI: mrs	r0, pac_key_p_1_ns        @ encoding: [0xef,0xf3,0xa1,0x80]101// CHECK-NOPACBTI: error: invalid operand for instruction102mrs r0, pac_key_p_1_ns103// CHECK-PACBTI: mrs	r0, pac_key_p_2_ns        @ encoding: [0xef,0xf3,0xa2,0x80]104// CHECK-NOPACBTI: error: invalid operand for instruction105mrs r0, pac_key_p_2_ns106// CHECK-PACBTI: mrs	r0, pac_key_p_3_ns        @ encoding: [0xef,0xf3,0xa3,0x80]107// CHECK-NOPACBTI: error: invalid operand for instruction108mrs r0, pac_key_p_3_ns109// CHECK-PACBTI: mrs	r0, pac_key_u_0_ns        @ encoding: [0xef,0xf3,0xa4,0x80]110// CHECK-NOPACBTI: error: invalid operand for instruction111mrs r0, pac_key_u_0_ns112// CHECK-PACBTI: mrs	r0, pac_key_u_1_ns        @ encoding: [0xef,0xf3,0xa5,0x80]113// CHECK-NOPACBTI: error: invalid operand for instruction114mrs r0, pac_key_u_1_ns115// CHECK-PACBTI: mrs	r0, pac_key_u_2_ns        @ encoding: [0xef,0xf3,0xa6,0x80]116// CHECK-NOPACBTI: error: invalid operand for instruction117mrs r0, pac_key_u_2_ns118// CHECK-PACBTI: mrs	r0, pac_key_u_3_ns        @ encoding: [0xef,0xf3,0xa7,0x80]119// CHECK-NOPACBTI: error: invalid operand for instruction120mrs r0, pac_key_u_3_ns121 122// Hint space instructions - deliberately at the bottom of the file as the123// error's are emitted first.124 125// CHECK: aut	r12, lr, sp             @ encoding: [0xaf,0xf3,0x2d,0x80]126aut ip, lr, sp127// CHECK: aut	r12,lr,sp               @ encoding: [0xaf,0xf3,0x2d,0x80]128hint.w #45129 130// CHECK: bti	                        @ encoding: [0xaf,0xf3,0x0f,0x80]131bti132// CHECK: bti	                        @ encoding: [0xaf,0xf3,0x0f,0x80]133hint.w #15134 135// CHECK: pac r12, lr, sp               @ encoding: [0xaf,0xf3,0x1d,0x80]136pac ip, lr, sp137// CHECK: pac r12,lr,sp                 @ encoding: [0xaf,0xf3,0x1d,0x80]138hint.w #29139// CHECK: pacbti r12, lr, sp            @ encoding: [0xaf,0xf3,0x0d,0x80]140pacbti ip, lr, sp141// CHECK: pacbti r12,lr,sp              @ encoding: [0xaf,0xf3,0x0d,0x80]142hint.w #13