Fix bug in unsigned 32-bit division and remainder routines, which could cause mis-evaluation of constant expressions.

The following example shows cases that were mis-evaluated:

/* Should print "3 10000" */
#include <stdio.h>
int main(void)
{
	printf("%lu %lu\n", 100000ul / 30000ul, 100000ul % 30000ul);
}
This commit is contained in:
Stephen Heumann 2016-12-18 22:52:53 -06:00
parent d0b4b75970
commit f4ad0fab80
1 changed files with 2 additions and 2 deletions

View File

@ -90,7 +90,7 @@ dv3 asl ans roll up the next number
rol ans+6
sec subtract for this digit
lda ans+4
sbc num1
sbc num2
tax
lda ans+6
sbc num2+2
@ -267,7 +267,7 @@ dv3 asl ans roll up the next number
rol ans+6
sec subtract for this digit
lda ans+4
sbc num1
sbc num2
tax
lda ans+6
sbc num2+2