summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/gnu/i386/fpemul/fpu_entry.c5
-rw-r--r--sys/i386/boot/biosboot/boot2.S12
-rw-r--r--sys/i386/boot/boot2.S12
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
OpenPOWER on IntegriCloud