summaryrefslogtreecommitdiff
path: root/src/lj_iropt.h
diff options
context:
space:
mode:
authorMike Pall <mike>2010-02-24 23:17:17 +0100
committerMike Pall <mike>2010-02-24 23:17:17 +0100
commitb95294572ce8efa527e0b0118bb7168117afd171 (patch)
tree1aa393c982f67b4e558805b12ca5b3f4c26509cb /src/lj_iropt.h
parentb32f4f4549b94ea18da1d5b2280c8b6ba0089a9b (diff)
downloadluajit-b95294572ce8efa527e0b0118bb7168117afd171.tar.gz
luajit-b95294572ce8efa527e0b0118bb7168117afd171.tar.bz2
luajit-b95294572ce8efa527e0b0118bb7168117afd171.zip
Move SIMD constants to jit_State to keep them in the low 4GB.
Diffstat (limited to 'src/lj_iropt.h')
-rw-r--r--src/lj_iropt.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/lj_iropt.h b/src/lj_iropt.h
index 947fa820..1884892a 100644
--- a/src/lj_iropt.h
+++ b/src/lj_iropt.h
@@ -64,10 +64,9 @@ static LJ_AINLINE TRef lj_ir_knum(jit_State *J, lua_Number n)
64#define lj_ir_knum_one(J) lj_ir_knum_nn(J, U64x(3ff00000,00000000)) 64#define lj_ir_knum_one(J) lj_ir_knum_nn(J, U64x(3ff00000,00000000))
65#define lj_ir_knum_tobit(J) lj_ir_knum_nn(J, U64x(43380000,00000000)) 65#define lj_ir_knum_tobit(J) lj_ir_knum_nn(J, U64x(43380000,00000000))
66 66
67/* Special 16 byte aligned SIMD constants. */ 67/* Special 128 bit SIMD constants. */
68LJ_DATA LJ_ALIGN(16) cTValue lj_ir_knum_tv[4]; 68#define lj_ir_knum_abs(J) lj_ir_knum_addr(J, LJ_KSIMD(J, LJ_KSIMD_ABS))
69#define lj_ir_knum_abs(J) lj_ir_knum_addr(J, &lj_ir_knum_tv[0]) 69#define lj_ir_knum_neg(J) lj_ir_knum_addr(J, LJ_KSIMD(J, LJ_KSIMD_NEG))
70#define lj_ir_knum_neg(J) lj_ir_knum_addr(J, &lj_ir_knum_tv[2])
71 70
72/* Access to constants. */ 71/* Access to constants. */
73LJ_FUNC void lj_ir_kvalue(lua_State *L, TValue *tv, const IRIns *ir); 72LJ_FUNC void lj_ir_kvalue(lua_State *L, TValue *tv, const IRIns *ir);