Mike Pall
|
a5e48285e3
|
FFI: Rearrange code in lib_ffi.c.
|
2011-01-12 21:33:58 +01:00 |
|
Mike Pall
|
2363399b10
|
FFI: Untangle and fix calling convention definitions.
|
2011-01-12 20:01:35 +01:00 |
|
Mike Pall
|
1548383dbe
|
Avoid compiler warnings.
|
2011-01-12 18:22:00 +01:00 |
|
Mike Pall
|
8d858bfefa
|
FFI: Fix C calls with complex values on x64.
|
2011-01-11 03:36:49 +01:00 |
|
Mike Pall
|
a54843bb51
|
FFI: Lookup decorated name for fastcall/stdcall functions.
|
2011-01-11 03:08:54 +01:00 |
|
Mike Pall
|
87a6c8a980
|
FFI: Auto-detect __stdcall and fix up C function declarations.
|
2011-01-10 20:50:34 +01:00 |
|
Mike Pall
|
ddf6596333
|
FFI: Add ffi.load() and ffi.C default namespace.
|
2011-01-10 03:43:18 +01:00 |
|
Mike Pall
|
d215747fd5
|
FFI: Fix function pointer lookup for calls.
|
2011-01-10 03:38:23 +01:00 |
|
Mike Pall
|
9502afb35b
|
FFI: Preserve stack top across implicit load of FFI library in lexer.
|
2011-01-09 17:57:19 +01:00 |
|
Mike Pall
|
06f99fc3df
|
Bump copyright date to 2011.
|
2011-01-09 17:12:53 +01:00 |
|
Mike Pall
|
4c0330a8b1
|
FFI: Handle NYI cases for cdata call metamethod.
|
2011-01-09 16:48:37 +01:00 |
|
Mike Pall
|
bfc638ca6c
|
FFI: Add missing GC steps for C function calls.
|
2011-01-09 16:48:23 +01:00 |
|
Mike Pall
|
aca1e5b3e6
|
Fix Windows/x86 build and update pregenerated files.
|
2011-01-06 23:37:04 +01:00 |
|
Mike Pall
|
fb0a18ca0b
|
FFI: Add support for calling C functions.
|
2011-01-06 23:30:04 +01:00 |
|
Mike Pall
|
97875c4fa9
|
Avoid compiler warnings.
|
2011-01-05 21:48:01 +01:00 |
|
Mike Pall
|
a148a6aa00
|
FFI: Add missing link to parameters for C function declaration.
|
2011-01-05 21:45:31 +01:00 |
|
Mike Pall
|
bc37edc911
|
Fix handling of floats in x86/x64 backend.
|
2011-01-05 21:45:09 +01:00 |
|
Mike Pall
|
3b468ceedb
|
FFI: Force snapshot after store to cdata.
|
2011-01-05 20:28:57 +01:00 |
|
Mike Pall
|
eaf88dfb3a
|
FFI: Record 64 bit integer arithmetic.
Currently NYI in the x86 backend.
|
2011-01-03 03:35:35 +01:00 |
|
Mike Pall
|
44a22b9889
|
Add support for non-constant integer IR_MUL to backend.
|
2011-01-03 02:58:31 +01:00 |
|
Mike Pall
|
593821f7d9
|
Add support for integer IR_NEG to backend.
|
2011-01-03 02:35:30 +01:00 |
|
Mike Pall
|
3291bb62e0
|
FFI: Record pointer arithmetic.
|
2011-01-03 01:59:26 +01:00 |
|
Mike Pall
|
b2c74c52cc
|
FFI: Add support for cdata constants to IR.
|
2011-01-02 22:21:10 +01:00 |
|
Mike Pall
|
331b148737
|
Use cdata to pass IR_KINT64 to -jdump.
|
2011-01-02 22:20:08 +01:00 |
|
Mike Pall
|
e66b5b6eee
|
Improve uint64_t <-> FP conversions in x64 backend.
|
2011-01-02 20:43:58 +01:00 |
|
Mike Pall
|
55a9be7809
|
FFI: Record tonumber() for boxed cdata.
|
2011-01-02 18:30:02 +01:00 |
|
Mike Pall
|
0005b2c2b9
|
Add support for uint64_t <-> FP conversions to x64 backend.
|
2011-01-02 18:24:31 +01:00 |
|
Mike Pall
|
ddfa7fc246
|
Add conversions for type mismatches in XSTORE forwarding.
|
2010-12-31 22:50:06 +01:00 |
|
Mike Pall
|
3b47eba9cc
|
Add 8/16 to 32 bit sign/zero-extension variants to CONV.
|
2010-12-31 22:49:23 +01:00 |
|
Mike Pall
|
007067bdd8
|
Fix register allocation for FP <- int conversion.
|
2010-12-31 22:18:14 +01:00 |
|
Mike Pall
|
783dbd335f
|
Refactoring of conversion ops, part 5: drop TOINT/TOI64/TONUM.
|
2010-12-31 04:09:32 +01:00 |
|
Mike Pall
|
1716540c55
|
Refactoring of conversion ops, part 4: use CONV instead of TOINT/TONUM.
Also narrow CONV.int.num and CONV.i64.num.
|
2010-12-31 03:56:30 +01:00 |
|
Mike Pall
|
1f26961092
|
Refactoring of conversion ops, part 3: add FOLD rules for IR_CONV.
|
2010-12-31 03:47:30 +01:00 |
|
Mike Pall
|
65b194a2f8
|
Copy destination type for CONV from ir->t to op2, too.
|
2010-12-31 01:00:54 +01:00 |
|
Mike Pall
|
dc4b82c33d
|
Add lj_num2u64 for number to uint64_t conversion.
|
2010-12-31 00:46:29 +01:00 |
|
Mike Pall
|
4668b229de
|
FFI: Add missing GC steps for implicit allocations.
|
2010-12-30 12:16:25 +01:00 |
|
Mike Pall
|
158de60b8c
|
Refactoring of conversion ops, part 2: cleanup cdata conversions.
|
2010-12-30 00:42:00 +01:00 |
|
Mike Pall
|
8bcc5ed021
|
Add support for IRT_FLOAT to XLOAD/XSTORE.
|
2010-12-30 00:36:33 +01:00 |
|
Mike Pall
|
2ca2de7f0e
|
Refactoring of conversion ops, part 1: add IR_CONV.
|
2010-12-30 00:35:32 +01:00 |
|
Mike Pall
|
06c61d9cea
|
Use macro-map for IRT_* enum. Add IRT_FLOAT.
|
2010-12-28 20:58:00 +01:00 |
|
Mike Pall
|
d176433e32
|
FFI: Catch various NYI cases while recording.
|
2010-12-28 19:09:01 +01:00 |
|
Mike Pall
|
a70fb9416a
|
Make recording of type() independent of LJ_T*/IRT_* mapping.
|
2010-12-28 18:23:41 +01:00 |
|
Mike Pall
|
44935dae0d
|
FFI: Add 64 bit integer arithmetic.
|
2010-12-25 22:54:25 +01:00 |
|
Mike Pall
|
dd65e00831
|
FFI: Fix C type representation for valarrays.
|
2010-12-25 22:33:07 +01:00 |
|
Mike Pall
|
461bf77331
|
FFI: Parse complex and 64 bit integer literals.
|
2010-12-24 01:31:39 +01:00 |
|
Mike Pall
|
4850865c57
|
Fix misnamed macro in Lua parser.
|
2010-12-24 01:23:42 +01:00 |
|
Mike Pall
|
aa705f7e1a
|
FFI: Fix C parser for hex literals.
|
2010-12-23 23:06:04 +01:00 |
|
Mike Pall
|
79ab1a4baa
|
FFI: Add pointer arithmetic.
|
2010-12-23 17:54:54 +01:00 |
|
Mike Pall
|
ba20871f0f
|
Fix display of branches to exit stubs in 32 bit disassembly.
|
2010-12-23 01:01:04 +01:00 |
|
Mike Pall
|
6082f93919
|
Improve register allocation for loops with variable shifts.
|
2010-12-23 00:55:31 +01:00 |
|
Mike Pall
|
c0ffe7d394
|
FFI: Record cdata allocations.
|
2010-12-22 23:21:38 +01:00 |
|
Mike Pall
|
4f2f44dd97
|
Avoid compiler warnings.
|
2010-12-22 23:20:50 +01:00 |
|
Mike Pall
|
dbab6cf511
|
Reassociate XLOAD across PHIs to handle a[i-1] forwarding case.
Improved SciMark scores: http://luajit.org/download/scimark.lua
x86 SciMark LARGE | FFT SOR MC SPARSE LU
-----------------------+---------------------------------------
GCC 4.4.3 623.8 | 91.0 883.5 190.4 784.7 1169.6
LuaJIT git +FFI 651.2 | 97.2 1021.9 323.4 673.7 1139.6
LuaJIT git 527.7 | 91.4 1008.5 225.6 400.0 913.2
x64 SciMark LARGE | FFT SOR MC SPARSE LU
-----------------------+---------------------------------------
GCC 4.4.3 614.7 | 97.7 883.5 228.5 734.0 1129.9
JVM 1.6.0_22 707.5 | 79.2 1118.1 385.5 658.9 1295.7
LuaJIT git +FFI 632.8 | 89.1 1035.8 298.3 648.1 1092.9
LuaJIT git 516.1 | 88.4 995.4 225.6 382.1 888.9
|
2010-12-20 22:32:01 +01:00 |
|
Mike Pall
|
c8d6f078a5
|
Fix XSTORE for IRT_NUM constants.
|
2010-12-20 19:34:15 +01:00 |
|
Mike Pall
|
c9a0b9ea9e
|
Improve alias analysis for cdata allocations.
|
2010-12-20 15:26:05 +01:00 |
|
Mike Pall
|
255c6e8c87
|
FFI: Drop IR_CNEWI. Add IR_CNEWP only for pointers/refs.
|
2010-12-17 17:20:04 +01:00 |
|
Mike Pall
|
c98132e182
|
FFI: FOLD load of initializers even across PHIs.
|
2010-12-17 16:47:28 +01:00 |
|
Mike Pall
|
c4a0fb4f60
|
FFI: Record copy-by-value for pointer and complex C types.
|
2010-12-17 16:47:14 +01:00 |
|
Mike Pall
|
09ef7ebf56
|
FFI: Simplify copy-by-value. Strip attributes, keep qualifiers.
|
2010-12-15 21:47:46 +01:00 |
|
Mike Pall
|
fbcc925a2d
|
FFI: Fix auto-deref of pointers to structs.
|
2010-12-15 19:48:20 +01:00 |
|
Mike Pall
|
badff4ed0a
|
Fix error location while recording metamethods.
|
2010-12-15 19:44:30 +01:00 |
|
Mike Pall
|
9666cf52ce
|
Fix type-based alias analysis for XLOAD/XSTORE.
|
2010-12-12 23:09:26 +01:00 |
|
Mike Pall
|
74317fa0ef
|
Add alias analysis for XLOAD/XSTORE. Add DSE for XSTORE.
|
2010-12-12 22:32:52 +01:00 |
|
Mike Pall
|
a22ea8898e
|
FOLD (base+k)+(idx*sz)+ofs ==> (base+idx*sz)+(ofs+k).
|
2010-12-12 21:07:23 +01:00 |
|
Mike Pall
|
a403cb13e4
|
Add missing PHI barrier to strength reduction of widening.
|
2010-12-12 21:05:34 +01:00 |
|
Mike Pall
|
42f9b38663
|
Extend all FOLD rules to work on 64 bit integers.
|
2010-12-11 21:20:49 +01:00 |
|
Mike Pall
|
476259e87e
|
Add 64 bit bswap and rotates.
|
2010-12-11 21:20:12 +01:00 |
|
Mike Pall
|
5f7e9173db
|
Regroup FOLD rules for constant folding.
|
2010-12-11 20:08:07 +01:00 |
|
Mike Pall
|
44101c64e8
|
FFI: Don't use KNULL for arbitrary NULL pointers.
|
2010-12-11 20:12:14 +01:00 |
|
Mike Pall
|
cdac0fa2cb
|
FFI: Add IR_CNEW/IR_CNEWI to allocate/init cdata objects.
|
2010-12-11 19:32:12 +01:00 |
|
Mike Pall
|
6947493687
|
Turn lj_mem_newgco() into a fastcall.
|
2010-12-10 01:10:52 +01:00 |
|
Mike Pall
|
09e2bdbb0a
|
FFI: Always specialize to the field name for struct access.
|
2010-12-09 22:48:01 +01:00 |
|
Mike Pall
|
870bcd7640
|
Add missing guard for check against "#" when recording select().
|
2010-12-09 22:35:49 +01:00 |
|
Mike Pall
|
cc0efd85d6
|
FFI: Fix alignment of scalars/vectors modified with mode attribute.
|
2010-12-09 18:48:23 +01:00 |
|
Mike Pall
|
1d86090926
|
Strength-reduce 32 to 64 bit widening using scalar evolution analysis.
|
2010-12-09 16:12:59 +01:00 |
|
Mike Pall
|
36fed9f3e1
|
Allow integer literals in FOLD rules.
Workaround before refactoring conversion ops.
|
2010-12-09 16:11:15 +01:00 |
|
Mike Pall
|
e9cab5a763
|
x86/x64 backend: keep invariants on the right rather than fusing loads.
|
2010-12-09 16:08:55 +01:00 |
|
Mike Pall
|
4f0d3e8262
|
Apply narrowing optimization to IR_TOI64, too.
|
2010-12-08 21:03:45 +01:00 |
|
Mike Pall
|
f308e00e03
|
Add FOLD rule to reassociate 64 bit (x+k1)+k2.
|
2010-12-08 20:57:21 +01:00 |
|
Mike Pall
|
d0b283e596
|
Avoid stack resizes while recording calls to vararg functions.
FUNCV might have been recorded twice (with ill effects).
|
2010-12-08 19:11:58 +01:00 |
|
Mike Pall
|
6a04591b7b
|
FOLD (base+(idx+k)*sz)+ofs ==> (base+idx*sz)+(ofs+k*sz).
|
2010-12-08 03:33:48 +01:00 |
|
Mike Pall
|
3c78a7f468
|
Avoid fusing loads if there are multiple references.
|
2010-12-08 03:26:53 +01:00 |
|
Mike Pall
|
72744dabd9
|
Fix IRT_NUM support for XLOAD/XSTORE.
|
2010-12-08 03:24:35 +01:00 |
|
Mike Pall
|
3ef6a53cfa
|
FFI: Turn cdata indexing into x86/x64 [base+idx*sz+ofs] addressing.
|
2010-12-08 02:36:09 +01:00 |
|
Mike Pall
|
d778680098
|
FFI: Record cdata index operations (preliminary, lots of NYI cases).
|
2010-12-08 02:11:18 +01:00 |
|
Mike Pall
|
2a917a9d83
|
FFI: Treat cdata metatable+methods as immutable in trace recorder.
|
2010-12-08 02:02:21 +01:00 |
|
Mike Pall
|
d4d95ee2da
|
Fix x64 code generation for A16+REX prefixed instructions.
|
2010-12-08 01:57:50 +01:00 |
|
Mike Pall
|
e6093b129a
|
Fix register allocation for 8 bit stores in x86 backend.
|
2010-12-07 01:18:10 +01:00 |
|
Mike Pall
|
b3c4c0810a
|
Add IRT_NUM support to XLOAD/XSTORE.
|
2010-12-06 19:28:51 +01:00 |
|
Mike Pall
|
159f51d811
|
Add IR_TOI64.
|
2010-12-06 18:21:51 +01:00 |
|
Mike Pall
|
f6c4e8d3d7
|
Add FOLD rule to turn i << 1 into i + i.
|
2010-12-06 13:26:58 +01:00 |
|
Mike Pall
|
a5bdae8f23
|
Fix 64 bit shifts in backend. Fix shift by 0.
|
2010-12-06 13:16:35 +01:00 |
|
Mike Pall
|
5270586a80
|
Fix XLOAD/XSTORE references.
|
2010-12-06 13:15:53 +01:00 |
|
Mike Pall
|
86fd2289f0
|
Add support for integer IR_MUL.
|
2010-12-06 12:54:00 +01:00 |
|
Mike Pall
|
b56b83487f
|
Support all kinds of XLOAD/XSTORE references in backend.
Fuse pointer arithmetic, too.
|
2010-12-06 03:10:28 +01:00 |
|
Mike Pall
|
a850b27da9
|
Avoid compiler warnings.
|
2010-12-06 03:07:10 +01:00 |
|
Mike Pall
|
e137408752
|
Use native IRT_PTR instead of IRT_LIGHTUD workaround for FILE*.
|
2010-12-06 02:14:39 +01:00 |
|
Mike Pall
|
73bc83cda1
|
Simplify lj_ir_kvalue(). Fix IR_KNULL + IRT_P64 case.
|
2010-12-06 02:12:08 +01:00 |
|
Mike Pall
|
4755765e32
|
Avoid warning.
|
2010-12-06 01:59:07 +01:00 |
|
Mike Pall
|
db3d16bfd7
|
Add IR_XSTORE.
|
2010-12-06 01:48:19 +01:00 |
|
Mike Pall
|
281f426d60
|
Add minimal set of fold rules for KINT64.
|
2010-12-06 00:38:21 +01:00 |
|
Mike Pall
|
588fa0481f
|
Add support for 64 bit integer arithmetic to x64 backend.
|
2010-12-06 00:07:36 +01:00 |
|
Mike Pall
|
c5f4f607c9
|
Fix xmm spill/restore broken by b1fb71fb .
|
2010-12-05 22:39:36 +01:00 |
|
Mike Pall
|
5a13fa69d9
|
Add IR_KINT64.
|
2010-12-05 22:12:31 +01:00 |
|
Mike Pall
|
b1fb71fb98
|
Cleanup 64 bit IR type handling.
|
2010-12-05 21:01:08 +01:00 |
|
Mike Pall
|
6a7605ec85
|
Rename IRT_PTR to IRT_P32.
|
2010-12-05 18:59:34 +01:00 |
|
Mike Pall
|
26830d070d
|
Make sure to use irt_toitype() macro everywhere.
|
2010-12-05 18:51:37 +01:00 |
|
Mike Pall
|
e7f8cc964e
|
Split off fast function recording to lj_ffrecord.c.
|
2010-12-05 17:12:34 +01:00 |
|
Mike Pall
|
ffa5a2b045
|
Don't export internal symbol.
|
2010-12-05 01:08:19 +01:00 |
|
Mike Pall
|
7cb250c4b4
|
FFI: Add ffi.* library.
|
2010-12-05 00:52:17 +01:00 |
|
Mike Pall
|
513b0ba18f
|
FFI: Add support for converting cdata to tonumber().
|
2010-12-05 00:40:23 +01:00 |
|
Mike Pall
|
233076d3f9
|
FFI: Add C declaration parser.
|
2010-12-05 00:20:59 +01:00 |
|
Mike Pall
|
526e087e63
|
FFI: Add C data handling and C type conversions.
|
2010-12-05 00:18:07 +01:00 |
|
Mike Pall
|
05973ee440
|
FFI: Add C type management.
|
2010-12-05 00:11:35 +01:00 |
|
Mike Pall
|
8679ca5792
|
POSIX is an acronym.
|
2010-12-04 20:47:51 +01:00 |
|
Mike Pall
|
100a00dd40
|
Undo ef8c2648 .
|
2010-12-03 16:58:19 +01:00 |
|
Mike Pall
|
d98cd19bb0
|
Allow access to raw error messages from outside lj_err.c.
|
2010-12-01 12:54:32 +01:00 |
|
Mike Pall
|
0ffd06aba8
|
FFI: Add define to disable the FFI library.
|
2010-11-30 21:56:57 +01:00 |
|
Mike Pall
|
4ed8a1931b
|
Add support for deferred library loads to lib_init.c.
|
2010-11-30 21:56:03 +01:00 |
|
Mike Pall
|
443c542e26
|
Fix check for enabled JIT compiler in lj_trace.h.
|
2010-11-30 18:32:22 +01:00 |
|
Mike Pall
|
cd1901370d
|
Rearrange src/Makefile. Split features and debugging support.
|
2010-11-30 16:19:20 +01:00 |
|
Mike Pall
|
592cf3ffac
|
Don't mark REF_BASE in DCE.
|
2010-11-29 16:00:44 +01:00 |
|
Mike Pall
|
2033d6310b
|
Add shorter defines for endianess checks.
|
2010-11-28 17:22:45 +01:00 |
|
Mike Pall
|
24186e05e6
|
Remove metamethod frame for errors from internal metamethods.
|
2010-11-27 20:23:39 +01:00 |
|
Mike Pall
|
35890f66c1
|
FFI: Don't propagate cdata objects.
|
2010-11-26 17:27:02 +01:00 |
|
Mike Pall
|
ef8c264873
|
FFI: Add macros for consistent number to integer truncation.
|
2010-11-26 13:40:40 +01:00 |
|
Mike Pall
|
2fd1292955
|
FFI: Add cdata object type.
|
2010-11-26 13:28:46 +01:00 |
|
Mike Pall
|
6290d6f5d0
|
Display caller location in errors from metamethods.
|
2010-11-26 13:20:56 +01:00 |
|
Mike Pall
|
7840d0b2b0
|
Shrink slots for 'break' statement to help data-flow analysis.
|
2010-11-25 12:13:23 +01:00 |
|
Mike Pall
|
18fbf86c9e
|
Improve unrolling heuristics for non-looping inner loops.
|
2010-11-25 11:42:17 +01:00 |
|
Mike Pall
|
7338456796
|
Support os.exit(status|true|false [,close]) (from Lua 5.2).
|
2010-11-22 22:39:06 +01:00 |
|
Mike Pall
|
367ff0cdaa
|
Parse '\*' escape in strings (from Lua 5.2).
|
2010-11-22 22:22:12 +01:00 |
|
Mike Pall
|
b776bf91ff
|
Tighter check on table.sort function compliance (from Lua 5.2).
|
2010-11-19 18:44:59 +01:00 |
|
Mike Pall
|
52fd87bf34
|
Add support for "%g" character class in patterns (from Lua 5.2).
|
2010-11-19 18:37:10 +01:00 |
|
Mike Pall
|
7cc981c140
|
string.format("%q", str) is now fully reversible (from Lua 5.2).
|
2010-11-19 18:22:08 +01:00 |
|
Mike Pall
|
29b8959df1
|
Parse hexadecimal escapes in strings (from Lua 5.2).
|
2010-11-19 18:15:50 +01:00 |
|
Mike Pall
|
57cd5026eb
|
Disable Lua 5.2 features by default. See -DLUAJIT_ENABLE_LUA52COMPAT.
|
2010-11-19 17:00:11 +01:00 |
|
Mike Pall
|
ba602c9578
|
Add support for __pairs and __ipairs metamethods (from Lua 5.2).
|
2010-11-18 00:23:24 +01:00 |
|
Mike Pall
|
3754a8fe7a
|
Allow running C functions with coroutine.create(), too.
|
2010-11-17 20:07:55 +01:00 |
|
Mike Pall
|
751ff5b392
|
Add jit.os string.
|
2010-11-16 15:05:21 +01:00 |
|
Mike Pall
|
24baf77955
|
Cleanup architecture, ABI and OS definitions.
|
2010-11-16 15:03:40 +01:00 |
|
Mike Pall
|
1de05d1147
|
Avoid using negative hex numbers with DynASM.
|
2010-11-16 13:41:58 +01:00 |
|
Mike Pall
|
ad29c1f39f
|
Rename character type handling from lj_ctype* to lj_char*.
|
2010-11-09 12:09:54 +01:00 |
|
Mike Pall
|
fe21a42a92
|
Fix conflict between loop branch inversion and HREF+NE/EQ merging.
|
2010-11-05 23:12:43 +01:00 |
|
Mike Pall
|
188f0b04e1
|
Number parser shouldn't accept '0x' without hex digits.
|
2010-11-02 16:01:43 +01:00 |
|
Mike Pall
|
44372a4453
|
Fix parsing of hex floats.
|
2010-11-01 17:53:04 +01:00 |
|
Mike Pall
|
ab1b67f73a
|
Fix collectgarbage("count") result if more than 2GB is in use.
Thanks to Tony Finch.
|
2010-10-25 14:53:37 +02:00 |
|
Mike Pall
|
08b0ede194
|
Reduce 32GB RLIMIT_DATA on FreeBSD/x64 to allocate low-2GB memory.
Thanks to Tony Finch.
|
2010-10-23 16:31:27 +02:00 |
|
Mike Pall
|
02dc9d1082
|
Avoid compiler warning.
|
2010-10-23 15:28:28 +02:00 |
|
Mike Pall
|
65dec38e44
|
PPC: Preserve RD during array resizing in BC_TSETM.
|
2010-10-18 16:12:27 +02:00 |
|