diff options
author | Mike Pall <mike> | 2016-02-10 18:49:22 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2016-02-10 18:49:22 +0100 |
commit | f547a1425e9db10eec59d586c94ba78b897497f6 (patch) | |
tree | 6d84512e0251db236868d9141af1019a3823b5d7 /src/lj_ircall.h | |
parent | 825dcdc4d1e09c71ffc24565aefbb05a9cb3c2f4 (diff) | |
download | luajit-f547a1425e9db10eec59d586c94ba78b897497f6.tar.gz luajit-f547a1425e9db10eec59d586c94ba78b897497f6.tar.bz2 luajit-f547a1425e9db10eec59d586c94ba78b897497f6.zip |
MIPS: Add soft-float support to JIT compiler backend.
Diffstat (limited to 'src/lj_ircall.h')
-rw-r--r-- | src/lj_ircall.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/lj_ircall.h b/src/lj_ircall.h index 1f44b03d..53f38eeb 100644 --- a/src/lj_ircall.h +++ b/src/lj_ircall.h | |||
@@ -78,6 +78,12 @@ typedef struct CCallInfo { | |||
78 | #define IRCALLCOND_SOFTFP_FFI(x) NULL | 78 | #define IRCALLCOND_SOFTFP_FFI(x) NULL |
79 | #endif | 79 | #endif |
80 | 80 | ||
81 | #if LJ_SOFTFP && LJ_TARGET_MIPS | ||
82 | #define IRCALLCOND_SOFTFP_MIPS(x) x | ||
83 | #else | ||
84 | #define IRCALLCOND_SOFTFP_MIPS(x) NULL | ||
85 | #endif | ||
86 | |||
81 | #define LJ_NEED_FP64 (LJ_TARGET_ARM || LJ_TARGET_PPC || LJ_TARGET_MIPS) | 87 | #define LJ_NEED_FP64 (LJ_TARGET_ARM || LJ_TARGET_PPC || LJ_TARGET_MIPS) |
82 | 88 | ||
83 | #if LJ_HASFFI && (LJ_SOFTFP || LJ_NEED_FP64) | 89 | #if LJ_HASFFI && (LJ_SOFTFP || LJ_NEED_FP64) |
@@ -189,6 +195,8 @@ typedef struct CCallInfo { | |||
189 | _(SOFTFP, softfp_cmp, 4, N, NIL, 0) \ | 195 | _(SOFTFP, softfp_cmp, 4, N, NIL, 0) \ |
190 | _(SOFTFP, softfp_i2d, 1, N, NUM, 0) \ | 196 | _(SOFTFP, softfp_i2d, 1, N, NUM, 0) \ |
191 | _(SOFTFP, softfp_d2i, 2, N, INT, 0) \ | 197 | _(SOFTFP, softfp_d2i, 2, N, INT, 0) \ |
198 | _(SOFTFP_MIPS, lj_vm_sfmin, 4, N, NUM, 0) \ | ||
199 | _(SOFTFP_MIPS, lj_vm_sfmax, 4, N, NUM, 0) \ | ||
192 | _(SOFTFP_FFI, softfp_ui2d, 1, N, NUM, 0) \ | 200 | _(SOFTFP_FFI, softfp_ui2d, 1, N, NUM, 0) \ |
193 | _(SOFTFP_FFI, softfp_f2d, 1, N, NUM, 0) \ | 201 | _(SOFTFP_FFI, softfp_f2d, 1, N, NUM, 0) \ |
194 | _(SOFTFP_FFI, softfp_d2ui, 2, N, INT, 0) \ | 202 | _(SOFTFP_FFI, softfp_d2ui, 2, N, INT, 0) \ |
@@ -306,6 +314,10 @@ extern float softfp_ui2f(uint32_t a); | |||
306 | extern int32_t softfp_f2i(float a); | 314 | extern int32_t softfp_f2i(float a); |
307 | extern uint32_t softfp_f2ui(float a); | 315 | extern uint32_t softfp_f2ui(float a); |
308 | #endif | 316 | #endif |
317 | #if LJ_TARGET_MIPS | ||
318 | extern double lj_vm_sfmin(double a, double b); | ||
319 | extern double lj_vm_sfmax(double a, double b); | ||
320 | #endif | ||
309 | #endif | 321 | #endif |
310 | 322 | ||
311 | #if LJ_HASFFI && LJ_NEED_FP64 && !(LJ_TARGET_ARM && LJ_SOFTFP) | 323 | #if LJ_HASFFI && LJ_NEED_FP64 && !(LJ_TARGET_ARM && LJ_SOFTFP) |