diff options
author | Michael Brown <mcb30@ipxe.org> | 2014-08-21 15:59:11 +0100 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2014-08-22 15:05:05 +0100 |
commit | 16e235987fae94e53db293990ad4f2d816b72326 (patch) | |
tree | f184c3e5ee33aed4696f22d0a04c2d129b36cd96 /src | |
parent | ec7c331ca34d4fc8fd4038f7d76e5bc17236da77 (diff) | |
download | ipxe-16e235987fae94e53db293990ad4f2d816b72326.zip ipxe-16e235987fae94e53db293990ad4f2d816b72326.tar.gz ipxe-16e235987fae94e53db293990ad4f2d816b72326.tar.bz2 |
[romprefix] Do not preserve unused register %di
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>
Diffstat (limited to 'src')
-rw-r--r-- | src/arch/i386/prefix/romprefix.S | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/src/arch/i386/prefix/romprefix.S b/src/arch/i386/prefix/romprefix.S index ae18f05..9999440 100644 --- a/src/arch/i386/prefix/romprefix.S +++ b/src/arch/i386/prefix/romprefix.S @@ -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 |