205 lines · plain
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+gcs < %s \2// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST3// RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \4// RUN: | FileCheck %s --check-prefixes=CHECK-ERROR5// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+gcs < %s \6// RUN: | llvm-objdump -d --mattr=+gcs --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST7// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+gcs < %s \8// RUN: | llvm-objdump -d --mattr=-gcs --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-UNKNOWN9// Disassemble encoding and check the re-encoding (-show-encoding) matches.10// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+gcs < %s \11// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \12// RUN: | llvm-mc -triple=aarch64 -mattr=+gcs -disassemble -show-encoding \13// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST14 15 16msr GCSCR_EL1, x017// CHECK-INST: msr GCSCR_EL1, x018// CHECK-ENCODING: encoding: [0x00,0x25,0x18,0xd5]19// CHECK-UNKNOWN: d5182500 msr GCSCR_EL1, x020 21mrs x1, GCSCR_EL122// CHECK-INST: mrs x1, GCSCR_EL123// CHECK-ENCODING: encoding: [0x01,0x25,0x38,0xd5]24// CHECK-UNKNOWN: d5382501 mrs x1, GCSCR_EL125 26msr GCSPR_EL1, x227// CHECK-INST: msr GCSPR_EL1, x228// CHECK-ENCODING: encoding: [0x22,0x25,0x18,0xd5]29// CHECK-UNKNOWN: d5182522 msr GCSPR_EL1, x230 31mrs x3, GCSPR_EL132// CHECK-INST: mrs x3, GCSPR_EL133// CHECK-ENCODING: encoding: [0x23,0x25,0x38,0xd5]34// CHECK-UNKNOWN: d5382523 mrs x3, GCSPR_EL135 36msr GCSCRE0_EL1, x437// CHECK-INST: msr GCSCRE0_EL1, x438// CHECK-ENCODING: encoding: [0x44,0x25,0x18,0xd5]39// CHECK-UNKNOWN: d5182544 msr GCSCRE0_EL1, x440 41mrs x5, GCSCRE0_EL142// CHECK-INST: mrs x5, GCSCRE0_EL143// CHECK-ENCODING: encoding: [0x45,0x25,0x38,0xd5]44// CHECK-UNKNOWN: d5382545 mrs x5, GCSCRE0_EL145 46msr GCSPR_EL0, x647// CHECK-INST: msr GCSPR_EL0, x648// CHECK-ENCODING: encoding: [0x26,0x25,0x1b,0xd5]49// CHECK-UNKNOWN: d51b2526 msr GCSPR_EL0, x650 51mrs x7, GCSPR_EL052// CHECK-INST: mrs x7, GCSPR_EL053// CHECK-ENCODING: encoding: [0x27,0x25,0x3b,0xd5]54// CHECK-UNKNOWN: d53b2527 mrs x7, GCSPR_EL055 56msr GCSCR_EL2, x1057// CHECK-INST: msr GCSCR_EL2, x1058// CHECK-ENCODING: encoding: [0x0a,0x25,0x1c,0xd5]59// CHECK-UNKNOWN: d51c250a msr GCSCR_EL2, x1060 61mrs x11, GCSCR_EL262// CHECK-INST: mrs x11, GCSCR_EL263// CHECK-ENCODING: encoding: [0x0b,0x25,0x3c,0xd5]64// CHECK-UNKNOWN: d53c250b mrs x11, GCSCR_EL265 66msr GCSPR_EL2, x1267// CHECK-INST: msr GCSPR_EL2, x1268// CHECK-ENCODING: encoding: [0x2c,0x25,0x1c,0xd5]69// CHECK-UNKNOWN: d51c252c msr GCSPR_EL2, x1270 71mrs x13, GCSPR_EL272// CHECK-INST: mrs x13, GCSPR_EL273// CHECK-ENCODING: encoding: [0x2d,0x25,0x3c,0xd5]74// CHECK-UNKNOWN: d53c252d mrs x13, GCSPR_EL275 76msr GCSCR_EL12, x1477// CHECK-INST: msr GCSCR_EL12, x1478// CHECK-ENCODING: encoding: [0x0e,0x25,0x1d,0xd5]79// CHECK-UNKNOWN: d51d250e msr GCSCR_EL12, x1480 81mrs x15, GCSCR_EL1282// CHECK-INST: mrs x15, GCSCR_EL1283// CHECK-ENCODING: encoding: [0x0f,0x25,0x3d,0xd5]84// CHECK-UNKNOWN: d53d250f mrs x15, GCSCR_EL1285 86msr GCSPR_EL12, x1687// CHECK-INST: msr GCSPR_EL12, x1688// CHECK-ENCODING: encoding: [0x30,0x25,0x1d,0xd5]89// CHECK-UNKNOWN: d51d2530 msr GCSPR_EL12, x1690 91mrs x17, GCSPR_EL1292// CHECK-INST: mrs x17, GCSPR_EL1293// CHECK-ENCODING: encoding: [0x31,0x25,0x3d,0xd5]94// CHECK-UNKNOWN: d53d2531 mrs x17, GCSPR_EL1295 96msr GCSCR_EL3, x1897// CHECK-INST: msr GCSCR_EL3, x1898// CHECK-ENCODING: encoding: [0x12,0x25,0x1e,0xd5]99// CHECK-UNKNOWN: d51e2512 msr GCSCR_EL3, x18100 101mrs x19, GCSCR_EL3102// CHECK-INST: mrs x19, GCSCR_EL3103// CHECK-ENCODING: encoding: [0x13,0x25,0x3e,0xd5]104// CHECK-UNKNOWN: d53e2513 mrs x19, GCSCR_EL3105 106msr GCSPR_EL3, x20107// CHECK-INST: msr GCSPR_EL3, x20108// CHECK-ENCODING: encoding: [0x34,0x25,0x1e,0xd5]109// CHECK-UNKNOWN: d51e2534 msr GCSPR_EL3, x20110 111mrs x21, GCSPR_EL3112// CHECK-INST: mrs x21, GCSPR_EL3113// CHECK-ENCODING: encoding: [0x35,0x25,0x3e,0xd5]114// CHECK-UNKNOWN: d53e2535 mrs x21, GCSPR_EL3115 116gcsss1 x21117// CHECK-INST: gcsss1 x21118// CHECK-ENCODING: encoding: [0x55,0x77,0x0b,0xd5]119// CHECK-ERROR: error: instruction requires: gcs120// CHECK-UNKNOWN: d50b7755 sys #3, c7, c7, #2, x21121 122gcsss2 x22123// CHECK-INST: gcsss2 x22124// CHECK-ENCODING: encoding: [0x76,0x77,0x2b,0xd5]125// CHECK-ERROR: error: instruction requires: gcs126// CHECK-UNKNOWN: d52b7776 sysl x22, #3, c7, c7, #3127 128gcspushm x25129// CHECK-INST: gcspushm x25130// CHECK-ENCODING: encoding: [0x19,0x77,0x0b,0xd5]131// CHECK-ERROR: error: instruction requires: gcs132// CHECK-UNKNOWN: d50b7719 sys #3, c7, c7, #0, x25133 134gcspopm135// CHECK-INST: gcspopm136// CHECK-ENCODING: encoding: [0x3f,0x77,0x2b,0xd5]137// CHECK-ERROR: error: instruction requires: gcs138// CHECK-UNKNOWN: d52b773f sysl xzr, #3, c7, c7, #1139 140gcspopm xzr141// CHECK-INST: gcspopm142// CHECK-ENCODING: encoding: [0x3f,0x77,0x2b,0xd5]143// CHECK-ERROR: error: instruction requires: gcs144// CHECK-UNKNOWN: d52b773f sysl xzr, #3, c7, c7, #1145 146gcspopm x25147// CHECK-INST: gcspopm x25148// CHECK-ENCODING: encoding: [0x39,0x77,0x2b,0xd5]149// CHECK-ERROR: error: instruction requires: gcs150// CHECK-UNKNOWN: d52b7739 sysl x25, #3, c7, c7, #1151 152gcsstr x26, [x27]153// CHECK-INST: gcsstr x26, [x27]154// CHECK-ENCODING: encoding: [0x7a,0x0f,0x1f,0xd9]155// CHECK-ERROR: error: instruction requires: gcs156// CHECK-UNKNOWN: d91f0f7a <unknown>157 158gcsstr x26, [sp]159// CHECK-INST: gcsstr x26, [sp]160// CHECK-ENCODING: encoding: [0xfa,0x0f,0x1f,0xd9]161// CHECK-ERROR: error: instruction requires: gcs162// CHECK-UNKNOWN: d91f0ffa <unknown>163 164gcssttr x26, [x27]165// CHECK-INST: gcssttr x26, [x27]166// CHECK-ENCODING: encoding: [0x7a,0x1f,0x1f,0xd9]167// CHECK-ERROR: error: instruction requires: gcs168// CHECK-UNKNOWN: d91f1f7a <unknown>169 170gcssttr x26, [sp]171// CHECK-INST: gcssttr x26, [sp]172// CHECK-ENCODING: encoding: [0xfa,0x1f,0x1f,0xd9]173// CHECK-ERROR: error: instruction requires: gcs174// CHECK-UNKNOWN: d91f1ffa <unknown>175 176gcspushx177// CHECK-INST: gcspushx178// CHECK-ENCODING: encoding: [0x9f,0x77,0x08,0xd5]179// CHECK-ERROR: error: instruction requires: gcs180// CHECK-UNKNOWN: d508779f sys #0, c7, c7, #4181 182gcspopcx183// CHECK-INST: gcspopcx184// CHECK-ENCODING: encoding: [0xbf,0x77,0x08,0xd5]185// CHECK-ERROR: error: instruction requires: gcs186// CHECK-UNKNOWN: d50877bf sys #0, c7, c7, #5187 188gcspopx189// CHECK-INST: gcspopx190// CHECK-ENCODING: encoding: [0xdf,0x77,0x08,0xd5]191// CHECK-ERROR: error: instruction requires: gcs192// CHECK-UNKNOWN: d50877df sys #0, c7, c7, #6193 194gcsb dsync195// CHECK-INST: gcsb dsync196// CHECK-ENCODING: encoding: [0x7f,0x22,0x03,0xd5]197// CHECK-UNKNOWN: d503227f hint #19198// CHECK-ERROR: hint #19 // encoding: [0x7f,0x22,0x03,0xd5]199 200hint #19201// CHECK-INST: gcsb dsync202// CHECK-ENCODING: encoding: [0x7f,0x22,0x03,0xd5]203// CHECK-UNKNOWN: d503227f hint #19204// CHECK-ERROR: hint #19 // encoding: [0x7f,0x22,0x03,0xd5]205