diff options
author | Robert Mustacchi <rm@joyent.com> | 2018-06-12 21:19:02 +0000 |
---|---|---|
committer | Robert Mustacchi <rm@joyent.com> | 2018-06-13 22:24:41 +0000 |
commit | f48e1a4f1d835afe9a2607058270907434313e19 (patch) | |
tree | 6a8ac10bccd61f3ec0bf6bfba1be4bbe31a2fbaf /usr/src/uts/intel/ia32/syscall | |
parent | 7dd56b107bd476ae57c659b6b9eb5ddd7bb26a2f (diff) | |
download | illumos-joyent-f48e1a4f1d835afe9a2607058270907434313e19.tar.gz |
OS-7000 Need Eager FPU
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
Reviewed by: Bryan Cantrill <bryan@joyent.com>
Reviewed by: John Levon <john.levon@joyent.com>
Approved by: Bryan Cantrill <bryan@joyent.com>
Diffstat (limited to 'usr/src/uts/intel/ia32/syscall')
-rw-r--r-- | usr/src/uts/intel/ia32/syscall/lwp_private.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/usr/src/uts/intel/ia32/syscall/lwp_private.c b/usr/src/uts/intel/ia32/syscall/lwp_private.c index 79e9076ee0..479a800d9a 100644 --- a/usr/src/uts/intel/ia32/syscall/lwp_private.c +++ b/usr/src/uts/intel/ia32/syscall/lwp_private.c @@ -21,10 +21,9 @@ /* * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * Copyright (c) 2018, Joyent, Inc. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include <sys/param.h> #include <sys/types.h> #include <sys/disp.h> @@ -72,12 +71,12 @@ lwp_setprivate(klwp_t *lwp, int which, uintptr_t base) * of zero for %fs and %gs to use the 64-bit fs_base and gs_base * respectively. */ - if (pcb->pcb_rupdate == 0) { + if (!PCB_NEED_UPDATE_SEGS(pcb)) { pcb->pcb_ds = rp->r_ds; pcb->pcb_es = rp->r_es; pcb->pcb_fs = rp->r_fs; pcb->pcb_gs = rp->r_gs; - pcb->pcb_rupdate = 1; + PCB_SET_UPDATE_SEGS(pcb); t->t_post_sys = 1; } ASSERT(t->t_post_sys); @@ -171,7 +170,7 @@ lwp_getprivate(klwp_t *lwp, int which, uintptr_t base) case _LWP_FSBASE: if ((sbase = pcb->pcb_fsbase) != 0) { if (lwp_getdatamodel(lwp) == DATAMODEL_NATIVE) { - if (pcb->pcb_rupdate == 1) { + if (PCB_NEED_UPDATE_SEGS(pcb)) { if (pcb->pcb_fs == 0) break; } else { @@ -179,7 +178,7 @@ lwp_getprivate(klwp_t *lwp, int which, uintptr_t base) break; } } else { - if (pcb->pcb_rupdate == 1) { + if (PCB_NEED_UPDATE_SEGS(pcb)) { if (pcb->pcb_fs == LWPFS_SEL) break; } else { @@ -193,7 +192,7 @@ lwp_getprivate(klwp_t *lwp, int which, uintptr_t base) case _LWP_GSBASE: if ((sbase = pcb->pcb_gsbase) != 0) { if (lwp_getdatamodel(lwp) == DATAMODEL_NATIVE) { - if (pcb->pcb_rupdate == 1) { + if (PCB_NEED_UPDATE_SEGS(pcb)) { if (pcb->pcb_gs == 0) break; } else { @@ -201,7 +200,7 @@ lwp_getprivate(klwp_t *lwp, int which, uintptr_t base) break; } } else { - if (pcb->pcb_rupdate == 1) { + if (PCB_NEED_UPDATE_SEGS(pcb)) { if (pcb->pcb_gs == LWPGS_SEL) break; } else { |