diff options
author | Brendan Sweeney <brs@eecs.berkeley.edu> | 2024-02-01 12:58:21 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-01 10:58:21 -0800 |
commit | e296cedcd686e24fee75756185669f1bb3b47fdd (patch) | |
tree | ca51c2871298173392cfefd678800eea53fa2100 /llvm/lib/Target/RISCV/RISCVFeatures.td | |
parent | ef7f6aca149c88089ec4964e87889f3709321f03 (diff) | |
download | llvm-e296cedcd686e24fee75756185669f1bb3b47fdd.zip llvm-e296cedcd686e24fee75756185669f1bb3b47fdd.tar.gz llvm-e296cedcd686e24fee75756185669f1bb3b47fdd.tar.bz2 |
[RISCV][MC] MC layer support for the experimental zalasr extension (#79911)
This PR implements experimental support for the RISC-V Atomic
Load-Acquire and Store-Release Extension (Zalasr). It has been approved
to be pursued as a fast track extension
(https://lists.riscv.org/g/tech-unprivileged/topic/arc_architecture_review/101951698),
but has not yet been approved by ARC or ratified. See
https://github.com/mehnadnerd/riscv-zalasr for draft spec.
---------
Co-authored-by: brs <turtwig@utexas.edu>
Co-authored-by: Philip Reames <preames@rivosinc.com>
Diffstat (limited to 'llvm/lib/Target/RISCV/RISCVFeatures.td')
-rw-r--r-- | llvm/lib/Target/RISCV/RISCVFeatures.td | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/RISCV/RISCVFeatures.td b/llvm/lib/Target/RISCV/RISCVFeatures.td index 6b7bf48..6f87eae 100644 --- a/llvm/lib/Target/RISCV/RISCVFeatures.td +++ b/llvm/lib/Target/RISCV/RISCVFeatures.td @@ -192,6 +192,13 @@ def HasStdExtZacas : Predicate<"Subtarget->hasStdExtZacas()">, "'Zacas' (Atomic Compare-And-Swap Instructions)">; def NoStdExtZacas : Predicate<"!Subtarget->hasStdExtZacas()">; +def FeatureStdExtZalasr + : SubtargetFeature<"experimental-zalasr", "HasStdExtZalasr", "true", + "'Zalasr' (Load-Acquire and Store-Release Instructions)">; +def HasStdExtZalasr : Predicate<"Subtarget->hasStdExtZalasr()">, + AssemblerPredicate<(all_of FeatureStdExtZalasr), + "'Zalasr' (Load-Acquire and Store-Release Instructions)">; + def FeatureStdExtZalrsc : SubtargetFeature<"experimental-zalrsc", "HasStdExtZalrsc", "true", "'Zalrsc' (Load-Reserved/Store-Conditional)">; |