From 07addd421ef1b29eda31816c4e7bbb2b23f3fad3 Mon Sep 17 00:00:00 2001 From: Bruce Evans Date: Wed, 18 Dec 1996 15:38:23 +0000 Subject: [PATCH] Initialize the upper 16 bits of the memory sizes properly (to 0). They were garbage that happened to be 0 in many cases. (real_to_prot() happens to leave the value of the real-mode %cr0 in %eax and the memory-size BIOS calls usually don't touch the upper bits of %eax. The upper 16 bits of %cr0 are usually 0 at boot time, at least on 486's. Should be in 2.2. --- sys/i386/boot/biosboot/bios.S | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sys/i386/boot/biosboot/bios.S b/sys/i386/boot/biosboot/bios.S index a3ff7e2c5e3..91489eea1c4 100644 --- a/sys/i386/boot/biosboot/bios.S +++ b/sys/i386/boot/biosboot/bios.S @@ -24,7 +24,7 @@ * the rights to redistribute these changes. * * from: Mach, Revision 2.2 92/04/04 11:34:26 rpd - * $Id: bios.S,v 1.5 1995/09/03 05:36:13 julian Exp $ + * $Id: bios.S,v 1.6 1996/11/11 14:03:33 bde Exp $ */ /* @@ -352,12 +352,13 @@ xext: movb $0x88, %ah cli xdone: - mov %eax, %ebx + pushl $0 /* actually pushw $0 */ + pushl %eax /* actually pushw %ax */ data32 call EXT(real_to_prot) - mov %ebx, %eax + pop %eax pop %edi pop %esi pop %ebx