Commit Graph

113 Commits (master)

Author SHA1 Message Date
Mike Pall 96d6d50320 Revert to trival pow() optimizations to prevent inaccuracies. 2022-03-08 19:44:10 +01:00
Mike Pall c929efc039 Fix compiled error handling for buffer methods.
Contributed by XmiliaH.
2022-01-23 19:10:47 +01:00
Mike Pall 7306ba78d6 Merge branch 'master' into v2.1 2022-01-15 19:42:30 +01:00
Mike Pall c4dfb625ba Bump copyright date. 2022-01-15 19:30:54 +01:00
Mike Pall bfd076532c Fix string buffer method recording.
Reported and analyzed by vfprintf. #755
2021-10-12 23:49:47 +02:00
Mike Pall 442eff63ab Fix compilation of multi-result call to next().
Thanks to Vyacheslav Egorov.
2021-10-06 17:31:46 +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 5ee78fd8e3 Refactor IR_TMPREF generation. 2021-09-19 17:25:27 +02:00
Mike Pall 9211f0b03b Refactor IR_VLOAD to take an offset. 2021-09-19 17:18:16 +02:00
Mike Pall 4deb5a1588 Merge branch 'master' into v2.1 2021-07-19 17:05:48 +02:00
Mike Pall 6ca580155b Avoid out-of-range number of results when compiling select(k, ...).
The interpreter will throw and abort the trace, anyway.
2021-07-19 17:03: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 3f9389edc6 Throw any errors before stack changes in trace stitching.
Thanks to doujiang24.
2021-06-14 14:56:54 +02:00
Mike Pall 1b7171c339 FFI: Support FFI numbers in string.format() and buf:putf(). 2021-06-03 03:22:58 +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 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 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 5655be4546 Cleanup math function compilation and fix inconsistencies. 2020-05-22 04:53:35 +02:00
Mike Pall d75e26275b Don't compile math.modf() anymore.
It's rarely used and properly compiling it would be difficult.
2020-05-22 03:13:57 +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 dfa692b746 Fix string.char() recording with no arguments. 2020-01-14 11:08:42 +01:00
Mike Pall 0bee44c9dc Properly fix pointer diff in string.find().
Thanks to Vyacheslav Egorov.
2019-12-21 13:52:47 +01:00
Mike Pall 9600e4318e Don't use STRREF for pointer diff in string.find().
Thanks to Sergey Ostanevich and Vyacheslav Egorov.
2019-12-08 19:54:21 +01:00
Mike Pall a057a07ab7 MIPS64: Add soft-float support to JIT compiler backend.
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
Sponsored by Cisco Systems, Inc.
2017-06-07 23:56:54 +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 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 3152ed98ea Simplify GCtrace * reference embedding for trace stitching.
This is now possible due to the immovable IR.
Contributed by Peter Cawley.
2016-05-22 23:40:37 +02:00
Mike Pall ccae333844 Load SIMD constants with IR_FLOAD from GG_State.
Contributed by Peter Cawley.
2016-05-21 01:04:17 +02:00
Mike Pall 1931b38da5 LJ_GC64: Introduce IRT_PGC.
Contributed by Peter Cawley.
2016-05-20 22:41:42 +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 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 efaf24f496 Fix pairs() recording.
Thanks to Vyacheslav Egorov.
2015-10-24 18:04:54 +02:00
Mike Pall b20642cec9 Merge branch 'master' into v2.1 2015-10-24 18:03:55 +02:00
Mike Pall e5f4cb1ccb FFI: Fix ipairs() recording.
Thanks to Vyacheslav Egorov.
2015-10-24 17:59:44 +02:00
Mike Pall a3a6866d4c Re-enable trace stitching.
Thanks to Vyacheslav Egorov.
2015-08-29 23:24:26 +02:00
Mike Pall 5caf53d502 Fix broken Windows build. 2015-04-29 10:13:01 +02:00
Mike Pall c2924c3e1d Disable trace stitching (for now) due to a design mistake.
Thanks to Elias Hogstvedt for finding a test case for a well known,
but hard to track down issue with trace stitching.
2015-04-28 20:52:24 +02: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 cb481ddc8f Add LJ_GC64 mode: 64 bit GC object references.
Actually NaN tagging with 47 bit pointers and 13+4 bit tags.
2015-01-03 15:23:58 +01:00