Commit Graph

127 Commits (master)

Author SHA1 Message Date
Mike Pall e1339aed3d x86/x64: Limit VLOAD fusion to simple cases.
Reported by ccagml.
2022-07-27 11:32:33 +02:00
Mike Pall 1cdff194cf Add missing check for LJ_KEYINDEX in ITERN recording.
Reported by dragonorloong. Analyzed by vfprintf. #827
2022-04-02 21:27:43 +02:00
Mike Pall 9512d5c1ac Fix pow() optimization inconsistencies. 2022-01-24 14:37:50 +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 bb0f241015 Compile table traversals: next(), pairs(), BC_ISNEXT/BC_ITERN.
Sponsored by OpenResty Inc.
2021-09-19 17:49:25 +02:00
Mike Pall 986bb406ad Use IR_HIOP for generalized two-register returns.
Sponsored by OpenResty Inc.
2021-09-19 17:47:11 +02:00
Mike Pall 9211f0b03b Refactor IR_VLOAD to take an offset. 2021-09-19 17:18:16 +02:00
Mike Pall f2d333c1ac MIPS: Fix trace linking. 2021-09-19 16:09:48 +02:00
Mike Pall 02bcbea8b0 String buffers, part 3c: Add IRBUFHDR_WRITE mode.
Sponsored by fmad.io.
2021-07-19 16:46:27 +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 71db0cf043 Add IRCONV_NONE for pass-through INT to I64/U64 type change. 2021-07-19 16:11:39 +02: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 2e55a42c07 Merge branch 'master' into v2.1 2020-09-27 17:20:37 +02:00
Mike Pall e8ec6fe996 Prevent patching of the GC exit check branch.
Reported by Arseny Vakhrushev.
2020-09-27 16:44:13 +02:00
Mike Pall 03a7ebca4f x64: Fix 64 bit shift code generation.
Reported by Philipp Kutin.
Fix contributed by Peter Cawley.
2020-09-25 22:49:23 +02:00
Mike Pall ff34b48ddd Redesign and harden string interning.
Up to 40% faster on hash-intensive benchmarks.
With some ideas from Sokolov Yura.
2020-06-23 03:06:45 +02:00
Mike Pall 8ae5170cdc Improve assertions. 2020-06-15 02:52:00 +02:00
Mike Pall b2307c8ad8 Remove pow() splitting and cleanup backends. 2020-05-23 21:33:01 +02:00
Mike Pall 5655be4546 Cleanup math function compilation and fix inconsistencies. 2020-05-22 04:53:35 +02:00
Mike Pall 0eddcbead2 Cleanup CPU detection and tuning for old CPUs. 2020-05-20 20:42:04 +02:00
Mike Pall d85d6b3c1b Merge branch 'master' into v2.1 2020-02-02 18:20:35 +01:00
Mike Pall 522d2073da x86/x64: Fix loop realignment. 2020-02-02 18:19:44 +01: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 05fbdf565c x64/LJ_GC64: Fix type-check-only variant of SLOAD.
Thanks to Peter Cawley.
2017-09-10 14:05:30 +02:00
Mike Pall 6b08248526 x64/LJ_GC64: Fix fallback case of asm_fuseloadk64().
Contributed by Peter Cawley.
2017-08-28 10:43:37 +02:00
Mike Pall fa126c5f97 x64/LJ_GC64: Fix assembly of CNEWI with 64 bit constant pointer.
Tracked down by Luke Gorrie.
2017-03-21 00:58:02 +01:00
Mike Pall f640ec713a x64/LJ_GC64: Fix (currently unused) integer stores in asm_tvptr(). 2017-02-20 02:42:54 +01: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 e577db52c5 Increase range of GG_State loads via IR_FLOAD with REF_NIL.
Require 32 bit alignment and store offset/4 instead.
Otherwise this can overflow the 10 bit limit for the FOLD op2 key.
2016-11-19 19:53:46 +01:00
Mike Pall 716f2daef8 LJ_GC64: Various followup fixes.
Contributed by Peter Cawley.
2016-10-20 20:55:12 +02:00
Mike Pall bdcaf4bfd9 LJ_GC64: Fix HREF for pointers.
Contributed by Peter Cawley.
2016-10-19 09:48:38 +02:00
Mike Pall f5983437a6 x64/LJ_GC64: Fix code generation for IR_KNULL call argument. 2016-06-05 13:07:43 +02:00
Mike Pall cc05e79181 LJ_GC64: Ensure all IR slot fields are initialized. 2016-06-03 06:53:37 +02:00
Mike Pall 56fe899a06 Proper fix for LJ_GC64 changes to asm_href(). 2016-05-28 13:36:14 +02:00
Mike Pall 6360f6e106 Fix collateral damage from LJ_GC64 changes to asm_href(). 2016-05-28 00:35:07 +02:00
Mike Pall bfe2a353ab Merge branch 'master' into v2.1 2016-05-23 06:47:01 +02:00
Mike Pall 747feb6e4e x86: Don't spill an explicit REF_BASE in the IR.
Thanks to Vyacheslav Egorov.
2016-05-23 06:46:30 +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 786dbb2ebd Add IR_FLOAD with REF_NIL for field loads from GG_State.
Contributed by Peter Cawley.
2016-05-21 01:00:49 +02:00
Mike Pall cfa188f134 Move common 32/64 bit in-memory FP constants to jit_State.
Prerequisite for immovable IR.
Contributed by Peter Cawley.
2016-05-21 00:02:45 +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 6a9973203c Merge branch 'master' into v2.1 2016-05-06 12:09:23 +02:00
Mike Pall f05280e415 x86/x64: Fix instruction length decoder.
Thanks to Peter Cawley.
2016-05-06 12:08:00 +02:00