Commit Graph

2321 Commits

Author SHA1 Message Date
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
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
dd0f09f95f Another fix for lua_yield() from C hook.
Reported by Jason Carr.
2020-09-22 23:37:43 +02:00
Mike Pall
518e8cbeb4 Merge branch 'master' into v2.1 2020-09-22 12:01:09 +02:00
Mike Pall
881d02d311 Mark CONV as non-weak, to prevent elimination of its side-effect.
An unused guarded CONV int.num cannot be omitted in general.
2020-09-22 11:56:06 +02:00
Mike Pall
dd5032ed84 Fix lua_yield() from C hook.
Reported by Jason Carr.
2020-09-15 01:02:24 +02:00
Mike Pall
7e94e1c4f1 Merge branch 'master' into v2.1 2020-09-05 20:05:44 +02:00
Mike Pall
90e65514dd Limit path length passed to C library loader. 2020-09-05 20:02:54 +02:00
Mike Pall
ff1e72acea LJ_GC64: Always snapshot functions for non-base frames.
Reported by Arseny Vakhrushev.
Analysis and fix contributed by Peter Cawley.
2020-08-27 18:05:32 +02:00
Mike Pall
94d4abcca9 Merge branch 'master' into v2.1 2020-08-09 23:12:48 +02:00
Mike Pall
e296f56b82 Call error function on rethrow after trace exit. 2020-08-09 22:50:31 +02:00
Mike Pall
46a6d06dc5 Merge branch 'master' into v2.1 2020-08-09 18:19:19 +02:00
Mike Pall
12ab596997 Fix handling of errors during snapshot restore. 2020-08-09 18:08:38 +02:00
Mike Pall
10ddae75af Merge branch 'master' into v2.1 2020-08-05 15:26:59 +02:00
Mike Pall
2211f6f960 ARM: Ensure relative GG_State element alignment differently.
Thanks to jojo59516 and dwing4g.
2020-08-05 15:21:00 +02:00
Mike Pall
98682accbb Merge branch 'master' into v2.1 2020-08-05 14:17:41 +02:00
Mike Pall
c4b1e0feae Fix Makefile dependencies.
Thanks to Stefanos Chaliasos.
2020-08-05 14:14:58 +02:00
Mike Pall
570e758ca7 Handle old OSX/iOS without getentropy(). 2020-07-13 11:54:08 +02:00
Mike Pall
6097795367 Merge branch 'master' into v2.1 2020-07-12 14:33:01 +02:00
Mike Pall
53f82e6e2e Fix frame traversal for __gc handler frames.
Reported by Changochen.
2020-07-12 14:30:34 +02:00
Mike Pall
384d6d56f4 Fix Clang build. 2020-07-02 01:24:39 +02:00
Mike Pall
18eef08fb8 Android/ARM: Fix build with recent NDK. 2020-07-02 01:23:41 +02:00
Mike Pall
e1e3034cf6 Fix compiler warning. 2020-06-25 15:19:48 +02:00
Mike Pall
5ef9e45238 Fix OSX build.
Reported by jnozsc.
2020-06-23 19:17:13 +02:00
Mike Pall
67654be56d Follow-up fix for iOS build. 2020-06-23 11:28:46 +02:00
Mike Pall
2e2fb8f6b5 OSX/iOS: Handle iOS simulator and ARM64 Macs. 2020-06-23 03:24:40 +02:00
Mike Pall
471f8936cb Fix pointer check for non-GC64 mode.
Thanks to Stefan Hett.
2020-06-23 03:14:35 +02:00
Mike Pall
17fb96d904 Windows: Fix NtAllocateVirtualMemory prototype. 2020-06-23 03:13:54 +02:00
Mike Pall
2e68e1fc18 Add jit.security(). 2020-06-23 03:12:32 +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
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
34e53736c6 Cleanup some arch defines and fix builds. 2020-06-15 11:23:04 +02:00
Mike Pall
d333b1a6fe ARM: Implement FLOAD from GG_State. 2020-06-13 01:12:14 +02:00
Mike Pall
8ae5170cdc Improve assertions. 2020-06-15 02:52:00 +02:00
Mike Pall
8b55054473 Merge branch 'master' into v2.1 2020-06-07 14:35:18 +02:00
Mike Pall
f5b0fff5a9 Fix debug.debug() for non-string errors. 2020-06-07 14:34:09 +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
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
c5b8e9168b Merge branch 'master' into v2.1 2020-05-22 03:30:55 +02:00
Mike Pall
2f3f07882f Fix bytecode register allocation for comparisons. 2020-05-22 03:28:52 +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
03208c8162 Fix math.min()/math.max() inconsistencies. 2020-05-22 03:10:30 +02:00
Mike Pall
1e6e8aaa20 Fix narrowing of unary minus. 2020-05-22 02:45:03 +02:00
Mike Pall
0eddcbead2 Cleanup CPU detection and tuning for old CPUs. 2020-05-20 20:42:04 +02:00
Mike Pall
5bf0da3d7c ARM64: Fix {AHUV}LOAD specialized to nil/false/true.
Reported by caohongqing.
2020-05-18 22:24:53 +02:00
Mike Pall
ae20998ff5 ARM, ARM64, PPC: Fix TSETR fallback.
Thanks to Javier Guerra Giraldez.
2020-05-18 22:06:50 +02:00
Mike Pall
322db02081 Remove unused file. 2020-05-08 14:00:19 +02:00
Mike Pall
d5e12d5174 Merge branch 'master' into v2.1 2020-05-08 14:00:07 +02:00
Mike Pall
cc4bbec483 FFI: Always fall back to metamethods for cdata length/concat.
Thanks to Egor Skriptunoff.
2020-05-08 13:50:41 +02:00
Mike Pall
92c011b511 Windows: Make actual use of internal allocator optimization.
Thanks to Nicholas Ham.
2020-05-05 12:32:55 +02:00
Mike Pall
99d1268823 Merge branch 'master' into v2.1 2020-04-28 17:54:03 +02:00
Mike Pall
179cf2eb84 Fix overflow check in unpack().
Thanks to HybridDog.
2020-04-28 17:52:28 +02:00
Mike Pall
f133649ced Merge branch 'master' into v2.1 2020-04-28 16:53:32 +02:00
Mike Pall
db0b7ec194 Fix Windows make clean. 2020-04-28 16:52:28 +02:00
Mike Pall
9143e86498 FFI/ARM64: Fix pass-by-value struct calling conventions. 2020-03-20 14:10:18 +01:00
Mike Pall
fc1c4da3cc Merge branch 'master' into v2.1 2020-03-20 13:38:05 +01:00
Mike Pall
e613105ca9 Fix write barrier for lua_setupvalue() and debug.setupvalue(). 2020-03-20 13:35:49 +01:00
Mike Pall
0ad60ccbc3 Make string to number conversions fail on NUL char.
Contributed by Igor Munkin.
2020-02-13 17:39:51 +01: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
694d69aed9 Merge branch 'master' into v2.1 2020-01-22 02:39:26 +01:00
Mike Pall
62903bacf4 Fix C file generation in jit.bcsave.
Thanks to codicodi.
2020-01-22 02:37:21 +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
981ec8d2aa Remove support for de-facto dead archs. 2020-01-20 22:56:47 +01:00
Mike Pall
54484e257f Minor fixes. 2020-01-20 22:20:55 +01:00
Mike Pall
94d0b53004 MIPS: Add MIPS64 R6 port.
Contributed by Hua Zhang, YunQiang Su from Wave Computing,
and Radovan Birdic from RT-RK.
Sponsored by Wave Computing.
2020-01-20 22:15:45 +01:00
Mike Pall
dfa692b746 Fix string.char() recording with no arguments. 2020-01-14 11:08:42 +01:00
Mike Pall
e49863eda1 Followup fix for embedded bytecode loader. 2020-01-14 11:07:07 +01:00
Mike Pall
1357a25f81 Merge branch 'master' into v2.1 2020-01-13 14:50:30 +01:00
Mike Pall
8203399601 Fix embedded bytecode loader. 2020-01-13 14:28:43 +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
bd00094c3b x64: Enable LJ_GC64 mode by default. 2019-12-08 21:21:30 +01:00
Mike Pall
70f4b15ee4 FFI: Eliminate hardcoded string hashes. 2019-12-08 20:53:31 +01:00
Mike Pall
92fa45f9eb Fix interaction between profiler hooks and finalizers.
Thanks to Julien Desgats.
2019-12-08 19:56:56 +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
2a7c200dc2 Merge branch 'master' into v2.1 2019-12-08 19:52:56 +01:00
Mike Pall
45a7e5073c Fix tonumber("-0").
Reported by bluecheetah001.
2019-12-08 19:51:33 +01:00
Mike Pall
1d9a337de6 Merge branch 'master' into v2.1 2019-12-08 19:50:36 +01:00
Mike Pall
de48d00094 Fix hash table chaining (again).
Thanks to Peter Cawley.
2019-12-08 19:47:00 +01:00
Mike Pall
324aef08d9 Typo. 2019-12-08 19:45:07 +01:00
Mike Pall
41a25efc80 Fix declarations of _BitScanForward/_BitScanReverse.
Reported by Mumin Guler.
2019-12-08 19:42:49 +01:00
Mike Pall
46a1b268eb Add stricter check for print() vs. tostring() shortcut. 2019-12-08 19:40:24 +01:00
Mike Pall
16e5605eec Prevent integer overflow while parsing long strings. 2019-12-08 19:35:25 +01:00
Mike Pall
e0388e6c00 Fix stack check when recording BC_VARG.
Contributed by Yichun Zhang.
2019-12-08 19:32:27 +01:00
Mike Pall
1d1bac5a65 FFI: Add missing write barrier on C library index update.
Contributed by Yichun Zhang.
2019-12-08 19:32:16 +01:00
Mike Pall
478bcfe52a FFI: Workaround for platform dlerror() returning NULL.
Contributed by mcclure.
2019-12-08 19:25:45 +01:00
Mike Pall
05898a8824 Merge branch 'master' into v2.1 2019-12-08 19:24:47 +01:00
Mike Pall
44382e833a OSX: Use __thread attribute. 2019-12-08 19:22:37 +01:00
Mike Pall
8961a92dd1 OSX: Don't set a default MACOSX_DEPLOYMENT_TARGET. 2019-12-08 19:22:00 +01:00
Mike Pall
eba586854b Build MinGW import library, too.
Thanks to Tarnyko.
2019-12-08 19:19:12 +01:00
Mike Pall
c43b6a9137 Fix MinGW make clean.
Reported by Shmuel Zeigerman.
2019-12-08 19:16:34 +01:00
Mike Pall
6e228a9cb6 Merge branch 'master' into v2.1 2019-12-08 18:58:50 +01:00
Mike Pall
c6c6e3b416 Update MSVC build script and docs. 2019-12-08 18:52:41 +01:00
Mike Pall
3ece3a3e3a More recent MSVC is partially C99 compliant. 2019-12-08 18:43:12 +01:00
Mike Pall
e45b04f499 Merge branch 'master' into v2.1 2019-11-10 22:39:40 +01:00
Mike Pall
c4e15b457e Fix narrowing of conversions to U32.
Reported by spacewander.
2019-11-10 22:37:42 +01:00
Mike Pall
8755e0b74b Fix unsinking of 64 bit constants.
Contributed by Thibault Charbonnier.
2019-08-30 12:16:50 +02:00
Mike Pall
88d40b00c3 Merge branch 'master' into v2.1 2019-08-30 11:24:44 +02:00
Mike Pall
20ac817a74 Fix bytecode dump unpatching.
Reported by Christopher Oliver.
2019-08-30 11:07:45 +02:00
Mike Pall
2bde5c7c62 Merge branch 'master' into v2.1 2019-08-10 00:58:37 +02:00
Mike Pall
0cd643d7cf Fix debug.getinfo() argument check.
Thanks to Sergey Ostanevich.
2019-08-10 00:54:41 +02:00
Mike Pall
b1915c3b6f Merge branch 'master' into v2.1 2019-07-05 13:22:12 +02:00
Mike Pall
51e013934b MIPS: Fix delay slot hint.
This is documentation only. Thanks to snyh.
2019-07-05 13:19:41 +02:00
Mike Pall
827916c67e Merge branch 'master' into v2.1 2019-05-09 11:33:30 +02:00
Mike Pall
d4c0c6e17e Fix TNEW load forwarding with instable types. 2019-05-09 11:33:03 +02:00
Mike Pall
178512fab9 Merge branch 'master' into v2.1 2019-04-29 18:04:47 +02:00
Mike Pall
9bd5a722be ARM: Fix GCC 7 -Wimplicit-fallthrough warnings. 2019-04-29 18:02:50 +02:00
Mike Pall
5802ab56b6 ARM: Fix condition code check fusion.
Reported by Qingjun Wei.
2019-04-29 17:38:05 +02:00
Mike Pall
b33e3f2d44 ARM64: Avoid side-effects of constant rematerialization.
Thanks to Patrick Galizia.
2019-02-04 23:04:48 +01:00
Mike Pall
f0e865dd48 Improve luaL_addlstring().
Thanks to Domingo Alvarez Duarte.
2019-01-10 13:09:17 +01:00
Mike Pall
fc63c938b5 Fix os.date() for wider libc strftime() compatibility.
Thanks to Jesper Lundgren.
2019-01-10 12:47:28 +01:00
Mike Pall
c4f36ce565 Merge branch 'master' into v2.1 2019-01-10 12:37:40 +01:00
Mike Pall
61464b0a5b Fix MinGW build.
Thanks to Victor Bombi.
2019-01-10 12:37:09 +01:00
Mike Pall
749e99ce2a Merge branch 'master' into v2.1 2019-01-10 12:24:17 +01:00
Mike Pall
380e4409a7 Fix overflow of snapshot map offset.
Thanks to Yichun Zhang.
2019-01-10 12:19:30 +01:00
Mike Pall
e2cc89b190 Merge branch 'master' into v2.1 2019-01-10 12:02:31 +01:00
Mike Pall
3404183e23 Better detection of MinGW build. 2019-01-10 12:02:15 +01:00
Mike Pall
0a9ff94c4a Actually implement maxirconst trace limit.
Suggested by spacewander.
2018-10-14 15:21:37 +02:00
Mike Pall
9c1b637898 MIPS/MIPS64: Fix TSETR barrier (again). 2018-10-14 15:12:59 +02:00
Mike Pall
646148e747 Fix memory probing allocator to check for valid end address, too. 2018-09-13 17:58:50 +02:00
Mike Pall
9da0653509 ARM64: Fix exit stub patching.
Contributed by Javier Guerra Giraldez.
2018-06-24 14:08:59 +02:00
Mike Pall
c785131ca5 ARM64: Fix write barrier in BC_USETS.
Contributed by Javier Guerra Giraldez.
2018-06-24 13:18:03 +02:00
Mike Pall
c3c54ce1ae Windows: Add UWP support, part 1.
Contributed by Ben Pye.
2018-06-05 17:03:08 +02:00
Mike Pall
a5a89ab586 From Lua 5.3: assert() accepts any type of error object. 2018-06-05 12:23:56 +02:00
Mike Pall
55f7082324 x86: Disassemble FMA3 instructions.
Thanks to Alexander Nasonov.
2018-06-05 12:23:29 +02:00
Mike Pall
d36afcfea5 Merge branch 'master' into v2.1 2018-06-05 11:39:10 +02:00
Mike Pall
b025b01c5b PPC/NetBSD: Fix endianess check.
Thanks to he32 and daurnimator.
2018-06-05 11:36:18 +02:00
Mike Pall
b708297aba Merge branch 'master' into v2.1 2018-05-20 12:45:01 +02:00
Mike Pall
fb5e522fbc x86/x64: Check for jcc when using xor r,r in emit_loadi().
Thanks to Peter Cawley.
2018-05-20 12:40:33 +02:00
Mike Pall
362f034c1b Merge branch 'master' into v2.1 2018-05-20 12:28:10 +02:00
Mike Pall
f5d424afe8 FFI: Make FP to U64 conversions match JIT backend behavior. 2018-05-20 12:25:36 +02:00
Mike Pall
a90e7795ca Merge branch 'master' into v2.1 2018-04-22 13:30:02 +02:00
Mike Pall
02b521981a FFI: Add tonumber() specialization for failed conversions.
Contributed by Javier Guerra Giraldez.
2018-04-22 13:27:25 +02:00
Mike Pall
f3cf0d6e15 Give expected results for negative non-base-10 numbers in tonumber().
This was undefined in Lua 5.1, but it's defined in 5.2.
2018-04-22 13:14:28 +02:00
Mike Pall
66c1614828 Merge branch 'master' into v2.1 2018-02-27 23:18:32 +01:00
Mike Pall
046129dbdd Fix rechaining of pseudo-resurrected string keys.
This is a serious bug. But extremely hard to reproduce, so it went
undetected for 8 years. One needs two resurrections with different
main nodes, which are both in a hash chain which gets relinked on
key insertion where the colliding node is in a non-main position. Phew.

Thanks to lbeiming.
2018-02-27 23:02:23 +01:00
Mike Pall
fddef92409 Merge branch 'master' into v2.1 2018-01-29 13:28:53 +01:00
Mike Pall
03cd5aa749 Clear stack after print_jit_status() in CLI.
Suggested by Hydroque.
2018-01-29 13:25:51 +01:00
Mike Pall
0bf46e1edf Merge branch 'master' into v2.1 2018-01-29 13:19:30 +01:00
Mike Pall
d4ee803427 Fix GCC 7 -Wimplicit-fallthrough warnings. 2018-01-29 13:06:13 +01:00
Mike Pall
74c544d68c Merge branch 'master' into v2.1 2018-01-29 12:53:42 +01:00
Mike Pall
b03a56f28e FFI: Don't assert on #1LL (5.2 compatibility mode only).
Reported by Denis Golovan.
2018-01-29 12:47:08 +01:00
Mike Pall
8071aa4ad6 MIPS64: Fix soft-float +-0.0 vs. +-0.0 comparison.
Thanks to Stefan Pejic.
2018-01-29 12:12:29 +01:00
Mike Pall
9eaad8574f Fix ARMv8 (32 bit subset) detection.
Thanks to Markus Oberhumber.
2018-01-18 12:24:36 +01:00
Mike Pall
430d9f8f7e Fix string.format("%c", 0). 2018-01-14 14:11:59 +01:00
Mike Pall
58d0dde0a2 Fix IR_BUFPUT assembly.
Thanks to Peter Cawley.
2018-01-14 13:57:00 +01:00
Mike Pall
ea7071d3c3 MIPS64: Fix xpcall() error case.
Thanks to François Perrad and Stefan Pejic.
2017-11-18 12:25:35 +01:00
Mike Pall
d417ded179 ARM64: Fix xpcall() error case (really).
Thanks to François Perrad and Stefan Pejic.
2017-11-18 12:23:57 +01:00
Mike Pall
734a3fa32c Merge branch 'master' into v2.1 2017-11-16 13:00:09 +01:00
Mike Pall
7dbf0b05f1 Fix saved bytecode encapsulated in ELF objects.
Thanks to Dimitry Andric.
2017-11-16 12:58:12 +01:00
Mike Pall
33082a6f47 ARM64: Fix xpcall() error case.
Thanks to Stefan Pejic.
2017-11-16 12:53:34 +01:00
Mike Pall
99cdfbf6a1 MIPS64: Fix register allocation in assembly of HREF.
Contributed by James Cowgill.
2017-11-08 12:54:03 +01:00
Mike Pall
06cd9fce7d ARM64: Fix assembly of HREFK.
Reported by Jason Teplitz.
2017-11-08 12:53:48 +01:00
Mike Pall
4b17a6a2ff Merge branch 'master' into v2.1 2017-11-08 12:53:24 +01:00
Mike Pall
9f0caad0e4 Fix FOLD rule for strength reduction of widening.
Reported by Matthew Burk.
2017-11-08 12:53:05 +01:00
Mike Pall
850f8c59d3 LJ_GC64: Make ASMREF_L references 64 bit.
Reported by Yichun Zhang.
2017-10-02 23:10:56 +02:00
Mike Pall
b4ed3219a1 LJ_GC64: Fix ir_khash for non-string GCobj.
Contributed by Peter Cawley.
2017-10-02 09:22:46 +02:00
Mike Pall
bf12f1dafb MIPS64: Hide internal function. 2017-09-18 09:50:22 +02: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
71b7bc8834 PPC: 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-09-03 23:20:53 +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
fd37da0d58 PPC: Add soft-float support to interpreter.
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
Sponsored by Cisco Systems, Inc.
2017-07-26 09:52:19 +02:00
Mike Pall
7e662e4f87 x64/LJ_GC64: Fix emit_rma(). 2017-07-26 09:52:53 +02:00
Mike Pall
cf2dfaf3b4 Merge branch 'master' into v2.1 2017-06-12 09:25:48 +02:00
Mike Pall
82151a4514 Modify fix for warning from 'ar'. 2017-06-12 09:24:00 +02:00
Mike Pall
6a71e71c14 Remove unused define.
Suggested by 罗泽轩.
2017-06-11 10:02:08 +02:00
Mike Pall
b0ecc6dd65 FreeBSD/x64: Avoid changing resource limits, if not needed. 2017-06-08 00:15:15 +02: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
0e4a551809 Merge branch 'master' into v2.1 2017-06-07 19:39:41 +02:00
Mike Pall
c7c3c4da43 MIPS: Fix handling of spare long-range jump slots.
Contributed by Djordje Kovacevic and Stefan Pejic.
2017-06-07 19:36:46 +02:00
Mike Pall
79fe5782f8 Merge branch 'master' into v2.1 2017-06-07 19:17:47 +02:00
Mike Pall
7381b62035 MIPS: Use precise search for exit jump patching.
Contributed by Djordje Kovacevic and Stefan Pejic.
2017-06-07 19:16:22 +02:00
Mike Pall
6259c0b909 Merge branch 'master' into v2.1 2017-05-17 17:38:53 +02:00
Mike Pall
630ff3196a Add missing LJ_MAX_JSLOTS check.
Thanks to Yichun Zhang.
2017-05-17 17:37:35 +02:00
Mike Pall
31afda3181 Merge branch 'master' into v2.1 2017-05-09 21:01:23 +02:00
Mike Pall
1c89933f12 Fix LJ_MAX_JSLOTS assertion in rec_check_slots().
Thanks to Yichun Zhang.
2017-05-09 20:59:37 +02:00
Mike Pall
8271c643c2 RELEASE LuaJIT-2.1.0-beta3 2017-05-01 21:03:01 +02:00
Mike Pall
0bf80b07b0 RELEASE LuaJIT-2.0.5 2017-05-01 20:10:28 +02:00
Mike Pall
cf8a5bea89 Add FOLD rules for mixed BAND/BOR with constants. 2017-04-30 23:59:16 +02:00
Mike Pall
fbfbd7b9e1 FFI: Compile bitfield loads/stores. 2017-04-30 23:58:33 +02:00
Mike Pall
dc5eb65ccf Merge branch 'master' into v2.1 2017-04-17 12:29:52 +02:00
Mike Pall
02b4b1e556 Add workaround for MSVC 2015 stdio changes.
Contributed by Peter Cawley.
2017-04-17 12:29:35 +02:00
Mike Pall
ed54eace64 MIPS64: Fix stores of MULTRES.
Contributed by Stefan Pejic.
2017-04-17 12:04:08 +02:00
Mike Pall
58aaac3c64 MIPS64: Fix write barrier in BC_USETV.
Contributed by Stefan Pejic.
2017-04-17 12:02:33 +02:00
Mike Pall
18efb331a4 ARM64: Fix stores to vmstate.
Contributed by Stefan Pejic.
2017-04-17 12:00:04 +02:00
Mike Pall
de26f76e2e From Lua 5.2: Add lua_tonumberx() and lua_tointegerx().
Contributed by François Perrad.
2017-04-07 12:48:37 +02:00
Mike Pall
2b8de8cfc6 From Lua 5.2: Add luaL_setmetatable().
Contributed by François Perrad.
2017-04-07 12:38:05 +02:00
Mike Pall
cde968f91f From Lua 5.2: Add luaL_testudata().
Contributed by François Perrad.
2017-04-07 12:31:06 +02:00
Mike Pall
f2e2a3f757 From Lua 5.3: Add lua_isyieldable().
Contributed by François Perrad.
2017-04-07 12:27:09 +02:00
Mike Pall
ef23b70eb6 From Lua 5.2: Add lua_copy().
Contributed by François Perrad.
2017-04-07 12:24:26 +02:00
Mike Pall
c67a098292 From Lua 5.2: Add lua_version().
Contributed by François Perrad.
2017-04-07 12:21:41 +02:00
Mike Pall
9c685f7003 Refactor with LUA_OK.
Contributed by François Perrad.
2017-04-07 12:12:03 +02:00
Mike Pall
22dfa63283 Allow building on Haiku OS.
Note: this is not an officially supported target.
Thanks to kallisti5.
2017-04-07 12:05:18 +02:00
Mike Pall
7c7843e876 Merge branch 'master' into v2.1 2017-04-07 12:01:07 +02:00
Mike Pall
247b3624ff OSX: Fix build with recent XCode.
Contributed by Joseph Zupko.
2017-04-07 11:59:08 +02:00
Mike Pall
de97b9d52b Add some more changes and extensions from Lua 5.2.
Contributed by François Perrad.
2017-03-30 12:45:14 +02:00
Mike Pall
dc320ca70f Remove old Lua 5.0 compatibility defines.
Suggested by François Perrad.
2017-03-30 11:40:49 +02:00
Mike Pall
c29afcb1a3 Merge branch 'master' into v2.1 2017-03-30 11:38:16 +02:00
Mike Pall
e205ad0c55 FFI: Fix FOLD rules for int64_t comparisons.
Thanks to Peter Cawley.
2017-03-30 11:35:29 +02:00
Mike Pall
3143b21894 ARM64: Add big-endian support.
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
Sponsored by Cisco Systems, Inc.
2017-03-30 11:30:01 +02:00
Mike Pall
78f5f1cef1 x64/LJ_GC64: Fix emit_loadk64().
Contributed by Peter Cawley.
2017-03-21 10:10:20 +01:00
Mike Pall
024ade796f LJ_GC64: Fix BC_CALLM snapshot handling. 2017-03-21 00:59:38 +01: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
779a1eb8e6 ARM64: Fix Nintendo Switch build.
Thanks to Eddie Edwards.
2017-03-20 23:53:16 +01:00
Mike Pall
0cf78854a9 ARM64: Fix XLOAD/XSTORE with FP operand.
Thanks to Stefan Pejic.
2017-03-20 23:49:57 +01:00
Mike Pall
de5568e0ea Remove Lua 5.0 compatibility defines.
Suggested by François Perrad.
2017-03-17 12:07:21 +01:00
Mike Pall
d3e36e7920 Merge branch 'master' into v2.1 2017-03-08 23:04:46 +01:00
Mike Pall
f50bf7585a Remove unnecessary mcode alloc pointer check.
Also fixes Illumos address space issue reported by Theo Schlossnagle.
2017-03-08 23:02:24 +01:00
Mike Pall
d62459fc39 Limit mcode alloc probing, depending on the available pool size.
Contributed by Alexey Kopytov.
2017-03-08 23:01:47 +01:00
Mike Pall
4e308361bf Fix overly restrictive range calculation in mcode allocation.
Contributed by Alexey Kopytov.
2017-03-08 22:59:44 +01:00
Mike Pall
ff648369aa Fix out-of-scope goto handling in parser.
Many thanks to Demetrios Obenour for tracking down this long-standing bug.
2017-03-08 22:16:43 +01:00
Mike Pall
3ab9f5a18d Remove internal __mode = "K" and replace with safe check. 2017-03-08 22:03:17 +01:00
Mike Pall
eef77a6d77 Fix annoying warning, due to deterministic binutils configuration. 2017-03-08 22:02:07 +01:00
Mike Pall
a25c0b99b8 MIPS64, part 2: Add MIPS64 hard-float JIT compiler backend.
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
Sponsored by Cisco Systems, Inc.
2017-02-20 03:43:10 +01:00
Mike Pall
4416e885d2 Fix FOLD rules for math.abs() and FP negation.
Broken since SIMD constants were switched to IR_FLOAD REF_NIL.
2017-02-20 02:51:31 +01:00
Mike Pall
019fb9d1e9 Fix soft-float math.abs() and negation.
Broken since SIMD constants were switched to IR_FLOAD REF_NIL.
2017-02-20 02:51:05 +01:00
Mike Pall
130d1dc5f2 x64/LJ_GC64: Fix warning for DUALNUM build. 2017-02-20 02:44:29 +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
0a46ef1ac6 ARM64: Cleanup and de-cargo-cult TValue store generation. 2017-02-20 02:41:35 +01:00
Mike Pall
d0759e41a1 Merge branch 'master' into v2.1 2017-02-20 02:39:57 +01:00
Mike Pall
892d370edd MIPS: Don't use RID_GP as a scratch register. 2017-02-20 02:35:24 +01:00
Mike Pall
ee33a1f9b3 MIPS: Fix emitted code for U32 to float conversion. 2017-02-20 02:35:00 +01:00
Mike Pall
1abd779907 MIPS: Backport workaround for compact unwind tables. 2017-02-20 02:29:42 +01:00
Mike Pall
6bf3e4d6e6 Make checkptrGC() actually work.
Neither LJ_64 nor LJ_GC64 are defined when lj_def.h is included.
So we'll need to use lazy C macro evaluation.
2017-02-20 00:13:09 +01:00
Mike Pall
5aa0201374 ARM64: Fix AREF/HREF/UREF fusion.
Thanks to Zhongwei Yao.
2017-02-16 20:41:46 +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
c94b921f92 LJ_GC64: Add build options and install instructions. 2017-01-17 12:21:12 +01:00
Mike Pall
c198167690 Add some more extensions from Lua 5.2/5.3.
Contributed by François Perrad.
2017-01-17 11:37:28 +01:00
Mike Pall
12c0df4189 Merge branch 'master' into v2.1 2017-01-17 10:47:42 +01:00
Mike Pall
a2013dd39a Fix cross-endian jit.bcsave for MIPS target. 2017-01-17 10:46:45 +01:00
Mike Pall
8e5d7bec0d ARM64: Remove unused variables in disassembler.
Thanks to François Perrad.
2016-12-30 17:54:10 +01:00
Mike Pall
ebec2530be ARM64: Fuse BOR/BXOR and BNOT into ORN/EON.
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
2016-12-15 22:47:40 +01:00
Mike Pall
fb61f7cbe3 Add "proto" field to jit.util.funcinfo().
Backport.
2016-12-15 22:45:28 +01:00
Mike Pall
1973807480 Add "proto" field to jit.util.funcinfo(). 2016-12-13 21:30:13 +01:00
Mike Pall
4ccd876a65 ARM64: Use the correct FUSE check.
Oops, my bad.
2016-12-09 18:24:48 +01:00
Mike Pall
44b99ff14d ARM64: Fuse BOR(BSHL, BSHR) into EXTR/ROR.
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
2016-12-09 18:16:12 +01:00
Mike Pall
ec2756ba78 Add missing FOLD rule for 64 bit shift+BAND simplification. 2016-12-08 22:38:35 +01:00
Mike Pall
986854cbb2 ARM64: Fix code generation for S19 offsets.
Contributed by Zhongwei Yao.
2016-12-08 05:53:36 +01:00
Mike Pall
3975b6c9f4 ARM64: Fuse various BAND/BSHL/BSHR/BSAR combinations.
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
2016-12-08 04:09:29 +01:00
Mike Pall
2772cbc36e ARM64: Fuse FP multiply-add/sub.
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
2016-12-08 01:38:09 +01:00
Mike Pall
bfeb1167cd ARM64: Fuse XLOAD/XSTORE with STRREF/ADD/BSHL/CONV. 2016-12-07 18:40:31 +01:00
Mike Pall
2ac2cd4699 ARM64: Reorganize operand extension definitions. 2016-12-07 18:38:32 +01:00
Mike Pall
48b00297b3 ARM64: Add missing ldrb/strb instructions to disassembler.
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
2016-12-07 18:34:10 +01:00