zzheng added inline comments.

================
Comment at: llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:95
+      .addReg(RISCV::X18)
+      .addImm(0);
+}
----------------
apazos wrote:
> There are thee things to observe here and other reviewers might have some 
> additional comments:
> 
> - RISC-V does not have a reserved platform register like AAch64. The patch 
> uses one of the RISC-V callee saved registers, x18, which happens to coincide 
> with AArch64's register. It is possible to select another register, and 
> additional checks for the flag combo "-fsanitize=shadow-call-stack 
> -ffixed-xxxx" will have to be added.
> 
> - The  return address is saved on both the SCS (whose location is 
> protected/hidden) and also in the regular stack. But the return from a 
> function uses the value saved on SCS. The understanding is that not saving it 
> in the regular stack can impact debugging.
> 
> - The SCS is ascending, while the regular stack, by RISC-V convention, is 
> descending. The SCS is not used for passing parameters between calls like the 
> regular stack, so it seems to be ok. But this can be changed too. AArch64 's 
> SCS is also ascending.
Thanks for the clarification, Ana.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D84414/new/

https://reviews.llvm.org/D84414



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to