[OpenBIOS] [commit] r1087 - trunk/openbios-devel/arch/ppc/qemu

repository service svn at openbios.org
Sun Jan 13 16:26:54 CET 2013


Author: mcayland
Date: Sun Jan 13 16:26:53 2013
New Revision: 1087
URL: http://tracker.coreboot.org/trac/openbios/changeset/1087

Log:
PPC: Mimic Apple's OpenFirmware behaviour if a divide by zero occurs.

As reported by Amadeusz Sławiński using a real Mac, if anything is divided by
zero then we should return zero rather than invoke a manual trap:

0 > 2 0 /  ok
1 > u. 0  ok

This resolves a bug in BootX which (un)intentionally divides by zero during
boot.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>

Modified:
   trunk/openbios-devel/arch/ppc/qemu/init.c
   trunk/openbios-devel/arch/ppc/qemu/start.S

Modified: trunk/openbios-devel/arch/ppc/qemu/init.c
==============================================================================
--- trunk/openbios-devel/arch/ppc/qemu/init.c	Sat Jan 12 18:22:39 2013	(r1086)
+++ trunk/openbios-devel/arch/ppc/qemu/init.c	Sun Jan 13 16:26:53 2013	(r1087)
@@ -59,6 +59,14 @@
     }
 }
 
+extern void __divide_error(void);
+
+void
+__divide_error(void)
+{
+    return;
+}
+
 enum {
     ARCH_PREP = 0,
     ARCH_MAC99,

Modified: trunk/openbios-devel/arch/ppc/qemu/start.S
==============================================================================
--- trunk/openbios-devel/arch/ppc/qemu/start.S	Sat Jan 12 18:22:39 2013	(r1086)
+++ trunk/openbios-devel/arch/ppc/qemu/start.S	Sun Jan 13 16:26:53 2013	(r1087)
@@ -295,7 +295,6 @@
 exception_return:
 	EXCEPTION_EPILOGUE
 
-_GLOBAL(__divide_error):
 trap_error:
 	mflr	r3
 	LOAD_REG_FUNC(r4, unexpected_excep)



More information about the OpenBIOS mailing list