Lines Matching defs:out
57 char* BasecaseFixedLast(digit_t chunk, char* out) {
59 DCHECK(*(out - 1) == kStringZapValue);
61 *(--out) = '0' + (chunk % radix);
63 *(--out) = kConversionChars[chunk % radix];
67 return out;
95 // {remainder} is now the current chunk to be written out.
121 ToStringFormatter(Digits X, int radix, bool sign, char* out,
126 out_start_(out),
127 out_end_(out + chars_available),
175 char* FillWithZeros(RecursionLevel* level, char* prev_cursor, char* out,
177 char* ProcessLevel(RecursionLevel* level, Digits chunk, char* out,
183 char* BasecaseLast(digit_t digit, char* out) {
184 if (radix_ == 10) return BasecaseFixedLast<10>(digit, out);
186 DCHECK(*(out - 1) == kStringZapValue);
187 *(--out) = kConversionChars[digit % radix_];
190 return out;
195 char* BasecaseMiddle(digit_t digit, char* out) {
197 DCHECK(*(out - 1) == kStringZapValue);
198 *(--out) = kConversionChars[digit % radix_];
202 return out;
281 // two halves that are register-sized and bail out to the base case.
428 // Writes '0' characters right-to-left, starting at {out}-1, until the distance
429 // from {right_boundary} to {out} equals the number of characters that {level}
432 char* right_boundary, char* out,
436 if (is_last_on_level) return out;
439 DCHECK(out >= end);
440 while (out > end) {
441 *(--out) = '0';
443 return out;
447 char* out, bool is_last_on_level) {
448 // Step 0: if only one digit is left, bail out to the base case.
452 char* right_boundary = out;
454 out = BasecaseLast(normalized[0], out);
456 return FillWithZeros(level, right_boundary, out, is_last_on_level);
462 char* right_boundary = out;
463 out = ProcessLevel(level->next_, chunk, out, is_last_on_level);
464 return FillWithZeros(level, right_boundary, out, is_last_on_level);
476 char* right_boundary = out;
486 out = ProcessLevel(level->next_, chunk, out, is_last_on_level);
493 out = FillWithZeros(level->next_, right_boundary, out, false);
494 *(--out) = '1';
497 return FillWithZeros(level, right_boundary, out, is_last_on_level);
518 if (processor_->should_terminate()) return out;
523 if (processor_->should_terminate()) return out;
533 char* end_of_right_part = ProcessLevel(level->next_, right, out, false);
536 DCHECK(end_of_right_part == out - level->char_count_);
538 if (processor_->should_terminate()) return out;
541 return ProcessLevel(level->next_, left, out - level->char_count_,
549 void ProcessorImpl::ToString(char* out, int* out_length, Digits X, int radix,
552 ToStringImpl(out, out_length, X, radix, sign, use_fast_algorithm);
555 // Factored out so that tests can call it.
556 void ProcessorImpl::ToStringImpl(char* out, int* out_length, Digits X,
559 for (int i = 0; i < *out_length; i++) out[i] = kStringZapValue;
561 ToStringFormatter formatter(X, radix, sign, out, *out_length, this);
580 Status Processor::ToString(char* out, int* out_length, Digits X, int radix,
583 impl->ToString(out, out_length, X, radix, sign);