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
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
Mike Pall
22511fbe2b
ARM64: Fix pc-relative loads of consts. Cleanup branch codegen.
...
Thanks to Zhongwei Yao.
2016-12-07 09:42:43 +01:00
Mike Pall
3ad2bbf586
ARM64: Make use of tbz/tbnz and cbz/cbnz.
...
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
2016-11-29 19:30:40 +01:00
Mike Pall
d7243e1de0
Eliminate use of lightuserdata derived from static data pointers.
...
Required for >47 bit VA, e.g. ARM64.
2016-11-24 19:14:17 +01:00
Mike Pall
81259898ea
ARM64: Emit more efficient trace exits.
...
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
2016-11-24 18:56:19 +01:00
Mike Pall
a56654460d
Generalize deferred constant handling in backend to 64 bit.
2016-11-21 15:43:17 +01:00
Mike Pall
2b77da35bc
ARM64: Reject special case in emit_isk13().
2016-11-20 23:32:17 +01:00
Mike Pall
7a0c3a1127
ARM64: Allow full VA range for mcode allocation.
2016-11-20 23:17:45 +01:00
Mike Pall
04b60707d7
ARM64: Add JIT compiler backend.
...
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
Sponsored by Cisco Systems, Inc.
2016-11-20 22:18:14 +01:00
Mike Pall
13642b75ac
Whitespace.
2016-11-20 22:14:09 +01:00
Mike Pall
202713a638
Fix amalgamated build.
2016-11-19 20:53:31 +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
5400c1e424
MIPS: Fix TSETR barrier.
...
Thanks to tongwell.
2016-11-16 11:18:10 +01:00
Mike Pall
7a58a8fb3d
Report parent of stitched trace.
...
Thanks to Nick Zavaritsky.
2016-11-13 20:03:01 +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
6a25014c1c
LJ_FR2: Fix slot 1 handling.
...
Contributed by Peter Cawley.
2016-10-16 21:04:38 +02:00
Mike Pall
3f43f09413
Merge branch 'master' into v2.1
2016-10-13 18:38:22 +02:00
Mike Pall
a68c411857
Fix GC step size calculation.
...
Thanks to Igor Ehrlich.
2016-10-13 18:37:58 +02:00
Mike Pall
54b78e7c66
LJ_GC64: Various fixes.
...
Contributed by Peter Cawley.
2016-10-12 17:36:45 +02:00
Mike Pall
63465fe71d
LJ_GC64: Fix jit.on/off.
2016-10-08 11:30:01 +02:00
Mike Pall
cf80edbbba
Fix -jp=a mode for builtins.
2016-10-02 14:33:31 +02:00
Mike Pall
f27b2509e0
Merge branch 'master' into v2.1
2016-10-02 14:25:04 +02:00
Mike Pall
fcc8244899
ARM: Fix BLX encoding for Thumb interworking calls.
...
Thanks to Charles Baylis.
2016-10-02 14:24:04 +02:00
Mike Pall
4ca3909547
Merge branch 'master' into v2.1
2016-09-19 21:23:35 +02:00
Mike Pall
8ada57eb49
Looks like COLORTERM has gone out of fashion.
2016-09-19 21:22:19 +02:00
Mike Pall
1a9a264356
Merge branch 'master' into v2.1
2016-09-19 21:19:07 +02:00
Mike Pall
9910dedae4
Initialize uv->immutable for upvalues of loaded chunks.
...
Thanks to Peter Cawley.
2016-09-19 21:17:58 +02:00
Mike Pall
03b03ef683
Windows/x86: Add MSVC flags for debug build with exception interop.
2016-09-06 19:37:30 +02:00
Mike Pall
f6f838f840
Merge branch 'master' into v2.1
2016-07-31 13:42:49 +02:00
Mike Pall
02b9b55976
Revert "OSX: Switch to Clang as the default compiler."
...
It breaks cross-compilation to Android.
And host "gcc" aliases to "clang", anyway.
2016-07-31 13:39:55 +02:00
Mike Pall
972a1a4cc6
Fix exit status for 'luajit -b'.
2016-07-22 16:42:09 +02:00
Mike Pall
c98660c8c3
Must preserve J->fold.ins (fins) around call to lj_ir_ksimd().
2016-07-22 16:35:46 +02:00
Mike Pall
22e8e07969
Merge branch 'master' into v2.1
2016-07-17 16:25:37 +02:00
Mike Pall
d41469c124
Emit bytecode in .c/.h files with unsigned char type.
2016-07-17 16:24:30 +02:00
Mike Pall
92d9ff211a
Set arg table before evaluating LUA_INIT and -e chunks.
2016-07-17 16:23:49 +02:00
Mike Pall
6be5ffdf2b
Adjust comment with defines.
2016-07-17 16:05:25 +02:00
Mike Pall
7374046299
Merge branch 'master' into v2.1
2016-07-17 16:01:25 +02:00
Mike Pall
b74ddaf174
Fix for cdata vs. non-cdata arithmetics/comparisons.
...
Thanks to Vyacheslav Egorov.
2016-07-17 16:01:10 +02:00
Mike Pall
37b377dedf
Merge branch 'master' into v2.1
2016-07-17 14:38:26 +02:00
Mike Pall
1914de71c7
Fix unused vars etc. in internal Lua files.
...
Thanks to François Perrad.
2016-07-17 14:29:03 +02:00
Mike Pall
01e4754962
Properly clean up state before restart of trace assembly.
2016-06-27 15:46:09 +02:00
Mike Pall
ce30766b67
Merge branch 'master' into v2.1
2016-06-27 14:10:39 +02:00
Mike Pall
aef4edddba
Drop leftover regs in 'for' iterator assignment, too.
2016-06-27 14:09:36 +02:00
Mike Pall
287a5347cf
MIPS: Support MIPS16 interlinking.
2016-06-08 10:24:00 +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
a88dc57995
Merge branch 'master' into v2.1
2016-06-05 12:54:53 +02:00
Mike Pall
a7bec69a75
Fix PHI remarking in SINK pass.
...
Thanks to Vyacheslav Egorov.
2016-06-05 12:53:37 +02:00
Mike Pall
ce1ad870c3
LJ_GC64: Set correct nil value when clearing a cdata finalizer.
...
Thanks to Stefan Pejic.
2016-06-03 06:54:06 +02:00
Mike Pall
cc05e79181
LJ_GC64: Ensure all IR slot fields are initialized.
2016-06-03 06:53:37 +02:00
Mike Pall
58ca165737
LJ_GC64: Allow optional use of the system memory allocator.
2016-06-03 06:52:53 +02:00
Mike Pall
7d43402304
Merge branch 'master' into v2.1
2016-06-03 06:40:48 +02:00
Mike Pall
3206307563
Fix Valgrind suppressions.
2016-06-03 06:39:52 +02:00
Mike Pall
1c0454c6ce
Merge branch 'master' into v2.1
2016-06-03 04:28:17 +02:00
Mike Pall
a5f8a4819f
Don't try to record outermost pcall() return to lower frame.
2016-06-03 04:26:08 +02:00
Mike Pall
384ce2f9ef
MIPS: Fix build failures and warnings.
2016-05-29 18:12:58 +02:00
Mike Pall
56fe899a06
Proper fix for LJ_GC64 changes to asm_href().
2016-05-28 13:36:14 +02:00
Mike Pall
d9986fbadb
MIPS64, part 1: Add MIPS64 support to interpreter.
...
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
Sponsored by Cisco Systems, Inc.
2016-05-28 05:10:55 +02:00
Mike Pall
5e2b609b3f
Fix compiler warning.
2016-05-28 05:02:18 +02:00
Mike Pall
e77638f922
x64/LJ_GC64: Fix __call metamethod for tailcall.
2016-05-28 05:01:12 +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
3f1031c34b
Use MAP_TRYFIXED for the probing memory allocator, if available.
2016-05-23 14:28:28 +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
8f868a9d02
LJ_GC64: Update IR type sizes.
...
Contributed by Peter Cawley.
2016-05-23 00:38:18 +02:00
Mike Pall
f26679c719
LJ_GC64: Add support for 64 bit GCobj constants in the IR.
...
Contributed by Peter Cawley.
2016-05-23 00:34:05 +02:00
Mike Pall
9e99ccc360
Strip out old infrastructure for 64 bit constants.
...
Contributed by Peter Cawley.
2016-05-23 00:27:51 +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
a4067978b6
Always walk IR constants in ascending order.
...
Prerequisite for embedding 64 bit constants directly in the IR.
Contributed by Peter Cawley.
2016-05-22 23:45:40 +02:00
Mike Pall
3152ed98ea
Simplify GCtrace * reference embedding for trace stitching.
...
This is now possible due to the immovable IR.
Contributed by Peter Cawley.
2016-05-22 23:40:37 +02:00
Mike Pall
a657fa0186
Make the IR immovable after assembly.
...
This allows embedding pointers to IR constants in the machine code.
Contributed by Peter Cawley.
2016-05-22 23:25:28 +02:00
Mike Pall
513587656a
Add ra_addrename().
...
Contributed by Peter Cawley.
2016-05-21 01:45:18 +02:00
Mike Pall
ccae333844
Load SIMD constants with IR_FLOAD from GG_State.
...
Contributed by Peter Cawley.
2016-05-21 01:04:17 +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
1931b38da5
LJ_GC64: Introduce IRT_PGC.
...
Contributed by Peter Cawley.
2016-05-20 22:41:42 +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
d4f3b1136b
Workaround for MinGW headers lacking some exception definitions.
2016-05-20 19:45:38 +02:00
Mike Pall
4fe400cfd5
Merge branch 'master' into v2.1
2016-05-20 19:44:23 +02:00
Mike Pall
5837c2a2fb
Remove assumption that lj_math_random_step() doesn't clobber FPRs.
2016-05-20 19:43:34 +02:00
Mike Pall
573daa9c97
Fix dependencies.
2016-05-19 15:09:08 +02:00
Mike Pall
35b09e692e
Windows/x86: Add full exception interoperability.
...
Contributed by Peter Cawley.
2016-05-07 12:32:15 +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
Mike Pall
221268b17d
Use the GDB JIT API in a thread-safe manner.
...
Thanks to Peter Cawley.
2016-05-03 18:31:29 +02:00
Mike Pall
ac42037db0
Constrain value range of lj_ir_kptr() to unsigned 32 bit pointers.
...
Thanks to Peter Cawley.
2016-04-24 17:32:12 +02:00
Mike Pall
d8ac6230ed
Merge branch 'master' into v2.1
2016-04-24 17:14:35 +02:00
Mike Pall
7b26e9c998
Fix GCC 6 -Wmisleading-indentation warnings.
...
Thanks to Roman Tsisyk.
2016-04-24 17:13:45 +02:00
Mike Pall
344fe5f01d
Merge branch 'master' into v2.1
2016-04-21 17:01:36 +02:00
Mike Pall
2f0001fad0
Fix handling of non-numeric strings in arithmetic coercions.
...
Thanks to Vyacheslav Egorov.
2016-04-21 17:00:58 +02:00
Mike Pall
4c6498d245
Merge branch 'master' into v2.1
2016-04-18 13:41:41 +02:00
Mike Pall
cc4f5d056a
Whitespace.
2016-04-18 13:40:49 +02:00
Mike Pall
d13d420980
Merge branch 'master' into v2.1
2016-04-18 11:17:15 +02:00
Mike Pall
73680a5fc7
x86/x64: Search for exit jumps with instruction length decoder.
...
Contributed by Peter Cawley.
2016-04-18 11:16:13 +02:00
Mike Pall
0c6fdc1039
Rewrite memory block allocator.
...
Use a mix of linear probing and pseudo-random probing.
Workaround for 1GB MAP_32BIT limit on Linux/x64. Now 2GB with !LJ_GC64.
Enforce 128TB LJ_GC64 limit for > 47 bit memory layouts (ARM64).
2016-04-18 10:57:49 +02:00
Mike Pall
101115ddd8
Merge branch 'master' into v2.1
2016-04-14 00:16:17 +02:00
Mike Pall
e5b5e079c3
MIPS: Fix BC_ISNEXT fallback path.
...
Thanks to RT-RK.com.
2016-04-14 00:14:42 +02:00
Mike Pall
096a7cf4e4
x64/LJ_GC64: Fix BC_UCLO check for fast-path.
...
Thanks to Vyacheslav Egorov.
2016-04-13 16:10:03 +02:00
Mike Pall
ac9193cfeb
x86: Improve disassembly of BMI2 instructions.
...
Thanks to Peter Cawley.
2016-04-05 15:10:14 +02:00
Mike Pall
d150fbf441
Merge branch 'master' into v2.1
2016-04-03 19:13:37 +02:00
Mike Pall
1c6fd13dbd
Fix recording of select(n, ...) with off-trace varargs
...
Thanks to Peter Cawley.
2016-04-03 19:12:28 +02:00
Mike Pall
25b377942a
Merge branch 'master' into v2.1
2016-04-03 19:08:32 +02:00
Mike Pall
4ab6367b21
Cygwin: Allow cross-builds to non-Cygwin targets.
2016-04-03 19:07:19 +02:00
Mike Pall
296f0ca8d7
Windows/x64/LJ_GC64: Fix math.frexp() and math.modf() (again).
...
Thanks to Peter Cawley.
2016-03-31 04:17:21 +02:00
Mike Pall
6e623b9914
Merge branch 'master' into v2.1
2016-03-30 16:30:44 +02:00
Mike Pall
62af101524
MIPS: Fix use of ffgccheck delay slots in interpreter.
2016-03-30 16:26:27 +02:00
Mike Pall
892887e584
x86: Generate BMI2 shifts and rotates, if available.
...
Contributed by Peter Cawley.
2016-03-28 23:05:20 +02:00
Mike Pall
6801e7165c
x86: Detect BMI2 instruction support.
2016-03-28 23:04:33 +02:00
Mike Pall
c24c8e5312
x64/LJ_GC64: Fix JIT glue code in interpreter.
...
Thanks to Peter Cawley.
2016-03-28 22:31:18 +02:00
Mike Pall
d7145616ae
Merge branch 'master' into v2.1
2016-03-28 22:24:01 +02:00
Mike Pall
9531eb235b
Windows: Remove intermediate files at end of build.
2016-03-28 22:23:37 +02:00
Mike Pall
e03e5979c4
Fix compiler warnings.
2016-03-28 22:19:45 +02:00
Mike Pall
df7bb5bb72
Merge branch 'master' into v2.1
2016-03-28 22:17:41 +02:00
Mike Pall
e23fc10883
Fix display of NULL (light)userdata in -jdump.
...
Thanks to Peter Cawley.
2016-03-28 22:15:13 +02:00
Mike Pall
c7305408d1
Fix formatting of some small denormals at low precision.
...
Contributed by Peter Cawley.
2016-03-28 21:39:31 +02:00
Mike Pall
cf3e01e136
Merge branch 'master' into v2.1
2016-03-22 20:42:00 +01:00
Mike Pall
ddadbe8099
Fix compiler warnings.
...
Thanks to Demetri Obenour.
2016-03-22 20:40:41 +01:00
Mike Pall
be2559291e
ARM: Fix build problem with external frame unwinding.
2016-03-15 11:27:06 +01:00
Mike Pall
64c6da6b21
MIPS soft-float: Fix code generation for HREF.
2016-03-10 17:08:55 +01:00
Mike Pall
3e4a196777
RELEASE LuaJIT-2.1.0-beta2
2016-03-03 12:40:02 +01:00
Mike Pall
f4231949b5
Merge branch 'master' into v2.1
2016-03-03 12:11:37 +01:00
Mike Pall
db1b399af1
Bump copyright date to 2016.
2016-03-03 12:02:22 +01:00
Mike Pall
6f3eed9fd8
Fix Android/x86 build.
2016-03-03 11:46:48 +01:00
Mike Pall
1c45c6a6a2
Fix build with JIT disabled.
...
Thanks to Peter Melnichenko.
2016-03-01 13:26:42 +01:00
Mike Pall
18f6aa97fd
Use internal implementation for converting FP numbers to strings.
...
Contributed by Peter Cawley.
2016-02-26 18:03:08 +01:00
Mike Pall
339a1fd696
Windows/x64/LJ_GC64: Fix math.frexp() and math.modf().
...
Thanks to Eddie Edwards.
2016-02-22 19:14:20 +01:00
Mike Pall
6cb38f788f
Merge branch 'master' into v2.1
2016-02-10 18:53:42 +01:00
Mike Pall
a443889677
Don't allocate unused 2nd result register in JIT compiler backend.
2016-02-10 18:51:02 +01:00
Mike Pall
f547a1425e
MIPS: Add soft-float support to JIT compiler backend.
2016-02-10 18:49:22 +01:00
Mike Pall
825dcdc4d1
Generalize LJ_SOFTFP dependencies in lj_asm.c.
2016-02-09 17:29:23 +01:00
Mike Pall
bfbcd72eb7
PS4: Switch default build to amalgamated and LJ_GC64 mode.
...
Thanks to Eddie Edwards.
2016-02-01 18:18:56 +01:00
Mike Pall
60de2f3d51
MIPS: Switch to dual-number mode. Fix soft-float interpreter.
2016-01-29 07:03:36 +01:00
Mike Pall
2f6b2967c7
Add proper DynASM dependency.
2016-01-18 16:57:30 +01:00
Mike Pall
89982b7849
FFI: Parse #line NN and #NN.
2016-01-18 12:34:48 +01:00
Mike Pall
39eddd3b96
Always merge snapshots without instructions inbetween.
...
Thanks to Vyacheslav Egorov.
2016-01-18 12:02:01 +01:00
Mike Pall
04d2806823
Rollback due to HREFK + load fwd must restore guardemit state.
...
Thanks to Vyacheslav Egorov.
2016-01-18 11:58:13 +01:00
Mike Pall
52ebe02c27
x86: Disassemble AES instructions.
...
Contributed by Peter Cawley.
2015-12-28 16:46:31 +01:00
Mike Pall
5ce6399ed9
x86: Improve disassembly of AVX shift instructions.
...
Contributed by Peter Cawley.
2015-12-28 16:42:37 +01:00
Mike Pall
f61148c486
ARM: Add external frame unwinding.
...
Thanks to Nick Zavaritsky.
2015-12-28 16:34:11 +01:00
Mike Pall
20f4141b1a
FFI: Properly unsink non-standard cdata allocations.
2015-12-28 13:02:35 +01:00
Mike Pall
0345f36153
MIPS soft-float, part 2: Add soft-float FFI support.
2015-12-18 21:38:03 +01:00
Mike Pall
3f5c72421e
MIPS soft-float, part 1: Add soft-float support to interpreter.
...
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
Sponsored by Cisco Systems, Inc.
2015-12-17 22:42:20 +01:00
Mike Pall
126e55d416
Merge branch 'master' into v2.1
2015-11-26 22:26:39 +01:00
Mike Pall
3d4c9f9639
FFI: Fix SPLIT pass for CONV i64.u64.
...
Thanks to Vyacheslav Egorov.
2015-11-26 22:25:13 +01:00
Mike Pall
3a0b2a907b
x64/LJ_GC64: Fix stack growth in vararg function setup.
...
Thanks to Vyacheslav Egorov.
2015-11-18 23:24:50 +01:00
Mike Pall
0aa337a41c
Merge branch 'master' into v2.1
2015-11-04 14:09:59 +01:00
Mike Pall
7991a669dd
Extend Valgrind suppressions for non-inlined C code.
...
Thanks to Dennis Schridde.
2015-11-04 14:02:33 +01:00
Mike Pall
3ad77346df
Merge branch 'master' into v2.1
2015-10-24 19:30:55 +02:00
Mike Pall
f416cf6a64
OSX: Switch to Clang as the default compiler.
2015-10-24 19:10:40 +02:00
Mike Pall
ffb124ec77
Merge branch 'master' into v2.1
2015-10-24 19:03:14 +02:00
Mike Pall
3639ff4142
iOS: Disable os.execute() when building for iOS >= 8.0.
...
Thanks to Vyacheslav Egorov.
2015-10-24 19:02:15 +02:00
Mike Pall
6a5441114e
x86/x64: Disassemble AVX/AVX2 instructions.
...
Thanks to Peter Cawley.
2015-10-24 18:55:27 +02:00
Mike Pall
efaf24f496
Fix pairs() recording.
...
Thanks to Vyacheslav Egorov.
2015-10-24 18:04:54 +02:00
Mike Pall
b20642cec9
Merge branch 'master' into v2.1
2015-10-24 18:03:55 +02:00
Mike Pall
e5f4cb1ccb
FFI: Fix ipairs() recording.
...
Thanks to Vyacheslav Egorov.
2015-10-24 17:59:44 +02:00
Mike Pall
776c6935ed
Merge branch 'master' into v2.1
2015-10-15 02:29:37 +02:00
Mike Pall
4808e62a9a
Drop marks from replayed instructions when sinking.
...
Reported by Vyacheslav Egorov.
2015-10-15 02:28:04 +02:00
Mike Pall
22a9ed838b
Merge branch 'master' into v2.1
2015-10-01 16:34:37 +02:00
Mike Pall
2e85af8836
Flush symbol tables in jit.dump on trace flush.
2015-10-01 16:32:30 +02:00
Mike Pall
86c21bd245
Add collectgarbage("isrunning").
2015-10-01 16:26:00 +02:00
Mike Pall
0b09c971c9
Merge branch 'master' into v2.1
2015-10-01 16:16:18 +02:00
Mike Pall
ef087aa678
Fix unsinking check.
...
Reported by Elias Hogstvedt. Debugged and fixed by Vyacheslav Egorov.
2015-10-01 16:12:48 +02:00
Mike Pall
52ea1a30af
FFI: Add ssize_t declaration.
2015-09-20 19:25:39 +02:00
Mike Pall
49427dfcc2
Merge branch 'master' into v2.1
2015-09-20 19:18:31 +02:00
Mike Pall
076d625dc6
Fix Cygwin support. Note: this is not a supported target.
...
Contributed by Yaakov Selkowitz.
2015-09-20 19:17:02 +02:00
Mike Pall
55c3b29f7b
Parse Unicode string escape \u{XX...}.
...
Thanks to drbo.
2015-08-30 00:10:15 +02:00
Mike Pall
a3a6866d4c
Re-enable trace stitching.
...
Thanks to Vyacheslav Egorov.
2015-08-29 23:24:26 +02:00
Mike Pall
ad29314c2c
ARM64: Fix ELF bytecode saving.
2015-08-26 09:48:05 +02:00
Mike Pall
fb77f7dee7
RELEASE LuaJIT-2.1.0-beta1
2015-08-25 23:32:36 +02:00
Mike Pall
0a3cd94631
ARM64: Add support for saving bytecode as object files.
2015-08-25 10:16:39 +02:00
Mike Pall
ca7888944e
Merge branch 'master' into v2.1
2015-08-20 01:11:59 +02:00
Mike Pall
8715ae65c1
Properly handle OOM in trace_save().
...
Thanks to Vyacheslav Egorov.
2015-08-20 01:10:30 +02:00
Mike Pall
b86fc2b36a
Merge branch 'master' into v2.1
2015-08-20 00:51:32 +02:00
Mike Pall
424940ffc3
Fix NYICF error message.
...
Thanks to Vyacheslav Egorov.
2015-08-20 00:49:20 +02:00
Mike Pall
eb050f9e2a
Parse binary number literals (0bxxx).
2015-08-19 02:10:36 +02:00
Mike Pall
0dcd2d1292
Merge branch 'master' into v2.1
2015-07-17 23:17:34 +02:00
Mike Pall
a5b1c4d98e
FFI: Don't propagate qualifiers into subtypes of complex.
2015-07-17 23:14:21 +02:00
Mike Pall
ba6344d1ef
ARM64: Fix __call metamethod handling for tail calls.
2015-07-14 13:04:08 +02:00
Mike Pall
5874c21291
Merge branch 'master' into v2.1
2015-07-10 03:45:25 +02:00
Mike Pall
575bfe5028
Limit number of arguments given to io.lines() and fp:lines().
2015-07-10 03:42:51 +02:00
Mike Pall
28d8728869
Fix Xbox One port.
2015-06-16 04:27:44 +02:00
Mike Pall
fe565222a1
Disable table allocation bump optimization (for now).
2015-06-13 00:42:38 +02:00
Mike Pall
26b95a90f5
Add Xbox One port.
2015-06-12 22:28:38 +02:00
Mike Pall
458a40b724
Fix table allocation bump optimization (sigh).
2015-06-10 17:06:01 +02:00
Mike Pall
5081e38031
Merge branch 'master' into v2.1
2015-06-10 16:15:41 +02:00
Mike Pall
7f454aed82
Fix narrowing of TOBIT.
2015-06-10 16:14:41 +02:00
Mike Pall
08e100ec05
x64/LJ_GC64: Fix ipairs().
2015-06-10 12:15:28 +02:00
Mike Pall
c5d262f2d2
Fix table allocation bump optimization (again).
2015-06-09 23:46:38 +02:00
Mike Pall
fb19df9fd7
Merge branch 'master' into v2.1
2015-06-09 22:09:11 +02:00
Mike Pall
72347895ed
x64: Allow building without external unwinder.
...
Required for PS4 SDK 2.5. Thanks to James Park.
2015-06-09 22:08:40 +02:00
Mike Pall
4da1bb66cd
x64/LJ_GC64: Fix upvalue write barrier.
2015-05-29 16:45:26 +02:00
Mike Pall
5de95edf4c
x64/LJ_GC64: Fix setmetatable().
2015-05-25 16:31:52 +02:00
Mike Pall
60fb3fe2b2
Fix table allocation bump optimization.
2015-05-21 16:38:31 +02:00
Mike Pall
4a146cac9a
LJ_GC64: Fix frame unwinding.
2015-05-20 16:43:41 +02:00
Mike Pall
bca5da8849
Fix for last commit.
2015-05-19 02:25:16 +02:00
Mike Pall
b82fc3ddc0
Bump table allocations retroactively if they grow later on.
2015-05-19 01:59:29 +02:00
Mike Pall
69e5342eb8
RELEASE LuaJIT-2.0.4
2015-05-14 20:29:31 +02:00
Mike Pall
a836b7e177
Cleanup.
2015-05-04 06:38:01 +02:00
Mike Pall
4cec6a5706
Merge branch 'master' into v2.1
2015-05-04 06:37:24 +02:00
Mike Pall
9622d6b8b2
x86/x64: Fix argument check for bit shifts.
2015-05-04 06:36:16 +02:00
Mike Pall
a92e730233
x64: Add LJ_GC64 mode interpreter.
...
Enable this mode with: make XCFLAGS=-DLUAJIT_ENABLE_GC64
2015-05-04 06:30:57 +02:00
Mike Pall
5caf53d502
Fix broken Windows build.
2015-04-29 10:13:01 +02:00
Mike Pall
c2924c3e1d
Disable trace stitching (for now) due to a design mistake.
...
Thanks to Elias Hogstvedt for finding a test case for a well known,
but hard to track down issue with trace stitching.
2015-04-28 20:52:24 +02:00
Mike Pall
74caac97ae
Merge branch 'master' into v2.1
2015-04-28 20:29:46 +02:00
Mike Pall
11106aa833
Fix stack check in narrowing optimization.
...
Thanks to Robert Nix.
2015-04-28 20:28:16 +02:00
Mike Pall
1e67a4cb6b
ARM64: Fix math.floor/math.ceil for string args.
2015-04-15 22:09:46 +02:00
Mike Pall
1c968d5b63
DynASM/PPC: Add sub/shift/rotate/clear instruction aliases.
2015-04-12 03:46:16 +02:00
Mike Pall
dec4acca9a
PPC: Fix cross-endian builds.
2015-04-12 01:23:01 +02:00
Mike Pall
8002871619
PPC: Fix write barrier in BC_TSETR.
...
Thanks to Gustavo Serra Scalet.
2015-04-09 18:48:54 +02:00
Mike Pall
361827c8f9
PPC64: Add build infrastructure.
2015-03-06 03:47:45 +01:00
Mike Pall
c821e0aded
Merge branch 'master' into v2.1
2015-03-05 12:21:39 +01:00
Mike Pall
8b6af89ba7
Fix Lua/C API typecheck error for special indexes.
2015-03-05 12:19:11 +01:00
Mike Pall
2c0748f691
Merge branch 'master' into v2.1
2015-03-02 17:34:33 +01:00
Mike Pall
1f578bd424
FFI: Fix FOLD rule for TOBIT + CONV num.u32.
...
Thanks to Jiale Zhi.
2015-03-02 17:34:06 +01:00
Mike Pall
e1a8f3ba0b
Merge branch 'master' into v2.1
2015-02-25 18:12:14 +01:00
Mike Pall
5c0e33c2aa
ARM: Handle more arch defines.
2015-02-25 18:10:54 +01:00
Mike Pall
7ff476804e
Properly fail unsupported cross-compile to MIPS64.
2015-02-25 18:02:31 +01:00
Mike Pall
906008d467
Merge branch 'master' into v2.1
2015-02-22 23:08:56 +01:00
Mike Pall
e6b0875a7e
Fix string to number conversion.
...
Thanks to Lesley De Cruz.
2015-02-22 23:07:49 +01:00
Mike Pall
576ddf1db5
Merge branch 'master' into v2.1
2015-02-21 21:46:22 +01:00
Mike Pall
4fa51affe8
x86/x64: Fix code generation for fused test/arith ops.
...
Thanks to Alexander Nasonov and AFL.
2015-02-21 21:44:41 +01:00
Mike Pall
063f3d5d7c
Merge branch 'master' into v2.1
2015-02-18 16:01:11 +01:00
Mike Pall
704280fb80
FFI: Prevent DSE across ffi.string().
2015-02-18 16:00:15 +01:00
Mike Pall
04dc64b558
LJ_FR2: Fix bytecode generation for method lookups.
2015-02-08 20:25:27 +01:00
Mike Pall
ca5bbdf92a
Merge branch 'master' into v2.1
2015-02-02 11:06:45 +01:00
Mike Pall
dfa173b929
Fix lexer error for chunks without tokens.
2015-02-02 11:03:39 +01:00
Mike Pall
43cb818ba8
Merge branch 'master' into v2.1
2015-01-17 14:57:24 +01:00
Mike Pall
7f013005f6
Don't compile IR_RETF after CALLT to ff with-side effects.
2015-01-17 14:50:41 +01:00
Mike Pall
b876d6dada
OpenBSD/x86: Better executable memory allocation for W^X mode.
2015-01-17 12:55:04 +01:00
Mike Pall
3f19b34242
iOS/ARM64: Fix target OS detection.
2015-01-08 02:52:31 +01:00