Commit Graph

2719 Commits

Author SHA1 Message Date
Mike Pall
e3c4c9af0f DynASM/MIPS: Add missing MIPS64 instructions.
Contributed by Djordje Kovacevic and Stefan Pejic from RT-RK.com.
Sponsored by Cisco Systems, Inc.
2016-05-28 05:09:24 +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
9fa843aefb Cleanup install docs. 2016-05-26 13:57:12 +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