[PATCH] D102852: [RISCV] Fix a crash when lowering split float arguments
Luís Marques via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Jun 20 14:02:05 PDT 2021
luismarques added a comment.
In D102852#2829300 <https://reviews.llvm.org/D102852#2829300>, @luismarques wrote:
> Sorry if I'm misunderstanding your point, but we *are* accessing `0-63(sp)` (later below). Am I reading the assembly totally wrong or does it seem to be spilling the original values of the floating-point callee-saved registers *after* killing their old values (by loading into them some of the arguments passed on the stack, as part of preparing the fastcc call), and never restoring them?
Sorry, not "spilling", using them to copy the remaining arguments. The code is loading arguments from the stack (plus GPR args) and passing most of them in the `fa<N` and `ft<N>` (I assume that's our fastcc convention), and using the `fs<N>` registers to copy the remaining arguments to the proper place in the stack, right? So the `0-63(sp)` stack usage still seems OK, that's our frame, that we use it to spill `ra` and to pass the remaining arguments.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D102852/new/
https://reviews.llvm.org/D102852
More information about the llvm-commits
mailing list