From 32a365a2dc0096b4421fb3947b32d971b7f34c40 Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Sat, 15 Aug 2026 04:48:16 +0800 Subject: [GlobalISel] Lower stack operations --- backend/lib/Target/RISCV/RISCVTarget.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'backend/lib/Target/RISCV/RISCVTarget.cpp') diff --git a/backend/lib/Target/RISCV/RISCVTarget.cpp b/backend/lib/Target/RISCV/RISCVTarget.cpp index 1735386..0c202a2 100644 --- a/backend/lib/Target/RISCV/RISCVTarget.cpp +++ b/backend/lib/Target/RISCV/RISCVTarget.cpp @@ -245,8 +245,15 @@ Expected createTargetDescription() { .ScalarInteger = BooleanContent::ZeroOrOne, .ScalarFloatingPoint = BooleanContent::ZeroOrOne, }; + auto StackPointer = physicalRegister(PhysicalRegisterID::X2); + if (!StackPointer) + return std::unexpected(StackPointer.error()); + TargetStackInfo StackInfo{ + .StackPointerRegisterToSaveRestore = *StackPointer, + .GrowthDirection = StackGrowthDirection::Down, + }; return TargetDescription::create(std::move(*Instructions), std::move(*Registers), - std::move(MIRText), BooleanInfo); + std::move(MIRText), BooleanInfo, StackInfo); } std::shared_ptr createCallPreservedMask(CallingConvention Convention) { -- cgit v1.2.3