Mike Pall
c2237247cc
Don't export internal symbol.
2022-01-25 22:17:56 +01:00
Mike Pall
9512d5c1ac
Fix pow() optimization inconsistencies.
2022-01-24 14:37:50 +01:00
Mike Pall
c18acfe756
Merge branch 'master' into v2.1
2022-01-23 19:19:26 +01:00
Mike Pall
c50232eb32
Always exit after machine code page protection change fails.
...
Reported by Sergey Kaplun.
2022-01-23 19:16:53 +01:00
Mike Pall
5935564c3b
Fix FOLD rule for BUFHDR append with intervening buffer use.
...
Reported by XmiliaH.
2022-01-23 19:13:53 +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
4077f0c3d6
Prevent unroll across BC_ITERN.
...
Reported by Marukyu.
2022-01-16 21:01:52 +01:00
Mike Pall
1dddc55ca3
Prevent replay of buffer operation for PHI operands.
...
Contributed by XmiliaH.
2022-01-16 21:00:24 +01:00
Mike Pall
2c218bf756
Merge branch 'master' into v2.1
2022-01-16 20:59:10 +01:00
Mike Pall
b5b20191f3
Save trace recorder state around VM event call.
...
Reported by Sergey Kaplun.
2022-01-16 20:58:42 +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
c21c6cb417
FFI: Ensure library is loaded before de-serializing FFI types.
...
Reported by ImagicTheCat.
2022-01-15 18:32:34 +01:00
Mike Pall
d5a237eae0
Fix HREFK forwarding vs. table.clear().
...
Reported by XmiliaH.
2022-01-15 17:52:21 +01:00
Mike Pall
bc1bdbf620
Fix FOLD rule for BUFHDR append.
...
Reported by XmiliaH.
2022-01-13 18:33:04 +01:00
Mike Pall
be251d9149
OSX: Disable unreliable assertion for external frame unwinding.
2022-01-13 17:57:03 +01:00
Mike Pall
4ccaf348fb
Merge branch 'master' into v2.1
2022-01-13 17:51:09 +01:00
Mike Pall
e560487536
Limit exponent range in number parsing.
...
Reported by XmiliaH.
2022-01-13 17:48:43 +01:00
Mike Pall
103c29e634
Fix tonumber("-0") in dual-number mode.
...
Reported by Sergey Kaplun.
2022-01-13 15:38:56 +01:00
Mike Pall
a01602a826
Limit work done in SINK pass.
...
Reported by XmiliaH.
2022-01-13 15:13:59 +01:00
Mike Pall
c8bcf1e5fb
Fix ABC FOLD rule with constants.
...
Reported by XmiliaH.
2022-01-13 14:40:11 +01:00
Mike Pall
a91d0d9d3b
Merge branch 'master' into v2.1
2021-12-19 18:37:06 +01:00
Mike Pall
e73916d811
Prevent CSE of a REF_BASE operand across IR_RETF.
...
Reported by XmiliaH.
2021-12-19 18:35:27 +01:00
Mike Pall
1d20f33d29
Windows: Fix binary output of jit.bcsave to stdout.
...
Thanks to erw7.
2021-12-17 14:30:44 +01:00
Mike Pall
8b7ea5c1af
Merge branch 'master' into v2.1
2021-12-17 14:17:16 +01:00
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
Mike Pall
de89c602c2
PPC: Fix GG_State loads.
2021-03-23 00:28:03 +01:00
Mike Pall
dbb7863016
MIPS: Fix handling of long-range spare jumps.
2021-03-23 00:26:08 +01:00
Mike Pall
e131936133
Cleanup and enable external unwinding for more platforms.
2021-03-23 00:22:34 +01:00
Mike Pall
787736990a
iOS: Don't use getentropy() since it's disallowed in the App Store.
...
Reported by MoNTE48.
2021-03-10 20:19:04 +01:00
Mike Pall
67dbec82f4
Linux/ARM64: Make mremap() non-moving due to VA space woes.
...
This reduces overall performance on ARM64, but we have no choice.
Linux kernel default userspace VA is 48 bit, but we'd need 47 bit.
mremap() ignores address hints due to a kernel API issue. The mapping
may move to an undesired address which will cause an assert or crash.
Reported by Raymond W. Ko.
2021-03-10 19:58:31 +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
3134359734
Fix trace exit register dump for some archs.
2021-01-02 21:37:51 +01:00
Mike Pall
65378759f3
Merge branch 'master' into v2.1
2020-12-28 12:40:20 +01:00
Mike Pall
56c04accf9
FFI: Fix recording of union initialization.
...
Thanks to Alex Shpilkin.
2020-12-28 12:37:36 +01:00
Mike Pall
351bb43a07
Merge branch 'master' into v2.1
2020-12-04 11:17:45 +01:00
Mike Pall
d67ff15a5c
x64: Fix __call metamethod return dispatch.
...
Reported by Igor Munkin.
2020-12-04 11:16:55 +01:00
Mike Pall
377a8488b6
Fix binary number literal parsing.
...
Reported by Egor Skriptunoff.
2020-11-30 15:48:34 +01:00
Mike Pall
a50262c490
Fix warning.
2020-11-30 15:47:14 +01:00
Mike Pall
652f71bb1d
Merge branch 'master' into v2.1
2020-11-30 15:46:56 +01:00
Mike Pall
7aa3e313a3
Fix warning.
2020-11-30 15:46:07 +01:00
Mike Pall
1d8b747c16
Merge branch 'master' into v2.1
2020-10-12 16:18:02 +02:00
Mike Pall
050466552b
Minor changes and https-ify links.
2020-10-12 16:11:32 +02: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
4bb2e4a547
Merge branch 'master' into v2.1
2020-10-12 15:43:18 +02:00
Mike Pall
de6b1a11dd
Ensure full init of IR_NOP instructions.
2020-10-12 15:40:28 +02:00
Mike Pall
e9af1abec5
Add support for full-range 64 bit lightuserdata.
2020-09-30 01:34:49 +02:00
Mike Pall
e67e2040be
ARM64: Followup fix for exit branch patching.
2020-09-28 18:17:58 +02:00
Mike Pall
2e55a42c07
Merge branch 'master' into v2.1
2020-09-27 17:20:37 +02:00