141 lines · plain
1// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+cmh,+lscp < %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-prefix=CHECK-ERROR5// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+cmh,+lscp < %s \6// RUN: | llvm-objdump -d --mattr=+cmh,+lscp --no-print-imm-hex - | FileCheck %s --check-prefix=CHECK-INST7// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+cmh,+lscp < %s \8// RUN: | llvm-objdump -d --mattr=-cmh,-lscp --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=+cmh,+lscp < %s \11// RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \12// RUN: | llvm-mc -triple=aarch64 -mattr=+cmh,+lscp -disassemble -show-encoding \13// RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST14 15// Armv9.7-A Contention Management Hints (FEAT_CMH).16 17shuh18// CHECK-INST: shuh19// CHECK-ENCODING: encoding: [0x5f,0x26,0x03,0xd5]20// CHECK-ERROR: error: instruction requires: cmh21// CHECK-UNKNOWN: d503265f hint #5022 23shuh ph24// CHECK-INST: shuh ph25// CHECK-ENCODING: encoding: [0x7f,0x26,0x03,0xd5]26// CHECK-ERROR: error: instruction requires: cmh27// CHECK-UNKNOWN: d503267f hint #5128 29stcph30// CHECK-INST: stcph31// CHECK-ENCODING: [0x9f,0x26,0x03,0xd5]32// CHECK-ERROR: error: instruction requires: cmh33// CHECK-UNKNOWN: d503269f hint #5234 35ldap x0, x1, [x2]36// CHECK-INST: ldap x0, x1, [x2]37// CHECK-ENCODING: encoding: [0x40,0x58,0x41,0xd9]38// CHECK-ERROR: error: instruction requires: lscp39// CHECK-UNKNOWN: d9415840 <unknown>40 41ldap x0, x1, [x2, #0]42// CHECK-INST: ldap x0, x1, [x2]43// CHECK-ENCODING: encoding: [0x40,0x58,0x41,0xd9]44// CHECK-ERROR: error: instruction requires: lscp45// CHECK-UNKNOWN: d9415840 <unknown>46 47ldapp x0, x1, [x2]48// CHECK-INST: ldapp x0, x1, [x2]49// CHECK-ENCODING: encoding: [0x40,0x78,0x41,0xd9]50// CHECK-ERROR: error: instruction requires: lscp51// CHECK-UNKNOWN: d9417840 <unknown>52 53ldapp x0, x1, [x2, #0]54// CHECK-INST: ldapp x0, x1, [x2]55// CHECK-ENCODING: encoding: [0x40,0x78,0x41,0xd9]56// CHECK-ERROR: error: instruction requires: lscp57// CHECK-UNKNOWN: d9417840 <unknown>58 59stlp x0, x1, [x2, #0]60// CHECK-INST: stlp x0, x1, [x2]61// CHECK-ENCODING: encoding: [0x40,0x58,0x01,0xd9]62// CHECK-ERROR: error: instruction requires: lscp63// CHECK-UNKNOWN: d9015840 <unknown>64 65stlp x0, x1, [x2]66// CHECK-INST: stlp x0, x1, [x2]67// CHECK-ENCODING: encoding: [0x40,0x58,0x01,0xd9]68// CHECK-ERROR: error: instruction requires: lscp69// CHECK-UNKNOWN: d9015840 <unknown>70 71mrs x3, VTLBID0_EL272// CHECK-INST: mrs x3, VTLBID0_EL273// CHECK-ENCODING: encoding: [0x03,0x28,0x3c,0xd5]74// CHECK-UNKNOWN: d53c280375mrs x3, VTLBID1_EL276// CHECK-INST: mrs x3, VTLBID1_EL277// CHECK-ENCODING: encoding: [0x23,0x28,0x3c,0xd5]78// CHECK-UNKNOWN: d53c282379mrs x3, VTLBID2_EL280// CHECK-INST: mrs x3, VTLBID2_EL281// CHECK-ENCODING: encoding: [0x43,0x28,0x3c,0xd5]82// CHECK-UNKNOWN: d53c284383mrs x3, VTLBID3_EL284// CHECK-INST: mrs x3, VTLBID3_EL285// CHECK-ENCODING: encoding: [0x63,0x28,0x3c,0xd5]86// CHECK-UNKNOWN: d53c286387mrs x3, VTLBIDOS0_EL288// CHECK-INST: mrs x3, VTLBIDOS0_EL289// CHECK-ENCODING: encoding: [0x03,0x29,0x3c,0xd5]90// CHECK-UNKNOWN: d53c290391mrs x3, VTLBIDOS1_EL292// CHECK-INST: mrs x3, VTLBIDOS1_EL293// CHECK-ENCODING: encoding: [0x23,0x29,0x3c,0xd5]94// CHECK-UNKNOWN: d53c292395mrs x3, VTLBIDOS2_EL296// CHECK-INST: mrs x3, VTLBIDOS2_EL297// CHECK-ENCODING: encoding: [0x43,0x29,0x3c,0xd5]98// CHECK-UNKNOWN: d53c294399mrs x3, VTLBIDOS3_EL2100// CHECK-INST: mrs x3, VTLBIDOS3_EL2101// CHECK-ENCODING: encoding: [0x63,0x29,0x3c,0xd5]102// CHECK-UNKNOWN: d53c2963103mrs x3, TLBIDIDR_EL1104// CHECK-INST: mrs x3, TLBIDIDR_EL1105// CHECK-ENCODING: encoding: [0xc3,0xa4,0x38,0xd5]106// CHECK-UNKNOWN: d538a4c3107 108msr VTLBID0_EL2, x3109// CHECK-INST: msr VTLBID0_EL2, x3110// CHECK-ENCODING: encoding: [0x03,0x28,0x1c,0xd5]111// CHECK-UNKNOWN: d51c2803112msr VTLBID1_EL2, x3113// CHECK-INST: msr VTLBID1_EL2, x3114// CHECK-ENCODING: encoding: [0x23,0x28,0x1c,0xd5]115// CHECK-UNKNOWN: d51c2823116msr VTLBID2_EL2, x3117// CHECK-INST: msr VTLBID2_EL2, x3118// CHECK-ENCODING: encoding: [0x43,0x28,0x1c,0xd5]119// CHECK-UNKNOWN: d51c2843120msr VTLBID3_EL2, x3121// CHECK-INST: msr VTLBID3_EL2, x3122// CHECK-ENCODING: encoding: [0x63,0x28,0x1c,0xd5]123// CHECK-UNKNOWN: d51c2863124msr VTLBIDOS0_EL2, x3125// CHECK-INST: msr VTLBIDOS0_EL2, x3126// CHECK-ENCODING: encoding: [0x03,0x29,0x1c,0xd5]127// CHECK-UNKNOWN: d51c2903128msr VTLBIDOS1_EL2, x3129// CHECK-INST: msr VTLBIDOS1_EL2, x3130// CHECK-ENCODING: encoding: [0x23,0x29,0x1c,0xd5]131// CHECK-UNKNOWN: d51c2923132msr VTLBIDOS2_EL2, x3133// CHECK-INST: msr VTLBIDOS2_EL2, x3134// CHECK-ENCODING: encoding: [0x43,0x29,0x1c,0xd5]135// CHECK-UNKNOWN: d51c2943136msr VTLBIDOS3_EL2, x3137// CHECK-INST: msr VTLBIDOS3_EL2, x3138// CHECK-ENCODING: encoding: [0x63,0x29,0x1c,0xd5]139// CHECK-UNKNOWN: d51c2963140 141