Commit Graph

2599 Commits (master)

Author SHA1 Message Date
Mike Pall cb0f124f8f Merge branch 'master' into v2.1 2021-09-24 12:11:55 +02:00
Mike Pall 1811c4b0f1 Windows/x64: Document MSVC flags for C++ exception interoperability.
Suggested by Julien Cugnière.
2021-09-24 12:10:44 +02:00
Mike Pall 94a40bb238 FFI: Ensure returned string is alive in ffi.typeinfo().
Reported by zhuizhuhaomeng.
2021-09-23 19:07:30 +02:00
Mike Pall 78350a2565 OSX/ARM64: Disable unwind info.
See #698.
2021-09-21 17:49:06 +02:00
Mike Pall e2b9797ba1 Merge branch 'master' into v2.1 2021-09-21 16:44:06 +02:00
Mike Pall 204cee2c91 Fix stack allocation after on-trace stack check. 2021-09-21 16:42:35 +02:00
Mike Pall 191d87f531 Fix ITERN blacklisting.
Reported by ExtReMLapin. #744
2021-09-21 14:30:28 +02:00
Mike Pall 1aa4af0b83 Ensure ITERN forward progress on interpreter bailout.
Reported by Yichun Zhang and ExtReMLapin. #744
2021-09-21 13:15:06 +02:00
Mike Pall 421c4c7987 ARM64: Reorder interpreter stack frame and fix unwinding.
Reported by Yichun Zhang. Fixes #722.
May help towards fixing #698, too.
2021-09-20 22:37:07 +02:00
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 003f68565d FFI: Don't load PC from non-function object in FFI continuation.
Reported by Yichun Zhang. #743
2021-09-20 14:39:26 +02:00
Mike Pall 98b7d9a3b2 Merge branch 'master' into v2.1 2021-09-20 14:39:50 +02:00
Mike Pall 68ffbd318b FFI: Don't load PC from non-function object in FFI continuation.
Reported by Yichun Zhang. #743
2021-09-20 14:36:52 +02:00
Mike Pall a622e2eb55 FFI: Fix missing cts->L initialization in argv2ctype(). 2021-09-20 14:34:47 +02:00
Mike Pall 27ee3bcd79 OSX/ARM64: Disable external unwinding for now.
This reduces functionality, e.g. no handling of on-trace errors.
Someone with very deep knowledge about macOS and MACH-O/DWARF stack
unwinding internals is needed to fix this. See issue #698.
2021-09-19 17:58:24 +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 986bb406ad Use IR_HIOP for generalized two-register returns.
Sponsored by OpenResty Inc.
2021-09-19 17:47:11 +02:00
Mike Pall c6f5ef649b Refactor table traversal.
Sponsored by OpenResty Inc.
2021-09-19 17:38:49 +02:00
Mike Pall 4e0ea654a8 ARM: Fix symbol display in trace disassembly. 2021-09-19 17:27:18 +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 f2d333c1ac MIPS: Fix trace linking. 2021-09-19 16:09:48 +02:00
Mike Pall 8ff09d9f5a String buffers, part 4b: Improve de-serialization checks.
Sponsored by fmad.io.
2021-08-12 21:28:17 +02:00
Mike Pall 15ed84bd49 String buffers, part 4a: Add metatable serialization dictionary.
Sponsored by fmad.io.
2021-08-12 21:27:58 +02:00
Mike Pall 983d66b8c5 Merge branch 'master' into v2.1 2021-07-27 14:50:40 +02:00
Mike Pall 3a654999c6 Consider slots used by upvalues in use-def analysis.
Reported by XmiliaH.
2021-07-27 14:47:41 +02:00
Mike Pall 89a6740ffd Merge branch 'master' into v2.1 2021-07-23 21:36:17 +02:00
Mike Pall 0e66fc9637 Prevent loop in snap_usedef().
Reported by XmiliaH.
2021-07-23 21:33:59 +02:00
Mike Pall dbb6c39f7c Merge branch 'master' into v2.1 2021-07-22 16:22:53 +02:00
Mike Pall d87da3d5fe Fix io.close() error message.
Reported by François Perrad.
2021-07-22 16:21:45 +02:00
Mike Pall bff9298090 Merge branch 'master' into v2.1 2021-07-22 02:35:00 +02:00
Mike Pall 8430f774e6 Fix io.close().
Reported by farmboy0.
2021-07-22 02:33:04 +02:00
Mike Pall c2dd3b4d34 Merge branch 'master' into v2.1 2021-07-21 12:32:19 +02:00
Mike Pall 81a797373f Fix minilua vararg stack handling.
Note: this is not exploitable! minilua is only used during the LuaJIT
build process. It only runs controlled and static Lua code (DynASM),
which is entirely contained within this repo. LuaJIT itself has
completely different stack handling code and is not affected either.

This change is solely for the benefit of others, who might possibly use
minilua for purposes other than running DynASM.
2021-07-21 12:14:09 +02:00
Mike Pall bc98a3ade5 PS4: Fix compile.
Thanks to Eric Lavesson.
2021-07-19 18:15:18 +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 2182630903 Minor improvements of optimizations. 2021-07-19 16:50:05 +02:00
Mike Pall 09547f9f6e Fix error message in lj_lib_checkintrange(). 2021-07-19 16:47:46 +02:00
Mike Pall a689e9dc43 String buffers, part 2f: Prevent self-put of buffer.
Sponsored by fmad.io.
2021-07-19 16:45:26 +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 1d5ef35fed Fix IRXLOAD_* mode bits description. 2021-07-19 16:36:00 +02:00
Mike Pall 3a0cf69730 String buffers, part 3b: Change IR_BUFHDR op2 mode bits to mode.
Sponsored by fmad.io.
2021-07-19 16:33:13 +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 76fbf0397c Merge branch 'master' into v2.1 2021-07-19 16:07:23 +02:00
Mike Pall 44bd7437a2 Fix jit.dump() output for IR_CONV. 2021-07-19 16:05:05 +02:00
Mike Pall e957737650 Disable unreliable assertion for external frame unwinding.
Broken on Fedora/ARM64. Reported by Yichun Zhang.
2021-06-25 12:53:23 +02:00
Mike Pall 95140c5001 Flush and close output file after profiling run.
Thanks to Sergey Ostanevich.
2021-06-25 12:48:42 +02:00