mirror of https://github.com/ipxe/ipxe.git
[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>pull/26/merge
parent
ec7c331ca3
commit
16e235987f
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue