Page MenuHomeFreeBSD

arm64: Add the SVE registers to the signal frame
Needs ReviewPublic

Authored by andrew on Jan 4 2024, 12:32 PM.
Tags
None
Referenced Files
F95410808: D43307.id139801.diff
Fri, Sep 20, 4:48 PM
Unknown Object (File)
Thu, Sep 19, 5:47 PM
Unknown Object (File)
Wed, Sep 18, 4:08 AM
Unknown Object (File)
Tue, Sep 17, 7:46 PM
Unknown Object (File)
Sun, Sep 15, 1:33 AM
Unknown Object (File)
Sun, Sep 8, 2:32 AM
Unknown Object (File)
Sat, Aug 31, 1:44 PM
Unknown Object (File)
Sat, Aug 31, 1:43 PM
Subscribers

Details

Reviewers
kib
markj
manu
Group Reviewers
arm64
Summary

Use the new extended register support in the arm64 signal frame to
handle the SVE registers.

As these registers alias the VFP registers we use the floating point
register values to restore the lower bits of the SVE registers. This
is to support software that doesn't understand SVE to continue working.

Sponsored by: Arm Ltd

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 58162
Build 55050: arc lint + arc unit

Event Timeline

I have the same question here I did about the other change to sigreturn: why no changes to setcontext and how does this interact with them?

I don't think we need to store the SCE registers in getcontextx. It's a function call that doesn't take an SVE register as an argument so the ABI doesn't require the upper bits of SVE registers to be preserved. We could restore the SVE registers in setcontextx if they are in the list of registers.

Rebase and check the SVE registers are only set once