Up to [cvs.NetBSD.org] / src / sys / dev / nvmm / x86
Request diff between arbitrary revisions
Default branch: MAIN
Current tag: thorpej-futex
Revision 1.82.2.1 / (download) - annotate - [select for diffs], Sat Apr 3 22:28:45 2021 UTC (3 years ago) by thorpej
Branch: thorpej-futex
Changes since 1.82: +3 -3
lines
Diff to previous 1.82 (colored) next main 1.83 (colored)
Sync with HEAD.
Revision 1.82 / (download) - annotate - [select for diffs], Sat Oct 24 07:14:30 2020 UTC (3 years, 5 months ago) by mgorny
Branch: MAIN
Branch point for: thorpej-futex,
thorpej-cfargs
Changes since 1.81: +6 -4
lines
Diff to previous 1.81 (colored)
Issue 64-bit versions of *XSAVE* for 64-bit amd64 programs When calling FXSAVE, XSAVE, FXRSTOR, ... for 64-bit programs on amd64 use the 64-suffixed variant in order to include the complete FIP/FDP registers in the x87 area. The difference between the two variants is that the FXSAVE64 (new) variant represents FIP/FDP as 64-bit fields (union fp_addr.fa_64), while the legacy FXSAVE variant uses split fields: 32-bit offset, 16-bit segment and 16-bit reserved field (union fp_addr.fa_32). The latter implies that the actual addresses are truncated to 32 bits which is insufficient in modern programs. The change is applied only to 64-bit programs on amd64. Plain i386 and compat32 continue using plain FXSAVE. Similarly, NVMM is not changed as I am not familiar with that code. This is a potentially breaking change. However, I don't think it likely to actually break anything because the data provided by the old variant were not meaningful (because of the truncated pointer).