RFR: 8316125: Windows call_stub unnecessarily saves xmm16-31 when UseAVX>=3
Daniel Jeliński
djelinski at openjdk.org
Wed Sep 13 16:30:37 UTC 2023
On Tue, 12 Sep 2023 17:10:38 GMT, Daniel Jeliński <djelinski at openjdk.org> wrote:
> Please review this patch that removes saving of xmm16-xmm31 registers from Windows call_stub.
>
> Windows ABI only mandates saving xmm6-xmm15, which we continue to do here.
>
> No new tests. Mach5 tier1-5 builds and tests clean.
Jira suggests that the original submitter of this patch might no longer be around, but any insights from folks more familiar with the problem are welcome.
For what it's worth:
- VS 2015 documentation specifies that XMM16-31 are volatile [link](https://learn.microsoft.com/en-us/cpp/build/x64-calling-convention?view=msvc-140#callercallee-saved-registers)
- VS 2015 documentation [was released 2015-07](https://learn.microsoft.com/en-us/previous-versions/visualstudio/), so was not available at the time this patch was merged
- VS 2013 documentation [did not mention XMM16-31 at all](https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2013/9z1stfyw(v=vs.120))
Based on the above, I'd assume that saving XMM16-31 was based on best guess.
Saving of XMM16-31 was added in the second webrev, the first one did not have them. As far as I can tell, the change was not discussed.
https://mail.openjdk.org/pipermail/hotspot-compiler-dev/2015-April/017738.html
-------------
PR Comment: https://git.openjdk.org/jdk/pull/15688#issuecomment-1717953351
More information about the hotspot-dev
mailing list