From 16e235987fae94e53db293990ad4f2d816b72326 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 21 Aug 2014 15:59:11 +0100 Subject: [PATCH] [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 --- src/arch/i386/prefix/romprefix.S | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/arch/i386/prefix/romprefix.S b/src/arch/i386/prefix/romprefix.S index ae18f05d0..999944013 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