From 76b311e8e951b25c076f8ef1d330e504d8525f34 Mon Sep 17 00:00:00 2001 From: Jonathan Thackray Date: Mon, 6 Oct 2025 14:45:50 +0100 Subject: [PATCH] [AArch64][llvm] Remove FeatureMPAM guards for parity with gcc Remove `AArch64::FeatureMPAM` guards from some MPAM system registers, since these system registers are not any under feature guard for gcc. --- .../Target/AArch64/AArch64SystemOperands.td | 2 - llvm/test/MC/AArch64/armv8.4a-mpam.s | 57 ------------------- .../MC/Disassembler/AArch64/armv8.4a-mpam.txt | 39 ++++++------- 3 files changed, 18 insertions(+), 80 deletions(-) diff --git a/llvm/lib/Target/AArch64/AArch64SystemOperands.td b/llvm/lib/Target/AArch64/AArch64SystemOperands.td index 35a96a003d94b..d93ed85b11119 100644 --- a/llvm/lib/Target/AArch64/AArch64SystemOperands.td +++ b/llvm/lib/Target/AArch64/AArch64SystemOperands.td @@ -1885,7 +1885,6 @@ def : ROSysReg<"ERXPFGF_EL1", 0b11, 0b000, 0b0101, 0b0100, 0b100>; // v8.4a MPAM registers // Op0 Op1 CRn CRm Op2 -let Requires = [{ {AArch64::FeatureMPAM} }] in { def : RWSysReg<"MPAMVPMV_EL2", 0b11, 0b100, 0b1010, 0b0100, 0b001>; def : RWSysReg<"MPAMVPM0_EL2", 0b11, 0b100, 0b1010, 0b0110, 0b000>; def : RWSysReg<"MPAMVPM1_EL2", 0b11, 0b100, 0b1010, 0b0110, 0b001>; @@ -1895,7 +1894,6 @@ def : RWSysReg<"MPAMVPM4_EL2", 0b11, 0b100, 0b1010, 0b0110, 0b100>; def : RWSysReg<"MPAMVPM5_EL2", 0b11, 0b100, 0b1010, 0b0110, 0b101>; def : RWSysReg<"MPAMVPM6_EL2", 0b11, 0b100, 0b1010, 0b0110, 0b110>; def : RWSysReg<"MPAMVPM7_EL2", 0b11, 0b100, 0b1010, 0b0110, 0b111>; -} //FeatureMPAM // v8.4a Activity Monitor registers // Op0 Op1 CRn CRm Op2 diff --git a/llvm/test/MC/AArch64/armv8.4a-mpam.s b/llvm/test/MC/AArch64/armv8.4a-mpam.s index cabed93ecae44..7469227974410 100644 --- a/llvm/test/MC/AArch64/armv8.4a-mpam.s +++ b/llvm/test/MC/AArch64/armv8.4a-mpam.s @@ -1,5 +1,4 @@ // RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a < %s 2> %t | FileCheck %s --check-prefix=CHECK -// RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=-v8.4a < %s 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR //------------------------------------------------------------------------------ // ARMV8.4-A MPAM Extensions @@ -74,59 +73,3 @@ mrs x0, MPAMIDR_EL1 //CHECK: mrs x0, MPAMIDR_EL1 // encoding: [0x80,0xa4,0x38,0xd5] -//CHECK-ERROR: error: expected writable system register or pstate -//CHECK-ERROR: msr MPAMVPMV_EL2, x0 -//CHECK-ERROR: ^ -//CHECK-ERROR: error: expected writable system register or pstate -//CHECK-ERROR: msr MPAMVPM0_EL2, x0 -//CHECK-ERROR: ^ -//CHECK-ERROR: error: expected writable system register or pstate -//CHECK-ERROR: msr MPAMVPM1_EL2, x0 -//CHECK-ERROR: ^ -//CHECK-ERROR: error: expected writable system register or pstate -//CHECK-ERROR: msr MPAMVPM2_EL2, x0 -//CHECK-ERROR: ^ -//CHECK-ERROR: error: expected writable system register or pstate -//CHECK-ERROR: msr MPAMVPM3_EL2, x0 -//CHECK-ERROR: ^ -//CHECK-ERROR: error: expected writable system register or pstate -//CHECK-ERROR: msr MPAMVPM4_EL2, x0 -//CHECK-ERROR: ^ -//CHECK-ERROR: error: expected writable system register or pstate -//CHECK-ERROR: msr MPAMVPM5_EL2, x0 -//CHECK-ERROR: ^ -//CHECK-ERROR: error: expected writable system register or pstate -//CHECK-ERROR: msr MPAMVPM6_EL2, x0 -//CHECK-ERROR: ^ -//CHECK-ERROR: error: expected writable system register or pstate -//CHECK-ERROR: msr MPAMVPM7_EL2, x0 -//CHECK-ERROR: ^ - - -//CHECK-ERROR: error: expected readable system register -//CHECK-ERROR: mrs x0, MPAMVPMV_EL2 -//CHECK-ERROR: ^ -//CHECK-ERROR: error: expected readable system register -//CHECK-ERROR: mrs x0, MPAMVPM0_EL2 -//CHECK-ERROR: ^ -//CHECK-ERROR: error: expected readable system register -//CHECK-ERROR: mrs x0, MPAMVPM1_EL2 -//CHECK-ERROR: ^ -//CHECK-ERROR: error: expected readable system register -//CHECK-ERROR: mrs x0, MPAMVPM2_EL2 -//CHECK-ERROR: ^ -//CHECK-ERROR: error: expected readable system register -//CHECK-ERROR: mrs x0, MPAMVPM3_EL2 -//CHECK-ERROR: ^ -//CHECK-ERROR: error: expected readable system register -//CHECK-ERROR: mrs x0, MPAMVPM4_EL2 -//CHECK-ERROR: ^ -//CHECK-ERROR: error: expected readable system register -//CHECK-ERROR: mrs x0, MPAMVPM5_EL2 -//CHECK-ERROR: ^ -//CHECK-ERROR: error: expected readable system register -//CHECK-ERROR: mrs x0, MPAMVPM6_EL2 -//CHECK-ERROR: ^ -//CHECK-ERROR: error: expected readable system register -//CHECK-ERROR: mrs x0, MPAMVPM7_EL2 -//CHECK-ERROR: ^ diff --git a/llvm/test/MC/Disassembler/AArch64/armv8.4a-mpam.txt b/llvm/test/MC/Disassembler/AArch64/armv8.4a-mpam.txt index 888924d561d3d..16eba25ab0cfb 100644 --- a/llvm/test/MC/Disassembler/AArch64/armv8.4a-mpam.txt +++ b/llvm/test/MC/Disassembler/AArch64/armv8.4a-mpam.txt @@ -73,15 +73,15 @@ #CHECK-NOV84: msr MPAM1_EL12, x0 #CHECK-NOV84: msr MPAMHCR_EL2, x0 -#CHECK-NOV84: msr S3_4_C10_C4_1, x0 -#CHECK-NOV84: msr S3_4_C10_C6_0, x0 -#CHECK-NOV84: msr S3_4_C10_C6_1, x0 -#CHECK-NOV84: msr S3_4_C10_C6_2, x0 -#CHECK-NOV84: msr S3_4_C10_C6_3, x0 -#CHECK-NOV84: msr S3_4_C10_C6_4, x0 -#CHECK-NOV84: msr S3_4_C10_C6_5, x0 -#CHECK-NOV84: msr S3_4_C10_C6_6, x0 -#CHECK-NOV84: msr S3_4_C10_C6_7, x0 +#CHECK-NOV84: msr MPAMVPMV_EL2, x0 +#CHECK-NOV84: msr MPAMVPM0_EL2, x0 +#CHECK-NOV84: msr MPAMVPM1_EL2, x0 +#CHECK-NOV84: msr MPAMVPM2_EL2, x0 +#CHECK-NOV84: msr MPAMVPM3_EL2, x0 +#CHECK-NOV84: msr MPAMVPM4_EL2, x0 +#CHECK-NOV84: msr MPAMVPM5_EL2, x0 +#CHECK-NOV84: msr MPAMVPM6_EL2, x0 +#CHECK-NOV84: msr MPAMVPM7_EL2, x0 // Available outside MPAM from Armv9.7 #CHECK-NOV84: mrs x0, MPAM0_EL1 @@ -91,16 +91,13 @@ #CHECK-NOV84: mrs x0, MPAM1_EL12 #CHECK-NOV84: mrs x0, MPAMHCR_EL2 -#CHECK-NOV84: mrs x0, S3_4_C10_C4_1 -#CHECK-NOV84: mrs x0, S3_4_C10_C6_0 -#CHECK-NOV84: mrs x0, S3_4_C10_C6_1 -#CHECK-NOV84: mrs x0, S3_4_C10_C6_2 -#CHECK-NOV84: mrs x0, S3_4_C10_C6_3 -#CHECK-NOV84: mrs x0, S3_4_C10_C6_4 -#CHECK-NOV84: mrs x0, S3_4_C10_C6_5 -#CHECK-NOV84: mrs x0, S3_4_C10_C6_6 -#CHECK-NOV84: mrs x0, S3_4_C10_C6_7 - -// Available outside MPAM from Armv9.7 +#CHECK-NOV84: mrs x0, MPAMVPMV_EL2 +#CHECK-NOV84: mrs x0, MPAMVPM0_EL2 +#CHECK-NOV84: mrs x0, MPAMVPM1_EL2 +#CHECK-NOV84: mrs x0, MPAMVPM2_EL2 +#CHECK-NOV84: mrs x0, MPAMVPM3_EL2 +#CHECK-NOV84: mrs x0, MPAMVPM4_EL2 +#CHECK-NOV84: mrs x0, MPAMVPM5_EL2 +#CHECK-NOV84: mrs x0, MPAMVPM6_EL2 +#CHECK-NOV84: mrs x0, MPAMVPM7_EL2 #CHECK-NOV84: mrs x0, MPAMIDR_EL1 -