[llvm] [RISCV][GISel] Add FP calling convention support using FPR and GPR registers. (PR #69138)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 20 10:55:05 PDT 2023


================
@@ -98,6 +98,36 @@ struct RISCVOutgoingValueHandler : public CallLowering::OutgoingValueHandler {
     MIB.addUse(PhysReg, RegState::Implicit);
   }
 
+  unsigned assignCustomValue(CallLowering::ArgInfo &Arg,
+                             ArrayRef<CCValAssign> VAs,
+                             std::function<void()> *Thunk) override {
+    const CCValAssign &VALo = VAs[0];
----------------
topperc wrote:

The size isn't ==2. It is >=2. The caller has no idea how many entries this handler needs. It's continuously calling `slice` on an ArrayRef of all VAs to drop the ones that have been consumed. I'll add the assert for >=2

https://github.com/llvm/llvm-project/pull/69138


More information about the llvm-commits mailing list