Commit Graph

2292 Commits

Author SHA1 Message Date
Mike Pall
7b994e0ee0 Fix FOLD rule for x-0.
Reported by XmiliaH.
2021-12-17 14:15:40 +01:00
Mike Pall
b4b2dce9fc ARM64: Fix pcall() error case.
Reported by Alex Orlenko.
2021-10-27 21:56:07 +02:00
Mike Pall
bfcb74ed36 OSX/ARM64: Fix external unwinding.
Contributed by Edmund Kapusniak. #698 #757
2021-10-17 13:14:41 +02: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
05f1984e1a Fix interaction of profiler and ITERN recording.
Reported and analyzed by vfprintf. #754
2021-10-08 16:50:35 +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
e4b4d94514 ARM64: Fix IR_HREF code generation. 2021-10-02 17:49:50 +02:00
Mike Pall
4a70bd71ac MIPS64: Fix soft-float IR_TOSTR. 2021-10-02 17:48:19 +02:00
Mike Pall
10c9d9a214 Merge branch 'master' into v2.1 2021-10-02 17:23:51 +02:00
Mike Pall
d3294fa63b MIPS: Fix register allocation in assembly of HREF.
Reported by Jakub Piotr Cłapa.
2021-10-02 16:52:57 +02:00
Mike Pall
a2047d3f18 Fix compiler warning.
Suggested by Fezile Manana.
2021-09-29 11:59:27 +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
Mike Pall
16d38a4b21 Avoid conflict between 64 bit lightuserdata and ITERN key.
Reported by XmiliaH.
2021-06-25 12:45:51 +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
ac02a120ef String buffers, part 2e: add serialization string dictionary.
Sponsored by fmad.io.
2021-06-07 12:03:22 +02:00
Mike Pall
52449e2a1e Fix MinGW static build.
Reported by Sundaram Ramaswamy.
2021-06-03 20:28:48 +02:00
Mike Pall
7d267973e2 Fix dependencies. 2021-06-03 10:07:00 +02:00
Mike Pall
65ff33a4af Fix IR_BUFHDR assembly. 2021-06-03 10:05:20 +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
69138082a3 ARM64: More improvements to the generation of immediates. 2021-06-03 03:21:56 +02:00
Mike Pall
a119497bec String buffers, part 2d: basic string buffer methods.
Sponsored by fmad.io.
2021-06-01 05:16:32 +02:00
Mike Pall
edd5cbadc5 String buffers, part 2c: abstract out string.format.
Sponsored by fmad.io.
2021-06-01 05:14:18 +02:00
Mike Pall
50d6883e60 Abstract out on-demand loading of FFI library. 2021-06-01 01:01:15 +02:00
Mike Pall
61990cef05 String buffers, part 2b: Add extended string buffers. Use in serializer.
Sponsored by fmad.io.
2021-06-01 00:55:51 +02:00
Mike Pall
394fb6267a String buffers, part 2a: internal SBuf reorg. Use full pointers.
Sponsored by fmad.io.
2021-06-01 00:45:06 +02:00
Mike Pall
b5dafe5891 Merge branch 'master' into v2.1 2021-06-01 00:28:00 +02:00
Mike Pall
ae533e3a6c FFI: Fix dangling reference to CType. 2021-06-01 00:26:45 +02:00
Mike Pall
839fb5bd72 Merge branch 'master' into v2.1 2021-05-29 15:38:37 +02:00
Mike Pall
c2cfa04231 PPC/PS3: Fix BC_ADD*/BC_SUB*.
Thanks to MaryWan1982.
2021-05-29 15:33:08 +02:00
Mike Pall
e0cd3a8671 Merge branch 'master' into v2.1 2021-05-29 15:32:04 +02:00
Mike Pall
0e53a314d7 Fix use-def analysis for vararg functions.
Reported by Shmuel Zeigerman.
2021-05-29 15:31:13 +02:00
Mike Pall
fca488c715 Merge branch 'master' into v2.1 2021-05-24 22:28:58 +02:00
Mike Pall
2801500a26 Fix use-def analysis for BC_VARG.
Reported by Ryan Lucia.
2021-05-24 22:25:26 +02:00
Mike Pall
aa7ac66068 Merge branch 'master' into v2.1 2021-05-17 19:42:59 +02:00
Mike Pall
44684fa71d Fix compiler warnings. 2021-05-17 19:42:06 +02:00
Mike Pall
521b367567 FFI/ARM64/OSX: Fix vararg call handling.
Thanks to Igor Munkin.
2021-05-02 22:11:05 +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
de77205490 Fix IR_RENAME snapshot number. Follow-up fix for a32aeadc.
Reported by Victor Bombi, analyzed by XmiliaH. Thanks!
2021-04-20 17:59:47 +02:00
Mike Pall
5374a0a3cf Fix compiler warning. 2021-04-19 13:54:41 +02:00
Mike Pall
66563bdab0 Fix build with busybox grep.
Reported by ymph.
2021-03-31 17:06:27 +02:00
Mike Pall
3217240b47 NetBSD: Use PROT_MPROTECT() and disable getentropy().
Note: this is not an officially supported target.
Contributed by David Carlier.
2021-03-29 10:41:52 +02:00
Mike Pall
9442226825 Allow disabling the serializer. 2021-03-26 19:43:02 +01:00
Mike Pall
b9d523965b BSD: Fix build with BSD grep.
Thanks to carlocab.
2021-03-26 18:31:42 +01:00
Mike Pall
668b1896b3 Fix .bat file builds. 2021-03-26 18:14:59 +01:00
Mike Pall
d4a554d6ee OSX: Fix build by hardcoding external frame unwinding.
Apparently they can't even get 'grep' right, let alone a keyboard.
2021-03-25 19:16:56 +01:00
Mike Pall
4c6b669c41 String buffers, part 1: object serialization.
Sponsored by fmad.io.
2021-03-25 02:21:31 +01:00
Mike Pall
836fb5bbd3 Reorganize lightuserdata interning code. 2021-03-25 02:15:26 +01:00
Mike Pall
ad65934fa0 FFI: Handle zero-fill of struct-of-NYI. 2021-03-23 02:35:07 +01:00
Mike Pall
ebc4919aff ARM64: Improve generation of immediates. 2021-03-23 02:08:44 +01:00
Mike Pall
a4c9fc3d6c Merge branch 'master' into v2.1 2021-03-23 00:48:27 +01:00
Mike Pall
33e3f4badf Detect inconsistent renames even in the presence of sunk values.
Reported by Igor Munkin.
2021-03-23 00:43:07 +01: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