diff options
Diffstat (limited to 'arch/i386/math-emu/reg_ld_str.c')
-rw-r--r-- | arch/i386/math-emu/reg_ld_str.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/i386/math-emu/reg_ld_str.c b/arch/i386/math-emu/reg_ld_str.c index 468e51cc8..b3ed9acbb 100644 --- a/arch/i386/math-emu/reg_ld_str.c +++ b/arch/i386/math-emu/reg_ld_str.c @@ -1329,11 +1329,11 @@ u_char *fstenv(fpu_addr_modes addr_modes, u_char *d) FPU_verify_area(VERIFY_WRITE, d, 7*4); #ifdef PECULIAR_486 control_word &= ~0xe080; - /* An 80486 sets all the reserved bits to 1. */ - control_word |= 0xffff0000; + /* An 80486 sets nearly all of the reserved bits to 1. */ + control_word |= 0xffff0040; partial_status = status_word() | 0xffff0000; fpu_tag_word |= 0xffff0000; - I387.soft.fcs |= 0xf8000000; + I387.soft.fcs &= ~0xf8000000; I387.soft.fos |= 0xffff0000; #endif PECULIAR_486 __copy_to_user(d, &control_word, 7*4); |