[clang] [clang-repl] Typo within InterpreterTest.cpp (PR #79119)
https://github.com/nasherm closed https://github.com/llvm/llvm-project/pull/79119 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [clang-repl] Typo within InterpreterTest.cpp (PR #79119)
nasherm wrote: Need to follow proper contribution process. So closing for now https://github.com/llvm/llvm-project/pull/79119 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [clang-repl] Typo within InterpreterTest.cpp (PR #79119)
https://github.com/nasherm created https://github.com/llvm/llvm-project/pull/79119 Recent changes to InterpreterTest.cpp (https://github.com/llvm/llvm-project/pull/76218) introduced typos within code passed to a Parse() function. This causes some tests to fail, namely IncrementalProcessing.InstantiateTemplate. >From 91a0b265ce85359efb60821b419bb9754e48bdbe Mon Sep 17 00:00:00 2001 From: nasmnc01 Date: Tue, 23 Jan 2024 10:43:08 + Subject: [PATCH] [clang-repl] Typo within InterpreterTest.cpp Recent changes to InterpreterTest.cpp introduced typos within code passed to a Parse() function. This causes some tests to fail, namely IncrementalProcessing.InstantiateTemplate. Change-Id: I79a09030f980b1bc766e27cc6acb944fbc2422ac --- clang/unittests/Interpreter/InterpreterTest.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/clang/unittests/Interpreter/InterpreterTest.cpp b/clang/unittests/Interpreter/InterpreterTest.cpp index e76c0677db5ead1..6d2e5c79bc242ce 100644 --- a/clang/unittests/Interpreter/InterpreterTest.cpp +++ b/clang/unittests/Interpreter/InterpreterTest.cpp @@ -256,7 +256,8 @@ static Value AllocateObject(TypeDecl *TD, Interpreter &Interp) { // cantFail(Interp.ParseAndExecute("new " + Name + "()", &Addr)); // The lifetime of the temporary is extended by the clang::Value. - cantFail(Interp.ParseAndExecute(Name + "()", &Addr)); + cantFail(Interp.ParseAndExecute(Name + "();", &Addr)); + Addr.setKind(Value::Kind::K_PtrOrObj); return Addr; } ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] Add support for Armv9.6-A memory systems extensions (PR #112341)
https://github.com/nasherm created https://github.com/llvm/llvm-project/pull/112341 Add support for the following Armv9.6-A memory systems extensions: FEAT_LSUI - Unprivileged Load Store FEAT_OCCMO - Outer Cacheable Cache Maintenance Operation FEAT_PCDPHINT - Producer-Consumer Data Placement Hints FEAT_SRMASK- Bitwise System Register Write Masks as documented here: https://developer.arm.com/documentation/109697/2024_09/Feature-descriptions/The-Armv9-6-architecture-extension >From 345f58ec293e3b5861965726403b53b5fff47255 Mon Sep 17 00:00:00 2001 From: Nashe Mncube Date: Fri, 4 Oct 2024 10:22:10 +0100 Subject: [PATCH] Add support for Armv9.6-A memory systems extensions Add support for the following Armv9.6-A memory systems extensions: FEAT_LSUI - Unprivileged Load Store FEAT_OCCMO - Outer Cacheable Cache Maintenance Operation FEAT_PCDPHINT - Producer-Consumer Data Placement Hints FEAT_SRMASK- Bitwise System Register Write Masks as documented here: https://developer.arm.com/documentation/109697/2024_09/Feature-descriptions/The-Armv9-6-architecture-extension Co-authored-by: Jonathan Thackray Change-Id: Icbbdd194b8885d8a1b9d513faf0b85e74011201d --- clang/test/Driver/aarch64-v96a.c | 13 + .../print-supported-extensions-aarch64.c | 3 + llvm/lib/Target/AArch64/AArch64Features.td| 12 +- .../lib/Target/AArch64/AArch64InstrFormats.td | 304 ++ llvm/lib/Target/AArch64/AArch64InstrInfo.td | 101 + .../Target/AArch64/AArch64SystemOperands.td | 67 +++ .../AArch64/AsmParser/AArch64AsmParser.cpp| 61 ++- .../Disassembler/AArch64Disassembler.cpp | 24 ++ .../MCTargetDesc/AArch64InstPrinter.cpp | 27 ++ .../AArch64/MCTargetDesc/AArch64InstPrinter.h | 2 + .../Target/AArch64/Utils/AArch64BaseInfo.cpp | 7 + .../Target/AArch64/Utils/AArch64BaseInfo.h| 20 + llvm/test/MC/AArch64/armv9.6a-lsui.s | 395 ++ llvm/test/MC/AArch64/armv9.6a-occmo.s | 14 + llvm/test/MC/AArch64/armv9.6a-pcdphint.s | 12 + llvm/test/MC/AArch64/armv9.6a-rme-gpc3.s | 12 + llvm/test/MC/AArch64/armv9.6a-srmask.s| 104 + .../MC/Disassembler/AArch64/armv9.6a-lsui.txt | 324 ++ .../Disassembler/AArch64/armv9.6a-occmo.txt | 12 + .../AArch64/armv9.6a-pcdphint.txt | 9 + .../AArch64/armv9.6a-rme-gpc3.txt | 11 + .../Disassembler/AArch64/armv9.6a-srmask.txt | 102 + .../TargetParser/TargetParserTest.cpp | 10 +- 23 files changed, 1641 insertions(+), 5 deletions(-) create mode 100644 llvm/test/MC/AArch64/armv9.6a-lsui.s create mode 100644 llvm/test/MC/AArch64/armv9.6a-occmo.s create mode 100644 llvm/test/MC/AArch64/armv9.6a-pcdphint.s create mode 100644 llvm/test/MC/AArch64/armv9.6a-rme-gpc3.s create mode 100644 llvm/test/MC/AArch64/armv9.6a-srmask.s create mode 100644 llvm/test/MC/Disassembler/AArch64/armv9.6a-lsui.txt create mode 100644 llvm/test/MC/Disassembler/AArch64/armv9.6a-occmo.txt create mode 100644 llvm/test/MC/Disassembler/AArch64/armv9.6a-pcdphint.txt create mode 100644 llvm/test/MC/Disassembler/AArch64/armv9.6a-rme-gpc3.txt create mode 100644 llvm/test/MC/Disassembler/AArch64/armv9.6a-srmask.txt diff --git a/clang/test/Driver/aarch64-v96a.c b/clang/test/Driver/aarch64-v96a.c index 0aaadddb2842f8..fd24585acf24f2 100644 --- a/clang/test/Driver/aarch64-v96a.c +++ b/clang/test/Driver/aarch64-v96a.c @@ -17,3 +17,16 @@ // GENERICV96A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" "generic" "-target-feature" "+v9.6a" // // = Features supported on aarch64 = +// +// RUN: %clang -target aarch64 -march=armv9.6a+lsui -### -c %s 2>&1 | FileCheck -check-prefix=V96A-LSUI %s +// RUN: %clang -target aarch64 -march=armv9.6-a+lsui -### -c %s 2>&1 | FileCheck -check-prefix=V96A-LSUI %s +// V96A-LSUI: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "generic" "-target-feature" "+v9.6a"{{.*}} "-target-feature" "+lsui" +// +// RUN: %clang -target aarch64 -march=armv9.6a+occmo -### -c %s 2>&1 | FileCheck -check-prefix=V96A-OCCMO %s +// RUN: %clang -target aarch64 -march=armv9.6-a+occmo -### -c %s 2>&1 | FileCheck -check-prefix=V96A-OCCMO %s +// V96A-OCCMO: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "generic" "-target-feature" "+v9.6a"{{.*}} "-target-feature" "+occmo" +// +// RUN: %clang -target aarch64 -march=armv9.6a+pcdphint -### -c %s 2>&1 | FileCheck -check-prefix=V96A-PCDPHINT %s +// RUN: %clang -target aarch64 -march=armv9.6-a+pcdphint -### -c %s 2>&1 | FileCheck -check-prefix=V96A-PCDPHINT %s +// V96A-PCDPHINT: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "generic" "-target-feature" "+v9.6a"{{.*}} "-target-feature" "+pcdphint" +// diff --git a/clang/test/Driver/print-supported-extensions-aarch64.c b/clang/test/Driver/print-supported-extensions-aarch64.c index e6247307c7219f..642df4b699ecc3 100644 --- a/clang/test/Driver/print-supported-extensions-a
[clang] [llvm] [LLVM][MC][AArch64support for Armv9.6-A memory systems extensions (PR #112341)
https://github.com/nasherm edited https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
https://github.com/nasherm edited https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
https://github.com/nasherm updated https://github.com/llvm/llvm-project/pull/112341 >From a20ed3469726b53d0bff59710ad367766e839a45 Mon Sep 17 00:00:00 2001 From: Nashe Mncube Date: Fri, 4 Oct 2024 10:22:10 +0100 Subject: [PATCH] Add support for Armv9.6-A memory systems extensions Add support for the following Armv9.6-A memory systems extensions: FEAT_LSUI - Unprivileged Load Store FEAT_OCCMO - Outer Cacheable Cache Maintenance Operation FEAT_PCDPHINT - Producer-Consumer Data Placement Hints FEAT_SRMASK- Bitwise System Register Write Masks as documented here: https://developer.arm.com/documentation/109697/2024_09/Feature-descriptions/The-Armv9-6-architecture-extension Co-authored-by: Jonathan Thackray Change-Id: Icbbdd194b8885d8a1b9d513faf0b85e74011201d --- clang/test/Driver/aarch64-v96a.c | 13 + .../print-supported-extensions-aarch64.c | 3 + llvm/lib/Target/AArch64/AArch64Features.td| 12 +- .../lib/Target/AArch64/AArch64InstrFormats.td | 304 ++ llvm/lib/Target/AArch64/AArch64InstrInfo.td | 101 + .../Target/AArch64/AArch64SystemOperands.td | 67 +++ .../AArch64/AsmParser/AArch64AsmParser.cpp| 61 ++- .../Disassembler/AArch64Disassembler.cpp | 24 ++ .../MCTargetDesc/AArch64InstPrinter.cpp | 27 ++ .../AArch64/MCTargetDesc/AArch64InstPrinter.h | 2 + .../Target/AArch64/Utils/AArch64BaseInfo.cpp | 7 + .../Target/AArch64/Utils/AArch64BaseInfo.h| 20 + llvm/test/MC/AArch64/armv9.6a-lsui.s | 395 ++ llvm/test/MC/AArch64/armv9.6a-occmo.s | 14 + llvm/test/MC/AArch64/armv9.6a-pcdphint.s | 12 + llvm/test/MC/AArch64/armv9.6a-rme-gpc3.s | 12 + llvm/test/MC/AArch64/armv9.6a-srmask.s| 104 + .../MC/Disassembler/AArch64/armv9.6a-lsui.txt | 324 ++ .../Disassembler/AArch64/armv9.6a-occmo.txt | 12 + .../AArch64/armv9.6a-pcdphint.txt | 9 + .../AArch64/armv9.6a-rme-gpc3.txt | 11 + .../Disassembler/AArch64/armv9.6a-srmask.txt | 102 + .../TargetParser/TargetParserTest.cpp | 10 +- 23 files changed, 1641 insertions(+), 5 deletions(-) create mode 100644 llvm/test/MC/AArch64/armv9.6a-lsui.s create mode 100644 llvm/test/MC/AArch64/armv9.6a-occmo.s create mode 100644 llvm/test/MC/AArch64/armv9.6a-pcdphint.s create mode 100644 llvm/test/MC/AArch64/armv9.6a-rme-gpc3.s create mode 100644 llvm/test/MC/AArch64/armv9.6a-srmask.s create mode 100644 llvm/test/MC/Disassembler/AArch64/armv9.6a-lsui.txt create mode 100644 llvm/test/MC/Disassembler/AArch64/armv9.6a-occmo.txt create mode 100644 llvm/test/MC/Disassembler/AArch64/armv9.6a-pcdphint.txt create mode 100644 llvm/test/MC/Disassembler/AArch64/armv9.6a-rme-gpc3.txt create mode 100644 llvm/test/MC/Disassembler/AArch64/armv9.6a-srmask.txt diff --git a/clang/test/Driver/aarch64-v96a.c b/clang/test/Driver/aarch64-v96a.c index 0aaadddb2842f8..fd24585acf24f2 100644 --- a/clang/test/Driver/aarch64-v96a.c +++ b/clang/test/Driver/aarch64-v96a.c @@ -17,3 +17,16 @@ // GENERICV96A-BE: "-cc1"{{.*}} "-triple" "aarch64_be{{.*}}" "-target-cpu" "generic" "-target-feature" "+v9.6a" // // = Features supported on aarch64 = +// +// RUN: %clang -target aarch64 -march=armv9.6a+lsui -### -c %s 2>&1 | FileCheck -check-prefix=V96A-LSUI %s +// RUN: %clang -target aarch64 -march=armv9.6-a+lsui -### -c %s 2>&1 | FileCheck -check-prefix=V96A-LSUI %s +// V96A-LSUI: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "generic" "-target-feature" "+v9.6a"{{.*}} "-target-feature" "+lsui" +// +// RUN: %clang -target aarch64 -march=armv9.6a+occmo -### -c %s 2>&1 | FileCheck -check-prefix=V96A-OCCMO %s +// RUN: %clang -target aarch64 -march=armv9.6-a+occmo -### -c %s 2>&1 | FileCheck -check-prefix=V96A-OCCMO %s +// V96A-OCCMO: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "generic" "-target-feature" "+v9.6a"{{.*}} "-target-feature" "+occmo" +// +// RUN: %clang -target aarch64 -march=armv9.6a+pcdphint -### -c %s 2>&1 | FileCheck -check-prefix=V96A-PCDPHINT %s +// RUN: %clang -target aarch64 -march=armv9.6-a+pcdphint -### -c %s 2>&1 | FileCheck -check-prefix=V96A-PCDPHINT %s +// V96A-PCDPHINT: "-cc1"{{.*}} "-triple" "aarch64{{.*}}" "-target-cpu" "generic" "-target-feature" "+v9.6a"{{.*}} "-target-feature" "+pcdphint" +// diff --git a/clang/test/Driver/print-supported-extensions-aarch64.c b/clang/test/Driver/print-supported-extensions-aarch64.c index e6247307c7219f..642df4b699ecc3 100644 --- a/clang/test/Driver/print-supported-extensions-aarch64.c +++ b/clang/test/Driver/print-supported-extensions-aarch64.c @@ -35,12 +35,15 @@ // CHECK-NEXT: ls64FEAT_LS64, FEAT_LS64_V, FEAT_LS64_ACCDATA Enable Armv8.7-A LD64B/ST64B Accelerator Extension // CHECK-NEXT: lse FEAT_LSE Enable Armv8.1-A Large System Extension (LSE) atomic instructions // CHECK-NEXT: lse1
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
@@ -4769,6 +4843,109 @@ class LoadExclusivePair sz, bit o2, bit L, bit o1, bit o0, let PostEncoderMethod = "fixLoadStoreExclusive<0,1>"; } +// Armv9.6-a load-store exclusive instructions +let hasSideEffects = 1, mayLoad = 1, mayStore = 1 in +class BaseLoadStoreExclusiveLSUI sz, bit L, bit o0, + dag oops, dag iops, string asm, string operands> +: I { + let Inst{31-30} = sz; + let Inst{29-23} = 0b0010010; + let Inst{22}= L; + let Inst{15}= o0; +} + + +// Neither Rs nor Rt2 operands. + +class LoadExclusiveLSUI sz, bit L, bit o0, +RegisterClass regtype, string asm> +: BaseLoadStoreExclusiveLSUI, + Sched<[WriteLD]> +{ + bits<5> Rt; + bits<5> Rn; + let Inst{20-16} = 0b1; + let Unpredictable{20-16} = 0b1; + let Inst{14-10} = 0b1; + let Unpredictable{14-10} = 0b1; + let Inst{9-5} = Rn; + let Inst{4-0} = Rt; + + let PostEncoderMethod = "fixLoadStoreExclusive<0,0>"; +} + + class StoreExclusiveLSUI sz, bit L, bit o0, + RegisterClass regtype, string asm> + : BaseLoadStoreExclusiveLSUI, + Sched<[WriteSTX]> { + bits<5> Ws; + bits<5> Rt; + bits<5> Rn; + let Inst{20-16} = Ws; + let Inst{15} = o0; + let Inst{14-10} = 0b1; + let Unpredictable{14-10} = 0b1; + let Inst{9-5} = Rn; + let Inst{4-0} = Rt; + + let Constraints = "@earlyclobber $Ws"; + let PostEncoderMethod = "fixLoadStoreExclusive<1,0>"; + } + +// Armv9.6-a load-store unprivileged instructions +class BaseLoadUnprivilegedLSUI sz, dag oops, dag iops, string asm> +: I { + bits<5> Rt; + bits<5> Rn; + let Inst{31-30} = sz; + let Inst{29-23} = 0b0010010; + let Inst{22} = 0b1; + let Inst{21} = 0b0; + let Inst{20-16} = 0b1; + let Unpredictable{20-16} = 0b1; + let Inst{15} = 0b0; + let Inst{14-10} = 0b1; + let Unpredictable{14-10} = 0b1; + let Inst{9-5} = Rn; + let Inst{4-0} = Rt; + let PostEncoderMethod = "fixLoadStoreExclusive<0,0>"; +} + +multiclass LoadUnprivilegedLSUI sz, RegisterClass regtype, string asm> { + def i : BaseLoadUnprivilegedLSUIhttps://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
@@ -0,0 +1,14 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py +// RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+occmo -mattr=+mte < %s | FileCheck %s nasherm wrote: Done https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
nasherm wrote: > Thank you for the work @nasherm . I left some comments. I am not sure if all > of them proceed. Carol Thank you for the review. I'm not sure about the instruction alias suggestions. I would've thought that although these instructions are equivalent the different execution conditions mean they don't alias. Am I wrong in my thinking? https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
@@ -988,6 +988,22 @@ bool AArch64InstPrinter::printSysAlias(const MCInst *MI, Name = std::string(AT->Name); } break; +// Overlaps with AT and DC nasherm wrote: Yeah. These are for the newly introduced DC instructions https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
https://github.com/nasherm edited https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
@@ -0,0 +1,12 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py +// RUN: llvm-mc -triple aarch64 -show-encoding -mattr=+pcdphint %s | FileCheck %s nasherm wrote: Done https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
@@ -0,0 +1,395 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py nasherm wrote: Done https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
@@ -4020,6 +4079,33 @@ defm STNPD : StorePairNoAlloc<0b01, 1, FPR64Op, simm7s8, "stnp">; defm STNPQ : StorePairNoAlloc<0b10, 1, FPR128Op, simm7s16, "stnp">; } +// Armv9.6-a Load/store no-allocate pair (FEAT_LSUI) nasherm wrote: Thanks. Done https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
@@ -3736,6 +3776,8 @@ static const struct Extension { {"sme-fa64", {AArch64::FeatureSMEFA64}}, {"cpa", {AArch64::FeatureCPA}}, {"tlbiw", {AArch64::FeatureTLBIW}}, +{"lsui", {AArch64::FeatureLSUI}}, +{"occmo", {AArch64::FeatureOCCMO}}, nasherm wrote: Yes. Done https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
@@ -0,0 +1,395 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py +// RUN: llvm-mc -triple aarch64 -mattr=+lsui -show-encoding %s | FileCheck %s nasherm wrote: Done https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
@@ -4020,6 +4079,33 @@ defm STNPD : StorePairNoAlloc<0b01, 1, FPR64Op, simm7s8, "stnp">; defm STNPQ : StorePairNoAlloc<0b10, 1, FPR128Op, simm7s16, "stnp">; } +// Armv9.6-a Load/store no-allocate pair (FEAT_LSUI) +let Predicates = [HasLSUI] in { + defm LDTP: LoadPairOffset<0b11, 0, GPR64z, simm7s8, "ldtp">; + def LDTPpre : LoadPairPreIdx<0b11, 0, GPR64z, simm7s8, "ldtp">; + def LDTPpost : LoadPairPostIdx<0b11, 0, GPR64z, simm7s8, "ldtp">; + + defm STTNPX : StorePairNoAllocLSUI<0b11, 0, GPR64z, simm7s8, "sttnp">; + defm LDTNPX : LoadPairNoAllocLSUI<0b11, 0, GPR64z, simm7s8, "ldtnp">; + + defm STTP: StorePairOffset<0b11, 0, GPR64z, simm7s8, "sttp">; + def STTPpre : StorePairPreIdx<0b11, 0, GPR64z, simm7s8, "sttp">; + def STTPpost : StorePairPostIdx<0b11, 0, GPR64z, simm7s8, "sttp">; +} + +let Predicates = [HasLSUI, HasFPARMv8] in { nasherm wrote: That's a mistake on my part. Thanks for spotting https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
@@ -4660,6 +4746,21 @@ let Predicates = [HasLOR] in { def STLLRH0 : InstAlias<"stllrh\t$Rt, [$Rn, #0]", (STLLRH GPR32: $Rt, GPR64sp:$Rn)>; } +// v9.6-a Unprivileged load store operations +let Predicates = [HasLSUI] in { +defm LDTXRW : LoadUnprivilegedLSUI<0b10, GPR32, "ldtxr">; +defm LDTXRX : LoadUnprivilegedLSUI<0b11, GPR64, "ldtxr">; + +def LDATXRW : LoadExclusiveLSUI <0b10, 1, 1, GPR32, "ldatxr">; +def LDATXRX : LoadExclusiveLSUI <0b11, 1, 1, GPR64, "ldatxr">; + +defm STTXRW : StoreUnprivilegedLSUI<0b10, GPR32, "sttxr">; +defm STTXRX : StoreUnprivilegedLSUI<0b11, GPR64, "sttxr">; + +def STLTXRW : StoreExclusiveLSUI<0b10, 0, 1, GPR32, "stltxr">; nasherm wrote: Done https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
@@ -4660,6 +4746,21 @@ let Predicates = [HasLOR] in { def STLLRH0 : InstAlias<"stllrh\t$Rt, [$Rn, #0]", (STLLRH GPR32: $Rt, GPR64sp:$Rn)>; } +// v9.6-a Unprivileged load store operations +let Predicates = [HasLSUI] in { +defm LDTXRW : LoadUnprivilegedLSUI<0b10, GPR32, "ldtxr">; +defm LDTXRX : LoadUnprivilegedLSUI<0b11, GPR64, "ldtxr">; + +def LDATXRW : LoadExclusiveLSUI <0b10, 1, 1, GPR32, "ldatxr">; +def LDATXRX : LoadExclusiveLSUI <0b11, 1, 1, GPR64, "ldatxr">; + +defm STTXRW : StoreUnprivilegedLSUI<0b10, GPR32, "sttxr">; nasherm wrote: Done https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
@@ -4660,6 +4746,21 @@ let Predicates = [HasLOR] in { def STLLRH0 : InstAlias<"stllrh\t$Rt, [$Rn, #0]", (STLLRH GPR32: $Rt, GPR64sp:$Rn)>; } +// v9.6-a Unprivileged load store operations +let Predicates = [HasLSUI] in { +defm LDTXRW : LoadUnprivilegedLSUI<0b10, GPR32, "ldtxr">; +defm LDTXRX : LoadUnprivilegedLSUI<0b11, GPR64, "ldtxr">; nasherm wrote: Done https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
@@ -2568,12 +2580,59 @@ defm CASPA : CompareAndSwapPair<1, 0, "a">; defm CASPL : CompareAndSwapPair<0, 1, "l">; defm CASPAL : CompareAndSwapPair<1, 1, "al">; +// v9.6-a atomic CAST nasherm wrote: Done https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
@@ -4660,6 +4746,21 @@ let Predicates = [HasLOR] in { def STLLRH0 : InstAlias<"stllrh\t$Rt, [$Rn, #0]", (STLLRH GPR32: $Rt, GPR64sp:$Rn)>; } +// v9.6-a Unprivileged load store operations +let Predicates = [HasLSUI] in { +defm LDTXRW : LoadUnprivilegedLSUI<0b10, GPR32, "ldtxr">; +defm LDTXRX : LoadUnprivilegedLSUI<0b11, GPR64, "ldtxr">; + +def LDATXRW : LoadExclusiveLSUI <0b10, 1, 1, GPR32, "ldatxr">; nasherm wrote: Done https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
nasherm wrote: @CarolineConcatto I hope I answered your question. If so I'm hoping to merge this by EOD if there's no more to do https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
@@ -988,6 +988,22 @@ bool AArch64InstPrinter::printSysAlias(const MCInst *MI, Name = std::string(AT->Name); } break; +// Overlaps with AT and DC nasherm wrote: The newly added DC instructions map to the same case (15) as the AT instructions as they have overlapping encodings https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [llvm] [LLVM][MC][AArch64] Assembler support for Armv9.6-A memory systems extensions (PR #112341)
https://github.com/nasherm closed https://github.com/llvm/llvm-project/pull/112341 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits