diff options
-rw-r--r-- | sys/gnu/i386/fpemul/fpu_entry.c | 5 | ||||
-rw-r--r-- | sys/i386/boot/biosboot/boot2.S | 12 | ||||
-rw-r--r-- | sys/i386/boot/boot2.S | 12 |
3 files changed, 22 insertions, 7 deletions
diff --git a/sys/gnu/i386/fpemul/fpu_entry.c b/sys/gnu/i386/fpemul/fpu_entry.c index 7b41732..367340a 100644 --- a/sys/gnu/i386/fpemul/fpu_entry.c +++ b/sys/gnu/i386/fpemul/fpu_entry.c @@ -55,7 +55,7 @@ * * W. Metzenthen June 1994. * - * $Id: fpu_entry.c,v 1.2 1994/04/29 21:16:21 gclarkii Exp $ + * $Id: fpu_entry.c,v 1.3 1994/06/10 07:44:22 rich Exp $ * */ @@ -210,6 +210,7 @@ math_emulate(struct trapframe * tframe) if ((((struct pcb *) curproc->p_addr)->pcb_flags & FP_SOFTFP) == 0) { finit(); + control_word = __INITIAL_NPXCW__; ((struct pcb *) curproc->p_addr)->pcb_flags |= FP_SOFTFP; } FPU_info = tframe; @@ -228,10 +229,8 @@ math_emulate(struct trapframe * tframe) #endif FPU_lookahead = FPU_LOOKAHEAD; -#if notnow /* I dont know that much of traceing. Is it right? --pink-- */ if (curproc->p_flag & STRC) FPU_lookahead = 0; -#endif do_another_FPU_instruction: diff --git a/sys/i386/boot/biosboot/boot2.S b/sys/i386/boot/biosboot/boot2.S index b3c96da..f78ce10 100644 --- a/sys/i386/boot/biosboot/boot2.S +++ b/sys/i386/boot/biosboot/boot2.S @@ -24,7 +24,7 @@ * the rights to redistribute these changes. * * from: Mach, Revision 2.2 92/04/04 11:35:26 rpd - * $Id: boot2.S,v 1.2 1993/10/16 19:11:33 rgrimes Exp $ + * $Id: boot2.S,v 1.3 1993/11/13 04:43:25 rgrimes Exp $ */ #include "asm.h" @@ -128,14 +128,22 @@ ENTRY(boot2) mov %ax, %es /* fix up IDT entries for bdb */ - subl $2, %ebx + data32 + subl $2, %ebx /* calculate EA to check it */ + jb 1f /* give up if it would trap */ + addr32 movl %es: (%ebx), %eax /* actually movw to %ax */ addr32 movl %eax, EXT(Idt)+8*DEBUG_VECTOR /* actually movw %ax */ +1: + data32 subl $2, %ecx + jb 1f + addr32 movl %es: (%ecx), %eax /* actually movw to %ax */ addr32 movl %eax, EXT(Idt)+8*BREAKPOINT_VECTOR /* actually movw %ax */ +1: /* finished with groping in real mode segments */ pop %es diff --git a/sys/i386/boot/boot2.S b/sys/i386/boot/boot2.S index b3c96da..f78ce10 100644 --- a/sys/i386/boot/boot2.S +++ b/sys/i386/boot/boot2.S @@ -24,7 +24,7 @@ * the rights to redistribute these changes. * * from: Mach, Revision 2.2 92/04/04 11:35:26 rpd - * $Id: boot2.S,v 1.2 1993/10/16 19:11:33 rgrimes Exp $ + * $Id: boot2.S,v 1.3 1993/11/13 04:43:25 rgrimes Exp $ */ #include "asm.h" @@ -128,14 +128,22 @@ ENTRY(boot2) mov %ax, %es /* fix up IDT entries for bdb */ - subl $2, %ebx + data32 + subl $2, %ebx /* calculate EA to check it */ + jb 1f /* give up if it would trap */ + addr32 movl %es: (%ebx), %eax /* actually movw to %ax */ addr32 movl %eax, EXT(Idt)+8*DEBUG_VECTOR /* actually movw %ax */ +1: + data32 subl $2, %ecx + jb 1f + addr32 movl %es: (%ecx), %eax /* actually movw to %ax */ addr32 movl %eax, EXT(Idt)+8*BREAKPOINT_VECTOR /* actually movw %ax */ +1: /* finished with groping in real mode segments */ pop %es |