Vossen, Jake via llvm-dev
2021-Jun-21 19:08 UTC
[llvm-dev] Saving VFP registers for arm interrupt functions
Hey everyone, Currently, interrupt attributes on ARM do not save the VFP registers on Non-M class CPUs: "If VFP operations are needed, that state must be saved manually" (https://clang.llvm.org/docs/AttributeReference.html#interrupt-arm). At TI, based on customer feedback, we would like to allow users to change this behavior. Preliminary thoughts is to add a new `interrupt_save_ fp` attribute that will change the behavior to save D0-D16, FPEXC, and FPSCR. From a codegen side, this change can probably be implemented by manually adding some instructions in the `ARMFrameLowering::spillCalleeSavedRegisters`, or similar to CMSE, add a pseudo-instruction. This email is to try and get feedback around: * Design implementation, if anyone has thoughts on best ways to implement this * Existing functionality that is similar, (either in other architectures or in ARM) that can be used to model this feature (CMSE is currently the closest thing I have found) * Upstreamability - if possible, what would this feature have to look like to get upstreamed. Thanks, Jake Vossen -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210621/1f160c9b/attachment.html>