summaryrefslogtreecommitdiffstats
path: root/sys/i386/linux/linux_sysvec.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/i386/linux/linux_sysvec.c')
-rw-r--r--sys/i386/linux/linux_sysvec.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/sys/i386/linux/linux_sysvec.c b/sys/i386/linux/linux_sysvec.c
index c98fe14..4efd496 100644
--- a/sys/i386/linux/linux_sysvec.c
+++ b/sys/i386/linux/linux_sysvec.c
@@ -89,9 +89,6 @@ MALLOC_DEFINE(M_LINUX, "linux", "Linux mode structures");
#define LINUX_SYS_linux_rt_sendsig 0
#define LINUX_SYS_linux_sendsig 0
-#define fldcw(addr) __asm("fldcw %0" : : "m" (*(addr)))
-#define __LINUX_NPXCW__ 0x37f
-
extern char linux_sigcode[];
extern int linux_szsigcode;
@@ -930,16 +927,15 @@ static void
exec_linux_setregs(struct thread *td, u_long entry,
u_long stack, u_long ps_strings)
{
- static const u_short control = __LINUX_NPXCW__;
struct pcb *pcb = td->td_pcb;
exec_setregs(td, entry, stack, ps_strings);
/* Linux sets %gs to 0, we default to _udatasel */
- pcb->pcb_gs = 0; load_gs(0);
+ pcb->pcb_gs = 0;
+ load_gs(0);
- /* Linux sets the i387 to extended precision. */
- fldcw(&control);
+ pcb->pcb_initial_npxcw = __LINUX_NPXCW__;
}
static void
OpenPOWER on IntegriCloud