Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2328)

Unified Diff: src/fixed-dtoa.cc

Issue 1956005: Dtoa for fixed notation. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 10 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/fixed-dtoa.h ('k') | test/cctest/SConscript » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/fixed-dtoa.cc
===================================================================
--- src/fixed-dtoa.cc (revision 4592)
+++ src/fixed-dtoa.cc (working copy)
@@ -103,9 +103,9 @@
int BitAt(int position) {
if (position >= 64) {
- return (high_bits_ >> (position - 64)) & 1;
+ return static_cast<int>(high_bits_ >> (position - 64)) & 1;
} else {
- return (low_bits_ >> position) & 1;
+ return static_cast<int>(low_bits_ >> position) & 1;
}
}
@@ -146,7 +146,8 @@
char tmp = buffer[i];
buffer[i] = buffer[j];
buffer[j] = tmp;
- i++; j--;
+ i++;
+ j--;
}
*length += number_length;
}
@@ -156,10 +157,10 @@
Vector<char> buffer, int* length) {
const uint32_t kTen7 = 10000000;
// For efficiency cut the number into 3 uint32_t parts, and print those.
- uint32_t part2 = number % kTen7;
+ uint32_t part2 = static_cast<uint32_t>(number % kTen7);
number /= kTen7;
- uint32_t part1 = number % kTen7;
- uint32_t part0 = number / kTen7;
+ uint32_t part1 = static_cast<uint32_t>(number % kTen7);
+ uint32_t part0 = static_cast<uint32_t>(number / kTen7);
FillDigits32FixedLength(part0, 3, buffer, length);
FillDigits32FixedLength(part1, 7, buffer, length);
@@ -170,10 +171,10 @@
static void FillDigits64(uint64_t number, Vector<char> buffer, int* length) {
const uint32_t kTen7 = 10000000;
// For efficiency cut the number into 3 uint32_t parts, and print those.
- uint32_t part2 = number % kTen7;
+ uint32_t part2 = static_cast<uint32_t>(number % kTen7);
number /= kTen7;
- uint32_t part1 = number % kTen7;
- uint32_t part0 = number / kTen7;
+ uint32_t part1 = static_cast<uint32_t>(number % kTen7);
+ uint32_t part0 = static_cast<uint32_t>(number / kTen7);
if (part0 != 0) {
FillDigits32(part0, buffer, length);
@@ -249,9 +250,9 @@
// After each iteration the point is decremented by one.
// Note that 5^3 = 125 < 128 = 2^7.
// Therefore three iterations of this loop will not overflow fractionals
- // (even without the subtraction at the end of the loop body). At this time
- // point will satisfy point <= 61 and therefore fractionals < 2^point and
- // any further multiplication of fractionals by 5 will not overflow.
+ // (even without the subtraction at the end of the loop body). At this
+ // time point will satisfy point <= 61 and therefore fractionals < 2^point
+ // and any further multiplication of fractionals by 5 will not overflow.
fractionals *= 5;
point--;
int digit = static_cast<int>(fractionals >> point);
@@ -338,7 +339,7 @@
uint64_t divisor = kFive17;
int divisor_power = 17;
uint64_t dividend = significand;
- uint64_t quotient;
+ uint32_t quotient;
uint64_t remainder;
// Let v = f * 2^e with f == significand and e == exponent.
// Then need q (quotient) and r (remainder) as follows:
@@ -352,11 +353,11 @@
if (exponent > divisor_power) {
// We only allow exponents of up to 20 and therefore (17 - e) <= 3
dividend <<= exponent - divisor_power;
- quotient = dividend / divisor;
+ quotient = static_cast<uint32_t>(dividend / divisor);
remainder = (dividend % divisor) << divisor_power;
} else {
divisor <<= divisor_power - exponent;
- quotient = dividend / divisor;
+ quotient = static_cast<uint32_t>(dividend / divisor);
remainder = (dividend % divisor) << exponent;
}
FillDigits32(quotient, buffer, length);
« no previous file with comments | « src/fixed-dtoa.h ('k') | test/cctest/SConscript » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698