From: Frode Solheim Date: Wed, 16 Sep 2015 19:15:11 +0000 (+0200) Subject: JIT: For now, always distrust (=indirect memory) on 64-bit Windows X-Git-Tag: 3200~70^2~3 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=4543aa65734c94541968229dd35fa6c2a2ac94ab;p=francis%2Fwinuae.git JIT: For now, always distrust (=indirect memory) on 64-bit Windows --- diff --git a/jit/compemu.h b/jit/compemu.h index acf0dfce..15335bdf 100644 --- a/jit/compemu.h +++ b/jit/compemu.h @@ -456,6 +456,10 @@ typedef struct { } regacc; #define JIT_EXCEPTION_HANDLER +#ifdef _WIN64 +/* Direct addressing currently causes crash on 64-bit Windows. */ +#define JIT_ALWAYS_DISTRUST +#endif /* ARAnyM uses fpu_register name, used in scratch_t */ /* FIXME: check that no ARAnyM code assumes different floating point type */ diff --git a/jit/compemu_support.cpp b/jit/compemu_support.cpp index e7696ac3..6b6dd17c 100644 --- a/jit/compemu_support.cpp +++ b/jit/compemu_support.cpp @@ -124,24 +124,36 @@ extern bool canbang; static inline int distrust_byte(void) { int distrust = currprefs.comptrustbyte; +#ifdef JIT_ALWAYS_DISTRUST + distrust = 1; +#endif return distrust; } static inline int distrust_word(void) { int distrust = currprefs.comptrustword; +#ifdef JIT_ALWAYS_DISTRUST + distrust = 1; +#endif return distrust; } static inline int distrust_long(void) { int distrust = currprefs.comptrustlong; +#ifdef JIT_ALWAYS_DISTRUST + distrust = 1; +#endif return distrust; } static inline int distrust_addr(void) { int distrust = currprefs.comptrustnaddr; +#ifdef JIT_ALWAYS_DISTRUST + distrust = 1; +#endif return distrust; }