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 | 42a025965e830f80f5148fa620750404ed71c266 (patch) | |
tree | caea75662ee3bdf674240ecb0d207c53c9385952 /lib/Target/RISCV/RISCV.td | |
parent | fd11bc081304b8ca3bf7a657eb45af7a6a24246f (diff) |
[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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320023 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/RISCV/RISCV.td')
-rw-r--r-- | lib/Target/RISCV/RISCV.td | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/Target/RISCV/RISCV.td b/lib/Target/RISCV/RISCV.td index 2a64ed5ace9..3ebf76b8e59 100644 --- a/lib/Target/RISCV/RISCV.td +++ b/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 { |