]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[romprefix] Do not preserve unused register %di
authorMichael Brown <mcb30@ipxe.org>
Thu, 21 Aug 2014 14:59:11 +0000 (15:59 +0100)
committerMichael Brown <mcb30@ipxe.org>
Fri, 22 Aug 2014 14:05:05 +0000 (15:05 +0100)
Since some PnP BIOSes fail to set %es:di to point to the PnP signature
on entry, we identify a PnP BIOS by scanning through the top 64kB of
base memory looking for the PnP structure.  We therefore don't
actually use the values of %es:di provided to the initialisation entry
point, and so there is no need to preserve them.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/arch/i386/prefix/romprefix.S

index ae18f05d038eb2b62fabfef0c16d335599b8d39c..99994401337ed6ca18cdb9360292cbde65ce80d7 100644 (file)
@@ -208,15 +208,8 @@ init:
        pushw   %cs
        popw    %ds
 
-       /* Shuffle some registers around.  We need %di available for
-        * the print_xxx functions, and in a register that's
-        * addressable from %es, so shuffle as follows:
-        *
-        *    %di (pointer to PnP structure) => %bx
-        *    %bx (runtime segment address, for PCI 3.0) => %gs
-        */
+       /* Store PCI 3.0 runtime segment address for later use */
        movw    %bx, %gs
-       movw    %di, %bx
 
        /* Store PCI bus:dev.fn address */
        movw    %ax, init_pci_busdevfn