Commit Graph

2044 Commits

Author SHA1 Message Date
Marcin Kościelnicki
f9b470df94 ppc64: Add FFI support. 2016-07-20 16:22:04 +02:00
Marcin Kościelnicki
1de503375c ppc: Add ELFv2 support. 2016-07-10 13:20:38 +02:00
Marcin Kościelnicki
270bfa6a08 ppc: Add little-endian support. 2016-07-10 13:19:59 +02:00
Marcin Kościelnicki
1d40c34ec3 ppc: Fix unwind info for ppc64. 2016-07-10 13:19:59 +02:00
Marcin Kościelnicki
89f7457952 ppc: Fix 64-bit SAVE_CR
The ABI mandates using CR save space in the caller's frame - we cannot use
the slot in our own frame, since some function we call could overwrite it.
2016-07-10 13:19:59 +02:00
Marcin Kościelnicki
47ed69b8a0 Enable the !LJ_GC64 PPC interpreter on PPC64.
This also adds a bit of plumbing to recognize ELF v2 ABI (which is NYI).
Since P64 no longer implies TOC, make TOC (and TOCENV) an independent define
passed to DynAsm from lj_arch.h.
2016-07-10 13:19:59 +02:00
Marcin Kościelnicki
8d1fb7131d ppc: ppc64 TOC fixes 2016-07-10 13:19:53 +02:00
Marcin Kościelnicki
3d90e7e9eb ppc: Interpreter fixes for P64. 2016-07-10 13:14:36 +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
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