diff options
-rw-r--r-- | src/lj_ircall.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lj_ircall.h b/src/lj_ircall.h index 27c7fbe5..9bf46918 100644 --- a/src/lj_ircall.h +++ b/src/lj_ircall.h | |||
@@ -98,6 +98,12 @@ typedef struct CCallInfo { | |||
98 | #define IRCALLCOND_FFI32(x) NULL | 98 | #define IRCALLCOND_FFI32(x) NULL |
99 | #endif | 99 | #endif |
100 | 100 | ||
101 | #if LJ_TARGET_X86 | ||
102 | #define CCI_RANDFPR 0 /* Clang on OSX/x86 is overzealous. */ | ||
103 | #else | ||
104 | #define CCI_RANDFPR CCI_NOFPRCLOBBER | ||
105 | #endif | ||
106 | |||
101 | #if LJ_SOFTFP | 107 | #if LJ_SOFTFP |
102 | #define XA_FP CCI_XA | 108 | #define XA_FP CCI_XA |
103 | #define XA2_FP (CCI_XA+CCI_XA) | 109 | #define XA2_FP (CCI_XA+CCI_XA) |
@@ -150,7 +156,7 @@ typedef struct CCallInfo { | |||
150 | _(ANY, lj_gc_step_jit, 2, FS, NIL, CCI_L) \ | 156 | _(ANY, lj_gc_step_jit, 2, FS, NIL, CCI_L) \ |
151 | _(ANY, lj_gc_barrieruv, 2, FS, NIL, 0) \ | 157 | _(ANY, lj_gc_barrieruv, 2, FS, NIL, 0) \ |
152 | _(ANY, lj_mem_newgco, 2, FS, P32, CCI_L) \ | 158 | _(ANY, lj_mem_newgco, 2, FS, P32, CCI_L) \ |
153 | _(ANY, lj_math_random_step, 1, FS, NUM, CCI_CASTU64|CCI_NOFPRCLOBBER) \ | 159 | _(ANY, lj_math_random_step, 1, FS, NUM, CCI_CASTU64|CCI_RANDFPR)\ |
154 | _(ANY, lj_vm_modi, 2, FN, INT, 0) \ | 160 | _(ANY, lj_vm_modi, 2, FN, INT, 0) \ |
155 | _(ANY, sinh, 1, N, NUM, XA_FP) \ | 161 | _(ANY, sinh, 1, N, NUM, XA_FP) \ |
156 | _(ANY, cosh, 1, N, NUM, XA_FP) \ | 162 | _(ANY, cosh, 1, N, NUM, XA_FP) \ |