Mike Pall
64dbe7d929
Return to lower frame via interpreter for unhandled cases.
...
E.g. spontaneous upcalls from C are now compiled.
2011-06-29 01:53:39 +02:00
Mike Pall
deeb8196c4
Reorganize trace linking and track link types.
2011-06-28 23:23:34 +02:00
Mike Pall
4df40a228f
Fix recording of loops with instable directions in side traces.
2011-06-20 21:51:31 +02:00
Mike Pall
31d566428f
From Lua 5.2: __len for tables. Needs -DLUAJIT_ENABLE_LUA52COMPAT.
2011-06-20 20:45:41 +02:00
Mike Pall
b6a7fc5330
Cleanup prototype flags.
2011-06-09 13:54:40 +02:00
Mike Pall
8c5935000d
Add narrowing of modulo operator.
2011-06-03 18:48:02 +02:00
Mike Pall
8dd09d5041
DUALNUM: Fix missing type check for loop index slot.
2011-06-01 00:49:29 +02:00
Mike Pall
138f54352a
Split up FP IR instructions with SPLIT pass for soft-float targets.
2011-05-22 17:44:58 +02:00
Mike Pall
919ba5fd74
Add missing guard to for loop argument conversion.
2011-05-22 16:47:55 +02:00
Mike Pall
effdfda673
Move IR_CALL* definitions to lj_ircall.h.
2011-05-22 16:28:43 +02:00
Mike Pall
b79cdba3a0
Tuning loop unrolling heuristics again.
2011-05-10 16:55:23 +02:00
Mike Pall
fb8b87e818
More tuning of loop unrolling heuristics.
2011-05-04 23:21:46 +02:00
Mike Pall
b4006ba9a8
Fix stack slot updates for down-recursion.
2011-05-04 21:34:21 +02:00
Mike Pall
139175f8c4
Tune loop unrolling heuristics. Increase trace recorder limits.
2011-05-03 21:14:18 +02:00
Mike Pall
9ea679410c
Workaround to compile with Clang. Fix Clang warnings.
2011-04-19 17:12:41 +02:00
Mike Pall
23f847f4ed
Optimize lookups in empty proxy tables.
2011-04-10 21:43:21 +02:00
Mike Pall
d85b7e636e
Fix recording of JLOOP with higher maxslot.
2011-04-10 18:00:08 +02:00
Mike Pall
7088abce8f
DUALNUM: Fix narrowing of unary minus.
2011-03-19 17:46:10 +01:00
Mike Pall
dcbae09b1d
DUALNUM: Narrow unary minus.
2011-03-15 18:14:18 +01:00
Mike Pall
bfce3c1127
DUALNUM: Handle integer type in JIT compiler.
2011-03-10 01:57:24 +01:00
Mike Pall
54978e481b
DUALNUM: Make overflow guards weak. Add IR_USE and IR_MULOV.
2011-03-07 20:21:38 +01:00
Mike Pall
8eb09fe820
Suppress recording of retried fast functions.
2011-03-07 20:03:38 +01:00
Mike Pall
4c97cc7730
Eliminate dead slots in snapshots using bytecode data-flow analysis.
2011-02-22 22:39:12 +01:00
Mike Pall
4dca589af0
Add workaround for lj_meta_tset() newkey inconsistency.
2011-02-15 01:02:08 +01:00
Mike Pall
c39ca7c35b
FFI: Record ffi.abi().
2011-02-08 00:09:33 +01:00
Mike Pall
bf05209e14
FFI: Optimize snapshots for cdata comparisons.
2011-02-05 18:54:08 +01:00
Mike Pall
da3f256a52
Fix metamethod comparisons triggered by BC_ISEQP/BC_ISNEP.
2011-02-05 16:32:08 +01:00
Mike Pall
223d85aa06
Treat metatables of special userdata objects as immutable.
2011-02-05 14:09:50 +01:00
Mike Pall
6bce6b118e
Add compile-time option LUAJIT_ENABLE_CHECKHOOK. Disabled by default.
...
This checks for asynchronously set hooks from compiled code.
2011-01-19 02:05:37 +01:00
Mike Pall
925050fe3f
Differentiate between IR_KPTR and IR_KKPTR.
...
IR_KPTR holds a const pointer to possibly non-const content.
IR_KKPTR holds a const pointer to definitely const content.
Note that only content known by the VM to be const qualifies.
Content tagged as const by users (e.g. const char *) doesn't.
2011-01-19 00:40:03 +01:00
Mike Pall
751eff9f97
Cleanup and fix trace flush logic.
2011-01-18 21:08:23 +01:00
Mike Pall
f385af7084
FFI: Record 64 bit integer comparisons and pointer comparisons.
2011-01-17 01:23:04 +01:00
Mike Pall
66ba1e68aa
Add trace recorder infrastructure for instruction post-processing.
2011-01-17 01:20:10 +01:00
Mike Pall
2940ab023a
Fix assertion.
2011-01-16 19:24:50 +01:00
Mike Pall
0ec7f5ed92
FFI: Add 64 bit integer comparisons and pointer comparisons.
2011-01-13 02:35:29 +01:00
Mike Pall
06f99fc3df
Bump copyright date to 2011.
2011-01-09 17:12:53 +01:00
Mike Pall
b2c74c52cc
FFI: Add support for cdata constants to IR.
2011-01-02 22:21:10 +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
2a917a9d83
FFI: Treat cdata metatable+methods as immutable in trace recorder.
2010-12-08 02:02:21 +01:00
Mike Pall
5a13fa69d9
Add IR_KINT64.
2010-12-05 22:12:31 +01:00
Mike Pall
6a7605ec85
Rename IRT_PTR to IRT_P32.
2010-12-05 18:59:34 +01:00
Mike Pall
e7f8cc964e
Split off fast function recording to lj_ffrecord.c.
2010-12-05 17:12:34 +01:00
Mike Pall
18fbf86c9e
Improve unrolling heuristics for non-looping inner loops.
2010-11-25 11:42:17 +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
5391a5f5b1
Fix recording of y = select(n, ...) for non-int indexes.
2010-10-11 21:52:22 +02:00
Mike Pall
b3cf2c70f4
Decouple SLOAD type and optional conversion.
2010-10-11 21:13:37 +02:00
Mike Pall
ac76493df1
Specialize bytecode for pairs()/next() iterator. Speedup: 3.5x.
...
Parser predict pairs/next and emits specialized bytecode.
Bytecode is descpecialized at runtime if the prediction was wrong.
Store slot index in hidden control var to avoid key lookups.
2010-09-30 21:55:32 +02:00
Mike Pall
8dc76ee327
Add IR_VLOAD for vararg loads.
...
Also fixes the broken AA improvement in the last commit.
2010-09-14 19:58:27 +02:00
Mike Pall
b69c02eb68
Avoid unnecessary vararg loads.
2010-09-14 16:48:25 +02:00