summaryrefslogtreecommitdiff
path: root/src/lj_vm.h
diff options
context:
space:
mode:
authorMike Pall <mike>2011-06-05 23:37:29 +0200
committerMike Pall <mike>2011-06-05 23:38:23 +0200
commita48058a791266fbbda14363f6f6530aff66b0f23 (patch)
treec67f5d20b06f8d092de82662d8f0fa6f997580d7 /src/lj_vm.h
parenta175754ab74e35b9d6b1a81b94019d7a720813c1 (diff)
downloadluajit-a48058a791266fbbda14363f6f6530aff66b0f23.tar.gz
luajit-a48058a791266fbbda14363f6f6530aff66b0f23.tar.bz2
luajit-a48058a791266fbbda14363f6f6530aff66b0f23.zip
ARM: Add fast assembler implementation of floor/ceil/trunc.
Diffstat (limited to 'src/lj_vm.h')
-rw-r--r--src/lj_vm.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/lj_vm.h b/src/lj_vm.h
index ba624dad..3f6777ad 100644
--- a/src/lj_vm.h
+++ b/src/lj_vm.h
@@ -45,7 +45,15 @@ LJ_ASMF void lj_vm_callhook(void);
45LJ_ASMF void lj_vm_exit_handler(void); 45LJ_ASMF void lj_vm_exit_handler(void);
46LJ_ASMF void lj_vm_exit_interp(void); 46LJ_ASMF void lj_vm_exit_interp(void);
47 47
48/* Handlers callable from compiled code. */ 48/* Internal math helper functions. */
49#if LJ_TARGET_X86ORX64
50#define lj_vm_floor(x) floor(x)
51#define lj_vm_ceil(x) ceil(x)
52#else
53LJ_ASMF double lj_vm_floor(double);
54LJ_ASMF double lj_vm_ceil(double);
55#endif
56
49#if LJ_HASJIT 57#if LJ_HASJIT
50#if LJ_TARGET_X86ORX64 58#if LJ_TARGET_X86ORX64
51LJ_ASMF void lj_vm_floor_sse(void); 59LJ_ASMF void lj_vm_floor_sse(void);
@@ -56,8 +64,6 @@ LJ_ASMF void lj_vm_exp2_x87(void);
56LJ_ASMF void lj_vm_pow_sse(void); 64LJ_ASMF void lj_vm_pow_sse(void);
57LJ_ASMF void lj_vm_powi_sse(void); 65LJ_ASMF void lj_vm_powi_sse(void);
58#else 66#else
59LJ_ASMF double lj_vm_floor(double);
60LJ_ASMF double lj_vm_ceil(double);
61LJ_ASMF double lj_vm_trunc(double); 67LJ_ASMF double lj_vm_trunc(double);
62LJ_ASMF double lj_vm_powi(double, int32_t); 68LJ_ASMF double lj_vm_powi(double, int32_t);
63#if defined(__ANDROID__) || defined(__symbian__) 69#if defined(__ANDROID__) || defined(__symbian__)