` ! compute sign of result; if neither is negative, no problem
orcc divisor, dividend, %g0 ! either negative?
bge 2f ! no, go do the divide
- xor divisor, dividend, SIGN ! compute sign in any case
+ifelse(OP, `div',
+` xor divisor, dividend, SIGN ! compute sign in any case',
+` mov dividend, SIGN ! sign of remainder matches dividend')
tst divisor
bge 1f
tst dividend
Lgot_result:
ifelse(S, `true',
-`ifelse(OP, `div', dnl Remainder should always be positive, says RMS.
` ! check to see if answer should be < 0
tst SIGN
bl,a 1f
ifelse(OP, `div', `sub %g0, Q, Q', `sub %g0, R, R')
-1:')')
+1:')
retl
ifelse(OP, `div', `mov Q, %o0', `mov R, %o0')