From owner-cvs-sys Thu Mar 2 18:47:25 1995 Return-Path: cvs-sys-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.9/8.6.6) id SAA26536 for cvs-sys-outgoing; Thu, 2 Mar 1995 18:47:25 -0800 Received: from godzilla.zeta.org.au (godzilla.zeta.org.au [203.2.228.34]) by freefall.cdrom.com (8.6.9/8.6.6) with ESMTP id SAA26499; Thu, 2 Mar 1995 18:46:56 -0800 Received: (from bde@localhost) by godzilla.zeta.org.au (8.6.9/8.6.9) id NAA13724; Fri, 3 Mar 1995 13:44:27 +1100 Date: Fri, 3 Mar 1995 13:44:27 +1100 From: Bruce Evans Message-Id: <199503030244.NAA13724@godzilla.zeta.org.au> To: phk@ref.tfs.com, rgrimes@gndrsh.aac.dev.com Subject: Re: cvs commit: src/sys/i386/boot/biosboot probe_keyboard.c Cc: CVS-commiters@freefall.cdrom.com, cvs-sys@freefall.cdrom.com, davidg@Root.COM, wpaul@freefall.cdrom.com Sender: cvs-sys-owner@freebsd.org Precedence: bulk >> > > > Modified: sys/i386/boot/biosboot probe_keyboard.c >> > > > ... >> > > > up alittle. This pushes us right up to the edge of the size limit: >> > > > the second stage boot is now 7152 bytes in size, just 8 bytes under >> > > > the wire. On the other hand, the new probe now does almost exactly 16 bytes under :-). >> > > This is going to be a problem...there are some (other) bugs that I need to >> > > fix that will require some bytes themselves. Time for a multi-stage boot. >> > There is plenty of bytes to spare, if we get all the "date16 ; mov this,that" >> > turned into real 16 bit instrs. Any takers ? 8 bytes here, 2 bytes there...but it will add up to only one or two hundred bytes. >> There is no such thing as ``real 16 bit instrs''. You have 8 bit inst and >> you have current mode inst, which are either 16bit or 32bit depending on >> the CS GDT entry size bit. You have to use data16; mov this, that when >> dealing with 16 bit values running in a 32 bit code segment. >You disasseble our boot1 and you will see what I mean... Yes, there are a number of what should be 16 bit instructions in 16 bit mode that are programmed as `addr32; data32; movl...' because it's too hard to do anything better using gas. This costs bytes for both segment overrides and longer effective addresses. Bruce