From: Keith Walker Date: Fri, 13 Jan 2023 13:54:28 +0000 (+0000) Subject: [AArch64] Update 2 RME MEC instruction encodings X-Git-Tag: upstream/17.0.6~21025 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d86f1a982e8423a2ae5a424906f6960576c35606;p=platform%2Fupstream%2Fllvm.git [AArch64] Update 2 RME MEC instruction encodings The encodings of these 2 RME MEC instructions are incorrect and need swapping: - DC CIPAE - DC CIGDPAE The correct encoding is: Operation op0 op1 CRn CRm op2 DC CIPAE, Xt 0b01 0b100 0b0111 0b1110 0b000 DC CIGDPAE, Xt 0b01 0b100 0b0111 0b1110 0b111 Differential Revision: https://reviews.llvm.org/D141689 --- diff --git a/llvm/lib/Target/AArch64/AArch64SystemOperands.td b/llvm/lib/Target/AArch64/AArch64SystemOperands.td index bb27683..7c925f0 100644 --- a/llvm/lib/Target/AArch64/AArch64SystemOperands.td +++ b/llvm/lib/Target/AArch64/AArch64SystemOperands.td @@ -168,8 +168,8 @@ def : DC<"GZVA", 0b011, 0b0111, 0b0100, 0b100>; } let Requires = [{ {AArch64::FeatureMEC} }] in { -def : DC<"CIGDPAE", 0b100, 0b0111, 0b1110, 0b000>; -def : DC<"CIPAE", 0b100, 0b0111, 0b1110, 0b111>; +def : DC<"CIPAE", 0b100, 0b0111, 0b1110, 0b000>; +def : DC<"CIGDPAE", 0b100, 0b0111, 0b1110, 0b111>; } //===----------------------------------------------------------------------===// diff --git a/llvm/test/MC/AArch64/armv9a-mec.s b/llvm/test/MC/AArch64/armv9a-mec.s index e3f30f8..f2a5fe8 100644 --- a/llvm/test/MC/AArch64/armv9a-mec.s +++ b/llvm/test/MC/AArch64/armv9a-mec.s @@ -49,8 +49,8 @@ // CHECK-NO-MEC: [[@LINE-2]]:15: error: expected writable system register or pstate dc cigdpae, x0 -// CHECK: dc cigdpae, x0 // encoding: [0x00,0x7e,0x0c,0xd5] +// CHECK: dc cigdpae, x0 // encoding: [0xe0,0x7e,0x0c,0xd5] // CHECK-NO-MEC: [[@LINE-2]]:14: error: DC CIGDPAE requires: mec dc cipae, x0 -// CHECK: dc cipae, x0 // encoding: [0xe0,0x7e,0x0c,0xd5] +// CHECK: dc cipae, x0 // encoding: [0x00,0x7e,0x0c,0xd5] // CHECK-NO-MEC: [[@LINE-2]]:14: error: DC CIPAE requires: mec diff --git a/llvm/test/MC/Disassembler/AArch64/armv9a-mec.txt b/llvm/test/MC/Disassembler/AArch64/armv9a-mec.txt index ef75da0..d1cbfcd 100644 --- a/llvm/test/MC/Disassembler/AArch64/armv9a-mec.txt +++ b/llvm/test/MC/Disassembler/AArch64/armv9a-mec.txt @@ -47,9 +47,9 @@ [0x20,0xaa,0x1e,0xd5] # CHECK: msr MECID_RL_A_EL3, x0 # CHECK-NO-MEC: msr S3_6_C10_C10_1, x0 -[0x00,0x7e,0x0c,0xd5] -# CHECK: dc cigdpae, x0 -# CHECK-NO-MEC: sys #4, c7, c14, #0, x0 [0xe0,0x7e,0x0c,0xd5] -# CHECK: dc cipae, x0 +# CHECK: dc cigdpae, x0 # CHECK-NO-MEC: sys #4, c7, c14, #7, x0 +[0x00,0x7e,0x0c,0xd5] +# CHECK: dc cipae, x0 +# CHECK-NO-MEC: sys #4, c7, c14, #0, x0