From: Mike Pall Date: Wed, 11 Jun 2014 20:44:08 +0000 (+0200) Subject: x86: lj_math_random_step() clobbers XMM regs on OSX Clang. X-Git-Tag: v2.0.4~44 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7dc9e5ade487ff2cd81c0c644f4f0953166b1375;p=thirdparty%2FLuaJIT.git x86: lj_math_random_step() clobbers XMM regs on OSX Clang. --- diff --git a/src/lj_ircall.h b/src/lj_ircall.h index af30ba8f..92d61dfa 100644 --- a/src/lj_ircall.h +++ b/src/lj_ircall.h @@ -86,6 +86,12 @@ typedef struct CCallInfo { #define IRCALLCOND_FFI32(x) NULL #endif +#if LJ_TARGET_X86 +#define CCI_RANDFPR 0 /* Clang on OSX/x86 is overzealous. */ +#else +#define CCI_RANDFPR CCI_NOFPRCLOBBER +#endif + #if LJ_SOFTFP #define ARG1_FP 2 /* Treat as 2 32 bit arguments. */ #else @@ -112,7 +118,7 @@ typedef struct CCallInfo { _(ANY, lj_gc_step_jit, 2, FS, NIL, CCI_L) \ _(ANY, lj_gc_barrieruv, 2, FS, NIL, 0) \ _(ANY, lj_mem_newgco, 2, FS, P32, CCI_L) \ - _(ANY, lj_math_random_step, 1, FS, NUM, CCI_CASTU64|CCI_NOFPRCLOBBER) \ + _(ANY, lj_math_random_step, 1, FS, NUM, CCI_CASTU64|CCI_RANDFPR)\ _(ANY, lj_vm_modi, 2, FN, INT, 0) \ _(ANY, sinh, ARG1_FP, N, NUM, 0) \ _(ANY, cosh, ARG1_FP, N, NUM, 0) \