summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/RISCV/RISCV.td
diff options
context:
space:
mode:
authorAlex Bradbury <asb@lowrisc.org>2017-11-09 15:00:03 +0000
committerAlex Bradbury <asb@lowrisc.org>2017-11-09 15:00:03 +0000
commit8c345c5aa903b67bdf43394f05205a09c50f6dce (patch)
tree43678bf3965f191557dade2b8254ea1a286198d9 /llvm/lib/Target/RISCV/RISCV.td
parent89d31658e5601c8a9a7737db64e239c1efcc5d6b (diff)
downloadbcm5719-llvm-8c345c5aa903b67bdf43394f05205a09c50f6dce.tar.gz
bcm5719-llvm-8c345c5aa903b67bdf43394f05205a09c50f6dce.zip
[RISCV] MC layer support for the standard RV32A instruction set extension
llvm-svn: 317791
Diffstat (limited to 'llvm/lib/Target/RISCV/RISCV.td')
-rw-r--r--llvm/lib/Target/RISCV/RISCV.td17
1 files changed, 12 insertions, 5 deletions
diff --git a/llvm/lib/Target/RISCV/RISCV.td b/llvm/lib/Target/RISCV/RISCV.td
index d8581f8d03c..63d2b827014 100644
--- a/llvm/lib/Target/RISCV/RISCV.td
+++ b/llvm/lib/Target/RISCV/RISCV.td
@@ -13,13 +13,20 @@ include "llvm/Target/Target.td"
// RISC-V subtarget features and instruction predicates.
//===----------------------------------------------------------------------===//
-def FeatureStdExtM : SubtargetFeature<"m", "HasStdExtM", "true",
- "'M' (Integer Multiplication and Division)">;
-def HasStdExtM : Predicate<"Subtarget->hasStdExtM()">,
+def FeatureStdExtM
+ : SubtargetFeature<"m", "HasStdExtM", "true",
+ "'M' (Integer Multiplication and Division)">;
+def HasStdExtM : Predicate<"Subtarget->hasStdExtM()">,
AssemblerPredicate<"FeatureStdExtM">;
-def Feature64Bit : SubtargetFeature<"64bit", "HasRV64", "true",
- "Implements RV64">;
+def FeatureStdExtA
+ : SubtargetFeature<"a", "HasStdExtA", "true",
+ "'A' (Atomic Instructions)">;
+def HasStdExtA : Predicate<"Subtarget->hasStdExtA()">,
+ AssemblerPredicate<"FeatureStdExtA">;
+
+def Feature64Bit
+ : SubtargetFeature<"64bit", "HasRV64", "true", "Implements RV64">;
def RV64 : HwMode<"+64bit">;
def RV32 : HwMode<"-64bit">;
OpenPOWER on IntegriCloud