j
: Next unread message k
: Previous unread message j a
: Jump to all threads
j l
: Jump to MailingList overview
On Tue, Aug 9, 2011 at 11:55 PM, William Hahne will07c5@gmail.com wrote:
It is possible for BootX to purposefully divide by zero expecting 0 as the result.
OBP behaves differently. It puts the result only if there was no devision by zero:
ok showstack ok 0 0 / Trap 3e ok 1 0 / Trap 3e ok 10 8 / 2 ok
Maybe it has to be done platform-dependent.
Index: kernel/forth.c
--- kernel/forth.c (revision 1041) +++ kernel/forth.c (working copy) @@ -1157,6 +1157,12 @@ { const ucell b = POP(); const ducell a = DPOP();
- if (b == 0) { // can't divide by zero
- PUSH(0);
+ DPUSH(0);
- return;
- }
#ifdef NEED_FAKE_INT128_T if (a.hi != 0) { fprintf(stderr, "mudivmod called (0x%016llx %016llx / 0x%016llx)\n", -- OpenBIOS http://openbios.org/ Mailinglist: http://lists.openbios.org/mailman/listinfo Free your System - May the Forth be with you