diff options
| author | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-11 20:26:56 +0800 |
|---|---|---|
| committer | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-11 20:26:56 +0800 |
| commit | 38626ed37c9ea78c76c12dae4806b750881fd910 (patch) | |
| tree | f838b8c3b79ec1458d3370411e3b32e892ba02ca /backend/unittests/Target/RISCVCodeGenTest.cpp | |
| parent | cd2e88b9618ba7c2f6fcfac901e81f4a302a34c9 (diff) | |
| download | rcc-project-38626ed37c9ea78c76c12dae4806b750881fd910.tar.gz rcc-project-38626ed37c9ea78c76c12dae4806b750881fd910.tar.xz | |
[RISCV] Add LP64 calling-convention facts
Diffstat (limited to 'backend/unittests/Target/RISCVCodeGenTest.cpp')
| -rw-r--r-- | backend/unittests/Target/RISCVCodeGenTest.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/backend/unittests/Target/RISCVCodeGenTest.cpp b/backend/unittests/Target/RISCVCodeGenTest.cpp index aa58989..fcf0e57 100644 --- a/backend/unittests/Target/RISCVCodeGenTest.cpp +++ b/backend/unittests/Target/RISCVCodeGenTest.cpp @@ -1219,10 +1219,15 @@ void testMultiplyLibcallWithoutM(TestContext &Context) { } } const rcc::MachineOperand *Callee = Call == nullptr ? nullptr : Call->operandAt(0); + const rcc::MachineOperand *MaskOperand = Call == nullptr ? nullptr : Call->operandAt(1); const auto *External = Callee == nullptr ? nullptr : Callee->getIf<rcc::ExternalSymbolOperand>(); + const auto *CallMask = + MaskOperand == nullptr ? nullptr : MaskOperand->getIf<rcc::RegisterMaskOperand>(); + const auto LP64Mask = rcc::riscv::createCallPreservedMask(rcc::riscv::CallingConvention::LP64); Context.expect(Action && *Action == rcc::LegalizationAction::Libcall && Lowered && Multiply64.Instruction->parent() == nullptr && External != nullptr && - External->Name == "__muldi3" && + External->Name == "__muldi3" && CallMask != nullptr && CallMask->Mask && + LP64Mask != nullptr && *CallMask->Mask == *LP64Mask && Multiply64.Function->frameInfo().state().HasCalls, "s64 G_MUL without M must lower through the LP64 __muldi3 call path"); |
