aboutsummaryrefslogtreecommitdiff
path: root/src/lj_obj.h
diff options
context:
space:
mode:
authorMike Pall <mike>2011-04-10 16:57:09 +0200
committerMike Pall <mike>2011-04-10 16:58:22 +0200
commit89022b4c3e75fe06439c7edc8d61e330b6ede59c (patch)
tree90f5be2a50fca371a20351b23f0f88c8ab141b00 /src/lj_obj.h
parentf089f3954c9be976faccc82661b4a7b00e70c3b0 (diff)
downloadluajit-89022b4c3e75fe06439c7edc8d61e330b6ede59c.tar.gz
luajit-89022b4c3e75fe06439c7edc8d61e330b6ede59c.tar.bz2
luajit-89022b4c3e75fe06439c7edc8d61e330b6ede59c.zip
Use lj_vm_tobit() on targets without FPU.
Diffstat (limited to 'src/lj_obj.h')
-rw-r--r--src/lj_obj.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lj_obj.h b/src/lj_obj.h
index 19a2345f..43f3d6ad 100644
--- a/src/lj_obj.h
+++ b/src/lj_obj.h
@@ -786,11 +786,19 @@ static LJ_AINLINE void copyTV(lua_State *L, TValue *o1, const TValue *o2)
786 786
787/* -- Number to integer conversion ---------------------------------------- */ 787/* -- Number to integer conversion ---------------------------------------- */
788 788
789#if !LJ_ARCH_HASFPU
790LJ_ASMF int32_t lj_vm_tobit(double x);
791#endif
792
789static LJ_AINLINE int32_t lj_num2bit(lua_Number n) 793static LJ_AINLINE int32_t lj_num2bit(lua_Number n)
790{ 794{
795#if LJ_ARCH_HASFPU
791 TValue o; 796 TValue o;
792 o.n = n + 6755399441055744.0; /* 2^52 + 2^51 */ 797 o.n = n + 6755399441055744.0; /* 2^52 + 2^51 */
793 return (int32_t)o.u32.lo; 798 return (int32_t)o.u32.lo;
799#else
800 return lj_vm_tobit(n);
801#endif
794} 802}
795 803
796#if LJ_TARGET_X86 && !defined(__SSE2__) 804#if LJ_TARGET_X86 && !defined(__SSE2__)