mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-01 00:11:00 +00:00
Change errs() to dbgs().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92643 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8061a440f6
commit
465abed388
@ -1580,12 +1580,12 @@ static void KnuthDiv(unsigned *u, unsigned *v, unsigned *q, unsigned* r,
|
|||||||
uint64_t b = uint64_t(1) << 32;
|
uint64_t b = uint64_t(1) << 32;
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
DEBUG(errs() << "KnuthDiv: m=" << m << " n=" << n << '\n');
|
DEBUG(dbgs() << "KnuthDiv: m=" << m << " n=" << n << '\n');
|
||||||
DEBUG(errs() << "KnuthDiv: original:");
|
DEBUG(dbgs() << "KnuthDiv: original:");
|
||||||
DEBUG(for (int i = m+n; i >=0; i--) errs() << " " << u[i]);
|
DEBUG(for (int i = m+n; i >=0; i--) dbgs() << " " << u[i]);
|
||||||
DEBUG(errs() << " by");
|
DEBUG(dbgs() << " by");
|
||||||
DEBUG(for (int i = n; i >0; i--) errs() << " " << v[i-1]);
|
DEBUG(for (int i = n; i >0; i--) dbgs() << " " << v[i-1]);
|
||||||
DEBUG(errs() << '\n');
|
DEBUG(dbgs() << '\n');
|
||||||
#endif
|
#endif
|
||||||
// D1. [Normalize.] Set d = b / (v[n-1] + 1) and multiply all the digits of
|
// D1. [Normalize.] Set d = b / (v[n-1] + 1) and multiply all the digits of
|
||||||
// u and v by d. Note that we have taken Knuth's advice here to use a power
|
// u and v by d. Note that we have taken Knuth's advice here to use a power
|
||||||
@ -1612,17 +1612,17 @@ static void KnuthDiv(unsigned *u, unsigned *v, unsigned *q, unsigned* r,
|
|||||||
}
|
}
|
||||||
u[m+n] = u_carry;
|
u[m+n] = u_carry;
|
||||||
#if 0
|
#if 0
|
||||||
DEBUG(errs() << "KnuthDiv: normal:");
|
DEBUG(dbgs() << "KnuthDiv: normal:");
|
||||||
DEBUG(for (int i = m+n; i >=0; i--) errs() << " " << u[i]);
|
DEBUG(for (int i = m+n; i >=0; i--) dbgs() << " " << u[i]);
|
||||||
DEBUG(errs() << " by");
|
DEBUG(dbgs() << " by");
|
||||||
DEBUG(for (int i = n; i >0; i--) errs() << " " << v[i-1]);
|
DEBUG(for (int i = n; i >0; i--) dbgs() << " " << v[i-1]);
|
||||||
DEBUG(errs() << '\n');
|
DEBUG(dbgs() << '\n');
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// D2. [Initialize j.] Set j to m. This is the loop counter over the places.
|
// D2. [Initialize j.] Set j to m. This is the loop counter over the places.
|
||||||
int j = m;
|
int j = m;
|
||||||
do {
|
do {
|
||||||
DEBUG(errs() << "KnuthDiv: quotient digit #" << j << '\n');
|
DEBUG(dbgs() << "KnuthDiv: quotient digit #" << j << '\n');
|
||||||
// D3. [Calculate q'.].
|
// D3. [Calculate q'.].
|
||||||
// Set qp = (u[j+n]*b + u[j+n-1]) / v[n-1]. (qp=qprime=q')
|
// Set qp = (u[j+n]*b + u[j+n-1]) / v[n-1]. (qp=qprime=q')
|
||||||
// Set rp = (u[j+n]*b + u[j+n-1]) % v[n-1]. (rp=rprime=r')
|
// Set rp = (u[j+n]*b + u[j+n-1]) % v[n-1]. (rp=rprime=r')
|
||||||
@ -1632,7 +1632,7 @@ static void KnuthDiv(unsigned *u, unsigned *v, unsigned *q, unsigned* r,
|
|||||||
// value qp is one too large, and it eliminates all cases where qp is two
|
// value qp is one too large, and it eliminates all cases where qp is two
|
||||||
// too large.
|
// too large.
|
||||||
uint64_t dividend = ((uint64_t(u[j+n]) << 32) + u[j+n-1]);
|
uint64_t dividend = ((uint64_t(u[j+n]) << 32) + u[j+n-1]);
|
||||||
DEBUG(errs() << "KnuthDiv: dividend == " << dividend << '\n');
|
DEBUG(dbgs() << "KnuthDiv: dividend == " << dividend << '\n');
|
||||||
uint64_t qp = dividend / v[n-1];
|
uint64_t qp = dividend / v[n-1];
|
||||||
uint64_t rp = dividend % v[n-1];
|
uint64_t rp = dividend % v[n-1];
|
||||||
if (qp == b || qp*v[n-2] > b*rp + u[j+n-2]) {
|
if (qp == b || qp*v[n-2] > b*rp + u[j+n-2]) {
|
||||||
@ -1641,7 +1641,7 @@ static void KnuthDiv(unsigned *u, unsigned *v, unsigned *q, unsigned* r,
|
|||||||
if (rp < b && (qp == b || qp*v[n-2] > b*rp + u[j+n-2]))
|
if (rp < b && (qp == b || qp*v[n-2] > b*rp + u[j+n-2]))
|
||||||
qp--;
|
qp--;
|
||||||
}
|
}
|
||||||
DEBUG(errs() << "KnuthDiv: qp == " << qp << ", rp == " << rp << '\n');
|
DEBUG(dbgs() << "KnuthDiv: qp == " << qp << ", rp == " << rp << '\n');
|
||||||
|
|
||||||
// D4. [Multiply and subtract.] Replace (u[j+n]u[j+n-1]...u[j]) with
|
// D4. [Multiply and subtract.] Replace (u[j+n]u[j+n-1]...u[j]) with
|
||||||
// (u[j+n]u[j+n-1]..u[j]) - qp * (v[n-1]...v[1]v[0]). This computation
|
// (u[j+n]u[j+n-1]..u[j]) - qp * (v[n-1]...v[1]v[0]). This computation
|
||||||
@ -1652,7 +1652,7 @@ static void KnuthDiv(unsigned *u, unsigned *v, unsigned *q, unsigned* r,
|
|||||||
uint64_t u_tmp = uint64_t(u[j+i]) | (uint64_t(u[j+i+1]) << 32);
|
uint64_t u_tmp = uint64_t(u[j+i]) | (uint64_t(u[j+i+1]) << 32);
|
||||||
uint64_t subtrahend = uint64_t(qp) * uint64_t(v[i]);
|
uint64_t subtrahend = uint64_t(qp) * uint64_t(v[i]);
|
||||||
bool borrow = subtrahend > u_tmp;
|
bool borrow = subtrahend > u_tmp;
|
||||||
DEBUG(errs() << "KnuthDiv: u_tmp == " << u_tmp
|
DEBUG(dbgs() << "KnuthDiv: u_tmp == " << u_tmp
|
||||||
<< ", subtrahend == " << subtrahend
|
<< ", subtrahend == " << subtrahend
|
||||||
<< ", borrow = " << borrow << '\n');
|
<< ", borrow = " << borrow << '\n');
|
||||||
|
|
||||||
@ -1666,12 +1666,12 @@ static void KnuthDiv(unsigned *u, unsigned *v, unsigned *q, unsigned* r,
|
|||||||
k++;
|
k++;
|
||||||
}
|
}
|
||||||
isNeg |= borrow;
|
isNeg |= borrow;
|
||||||
DEBUG(errs() << "KnuthDiv: u[j+i] == " << u[j+i] << ", u[j+i+1] == " <<
|
DEBUG(dbgs() << "KnuthDiv: u[j+i] == " << u[j+i] << ", u[j+i+1] == " <<
|
||||||
u[j+i+1] << '\n');
|
u[j+i+1] << '\n');
|
||||||
}
|
}
|
||||||
DEBUG(errs() << "KnuthDiv: after subtraction:");
|
DEBUG(dbgs() << "KnuthDiv: after subtraction:");
|
||||||
DEBUG(for (int i = m+n; i >=0; i--) errs() << " " << u[i]);
|
DEBUG(for (int i = m+n; i >=0; i--) dbgs() << " " << u[i]);
|
||||||
DEBUG(errs() << '\n');
|
DEBUG(dbgs() << '\n');
|
||||||
// The digits (u[j+n]...u[j]) should be kept positive; if the result of
|
// The digits (u[j+n]...u[j]) should be kept positive; if the result of
|
||||||
// this step is actually negative, (u[j+n]...u[j]) should be left as the
|
// this step is actually negative, (u[j+n]...u[j]) should be left as the
|
||||||
// true value plus b**(n+1), namely as the b's complement of
|
// true value plus b**(n+1), namely as the b's complement of
|
||||||
@ -1684,9 +1684,9 @@ static void KnuthDiv(unsigned *u, unsigned *v, unsigned *q, unsigned* r,
|
|||||||
carry = carry && u[i] == 0;
|
carry = carry && u[i] == 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DEBUG(errs() << "KnuthDiv: after complement:");
|
DEBUG(dbgs() << "KnuthDiv: after complement:");
|
||||||
DEBUG(for (int i = m+n; i >=0; i--) errs() << " " << u[i]);
|
DEBUG(for (int i = m+n; i >=0; i--) dbgs() << " " << u[i]);
|
||||||
DEBUG(errs() << '\n');
|
DEBUG(dbgs() << '\n');
|
||||||
|
|
||||||
// D5. [Test remainder.] Set q[j] = qp. If the result of step D4 was
|
// D5. [Test remainder.] Set q[j] = qp. If the result of step D4 was
|
||||||
// negative, go to step D6; otherwise go on to step D7.
|
// negative, go to step D6; otherwise go on to step D7.
|
||||||
@ -1707,16 +1707,16 @@ static void KnuthDiv(unsigned *u, unsigned *v, unsigned *q, unsigned* r,
|
|||||||
}
|
}
|
||||||
u[j+n] += carry;
|
u[j+n] += carry;
|
||||||
}
|
}
|
||||||
DEBUG(errs() << "KnuthDiv: after correction:");
|
DEBUG(dbgs() << "KnuthDiv: after correction:");
|
||||||
DEBUG(for (int i = m+n; i >=0; i--) errs() <<" " << u[i]);
|
DEBUG(for (int i = m+n; i >=0; i--) dbgs() <<" " << u[i]);
|
||||||
DEBUG(errs() << "\nKnuthDiv: digit result = " << q[j] << '\n');
|
DEBUG(dbgs() << "\nKnuthDiv: digit result = " << q[j] << '\n');
|
||||||
|
|
||||||
// D7. [Loop on j.] Decrease j by one. Now if j >= 0, go back to D3.
|
// D7. [Loop on j.] Decrease j by one. Now if j >= 0, go back to D3.
|
||||||
} while (--j >= 0);
|
} while (--j >= 0);
|
||||||
|
|
||||||
DEBUG(errs() << "KnuthDiv: quotient:");
|
DEBUG(dbgs() << "KnuthDiv: quotient:");
|
||||||
DEBUG(for (int i = m; i >=0; i--) errs() <<" " << q[i]);
|
DEBUG(for (int i = m; i >=0; i--) dbgs() <<" " << q[i]);
|
||||||
DEBUG(errs() << '\n');
|
DEBUG(dbgs() << '\n');
|
||||||
|
|
||||||
// D8. [Unnormalize]. Now q[...] is the desired quotient, and the desired
|
// D8. [Unnormalize]. Now q[...] is the desired quotient, and the desired
|
||||||
// remainder may be obtained by dividing u[...] by d. If r is non-null we
|
// remainder may be obtained by dividing u[...] by d. If r is non-null we
|
||||||
@ -1727,22 +1727,22 @@ static void KnuthDiv(unsigned *u, unsigned *v, unsigned *q, unsigned* r,
|
|||||||
// shift right here. In order to mak
|
// shift right here. In order to mak
|
||||||
if (shift) {
|
if (shift) {
|
||||||
unsigned carry = 0;
|
unsigned carry = 0;
|
||||||
DEBUG(errs() << "KnuthDiv: remainder:");
|
DEBUG(dbgs() << "KnuthDiv: remainder:");
|
||||||
for (int i = n-1; i >= 0; i--) {
|
for (int i = n-1; i >= 0; i--) {
|
||||||
r[i] = (u[i] >> shift) | carry;
|
r[i] = (u[i] >> shift) | carry;
|
||||||
carry = u[i] << (32 - shift);
|
carry = u[i] << (32 - shift);
|
||||||
DEBUG(errs() << " " << r[i]);
|
DEBUG(dbgs() << " " << r[i]);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (int i = n-1; i >= 0; i--) {
|
for (int i = n-1; i >= 0; i--) {
|
||||||
r[i] = u[i];
|
r[i] = u[i];
|
||||||
DEBUG(errs() << " " << r[i]);
|
DEBUG(dbgs() << " " << r[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DEBUG(errs() << '\n');
|
DEBUG(dbgs() << '\n');
|
||||||
}
|
}
|
||||||
#if 0
|
#if 0
|
||||||
DEBUG(errs() << '\n');
|
DEBUG(dbgs() << '\n');
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2191,7 +2191,7 @@ void APInt::dump() const {
|
|||||||
SmallString<40> S, U;
|
SmallString<40> S, U;
|
||||||
this->toStringUnsigned(U);
|
this->toStringUnsigned(U);
|
||||||
this->toStringSigned(S);
|
this->toStringSigned(S);
|
||||||
errs() << "APInt(" << BitWidth << "b, "
|
dbgs() << "APInt(" << BitWidth << "b, "
|
||||||
<< U.str() << "u " << S.str() << "s)";
|
<< U.str() << "u " << S.str() << "s)";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user