lwmon, lwmon5: Remove sysmon POST relocation fixups
[platform/kernel/u-boot.git] / lib_generic / vsprintf.c
index 3ab1f5c..3d95728 100644 (file)
@@ -22,18 +22,19 @@ extern int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 #endif
 
 #ifdef CONFIG_SYS_64BIT_VSPRINTF
+#include <div64.h>
 # define NUM_TYPE long long
 #else
 # define NUM_TYPE long
-#endif
-#define noinline __attribute__((noinline))
-
 #define do_div(n, base) ({ \
        unsigned int __res; \
        __res = ((unsigned NUM_TYPE) n) % base; \
        n = ((unsigned NUM_TYPE) n) / base; \
        __res; \
 })
+#endif
+#define noinline __attribute__((noinline))
+
 
 const char hex_asc[] = "0123456789abcdef";
 #define hex_asc_lo(x)   hex_asc[((x) & 0x0f)]
@@ -200,13 +201,15 @@ static char* put_dec_full(char *buf, unsigned q)
        d2 = (q>>8) & 0xf;
        d3 = (q>>12);
 
-       /* Possible ways to approx. divide by 10 */
-       /* gcc -O2 replaces multiply with shifts and adds */
-       // (x * 0xcd) >> 11: 11001101 - shorter code than * 0x67 (on i386)
-       // (x * 0x67) >> 10:  1100111
-       // (x * 0x34) >> 9:    110100 - same
-       // (x * 0x1a) >> 8:     11010 - same
-       // (x * 0x0d) >> 7:      1101 - same, shortest code (on i386)
+       /*
+        * Possible ways to approx. divide by 10
+        * gcc -O2 replaces multiply with shifts and adds
+        * (x * 0xcd) >> 11: 11001101 - shorter code than * 0x67 (on i386)
+        * (x * 0x67) >> 10:  1100111
+        * (x * 0x34) >> 9:    110100 - same
+        * (x * 0x1a) >> 8:     11010 - same
+        * (x * 0x0d) >> 7:      1101 - same, shortest code (on i386)
+        */
 
        d0 = 6*(d3 + d2 + d1) + (q & 0xf);
        q = (d0 * 0xcd) >> 11;