Mike Pall
|
28440544ba
|
Don't bail out to interpreter to JLOOP originating from ITERN.
Otherwise forward progress is not guaranteed.
Reported by Yichun Zhang.
|
2021-09-20 14:40:23 +02:00 |
|
Mike Pall
|
bb0f241015
|
Compile table traversals: next(), pairs(), BC_ISNEXT/BC_ITERN.
Sponsored by OpenResty Inc.
|
2021-09-19 17:49:25 +02:00 |
|
Mike Pall
|
9211f0b03b
|
Refactor IR_VLOAD to take an offset.
|
2021-09-19 17:18:16 +02:00 |
|
Mike Pall
|
29bc1f04ac
|
String buffers, part 3d: Compile string buffer methods and functions.
Sponsored by fmad.io.
|
2021-07-19 16:53:30 +02:00 |
|
Mike Pall
|
6df650fe3f
|
String buffers, part 3a: Add IR_TMPREF for passing TValues to helpers.
Sponsored by fmad.io.
|
2021-07-19 16:23:12 +02:00 |
|
Mike Pall
|
75ee3a6159
|
Prevent compile of __concat with tailcall to fast function.
E.g. __concat = function() return setmetatable(...) end
Reported by Fezile Manana.
|
2021-04-21 15:23:15 +02:00 |
|
Mike Pall
|
a32aeadc68
|
Handle on-trace OOM errors from helper functions.
|
2021-03-23 00:39:50 +01:00 |
|
Mike Pall
|
ddd0fd8f37
|
Use weak guards for on-trace allocations.
|
2021-03-23 00:33:34 +01:00 |
|
Mike Pall
|
1e66d0f9e6
|
Merge branch 'master' into v2.1
|
2021-01-02 21:56:07 +01:00 |
|
Mike Pall
|
f47c864b01
|
Bump copyright date.
|
2021-01-02 21:49:41 +01:00 |
|
Mike Pall
|
675e08cf06
|
Merge branch 'master' into v2.1
|
2020-10-12 15:51:31 +02:00 |
|
Mike Pall
|
5c46f47736
|
Fix snapshot PC when linking to BC_JLOOP that was a BC_RET*.
Reported by Arseny Vakhrushev.
Fix contributed by Peter Cawley.
|
2020-10-12 15:45:05 +02:00 |
|
Mike Pall
|
ff1e72acea
|
LJ_GC64: Always snapshot functions for non-base frames.
Reported by Arseny Vakhrushev.
Analysis and fix contributed by Peter Cawley.
|
2020-08-27 18:05:32 +02:00 |
|
Mike Pall
|
a44f53acf5
|
Use a securely seeded global PRNG for the VM.
It's not 2005 anymore.
|
2020-06-15 12:21:05 +02:00 |
|
Mike Pall
|
d333b1a6fe
|
ARM: Implement FLOAD from GG_State.
|
2020-06-13 01:12:14 +02:00 |
|
Mike Pall
|
8ae5170cdc
|
Improve assertions.
|
2020-06-15 02:52:00 +02:00 |
|
Mike Pall
|
1a4ff13117
|
Optimize table length computation with hinting.
10x faster on loop with t[#t+1] = x idiom. Also used by table.insert.
|
2020-05-27 19:20:44 +02:00 |
|
Mike Pall
|
87b111f0fe
|
Merge branch 'master' into v2.1
|
2020-01-20 23:34:21 +01:00 |
|
Mike Pall
|
38a5ed4b43
|
Bump copyright date.
|
2020-01-20 23:26:51 +01:00 |
|
Mike Pall
|
1d9a337de6
|
Merge branch 'master' into v2.1
|
2019-12-08 19:50:36 +01:00 |
|
Mike Pall
|
e0388e6c00
|
Fix stack check when recording BC_VARG.
Contributed by Yichun Zhang.
|
2019-12-08 19:32:27 +01:00 |
|
Mike Pall
|
0a9ff94c4a
|
Actually implement maxirconst trace limit.
Suggested by spacewander.
|
2018-10-14 15:21:37 +02:00 |
|
Mike Pall
|
6259c0b909
|
Merge branch 'master' into v2.1
|
2017-05-17 17:38:53 +02:00 |
|
Mike Pall
|
630ff3196a
|
Add missing LJ_MAX_JSLOTS check.
Thanks to Yichun Zhang.
|
2017-05-17 17:37:35 +02:00 |
|
Mike Pall
|
31afda3181
|
Merge branch 'master' into v2.1
|
2017-05-09 21:01:23 +02:00 |
|
Mike Pall
|
1c89933f12
|
Fix LJ_MAX_JSLOTS assertion in rec_check_slots().
Thanks to Yichun Zhang.
|
2017-05-09 20:59:37 +02:00 |
|
Mike Pall
|
71ff7ef8a7
|
Merge branch 'master' into v2.1
|
2017-01-17 12:41:05 +01:00 |
|
Mike Pall
|
b93a1dd0c8
|
Bump copyright date to 2017.
|
2017-01-17 12:35:03 +01:00 |
|
Mike Pall
|
716f2daef8
|
LJ_GC64: Various followup fixes.
Contributed by Peter Cawley.
|
2016-10-20 20:55:12 +02:00 |
|
Mike Pall
|
6a25014c1c
|
LJ_FR2: Fix slot 1 handling.
Contributed by Peter Cawley.
|
2016-10-16 21:04:38 +02:00 |
|
Mike Pall
|
54b78e7c66
|
LJ_GC64: Various fixes.
Contributed by Peter Cawley.
|
2016-10-12 17:36:45 +02:00 |
|
Mike Pall
|
1c0454c6ce
|
Merge branch 'master' into v2.1
|
2016-06-03 04:28:17 +02:00 |
|
Mike Pall
|
a5f8a4819f
|
Don't try to record outermost pcall() return to lower frame.
|
2016-06-03 04:26:08 +02:00 |
|
Mike Pall
|
2868715d80
|
x64/LJ_GC64: Add missing backend support and enable JIT compilation.
Contributed by Peter Cawley.
|
2016-05-23 06:01:54 +02:00 |
|
Mike Pall
|
6c8258d74b
|
LJ_FR2: Add support for trace recording and snapshots.
Contributed by Peter Cawley.
|
2016-05-23 01:49:00 +02:00 |
|
Mike Pall
|
7fb75ccc4c
|
Embed 64 bit constants directly in the IR, using two slots.
Contributed by Peter Cawley.
|
2016-05-23 00:25:29 +02:00 |
|
Mike Pall
|
a4067978b6
|
Always walk IR constants in ascending order.
Prerequisite for embedding 64 bit constants directly in the IR.
Contributed by Peter Cawley.
|
2016-05-22 23:45:40 +02:00 |
|
Mike Pall
|
1931b38da5
|
LJ_GC64: Introduce IRT_PGC.
Contributed by Peter Cawley.
|
2016-05-20 22:41:42 +02:00 |
|
Mike Pall
|
475a6ae33f
|
Merge branch 'master' into v2.1
|
2016-05-20 20:26:39 +02:00 |
|
Mike Pall
|
37e1e70313
|
Add guard for obscure aliasing between open upvalues and SSA slots.
Thanks to Peter Cawley.
|
2016-05-20 20:24:06 +02:00 |
|
Mike Pall
|
ac42037db0
|
Constrain value range of lj_ir_kptr() to unsigned 32 bit pointers.
Thanks to Peter Cawley.
|
2016-04-24 17:32:12 +02:00 |
|
Mike Pall
|
344fe5f01d
|
Merge branch 'master' into v2.1
|
2016-04-21 17:01:36 +02:00 |
|
Mike Pall
|
2f0001fad0
|
Fix handling of non-numeric strings in arithmetic coercions.
Thanks to Vyacheslav Egorov.
|
2016-04-21 17:00:58 +02:00 |
|
Mike Pall
|
d150fbf441
|
Merge branch 'master' into v2.1
|
2016-04-03 19:13:37 +02:00 |
|
Mike Pall
|
1c6fd13dbd
|
Fix recording of select(n, ...) with off-trace varargs
Thanks to Peter Cawley.
|
2016-04-03 19:12:28 +02:00 |
|
Mike Pall
|
f4231949b5
|
Merge branch 'master' into v2.1
|
2016-03-03 12:11:37 +01:00 |
|
Mike Pall
|
db1b399af1
|
Bump copyright date to 2016.
|
2016-03-03 12:02:22 +01:00 |
|
Mike Pall
|
04d2806823
|
Rollback due to HREFK + load fwd must restore guardemit state.
Thanks to Vyacheslav Egorov.
|
2016-01-18 11:58:13 +01:00 |
|
Mike Pall
|
fe565222a1
|
Disable table allocation bump optimization (for now).
|
2015-06-13 00:42:38 +02:00 |
|
Mike Pall
|
458a40b724
|
Fix table allocation bump optimization (sigh).
|
2015-06-10 17:06:01 +02:00 |
|
Mike Pall
|
c5d262f2d2
|
Fix table allocation bump optimization (again).
|
2015-06-09 23:46:38 +02:00 |
|
Mike Pall
|
60fb3fe2b2
|
Fix table allocation bump optimization.
|
2015-05-21 16:38:31 +02:00 |
|
Mike Pall
|
bca5da8849
|
Fix for last commit.
|
2015-05-19 02:25:16 +02:00 |
|
Mike Pall
|
b82fc3ddc0
|
Bump table allocations retroactively if they grow later on.
|
2015-05-19 01:59:29 +02:00 |
|
Mike Pall
|
43cb818ba8
|
Merge branch 'master' into v2.1
|
2015-01-17 14:57:24 +01:00 |
|
Mike Pall
|
7f013005f6
|
Don't compile IR_RETF after CALLT to ff with-side effects.
|
2015-01-17 14:50:41 +01:00 |
|
Mike Pall
|
0a5045c34e
|
Merge branch 'master' into v2.1
|
2015-01-06 00:12:45 +01:00 |
|
Mike Pall
|
86913b9bbf
|
Bump copyright date to 2015.
|
2015-01-05 23:59:31 +01:00 |
|
Mike Pall
|
054e6abe37
|
Add LJ_FR2 mode: Two-slot frame info.
|
2015-01-03 15:04:38 +01:00 |
|
Mike Pall
|
5cb6e2eaaf
|
Cleanup of TValue setters. No functional changes.
|
2014-12-20 01:48:00 +01:00 |
|
Mike Pall
|
c6130e68eb
|
Avoid dependency on frame layout for LJ_POST_FIXCOMP.
The auxiliary value in u32.lo wasn't used, anyway.
|
2014-12-15 02:45:40 +01:00 |
|
Mike Pall
|
881f48f980
|
Cleanup of frame handling. No functional changes.
|
2014-12-15 02:27:27 +01:00 |
|
Mike Pall
|
b7d29b6e67
|
Eliminate hmask guard for forwarded HREFK.
|
2014-09-17 19:45:16 +02:00 |
|
Mike Pall
|
0ac4c43965
|
Merge branch 'master' into v2.1
|
2014-07-01 17:54:08 +02:00 |
|
Mike Pall
|
a6c34b85f7
|
Fix ABC elimination.
|
2014-07-01 17:53:40 +02:00 |
|
Mike Pall
|
a972d37ef3
|
Merge branch 'master' into v2.1
|
2014-04-01 10:33:42 +02:00 |
|
Mike Pall
|
b293063eb8
|
Correct fix for reuse of SCEV results in FORL.
|
2014-04-01 10:07:15 +02:00 |
|
Mike Pall
|
4401af88dc
|
Merge branch 'master' into v2.1
|
2014-03-27 23:32:45 +01:00 |
|
Mike Pall
|
095344ce7c
|
Fix check for reuse of SCEV results in FORL.
|
2014-03-27 23:29:30 +01:00 |
|
Mike Pall
|
19d53ed2f9
|
Specialize to ffid for non-monomorphic builtins.
|
2014-03-04 16:11:29 +01:00 |
|
Mike Pall
|
fd3354a9dd
|
Merge branch 'master' into v2.1
|
2014-02-28 14:10:30 +01:00 |
|
Mike Pall
|
ef3cc47f9f
|
Fix recording of BC_VARG.
|
2014-02-28 14:09:09 +01:00 |
|
Mike Pall
|
2863b10956
|
Merge branch 'master' into v2.1
|
2014-02-20 15:09:02 +01:00 |
|
Mike Pall
|
998651fcda
|
Don't purge modified function from stack slots in BC_RET.
|
2014-02-20 04:24:50 +01:00 |
|
Mike Pall
|
bcd27038fc
|
Merge branch 'master' into v2.1
|
2014-01-20 16:59:04 +01:00 |
|
Mike Pall
|
dd910f0e01
|
Fix initial maxslot for down-recursive traces.
|
2014-01-20 16:49:13 +01:00 |
|
Mike Pall
|
a9d4543601
|
Merge branch 'master' into v2.1
|
2014-01-16 23:18:34 +01:00 |
|
Mike Pall
|
ef59e54820
|
Bump copyright date to 2014.
|
2014-01-16 23:10:16 +01:00 |
|
Mike Pall
|
b5d741fa7e
|
Add trace stitching.
|
2013-12-25 02:55:25 +01:00 |
|
Mike Pall
|
585dd449b5
|
Merge branch 'master' into v2.1
|
2013-12-09 00:32:08 +01:00 |
|
Mike Pall
|
0ded8e82a8
|
Fix call unroll checks in the presence of metamethod frames.
|
2013-12-09 00:29:56 +01:00 |
|
Mike Pall
|
a8c3862d63
|
Merge branch 'master' into v2.1
|
2013-11-22 05:45:33 +01:00 |
|
Mike Pall
|
f371ed6bd8
|
Respect jit.off(func) when returning to a function, too.
|
2013-11-22 05:42:56 +01:00 |
|
Mike Pall
|
1837d07082
|
Compile BC_TSETM, e.g. {1,2,3,f()}.
|
2013-10-09 23:51:30 +02:00 |
|
Mike Pall
|
d1194a82eb
|
Low-overhead profiler, part 4: JIT compiler support.
|
2013-09-08 02:53:23 +02:00 |
|
Mike Pall
|
8f90a1279e
|
Big renaming of string buffer/formatting/conversion functions.
|
2013-05-13 10:15:07 +02:00 |
|
Mike Pall
|
4ac25a9132
|
Compile __concat metamethod.
|
2013-04-28 01:51:41 +02:00 |
|
Mike Pall
|
47fa9a8d8f
|
Change semantics of buffer ops to simplify CSE and DCE.
|
2013-04-26 13:47:41 +02:00 |
|
Mike Pall
|
255326afb6
|
Use explicit conversion type for IR_TOSTR. Add char conversion.
|
2013-04-23 02:20:03 +02:00 |
|
Mike Pall
|
2cdf90f068
|
Always emit TOSTR for non-string CAT operands. Fuse in backend.
|
2013-04-23 00:10:01 +02:00 |
|
Mike Pall
|
5f1781a127
|
Compile string concatenations (BC_CAT).
|
2013-04-21 01:01:33 +02:00 |
|
Mike Pall
|
73ef845fca
|
Add special bytecodes for builtins.
BC_ISTYPE, BC_ISNUM: fast type checks/coercions.
BC_TGETR, BC_TSETR: fast rawgeti/rawseti, no type checks for table/key.
|
2013-02-23 02:09:19 +01:00 |
|
Mike Pall
|
4a44c4ff69
|
Bump copyright date to 2013.
|
2013-02-11 12:54:48 +01:00 |
|
Mike Pall
|
c022692ab0
|
Don't propagate implicitly widened number to index metamethods.
|
2012-11-06 16:58:52 +01:00 |
|
Mike Pall
|
614e78d1f6
|
Fix recording of equality comparisons with __eq metamethods.
|
2012-10-19 17:03:41 +02:00 |
|
Mike Pall
|
1c626112a0
|
FFI: Compile ffi.sizeof(), ffi.alignof() and ffi.offsetof().
|
2012-10-10 18:16:18 +02:00 |
|
Mike Pall
|
d08e7bd518
|
From Lua 5.2: Allow mixed metamethods for ordered comparisons.
Needs -DLUAJIT_ENABLE_LUA52COMPAT.
|
2012-09-28 19:30:08 +02:00 |
|
Mike Pall
|
d9c5eba1bb
|
Remove some library functions for no-JIT/no-FFI builds.
|
2012-09-24 16:56:07 +02:00 |
|
Mike Pall
|
ead325b0c9
|
From Lua 5.2: Add goto and :🏷️: statements.
|
2012-09-16 18:46:04 +02:00 |
|
Mike Pall
|
23932a6c8b
|
Use 0/1 macro for Lua 5.2 compatibility.
|
2012-09-12 11:20:47 +02:00 |
|