Remove a comment that questioned why the size of the FPU
state for amd64 was twice as large as necessary. Peter recently fixed this, so the comment no longer applies. Also, since the size of struct mcontext changed, adjust the threads library version of get&set context to match. FYI, any change layout/size change to any arch's struct mcontext will likely need some minor changes in libpthread.
This commit is contained in:
parent
2b9de089a7
commit
a87a12715c
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=120108
@ -72,22 +72,13 @@ __FBSDID("$FreeBSD$");
|
||||
* translations from i386 but with the register names updated, etc.
|
||||
* The main gotcha is that FPU save/restore is in SSE format, which
|
||||
* means a sparse 512 byte FPU context.
|
||||
*
|
||||
* Note that the FPU is suppose to be 512 bytes but that the
|
||||
* definition for the FPU bits in struct mcontext does not
|
||||
* agree:
|
||||
*
|
||||
* long mc_fpstate[128] __aligned(16);
|
||||
*
|
||||
* This would actually use 1024 bytes, not 512, since long is
|
||||
* 8 bytes on amd64.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* Where do we define these?
|
||||
*/
|
||||
#define MC_SIZE 1312 /* sizeof mcontext_t */
|
||||
#define MC_SIZE 800 /* sizeof mcontext_t */
|
||||
#define MC_LEN_OFFSET (24*8) /* offset to mc_len from mcontext */
|
||||
#define MC_FPFMT_OFFSET (25*8) /* offset to mc_fpformat from mcontext */
|
||||
#define MC_FPFMT_NODEV 0x10000
|
||||
|
@ -72,22 +72,13 @@ __FBSDID("$FreeBSD$");
|
||||
* translations from i386 but with the register names updated, etc.
|
||||
* The main gotcha is that FPU save/restore is in SSE format, which
|
||||
* means a sparse 512 byte FPU context.
|
||||
*
|
||||
* Note that the FPU is suppose to be 512 bytes but that the
|
||||
* definition for the FPU bits in struct mcontext does not
|
||||
* agree:
|
||||
*
|
||||
* long mc_fpstate[128] __aligned(16);
|
||||
*
|
||||
* This would actually use 1024 bytes, not 512, since long is
|
||||
* 8 bytes on amd64.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* Where do we define these?
|
||||
*/
|
||||
#define MC_SIZE 1312 /* sizeof mcontext_t */
|
||||
#define MC_SIZE 800 /* sizeof mcontext_t */
|
||||
#define MC_LEN_OFFSET (24*8) /* offset to mc_len from mcontext */
|
||||
#define MC_FPFMT_OFFSET (25*8) /* offset to mc_fpformat from mcontext */
|
||||
#define MC_FPFMT_NODEV 0x10000
|
||||
|
Loading…
Reference in New Issue
Block a user