Cleaned up divExtended()

This commit is contained in:
Jeff Parsons 2017-02-15 22:27:03 -08:00 • committed by Jeff Parsons
commit 4d94b5812b

View file

@ -398,24 +398,16 @@ class Int36 {
*/ */
divExtended(divisor) divExtended(divisor)
{ {
/* var fNegQ = false, fNegR = false;
* dividend divisor quotient remainder
* -------- ------- -------- ---------
* + + -> + +
* + - -> - +
* - + -> - -
* - - -> + -
*/
var bNegLo = 0, bNegHi = 0;
if (divisor > Int36.MAXPOS) { if (divisor > Int36.MAXPOS) {
divisor = Int36.BIT36 - divisor; divisor = Int36.BIT36 - divisor;
bNegLo = 1 - bNegLo; fNegQ = !fNegQ;
} }
if (this.isNegative()) { if (this.isNegative()) {
this.negate(); this.negate();
bNegHi = 1; bNegLo = 1 - bNegLo; fNegR = true; fNegQ = !fNegQ;
} }
var value = this.value; var value = this.value;
@ -454,10 +446,10 @@ class Int36 {
this.extended = null; this.extended = null;
this.remainder = bitsRem[0]; this.remainder = bitsRem[0];
if (bNegLo && this.value) { if (fNegQ && this.value) {
this.value = Int36.BIT36 - this.value; this.value = Int36.BIT36 - this.value;
} }
if (bNegHi && this.remainder) { if (fNegR && this.remainder) {
this.remainder = Int36.BIT36 - this.remainder; this.remainder = Int36.BIT36 - this.remainder;
} }
} }