summaryrefslogtreecommitdiff
path: root/src/lj_opt_fold.c
diff options
context:
space:
mode:
authorMike Pall <mike>2011-02-05 14:16:16 +0100
committerMike Pall <mike>2011-02-05 14:16:16 +0100
commit14f51037645c570f1a28d06a1c0ce219447d1b82 (patch)
treed73f6adc339953a9a9aad6c87c2b13b9c3f5c7b8 /src/lj_opt_fold.c
parent223d85aa06a30dcf4bfdbdda38114c49e9bc6cbe (diff)
downloadluajit-14f51037645c570f1a28d06a1c0ce219447d1b82.tar.gz
luajit-14f51037645c570f1a28d06a1c0ce219447d1b82.tar.bz2
luajit-14f51037645c570f1a28d06a1c0ce219447d1b82.zip
FFI: Record C library namespace lookups.
Diffstat (limited to 'src/lj_opt_fold.c')
-rw-r--r--src/lj_opt_fold.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c
index 9675fca2..ef397aea 100644
--- a/src/lj_opt_fold.c
+++ b/src/lj_opt_fold.c
@@ -1768,12 +1768,18 @@ LJFOLDF(fload_cdata_typeid_kgc)
1768 return NEXTFOLD; 1768 return NEXTFOLD;
1769} 1769}
1770 1770
1771/* The content of int64 cdata objects is immutable. */ 1771/* Get the contents of immutable cdata objects. */
1772LJFOLD(FLOAD KGC IRFL_CDATA_PTR)
1772LJFOLD(FLOAD KGC IRFL_CDATA_INT64) 1773LJFOLD(FLOAD KGC IRFL_CDATA_INT64)
1773LJFOLDF(fload_cdata_int64_kgc) 1774LJFOLDF(fload_cdata_int64_kgc)
1774{ 1775{
1775 if (LJ_LIKELY(J->flags & JIT_F_OPT_FOLD)) 1776 if (LJ_LIKELY(J->flags & JIT_F_OPT_FOLD)) {
1776 return INT64FOLD(*(uint64_t *)cdataptr(ir_kcdata(fleft))); 1777 void *p = cdataptr(ir_kcdata(fleft));
1778 if (irt_is64(fins->t))
1779 return INT64FOLD(*(uint64_t *)p);
1780 else
1781 return INTFOLD(*(int32_t *)p);
1782 }
1777 return NEXTFOLD; 1783 return NEXTFOLD;
1778} 1784}
1779 1785