summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/RISCV/AsmParser
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/RISCV/AsmParser')
-rw-r--r--llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp b/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
index cfd83e4189f..c7efdf42a7c 100644
--- a/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+++ b/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
@@ -194,6 +194,19 @@ public:
Parser.addAliasForDirective(".word", ".4byte");
Parser.addAliasForDirective(".dword", ".8byte");
setAvailableFeatures(ComputeAvailableFeatures(STI.getFeatureBits()));
+
+ auto ABIName = StringRef(Options.ABIName);
+ if (ABIName.endswith("f") &&
+ !getSTI().getFeatureBits()[RISCV::FeatureStdExtF]) {
+ errs() << "Hard-float 'f' ABI can't be used for a target that "
+ "doesn't support the F instruction set extension (ignoring "
+ "target-abi)\n";
+ } else if (ABIName.endswith("d") &&
+ !getSTI().getFeatureBits()[RISCV::FeatureStdExtD]) {
+ errs() << "Hard-float 'd' ABI can't be used for a target that "
+ "doesn't support the D instruction set extension (ignoring "
+ "target-abi)\n";
+ }
}
};
OpenPOWER on IntegriCloud