Large kernel initrd fix (initial patch by Daniel Jacobowitz).
[qemu] / dyngen-exec.h
index 0c39228..c63eb26 100644 (file)
@@ -62,6 +62,9 @@ typedef signed long long int64_t;
 #endif
 #endif
 
+/* XXX: This may be wrong for 64-bit ILP32 hosts.  */
+typedef void * host_reg_t;
+
 #define INT8_MIN               (-128)
 #define INT16_MIN              (-32767-1)
 #define INT32_MIN              (-2147483647-1)
@@ -77,6 +80,7 @@ typedef signed long long int64_t;
 
 typedef struct FILE FILE;
 extern int fprintf(FILE *, const char *, ...);
+extern int fputs(const char *, FILE *);
 extern int printf(const char *, ...);
 #undef NULL
 #define NULL 0
@@ -88,12 +92,12 @@ extern int printf(const char *, ...);
 #define AREG3 "edi"
 #endif
 #ifdef __x86_64__
-#define AREG0 "rbp"
-#define AREG1 "rbx"
+#define AREG0 "r14"
+#define AREG1 "r15"
 #define AREG2 "r12"
 #define AREG3 "r13"
-//#define AREG4 "r14"
-//#define AREG5 "r15"
+//#define AREG4 "rbp"
+//#define AREG5 "rbx"
 #endif
 #ifdef __powerpc__
 #define AREG0 "r27"
@@ -188,7 +192,7 @@ extern int printf(const char *, ...);
 #endif
 
 /* force GCC to generate only one epilog at the end of the function */
-#define FORCE_RET() asm volatile ("");
+#define FORCE_RET() __asm__ __volatile__("" : : : "memory");
 
 #ifndef OPPROTO
 #define OPPROTO