<HTML>
Hi everyone,<br>
<br>
I'm starting to make some modifications to the optimizer so it optimises div and mod operations on signed integers (I've done unsigned integers already). One question that I've stumbled across... what are the rules regarding the sign of the result?  Experimenting with IDIV suggests it returns a negative modulus only if the numerator is positive (so -28 / 3 = -9 remainder -1, and -28 / -3 = 9 remainder -1, but 28 / -3 = -9 remainder +1), which follows the Euclidean division rule of n = dq + r, where n is the numerator, d is the divisor, q is the resultant quotient and r is the resultant remainder.<br>
<br>
While I'm planning on being consistent with IDIV, what are the rules of signed division in Free Pascal? There are hints that some dialects of Pascal only return a positive modulus no matter what.<br>
<br>
Gareth aka. Kit<br>
</HTML>