diff options
author | peter <peter@FreeBSD.org> | 2003-10-17 16:30:09 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2003-10-17 16:30:09 +0000 |
commit | aa624828003a989c0f398c34c55c7bfd8e8b6203 (patch) | |
tree | 6c6be17cf2d0e63b5f6f3829a43f92f6b8d651f7 /lib | |
parent | bdcd869c50dbb7e959eac5ea7ef50e46269f0c17 (diff) | |
download | FreeBSD-src-aa624828003a989c0f398c34c55c7bfd8e8b6203.zip FreeBSD-src-aa624828003a989c0f398c34c55c7bfd8e8b6203.tar.gz |
Update context code for my last ABI breakage of mcontext. I'm worried
about the fpu code here. It should be using fxsave/fxrstor instead of
saving/restoring the control word. The SSE registers are used a lot in
gcc generated code on amd64. I'm not sure how this all fits together
though.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libkse/arch/amd64/amd64/context.S | 15 | ||||
-rw-r--r-- | lib/libpthread/arch/amd64/amd64/context.S | 15 |
2 files changed, 16 insertions, 14 deletions
diff --git a/lib/libkse/arch/amd64/amd64/context.S b/lib/libkse/arch/amd64/amd64/context.S index 684191f..58c622b 100644 --- a/lib/libkse/arch/amd64/amd64/context.S +++ b/lib/libkse/arch/amd64/amd64/context.S @@ -79,10 +79,10 @@ __FBSDID("$FreeBSD$"); * Where do we define these? */ #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 -#define MC_OWNEDFP_OFFSET (26*8) /* offset to mc_ownedfp from mcontext */ +#define MC_LEN_OFFSET (25*8) /* offset to mc_len from mcontext */ +#define MC_FPFMT_OFFSET (26*8) /* offset to mc_fpformat from mcontext */ +#define MC_FPFMT_NODEV 0x10000 +#define MC_OWNEDFP_OFFSET (27*8) /* offset to mc_ownedfp from mcontext */ #define MC_OWNEDFP_NONE 0x20000 #define MC_OWNEDFP_FPU 0x20001 #define MC_OWNEDFP_PCB 0x20002 @@ -104,9 +104,10 @@ __FBSDID("$FreeBSD$"); #define MC_R13 (13 * 8) #define MC_R14 (14 * 8) #define MC_R15 (15 * 8) -#define MC_RIP (19 * 8) -#define MC_RFLAGS (21 * 8) -#define MC_RSP (22 * 8) +#define MC_FLAGS (18 * 8) +#define MC_RIP (20 * 8) +#define MC_RFLAGS (22 * 8) +#define MC_RSP (23 * 8) /* * _amd64_ctx_save(mcontext_t *mcp) diff --git a/lib/libpthread/arch/amd64/amd64/context.S b/lib/libpthread/arch/amd64/amd64/context.S index 684191f..58c622b 100644 --- a/lib/libpthread/arch/amd64/amd64/context.S +++ b/lib/libpthread/arch/amd64/amd64/context.S @@ -79,10 +79,10 @@ __FBSDID("$FreeBSD$"); * Where do we define these? */ #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 -#define MC_OWNEDFP_OFFSET (26*8) /* offset to mc_ownedfp from mcontext */ +#define MC_LEN_OFFSET (25*8) /* offset to mc_len from mcontext */ +#define MC_FPFMT_OFFSET (26*8) /* offset to mc_fpformat from mcontext */ +#define MC_FPFMT_NODEV 0x10000 +#define MC_OWNEDFP_OFFSET (27*8) /* offset to mc_ownedfp from mcontext */ #define MC_OWNEDFP_NONE 0x20000 #define MC_OWNEDFP_FPU 0x20001 #define MC_OWNEDFP_PCB 0x20002 @@ -104,9 +104,10 @@ __FBSDID("$FreeBSD$"); #define MC_R13 (13 * 8) #define MC_R14 (14 * 8) #define MC_R15 (15 * 8) -#define MC_RIP (19 * 8) -#define MC_RFLAGS (21 * 8) -#define MC_RSP (22 * 8) +#define MC_FLAGS (18 * 8) +#define MC_RIP (20 * 8) +#define MC_RFLAGS (22 * 8) +#define MC_RSP (23 * 8) /* * _amd64_ctx_save(mcontext_t *mcp) |