Index: /trunk/src/VBox/Devices/PC/BIOS/post.c
===================================================================
--- /trunk/src/VBox/Devices/PC/BIOS/post.c	(revision 79654)
+++ /trunk/src/VBox/Devices/PC/BIOS/post.c	(revision 79655)
@@ -70,4 +70,8 @@
 }
 
+/* The ROM init routine might trash register. Give the compiler a heads-up. */
+typedef void (rom_init_rtn)(void);
+#pragma aux rom_init_rtn modify [ax bx cx dx si di es] loadds;
+
 /* Scan for ROMs in the given range and execute their POST code. */
 void rom_scan(uint16_t start_seg, uint16_t end_seg)
@@ -84,5 +88,5 @@
             DPRINT("Found ROM at segment %04X\n", start_seg);
             if (!rom_checksum((void __far *)rom, rom->num_blks)) {
-                void (__far * rom_init)(void);
+                rom_init_rtn    __far *rom_init;
 
                 /* Checksum good, initialize ROM. */
