Commit Graph

229 Commits

Author SHA1 Message Date
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