mirror of
https://github.com/ipxe/ipxe
synced 2025-12-13 07:20:47 +03:00
[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>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user