From 540c73a2f450af3d0aec6e039fab054471efdbb1 Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Mon, 24 Aug 2026 16:37:25 +0800 Subject: [RISCV] Match LLVM frame lowering semantics --- backend/lib/Target/RISCV/RISCVSubtarget.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'backend/lib/Target/RISCV/RISCVSubtarget.cpp') diff --git a/backend/lib/Target/RISCV/RISCVSubtarget.cpp b/backend/lib/Target/RISCV/RISCVSubtarget.cpp index c30c898..499219b 100644 --- a/backend/lib/Target/RISCV/RISCVSubtarget.cpp +++ b/backend/lib/Target/RISCV/RISCVSubtarget.cpp @@ -102,6 +102,15 @@ constexpr std::array OptionNames{ } // namespace +Expected parseRISCVABI(std::string_view Name) { + if (Name == "lp64") + return RISCVABI::LP64; + if (Name == "lp64d") + return RISCVABI::LP64D; + return makeUnexpected(ErrorCode::InvalidInvocation, + "RISC-V backend does not support target ABI '" + std::string(Name) + "'"); +} + Expected RISCVSubtargetFeatures::fromFeatureList(std::span Features) { std::uint16_t Enabled = extensionBit(RISCVExtension::I); @@ -185,8 +194,8 @@ bool RISCVSubtargetFeatures::hasFeature(std::string_view Feature) const noexcept } RISCVSubtarget::RISCVSubtarget(RISCVSubtargetFeatures Features, RelocationModel Relocation, - CodeModel Code) - : Features(Features), Relocation(Relocation), Code(Code), + CodeModel Code, RISCVABI ABI) + : Features(Features), Relocation(Relocation), Code(Code), ABI(ABI), SchedulingHooks(createSchedulingHooks(Features)) { auto Model = createSchedulingModel(*SchedulingHooks); if (!Model) -- cgit v1.2.3