diff options
author | Alex Bradbury <asb@lowrisc.org> | 2017-12-07 10:46:23 +0000 |
---|---|---|
committer | Alex Bradbury <asb@lowrisc.org> | 2017-12-07 10:46:23 +0000 |
commit | 7bc2a95bb98a5e589cf2a098f2b6c4eae3e4c072 (patch) | |
tree | e812ff14e80035228b8ad1a0855c39546072921b /llvm/lib/Target/RISCV/RISCV.td | |
parent | a8a83d150f489733353b3bff0891248f59a0794c (diff) | |
download | bcm5719-llvm-7bc2a95bb98a5e589cf2a098f2b6c4eae3e4c072.tar.gz bcm5719-llvm-7bc2a95bb98a5e589cf2a098f2b6c4eae3e4c072.zip |
[RISCV] MC layer support for the standard RV32D instruction set extension
As the FPR32 and FPR64 registers have the same names, use
validateTargetOperandClass in RISCVAsmParser to coerce a parsed FPR32 to an
FPR64 when necessary. The rest of this patch is very similar to the RV32F
patch.
Differential Revision: https://reviews.llvm.org/D39895
llvm-svn: 320023
Diffstat (limited to 'llvm/lib/Target/RISCV/RISCV.td')
-rw-r--r-- | llvm/lib/Target/RISCV/RISCV.td | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/Target/RISCV/RISCV.td b/llvm/lib/Target/RISCV/RISCV.td index 2a64ed5ace9..3ebf76b8e59 100644 --- a/llvm/lib/Target/RISCV/RISCV.td +++ b/llvm/lib/Target/RISCV/RISCV.td @@ -31,6 +31,13 @@ def FeatureStdExtF def HasStdExtF : Predicate<"Subtarget->hasStdExtF()">, AssemblerPredicate<"FeatureStdExtF">; +def FeatureStdExtD + : SubtargetFeature<"d", "HasStdExtD", "true", + "'D' (Double-Precision Floating-Point)", + [FeatureStdExtF]>; +def HasStdExtD : Predicate<"Subtarget->hasStdExtD()">, + AssemblerPredicate<"FeatureStdExtD">; + def Feature64Bit : SubtargetFeature<"64bit", "HasRV64", "true", "Implements RV64">; @@ -63,6 +70,7 @@ def RISCVInstrInfo : InstrInfo { def RISCVAsmParser : AsmParser { let ShouldEmitMatchRegisterAltName = 1; + let AllowDuplicateRegisterNames = 1; } def RISCV : Target { |