#define STACK_ALIGN 16
#define STACK_OFFSET sizeof(void *)
-uae_u8 always_used[]={4,0xff};
+uae_s8 always_used[]={4,-1};
#if defined(CPU_x86_64)
uae_s8 can_byte[]={0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,-1};
uae_s8 can_word[]={0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,-1};
#else
-uae_u8 can_byte[]={0,1,2,3,0xff};
-uae_u8 can_word[]={0,1,2,3,5,6,7,0xff};
+uae_s8 can_byte[]={0,1,2,3,-1};
+uae_s8 can_word[]={0,1,2,3,5,6,7,-1};
#endif
#if USE_OPTIMIZED_CALLS
#define CLOBBER_TEST clobber_flags()
#define CLOBBER_CL16
#define CLOBBER_CL8
+#define CLOBBER_SE32
#define CLOBBER_SE16
#define CLOBBER_SE8
+#define CLOBBER_ZE32
#define CLOBBER_ZE16
#define CLOBBER_ZE8
#define CLOBBER_SW16 clobber_flags()
#include "uae.h"
#include "uae/log.h"
#define jit_log(format, ...) \
- uae_log("JIT: " format "\n", __func__, ##__VA_ARGS__);
+ uae_log("JIT: " format "\n", ##__VA_ARGS__);
#define jit_log2(format, ...)
#define MEMBaseDiff uae_ptr32(NATMEM_OFFSET)
void init_comp(void)
{
int i;
- uae_u8* cb=can_byte;
- uae_u8* cw=can_word;
- uae_u8* au=always_used;
+ uae_s8* cb=can_byte;
+ uae_s8* cw=can_word;
+ uae_s8* au=always_used;
#ifdef RECORD_REGISTER_USAGE
for (i=0;i<16;i++)
#define CONTEXT_CR2(context) ((uae_u32)(context->ExceptionRecord->ExceptionInformation[1]))
#elif HAVE_STRUCT_UCONTEXT_UC_MCONTEXT_GREGS
-
#ifdef CPU_x86_64
+
#define CONTEXT_RIP(context) (((struct ucontext *) context)->uc_mcontext.gregs[REG_RIP])
#define CONTEXT_RAX(context) (((struct ucontext *) context)->uc_mcontext.gregs[REG_RAX])
#define CONTEXT_RCX(context) (((struct ucontext *) context)->uc_mcontext.gregs[REG_RCX])
#define CONTEXT_RBP(context) (((struct ucontext *) context)->uc_mcontext.gregs[REG_RBP])
#define CONTEXT_RSI(context) (((struct ucontext *) context)->uc_mcontext.gregs[REG_RSI])
#define CONTEXT_RDI(context) (((struct ucontext *) context)->uc_mcontext.gregs[REG_RDI])
+
#else
+
typedef void *CONTEXT_T;
#define HAVE_CONTEXT_T 1
+
#define CONTEXT_EIP(context) (((struct ucontext *) context)->uc_mcontext.gregs[REG_EIP])
#define CONTEXT_EAX(context) (((struct ucontext *) context)->uc_mcontext.gregs[REG_EAX])
#define CONTEXT_ECX(context) (((struct ucontext *) context)->uc_mcontext.gregs[REG_ECX])
#define CONTEXT_EBP(context) (((struct ucontext *) context)->uc_mcontext.gregs[REG_EBP])
#define CONTEXT_ESI(context) (((struct ucontext *) context)->uc_mcontext.gregs[REG_ESI])
#define CONTEXT_EDI(context) (((struct ucontext *) context)->uc_mcontext.gregs[REG_EDI])
+
#define CONTEXT_CR2(context) (((struct ucontext *) context)->uc_mcontext.cr2)
-#endif
+#endif
#endif
#if defined(CPU_64_BIT)