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