Commit Graph

1970 Commits

Author SHA1 Message Date
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
Gustavo Serra Scalet
078fd414e0 PPC64: Fix indentation code style 2016-09-06 13:13:15 -03:00
Gustavo Serra Scalet
8ccd23a538 PPC64: Define 13 FPs regs as arguments
ABI mandates 13 but only 8 was implemented.
2016-09-06 13:13:14 -03:00
Gustavo Serra Scalet
747bff95ca PPC64: Fix tab indentation from last commit 2016-09-06 13:13:11 -03:00
Brian W. Hart
f7dcabbe36 luajit-2.1: fix fp parameter passing for ppc64
The POWER 64-bit LE ABI calls for floating point function
arguments beyond the 8th to be passed via floating point
registers and also to reserve a slot in the parameter save
area on the stack. The PPC CCALL_HANDLE_REGARG correctly
includes the values in FPRs, but neglects to reserve
corresponding slots when spilling into the save area.
2016-09-06 13:10:23 -03:00
Gustavo Serra Scalet
c00253828a Merge remote-tracking branch 'upstream/v2.1' into ppc64-port 2016-09-05 10:17:50 -03: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
Gustavo Serra Scalet
030a8643e7 PPC64: Fix external branches that should address on R12
The TOC register was not set correctly when branching with other
registers as the PIC code setup uses the R12 reference in order to set
the R2 (TOC register). This is only acknowledged by using LuaJIT as a
library, as torch uses on it qtlua/qlua subproject.
2016-04-11 14:56:15 -03:00
Gustavo Serra Scalet
0213722d42 PPC64: Enable support for ppc64 little endian 2016-04-11 14:56:15 -03:00
Gustavo Serra Scalet
069296bba0 PPC64: Add ffi support 2016-04-11 14:56:13 -03:00
Gustavo Serra Scalet
04c444e533 PPC64: Add special instructions for PIC code setup
In order to support to the following instruction described by ABI,
dynasm needed to be updated:

"""
The following code might appear in a PIC code setup sequence to compute
the distance from a function entry point to the TOC base:
addis 2,12,.TOC.-func@ha
addi 2,2,.TOC.-func@l
"""

Power Architecture 64-Bit ELF V2 ABI Specification, version 1.0, page 99
Source: http://openpowerfoundation.org/technical/technical-resources/technical-specifications/
2016-04-11 14:55:48 -03:00
Gustavo Serra Scalet
821f0b7535 PPC64: Add LJ_GC64 mode interpreter for ppc. 2016-04-11 14:55:48 -03:00
Gustavo Serra Scalet
dbd04e77a0 PPC64: Add method for external branch by using @got for PIC 2016-04-11 14:55:47 -03: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