summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--util/inteltool/cpu.c12
-rw-r--r--util/inteltool/inteltool.c2
2 files changed, 10 insertions, 4 deletions
diff --git a/util/inteltool/cpu.c b/util/inteltool/cpu.c
index 9037d5df66..20748bda44 100644
--- a/util/inteltool/cpu.c
+++ b/util/inteltool/cpu.c
@@ -26,6 +26,12 @@
#include "inteltool.h"
+#ifdef __x86_64__
+# define BREG "%%rbx"
+#else
+# define BREG "%%ebx"
+#endif
+
int fd_msr;
unsigned int cpuid(unsigned int op)
@@ -34,9 +40,9 @@ unsigned int cpuid(unsigned int op)
#if defined(__PIC__) || defined(__DARWIN__) && !defined(__LP64__)
asm volatile (
- "pushl %%ebx\n"
- "cpuid\n"
- "popl %%ebx\n"
+ "push " BREG "\n\t"
+ "cpuid\n\t"
+ "pop " BREG "\n\t"
: "=a" (ret) : "a" (op) : "%ecx", "%edx"
);
#else
diff --git a/util/inteltool/inteltool.c b/util/inteltool/inteltool.c
index 93169d398c..6fab11864b 100644
--- a/util/inteltool/inteltool.c
+++ b/util/inteltool/inteltool.c
@@ -95,7 +95,7 @@ void *map_physical(uint64_t phys_addr, size_t len)
fd_mem, (off_t) phys_addr);
if (virt_addr == MAP_FAILED) {
- printf("Error mapping physical memory 0x%08lx[0x%x]\n", phys_addr, len);
+ printf("Error mapping physical memory 0x%08lx[0x%zx]\n", phys_addr, len);
return NULL;
}