On 64-bit systems the most notable difference is due to longs and pointers being 64-bit wide. Therefore there must be a distinction between ints and longs. This patch: - Make support functions take a long rather than an int as this can carry both longs and ints just fine. - Use unsigned values in _to_x() to cover the full unsigned range and avoid sign-extending big values. Negative values are already converted to unsigned after printing the minus sign. This also makes division and modulus operations slightly faster. - Remove excessive casts around va_arg() and use proper types with it. - Implement the l and z length modifiers as they're significant on 64-bit targets. While at it, throw in the z modifier as well. Since they all come down to 32-bit values on 32-bit targets, the added code should get optimized away as duplicate by the compiler in that case. Signed-off-by: Nicolas Pitre <npitre@baylibre.com> |
||
|---|---|---|
| .. | ||
| cmsis_rtos_v1 | ||
| cmsis_rtos_v2 | ||
| gui | ||
| libc | ||
| os | ||
| posix | ||
| updatehub | ||
| CMakeLists.txt | ||
| Kconfig | ||