Commit Graph

2518 Commits

Author SHA1 Message Date
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
Mike Pall
962d2aaa9f LJ_GC64: Return true for ffi.abi("gc64"). 2015-01-07 21:14:43 +01:00
Mike Pall
33f0c24f06 ARM64: Add FFI support. 2015-01-07 21:06:40 +01:00
Mike Pall
ce1a5ee535 iOS/ARM64: The frame pointer is required. 2015-01-07 20:59:37 +01:00
Mike Pall
9647aab0dc LJ_FR2: Fix lua_settable() and lua_setfield(). 2015-01-07 13:17:57 +01:00
Mike Pall
0a5045c34e Merge branch 'master' into v2.1 2015-01-06 00:12:45 +01:00
Mike Pall
86913b9bbf Bump copyright date to 2015. 2015-01-05 23:59:31 +01:00
Mike Pall
c71cdf4c36 Merge branch 'master' into v2.1 2015-01-05 23:43:57 +01:00
Mike Pall
999f57de83 Fix BC_UCLO/BC_JMP join optimization in Lua parser. 2015-01-05 23:39:37 +01:00
Mike Pall
71ecc051dc Fix MSVC build. 2015-01-05 00:38:18 +01:00
Mike Pall
fcae87e315 Merge branch 'master' into v2.1 2015-01-05 00:07:27 +01:00
Mike Pall
4d9e8e245a ARM: Minor interpreter optimization. 2015-01-05 00:05:38 +01:00
Mike Pall
31e66838d8 x86: Minor interpreter optimization. 2015-01-05 00:04:40 +01:00
Mike Pall
e1261a07bf ARM64: Compatibility fixes for Clang. 2015-01-04 23:52:50 +01:00
Mike Pall
dfe84fd8c5 PPC/e500: Drop support for this architecture. 2015-01-04 23:01:16 +01:00
Mike Pall
f307d0adaf ARM64: Add build infrastructure and initial port of interpreter. 2015-01-03 15:28:33 +01:00
Mike Pall
cb481ddc8f Add LJ_GC64 mode: 64 bit GC object references.
Actually NaN tagging with 47 bit pointers and 13+4 bit tags.
2015-01-03 15:23:58 +01:00
Mike Pall
054e6abe37 Add LJ_FR2 mode: Two-slot frame info. 2015-01-03 15:04:38 +01:00
Mike Pall
7a76d435da Merge branch 'master' into v2.1 2014-12-27 06:11:14 +01:00
Mike Pall
f45d11e2fe MIPS: Fix excess stack growth in interpreter. 2014-12-27 06:06:07 +01:00
Mike Pall
6319e0312d PPC: Fix excess stack growth in interpreter. 2014-12-27 06:05:50 +01:00
Mike Pall
16f910b4a8 ARM: Fix write barrier check in BC_USETS. 2014-12-27 06:03:06 +01:00
Mike Pall
54826563b2 ARM: Fix excess stack growth in interpreter. 2014-12-27 05:59:16 +01:00
Mike Pall
1b774d9da3 Fix corner case in string to number conversion. 2014-12-27 05:46:51 +01:00
Mike Pall
ecaa4eae88 Merge branch 'master' into v2.1 2014-12-20 01:48:17 +01:00
Mike Pall
5cb6e2eaaf Cleanup of TValue setters. No functional changes. 2014-12-20 01:48:00 +01:00
Mike Pall
10caad0261 x86: Fix argument checks for ipairs() iterator. 2014-12-20 01:05:06 +01:00
Mike Pall
6e9145a882 Cleanup of memory vs. GC sizes. No functional changes. 2014-12-20 00:17:50 +01:00
Mike Pall
82e6e5fb5f x86: Fix stack slot reservation for FP math functions.
Followup fix for commit ad03eba7.
2014-12-16 22:25:52 +01:00
Mike Pall
9679a949ff Disable debug info for generated *.S to avoid confusing gdb. 2014-12-16 02:32:53 +01:00
Mike Pall
c6130e68eb Avoid dependency on frame layout for LJ_POST_FIXCOMP.
The auxiliary value in u32.lo wasn't used, anyway.
2014-12-15 02:45:40 +01:00
Mike Pall
881f48f980 Cleanup of frame handling. No functional changes. 2014-12-15 02:27:27 +01:00
Mike Pall
b93b624ad8 Merge branch 'master' into v2.1 2014-12-15 01:56:18 +01:00
Mike Pall
c6e69249dd Gracefully handle lua_error() for a suspended coroutine.
Thanks to Sergei Zhirikov.
2014-12-15 01:55:45 +01:00
Mike Pall
cca81a3fe7 Merge branch 'master' into v2.1 2014-12-08 02:10:10 +01:00
Mike Pall
6fddb9bc2e Avoid error messages when building with Clang. 2014-12-08 02:07:05 +01:00
Mike Pall
ad03eba715 x86/x64: Drop internal x87 math functions. Use libm functions. 2014-12-08 02:02:34 +01:00
Mike Pall
e03df1e339 x86/x64: Call external symbols directly from interpreter code.
Except for ELF/x86 PIC, where it's easier to use wrappers.
2014-12-08 01:58:05 +01:00
Mike Pall
8cc89332ff Merge branch 'master' into v2.1 2014-11-28 20:21:35 +01:00
Mike Pall
c75c62b489 Fix snapshot #0 handling for traces with a stack check on entry. 2014-11-28 20:20:12 +01:00
Mike Pall
42ed4e53a5 Merge branch 'master' into v2.1 2014-11-03 21:35:52 +01:00
Mike Pall
a31c317fb5 FFI: No meta fallback when indexing pointer to incomplete struct. 2014-11-03 21:34:24 +01:00
Mike Pall
d6ff3afc14 FFI: Add ffi.typeinfo().
Thanks to Peter Colberg.
2014-10-08 22:16:53 +02:00
Mike Pall
d2809bec24 Merge branch 'master' into v2.1 2014-10-08 22:06:23 +02:00
Mike Pall
6d0654d3ec Fix fused constant loads under high register pressure. 2014-10-08 22:04:51 +02:00
Mike Pall
be64823d95 Merge branch 'master' into v2.1 2014-10-07 16:18:46 +02:00
Mike Pall
4846a714a9 Fix DragonFly build (unsupported).
Thanks to Robin Hahling, Alex Hornung and Joris Giovannangeli.
2014-10-07 16:17:29 +02:00
Mike Pall
b7d29b6e67 Eliminate hmask guard for forwarded HREFK. 2014-09-17 19:45:16 +02:00
Mike Pall
72c661e2b8 Merge branch 'master' into v2.1 2014-09-08 23:39:02 +02:00
Mike Pall
41156fe1cd FFI: Fix initialization of unions of subtypes.
Thanks to Peter Colberg.
2014-09-08 23:37:22 +02:00
Mike Pall
247ead6718 FFI: Fix for cdata vs. non-cdata arithmetic and comparisons.
Thanks to Roman Tsisyk.
2014-09-08 23:28:02 +02:00
Mike Pall
e107525f20 Merge branch 'master' into v2.1 2014-08-05 20:18:20 +02:00
Mike Pall
66515a054c FFI: Fix __index/__newindex metamethod resolution for ctypes. 2014-08-05 20:15:52 +02:00
Mike Pall
92c32b7814 Merge branch 'master' into v2.1 2014-07-24 13:08:49 +02:00
Mike Pall
59d290656a Invalidate backpropagation cache after DCE. 2014-07-24 13:08:02 +02:00
Mike Pall
5f370d9071 Merge branch 'master' into v2.1 2014-07-04 18:19:16 +02:00
Mike Pall
f948fe0c27 FFI: Fix compilation of reference field access. 2014-07-04 18:17:32 +02:00
Mike Pall
0ac4c43965 Merge branch 'master' into v2.1 2014-07-01 17:54:08 +02:00
Mike Pall
a6c34b85f7 Fix ABC elimination. 2014-07-01 17:53:40 +02:00
Mike Pall
1cb5929c5c Compile debug.getmetatable().
Thanks to Karel Tuma.
2014-06-18 12:36:50 +02:00
Mike Pall
89f61de517 Merge branch 'master' into v2.1 2014-06-12 11:02:44 +02:00
Mike Pall
5e7b9bb8ed FFI: Fix frame traversal for backtraces with FFI callbacks. 2014-06-12 10:58:22 +02:00
Mike Pall
9d67be8ec1 Merge branch 'master' into v2.1 2014-06-11 22:47:10 +02:00
Mike Pall
7dc9e5ade4 x86: lj_math_random_step() clobbers XMM regs on OSX Clang. 2014-06-11 22:44:08 +02:00
Mike Pall
afcc3c0b83 Merge branch 'master' into v2.1 2014-06-11 10:21:37 +02:00
Mike Pall
e7c6a1afa2 Fix debug info for main chunk of stripped bytecode. 2014-06-11 10:19:53 +02:00
Mike Pall
95977599e7 Merge branch 'master' into v2.1 2014-05-28 15:47:21 +02:00
Mike Pall
7fb503dc86 Fix compatibility issues with Illumos.
Thanks to Theo Schlossnagle.
2014-05-28 15:46:26 +02:00
Mike Pall
7400e2c0cc Merge branch 'master' into v2.1 2014-05-27 15:59:20 +02:00
Mike Pall
49d3157e14 PPC: Fix red zone overflow in machine code generation. 2014-05-27 15:58:04 +02:00
Mike Pall
fc76d540a0 x86: Fix code generation for unused result of math.random(). 2014-05-27 15:25:34 +02:00
Mike Pall
945af491b6 Merge branch 'master' into v2.1 2014-05-20 11:56:20 +02:00
Mike Pall
e15765186c Fix FOLD rule for string.sub(s, ...) == k. 2014-05-20 11:41:32 +02:00
Mike Pall
52b081528a Merge branch 'master' into v2.1 2014-05-15 17:37:38 +02:00
Mike Pall
fe288e7b83 FFI: Fix recording of indexing a struct pointer ctype object itself. 2014-05-15 17:28:08 +02:00
Mike Pall
8a38af2f99 Fix FOLD rule for STRREF of SNEW. 2014-05-15 17:03:28 +02:00
Mike Pall
159cfd63f5 Merge branch 'master' into v2.1 2014-05-12 14:36:28 +02:00
Mike Pall
624260f831 Fix frame traversal while searching for error function. 2014-05-12 14:35:30 +02:00
Mike Pall
392b6c94ae Merge branch 'master' into v2.1 2014-05-06 14:49:54 +02:00
Mike Pall
2917288019 x64: Workaround for MSVC build issue. 2014-05-06 14:47:37 +02:00
Mike Pall
f7e209cc55 Merge branch 'master' into v2.1 2014-05-06 14:33:35 +02:00
Mike Pall
ef82bb014a FFI: Another fix for cdata equality comparisons. 2014-05-06 14:31:31 +02:00
Mike Pall
e26dc8a215 Merge branch 'master' into v2.1 2014-04-27 00:10:34 +02:00
Mike Pall
7a39be0ac4 Add PS Vita port.
Thanks to Anton Stenmark.
2014-04-27 00:09:45 +02:00
Mike Pall
c8d1aff0ba Merge branch 'master' into v2.1 2014-04-22 11:29:05 +02:00
Mike Pall
2715fe3aee Prevent GC estimate miscalculation due to buffer growth. 2014-04-22 11:26:52 +02:00
Mike Pall
18309b0a25 Prevent adding side traces for stack checks. 2014-04-22 09:57:39 +02:00
Mike Pall
f3374b5266 x64: Allow building with LUAJIT_USE_SYSMALLOC and LUAJIT_USE_VALGRIND.
Valgrind 3.9 killed MAP_32BIT support. Ugh. So now we have to rely on
undocumented behavior where Valgrind always allocates from the bottom
of memory. Alas, such a binary won't run properly without Valgrind.
2014-04-21 22:26:46 +02:00
Mike Pall
39acdb8b7f Merge branch 'master' into v2.1 2014-04-17 10:32:23 +02:00
Mike Pall
65626eac23 PPC: Don't use mcrxr on PPE. 2014-04-17 10:30:35 +02:00
Mike Pall
43dc06bac1 Fix FOLD of string concatenations. 2014-04-15 19:56:23 +02:00
Mike Pall
27c453e8e8 Merge branch 'master' into v2.1 2014-04-08 16:55:54 +02:00
Mike Pall
cc5075e845 FFI: Fix cdata equality comparison against other Lua types. 2014-04-08 16:53:41 +02:00
Mike Pall
347b49ec7d Merge branch 'master' into v2.1 2014-04-08 12:12:27 +02:00
Mike Pall
4ed3ee1f04 FFI: Fix cdata equality comparison against strings. 2014-04-08 12:10:51 +02:00
Mike Pall
d3e3700180 Merge branch 'master' into v2.1 2014-04-03 21:48:34 +02:00
Mike Pall
111b2e8711 Fix top slot calculation for snapshots with continuations. 2014-04-03 21:45:57 +02:00
Mike Pall
a972d37ef3 Merge branch 'master' into v2.1 2014-04-01 10:33:42 +02:00
Mike Pall
b293063eb8 Correct fix for reuse of SCEV results in FORL. 2014-04-01 10:07:15 +02:00
Mike Pall
423f10fb40 Fix alias analysis for table.len vs. table.clear. 2014-04-01 01:55:12 +02:00
Mike Pall
caefd06871 Merge branch 'master' into v2.1 2014-04-01 00:34:13 +02:00
Mike Pall
19b69f21d4 FFI: Allow non-scalar cdata to be compared for equality by address. 2014-04-01 00:30:22 +02:00
Mike Pall
b65515fb48 Merge branch 'master' into v2.1 2014-03-28 19:11:35 +01:00
Mike Pall
c735293921 FFI: Fix pseudo type conversions for type punning. 2014-03-28 19:09:45 +01:00
Mike Pall
4401af88dc Merge branch 'master' into v2.1 2014-03-27 23:32:45 +01:00
Mike Pall
095344ce7c Fix check for reuse of SCEV results in FORL. 2014-03-27 23:29:30 +01:00
Mike Pall
3500c35e23 Merge branch 'master' into v2.1 2014-03-27 11:39:15 +01:00
Mike Pall
c03be1210c x86/x64: Avoid use of SAHF instruction. 2014-03-27 11:38:07 +01:00
Mike Pall
ce477ffbfa Merge branch 'master' into v2.1 2014-03-24 09:42:05 +01:00
Mike Pall
1ca794e0b0 Fix compiler warnings. 2014-03-24 09:41:33 +01:00
Mike Pall
880ca300e8 RELEASE LuaJIT-2.0.3 2014-03-12 13:24:07 +01:00
Mike Pall
0e9bf2f60d Merge branch 'master' into v2.1 2014-03-06 00:42:38 +01:00
Mike Pall
416abff90d Don't access dangling reference to reallocated IR. 2014-03-06 00:39:37 +01:00
Mike Pall
19d53ed2f9 Specialize to ffid for non-monomorphic builtins. 2014-03-04 16:11:29 +01:00
Mike Pall
fd3354a9dd Merge branch 'master' into v2.1 2014-02-28 14:10:30 +01:00
Mike Pall
e94150877d Fix frame depth display for bytecode dump in -jdump. 2014-02-28 14:09:34 +01:00
Mike Pall
ef3cc47f9f Fix recording of BC_VARG. 2014-02-28 14:09:09 +01:00
Mike Pall
b342b7a0eb Merge branch 'master' into v2.1 2014-02-27 12:25:59 +01:00
Mike Pall
900d0ce276 Fix for -jdump docs. 2014-02-27 12:25:13 +01:00
Mike Pall
9695c5ab46 Merge branch 'master' into v2.1 2014-02-26 15:57:13 +01:00
Mike Pall
6a47e123a4 Add PS4 port.
Thanks to Eddie Edwards.
2014-02-26 15:56:07 +01:00
Mike Pall
2863b10956 Merge branch 'master' into v2.1 2014-02-20 15:09:02 +01:00
Mike Pall
46ce03464b Fix Xbox 360 build. 2014-02-20 15:08:34 +01:00
Mike Pall
998651fcda Don't purge modified function from stack slots in BC_RET. 2014-02-20 04:24:50 +01:00
Mike Pall
1994a2453e FFI: Disallow nested VLS. 2014-02-19 22:05:34 +01:00
Mike Pall
2bc63bb6af Prevent BASE register coalescing if parent uses IR_RETF. 2014-02-19 17:09:22 +01:00
Mike Pall
e3d5b218d3 Fix quoting in xedkbuild.bat (again). 2014-02-12 00:44:14 +01:00
Mike Pall
ec5546d1d2 Merge branch 'master' into v2.1 2014-02-06 12:27:02 +01:00
Mike Pall
2be62dcfcd Fix exception unwind struct declaration. 2014-02-05 12:04:08 +01:00
Mike Pall
b20ff7a8ac Use own buffer for LOOP substitution table.
Conflicted with the use of lj_buf_cat2str() in lj_opt_fold.c.
2014-02-01 20:44:46 +01:00
Mike Pall
a2abf2e098 Don't start a trace on side exit to non-Lua function. 2014-01-31 20:44:27 +01:00
Mike Pall
5a5a340f6e Don't start stitched trace with CALLMT, too. 2014-01-20 21:31:06 +01:00
Mike Pall
bcd27038fc Merge branch 'master' into v2.1 2014-01-20 16:59:04 +01:00
Mike Pall
92475419e5 Fix OSX build issue. 2014-01-20 16:56:37 +01:00
Mike Pall
dd910f0e01 Fix initial maxslot for down-recursive traces. 2014-01-20 16:49:13 +01:00
Mike Pall
3db3cc10ff Fix compiler warnings. 2014-01-20 16:48:33 +01:00
Mike Pall
4e78b9bb12 Merge branch 'master' into v2.1 2014-01-19 13:12:23 +01:00
Mike Pall
926686ad3d Fix OSX build issue. 2014-01-19 13:11:48 +01:00
Mike Pall
45c067dddd FFI: Fix cts->L for cdata unsinking in snapshot restore. 2014-01-19 13:09:20 +01:00
Mike Pall
a9d4543601 Merge branch 'master' into v2.1 2014-01-16 23:18:34 +01:00
Mike Pall
ef59e54820 Bump copyright date to 2014. 2014-01-16 23:10:16 +01:00
Mike Pall
ce9e8ed675 Fix KBASE for Lua functions below stitched fast functions. 2014-01-16 22:53:27 +01:00
Mike Pall
ba9dde2ce6 Merge branch 'master' into v2.1 2014-01-05 16:58:30 +01:00
Mike Pall
6964a7752a Fix ABC elimination. 2014-01-05 16:57:51 +01:00
Mike Pall
87b33b98e1 Merge branch 'master' into v2.1 2013-12-29 19:21:58 +01:00
Mike Pall
b779f31ca3 Fix MinGW build. 2013-12-29 19:21:16 +01:00
Mike Pall
dce3639c1d Fix final snapshot for trace stitching. 2013-12-28 12:34:58 +01:00
Mike Pall
c1328e9795 x86: Fix stack slot counting for IR_CALLA (affects table.new). 2013-12-26 11:03:25 +01:00
Mike Pall
c41e65499c Show trailing NYI item for stitched trace with -jv. 2013-12-25 20:56:20 +01:00
Mike Pall
b5d741fa7e Add trace stitching. 2013-12-25 02:55:25 +01:00
Mike Pall
6e02c210c4 Merge branch 'master' into v2.1 2013-12-25 00:27:55 +01:00
Mike Pall
ca67c89f20 MIPS: Cosmetic fix for interpreter. 2013-12-25 00:26:18 +01:00
Mike Pall
e52119bbdd Merge branch 'master' into v2.1 2013-12-22 11:46:06 +01:00
Mike Pall
89e8d70701 Fix compilation of string.byte(s, nil, n). 2013-12-22 11:43:44 +01:00
Mike Pall
b03cebe1f6 Merge branch 'master' into v2.1 2013-12-21 16:49:53 +01:00
Mike Pall
279673ddfc Fix MinGW build. 2013-12-21 16:49:10 +01:00
Mike Pall
585dd449b5 Merge branch 'master' into v2.1 2013-12-09 00:32:08 +01:00
Mike Pall
0ded8e82a8 Fix call unroll checks in the presence of metamethod frames. 2013-12-09 00:29:56 +01:00
Mike Pall
5c7db3c4fc Merge branch 'master' into v2.1 2013-12-02 09:19:06 +01:00
Mike Pall
916f09d0a9 x64: Fix store to upvalue for lightuserdata values. 2013-12-02 09:18:01 +01:00
Mike Pall
4593fb5e29 Add table.clear(). 2013-11-25 15:19:17 +01:00
Mike Pall
c378f7dbb8 Abstract out post-registration handling of pre-registered modules. 2013-11-25 15:17:44 +01:00
Mike Pall
a8c3862d63 Merge branch 'master' into v2.1 2013-11-22 05:45:33 +01:00
Mike Pall
f371ed6bd8 Respect jit.off(func) when returning to a function, too. 2013-11-22 05:42:56 +01:00
Mike Pall
b00a0260dd Merge branch 'master' into v2.1 2013-11-22 05:14:37 +01:00
Mike Pall
9d90988347 Follow-up fix for GC step threshold fix. 2013-11-22 05:13:13 +01:00
Mike Pall
94bfa7cfa6 Merge branch 'master' into v2.1 2013-11-21 13:47:19 +01:00
Mike Pall
751eacec7b Improve msvcbuild.bat static linking. 2013-11-21 13:47:07 +01:00
Mike Pall
ffabcc4445 Merge branch 'master' into v2.1 2013-11-07 13:30:20 +01:00
Mike Pall
5a25a735f5 Fix type punning alias analysis for constified pointers. 2013-11-07 13:29:20 +01:00
Mike Pall
8a2b2beac2 Merge branch 'master' into v2.1 2013-11-05 19:46:41 +01:00
Mike Pall
8941b1994e Fix for last commit 2013-11-05 19:45:04 +01:00
Mike Pall
5c55b766bd Merge branch 'master' into v2.1 2013-11-05 19:41:21 +01:00
Mike Pall
7b4d5306c7 Fix GC steps threshold handling when called by JIT-compiled code.
Thanks to Cheng, Long.
2013-11-05 19:36:59 +01:00
Mike Pall
0315b87352 Merge branch 'master' into v2.1 2013-10-26 17:32:43 +02:00
Mike Pall
8944e27762 Fix handling of redundant PHIs. 2013-10-26 17:31:23 +02:00
Mike Pall
d8f05356ca Merge branch 'master' into v2.1 2013-10-24 15:21:44 +02:00
Mike Pall
7e538b5f0a Check for failure to mark memory as executable (restricted kernels). 2013-10-24 15:19:03 +02:00
Mike Pall
a014d5e65d FFI: Compile conversions from functions to function pointers. 2013-10-16 19:51:42 +02:00
Mike Pall
570615300e Merge branch 'master' into v2.1 2013-10-15 22:47:42 +02:00
Mike Pall
4fba08a9ac Fix line number for relocated bytecode after closure fixup. 2013-10-15 22:46:39 +02:00
Mike Pall
d0b48ec996 Merge branch 'master' into v2.1 2013-10-14 19:34:06 +02:00
Mike Pall
5d25645a21 FFI: Rehash finalizer table after GC cycle, if needed. 2013-10-14 19:31:24 +02:00
Mike Pall
4ccb2dd3bb Merge branch 'master' into v2.1 2013-10-10 14:34:39 +02:00
Mike Pall
3cdeb54a24 Check for MAP_32BIT presence instead of checking for Linux. 2013-10-10 14:34:04 +02:00
Mike Pall
1837d07082 Compile BC_TSETM, e.g. {1,2,3,f()}. 2013-10-09 23:51:30 +02:00
Mike Pall
e6e760ca9f Compile getfenv(0). 2013-10-09 20:34:40 +02:00
Mike Pall
88c7785b87 FFI: Compile lightuserdata to void * conversion. 2013-10-09 17:23:08 +02:00
Mike Pall
c8cfca0557 Add table.new(). 2013-10-09 17:02:01 +02:00
Mike Pall
47df3ae513 Properly fix loading of embedded bytecode. 2013-09-20 11:36:33 +02:00
Mike Pall
54af4e7c76 Fix loading of embedded bytecode. 2013-09-19 18:08:04 +02:00
Mike Pall
eec06a0e3b Fix profiler/hook interaction. 2013-09-18 15:27:28 +02:00
Mike Pall
a51b8bf6b4 Fix build with profiler but without JIT compiler. 2013-09-18 15:17:39 +02:00
Mike Pall
b30a789ab8 Protect g->hookmask with lock when using profiler thread. 2013-09-16 11:23:10 +02:00
Mike Pall
8201fda2fc Merge branch 'master' into v2.1 2013-09-14 12:56:37 +02:00
Mike Pall
474bb21af1 Fix ABC elimination. 2013-09-14 12:52:51 +02:00
Mike Pall
da1456584b Merge branch 'master' into v2.1 2013-09-13 00:35:27 +02:00
Mike Pall
f1e7a4477c Fix snapshot restore for exit to function header. 2013-09-13 00:33:58 +02:00
Mike Pall
0953b9a72d Fix profiler stack dump for string chunks. 2013-09-11 23:51:46 +02:00
Mike Pall
1f2eff728b Fix -jp=a mode. 2013-09-10 19:21:10 +02:00
Mike Pall
483f823ea4 Low-overhead profiler, part 7: console ports. 2013-09-10 01:25:33 +02:00
Mike Pall
803d4ddf0c Fix non-FFI build. 2013-09-10 00:47:28 +02:00
Mike Pall
7dc6750eb3 Fix PS3 build. 2013-09-10 00:42:42 +02:00
Mike Pall
29078518c1 Add -jp=fl mode and minor fixes. 2013-09-10 00:02:20 +02:00
Mike Pall
2befb8b1de Low-overhead profiler, part 5: add annotation mode for -jp. 2013-09-09 04:32:31 +02:00
Mike Pall
1fd2048c8d Switch from -jp=n<top_n> to -jp=m<min_pct> as a threshold. 2013-09-09 04:26:12 +02:00
Mike Pall
cb336995a8 Merge branch 'master' into v2.1 2013-09-08 13:12:33 +02:00
Mike Pall
782787f1fa FFI/x64: Fix passing of vector arguments to calls. 2013-09-08 13:11:02 +02:00
Mike Pall
0d41601e76 Merge branch 'master' into v2.1 2013-09-08 03:10:47 +02:00
Mike Pall
93c2b939bd FFI: Fix argument checks for ffi.string(). 2013-09-08 03:09:39 +02:00
Mike Pall
a13b9206dc Load jit.util module on demand (saves 1 KB). 2013-09-08 03:01:00 +02:00
Mike Pall
d1194a82eb Low-overhead profiler, part 4: JIT compiler support. 2013-09-08 02:53:23 +02:00
Mike Pall
d3d30d389b Add notice when no samples were collected by -jp. 2013-09-08 02:50:48 +02:00
Mike Pall
f8e36535f7 Fix string.format("%#X", 1). 2013-09-03 16:11:39 +02:00
Mike Pall
f8cecffbbf Merge branch 'master' into v2.1 2013-09-03 16:02:54 +02:00
Mike Pall
b6ec7c7c86 Fix quoting in xedkbuild.bat. 2013-09-03 16:02:33 +02:00
Mike Pall
7873c8dbf7 Recent GCC versions need more memory. 2013-09-03 15:55:37 +02:00
Mike Pall
fffe75a03b Fix frame traversal for backtraces. 2013-09-03 15:53:21 +02:00
Mike Pall
eca0914d88 Add low-overhead profiler. Part 3: command line interface. 2013-09-02 01:57:56 +02:00
Mike Pall
b186fb835e Add low-overhead profiler. Part 2: low-level Lua API. 2013-09-02 01:55:20 +02:00
Mike Pall
8a9519a5f4 Add internal API to add sub-modules to package.preload. 2013-09-02 01:55:07 +02:00
Mike Pall
4dce22c40d Add low-overhead profiler. Part 1: interpreter, low-level C API. 2013-09-02 01:49:19 +02:00
Mike Pall
19c2dd17db Add common helper for pointer to string formatting. 2013-08-31 19:38:20 +02:00
Mike Pall
517500ba48 Save currently executing lua_State in g->cur_L.
This is only a good approximation due to deficiencies in the design of
the Lua/C API. It indicates _some_ valid state that is/was executing.
Also reorder L->cframe stores to achieve a synchronously consistent state.
2013-08-30 23:38:17 +02:00
Mike Pall
5120240b77 Use g->jit_base for on/off-trace detection. 2013-08-26 18:28:58 +02:00
Mike Pall
b33e96f352 Merge branch 'master' into v2.1 2013-08-22 19:29:42 +02:00
Mike Pall
a6936be814 Fix compiler warning. 2013-08-22 19:29:09 +02:00
Mike Pall
fd1a8ddb3c Fix argument checks for math.deg()/math.rad(). 2013-08-17 00:50:53 +02:00
Mike Pall
9b14426c09 Merge branch 'master' into v2.1 2013-08-11 13:52:05 +02:00
Mike Pall
362260b24a Fix jit.flush(func|true). 2013-08-11 13:47:35 +02:00
Mike Pall
f5fba48386 Merge branch 'master' into v2.1 2013-08-03 14:24:14 +02:00
Mike Pall
99d588b06a Compatibility fix for old GCC versions. 2013-08-03 14:15:17 +02:00
Mike Pall
92a3cf469c Merge branch 'master' into v2.1 2013-07-31 01:49:58 +02:00
Mike Pall
6a878b0441 ARM: Fix register allocation when rematerializing FPRs. 2013-07-31 01:48:21 +02:00
Mike Pall
96d54789ee Merge branch 'master' into v2.1 2013-07-24 23:50:58 +02:00
Mike Pall
6dc02450d3 FFI: Properly unload loaded DLLs. 2013-07-24 23:49:19 +02:00
Mike Pall
1ddf5689b5 Fix compiler warning. 2013-07-18 00:39:23 +02:00
Mike Pall
dd44018d66 Merge branch 'master' into v2.1 2013-07-17 11:06:31 +02:00
Mike Pall
9aa5d04137 Fix compilation on NetBSD/x64.
Thanks to Justin Cormack.
2013-07-17 11:04:15 +02:00
Mike Pall
146807b7e8 Merge branch 'master' into v2.1 2013-07-09 17:30:36 +02:00
Mike Pall
519ef0cba7 Add support for multilib distro builds. 2013-07-09 17:30:02 +02:00
Mike Pall
88188d52f7 Merge branch 'master' into v2.1 2013-06-20 16:33:34 +02:00
Mike Pall
053041a9f4 FFI: Add missing GC steps for callback argument conversions. 2013-06-20 16:32:45 +02:00
Mike Pall
edc7f35ab3 Merge branch 'master' into v2.1 2013-06-18 20:10:22 +02:00
Mike Pall
9211a66e0e Improve ULOAD forwarding for open upvalues. 2013-06-18 20:08:55 +02:00
Mike Pall
1fa97bef1f Merge branch 'master' into v2.1 2013-06-03 21:21:45 +02:00
Mike Pall
21af151af2 RELEASE LuaJIT-2.0.2 2013-06-03 21:16:17 +02:00
Mike Pall
e92d64a841 Merge branch 'master' into v2.1 2013-06-03 17:32:09 +02:00
Mike Pall
338e9863c2 PPC: Add plt suffix for external calls from assembler code. 2013-06-03 17:30:35 +02:00
Mike Pall
45f3ee8794 Merge branch 'master' into v2.1 2013-05-29 23:12:09 +02:00
Mike Pall
3eeb7d3aa0 FFI: Preserve intermediate string for const char * conversion.
Otherwise the trailing NUL is lost.
2013-05-29 23:05:05 +02:00
Mike Pall
c5ebfa0c67 Refactor string buffer growth helpers. 2013-05-29 20:17:26 +02:00
Mike Pall
b6882a57da Fix -jdump broken by 2ef2c34d. 2013-05-29 19:59:26 +02:00
Mike Pall
6850d795b6 Minor change to lj_lib_pushcc(). 2013-05-29 14:54:06 +02:00
Mike Pall
26e4287e60 Merge branch 'master' into v2.1 2013-05-25 10:20:46 +02:00
Mike Pall
5a261dd92c Fix compatibility issues with Illumos.
Thanks to Theo Schlossnagle.
2013-05-25 10:18:12 +02:00
Mike Pall
992f7d4b71 FFI: Refactor ffi.gc()/__gc. Compile ffi.gc(cdata, nil), too. 2013-05-24 17:44:55 +02:00
Mike Pall
4c1f9dd0f7 Merge branch 'master' into v2.1 2013-05-24 01:32:10 +02:00
Mike Pall
d686217926 Add missing PHI barrier to string.sub(str, a, b) == kstr FOLD rule. 2013-05-24 01:28:40 +02:00
Mike Pall
f1f7e40318 FFI: Compile VLA/VLS and large cdata allocs with default initialization. 2013-05-24 00:49:02 +02:00
Mike Pall
b3369f3c95 Merge branch 'master' into v2.1 2013-05-23 22:20:07 +02:00
Mike Pall
2c3e80d4fd FFI: Must sink XBAR together with XSTOREs. 2013-05-23 22:15:51 +02:00
Mike Pall
7ef2b55fc0 FFI: Fix unroll limit for ffi.fill(). 2013-05-23 22:17:45 +02:00
Mike Pall
55772e3ad9 Merge branch 'master' into v2.1 2013-05-23 19:58:35 +02:00
Mike Pall
890754ee27 FFI: Insert no-op type conversion for pointer to integer cast. 2013-05-23 19:55:09 +02:00
Mike Pall
38cfb6a1d9 Refactor lj_cdata_newv(). 2013-05-23 18:43:16 +02:00
Mike Pall
6f451c6445 Don't try to reinvent memcpy(). 2013-05-22 22:57:18 +02:00
Mike Pall
82390d1f4f Merge branch 'master' into v2.1 2013-05-18 14:14:06 +02:00
Mike Pall
1593e7750b FFI: Improve error messages for arithmetic and comparison operators. 2013-05-18 14:11:59 +02:00
Mike Pall
e2db3f697c Remove use of printf() in luajit.c. 2013-05-18 13:48:32 +02:00
Mike Pall
fe87736777 Get rid of module() in all internal modules. 2013-05-16 20:34:34 +02:00
Mike Pall
647cc4613f Merge branch 'master' into v2.1 2013-05-16 20:07:53 +02:00
Mike Pall
0f79d4741f Handle calls with max. args in backends even after SPLIT. 2013-05-16 19:59:38 +02:00
Mike Pall
a946f678d5 Merge branch 'master' into v2.1 2013-05-16 14:48:47 +02:00
Mike Pall
1c7650f782 FFI: Fix calling conventions for ARM hard-float EABI.
Properly classify nested (non-transparent) structs.
2013-05-16 14:47:20 +02:00
Mike Pall
2b94827e1d Merge branch 'master' into v2.1 2013-05-16 14:40:22 +02:00
Mike Pall
5dabdb2e70 FFI: Fix calling conventions for 32 bit OSX and iOS simulator.
OSX uses -freg-struct-return, which returns small structs in regs.
Thanks to Adriano Bertucci.
2013-05-16 14:35:00 +02:00
Mike Pall
1a5fd521b8 Add partial support for building with MingW64 GCC 4.8-SEH.
Error handling works, C++ interoperability generally works.
C++ destructors in libs compiled with G++ cause trouble (ok with MSVC).
2013-05-15 18:48:06 +02:00
Mike Pall
fd616caf26 Compile bit.tohex(). 2013-05-15 13:57:35 +02:00
Mike Pall
a86017784e Another fix for bit.tohex(). 2013-05-15 13:54:22 +02:00
Mike Pall
4c39e9ffc8 Compile string.format(). 2013-05-13 21:18:22 +02:00
Mike Pall
09ef8d1077 FFI: Load FFI library on-demand for -jdump. 2013-05-13 21:07:14 +02:00
Mike Pall
acda75ad2c Refactor CCallInfo representation for split arguments. 2013-05-13 19:49:46 +02:00
Mike Pall
23e47f2913 Fix bit.tohex() broken by 7d5acc29. 2013-05-13 19:48:23 +02:00
Mike Pall
2ef2c34d84 Adapt -jdump to unified string.format("%x", -1) behavior. 2013-05-13 19:39:34 +02:00
Mike Pall
2369f5d00a Abstract out default BUFHDR emitter. 2013-05-13 17:04:19 +02:00
Mike Pall
101780c69b Fix compiler warnings. 2013-05-13 12:13:11 +02:00
Mike Pall
cc1e3425b9 Merge branch 'master' into v2.1 2013-05-13 10:21:25 +02:00
Mike Pall
23aa02fb51 FFI: Ignore CTF_LONG in ffi.istype(). 2013-05-13 10:20:59 +02:00
Mike Pall
8f90a1279e Big renaming of string buffer/formatting/conversion functions. 2013-05-13 10:15:07 +02:00
Mike Pall
625ffca739 Refactor raw object to pointer or string conversions. 2013-05-13 01:23:33 +02:00
Mike Pall
19a9206caf Refactor internal string formatting. 2013-05-12 23:52:09 +02:00
Mike Pall
7d5acc2918 Refactor bit.tohex(). 2013-05-12 23:14:12 +02:00
Mike Pall
5bb1f0edac Refactor string.format(). 2013-05-12 23:13:27 +02:00
Mike Pall
bb2cc1dcaf Merge branch 'master' into v2.1 2013-05-08 11:10:46 +02:00
Mike Pall
71ce1e8706 Merge branch 'master' into v2.1 2013-05-08 11:06:45 +02:00
Mike Pall
b030788401 Fix optional argument handling in table.concat(). 2013-05-08 11:05:43 +02:00
Mike Pall
c5d7666ec8 Fix optional argument handling while recording builtins. 2013-05-08 10:46:43 +02:00
Mike Pall
87b560b3e1 Compile string.find() for fixed string searches (no patterns). 2013-05-08 10:40:22 +02:00
Mike Pall
43de451d78 Partially refactor string.find(). 2013-05-07 20:44:58 +02:00
Mike Pall
2be1c2658f Merge branch 'master' into v2.1 2013-05-02 02:07:38 +02:00
Mike Pall
5d6db413ae FFI: Fix tailcall in lowest frame to C function with bool result. 2013-05-02 02:04:41 +02:00
Mike Pall
633d91cea5 Merge branch 'master' into v2.1 2013-04-29 14:29:11 +02:00
Mike Pall
09aeca6abf Fix builtin string to number conversion for overflow digits. 2013-04-29 14:28:10 +02:00
Mike Pall
87993a601d Inhibit CSE for table.concat(). 2013-04-28 11:31:41 +02:00
Mike Pall
4ac25a9132 Compile __concat metamethod. 2013-04-28 01:51:41 +02:00
Mike Pall
8b3a320089 Fix BC_ISTYPE for WIN64 calling conventions. 2013-04-28 01:49:28 +02:00
Mike Pall
c77680824f Compile table.concat(). 2013-04-27 15:52:32 +02:00
Mike Pall
64d2883ab4 Refactor table.concat(). 2013-04-27 15:51:50 +02:00
Mike Pall
723574d08c Optimize BUFHDR code generation.
Rematerialize const buffer pointer instead of spilling.
2013-04-27 00:17:59 +02:00
Mike Pall
068783bf23 Compile string.rep(). 2013-04-26 22:55:24 +02:00
Mike Pall
9b8db403f2 Refactor string.rep(). 2013-04-26 19:57:25 +02:00
Mike Pall
a98e6a70c1 Abstract out some common buffer operations. 2013-04-26 19:20:21 +02:00
Mike Pall
f9421f2b9f Replace string.len with bytecode builtin. 2013-04-26 18:40:39 +02:00
Mike Pall
47fa9a8d8f Change semantics of buffer ops to simplify CSE and DCE. 2013-04-26 13:47:41 +02:00
Mike Pall
5fd659f859 Fix MSVC build. 2013-04-26 10:38:24 +02:00
Mike Pall
bdaf14b2c1 Merge branch 'master' into v2.1 2013-04-26 00:59:35 +02:00
Mike Pall
895a8bc91f Tighten requirements for non-default optimization flags.
FOLD is required for FWD/DSE optimizations.
2013-04-26 00:54:53 +02:00
Mike Pall
b6adfff8f4 Compile string.reverse(), string.lower(), string.upper(). 2013-04-26 00:32:08 +02:00
Mike Pall
61cb25b0ca Refactor string.reverse(), string.lower(), string.upper(). 2013-04-26 00:31:10 +02:00
Mike Pall
eeb204cd87 Fix FOLD rules for appending to string buffers. 2013-04-26 00:26:44 +02:00
Mike Pall
7c28448730 Fix os.date() broken by d38d10a3. 2013-04-24 11:24:34 +02:00
Mike Pall
39e53e8c4c Compile string.char(). 2013-04-23 12:40:07 +02:00
Mike Pall
255326afb6 Use explicit conversion type for IR_TOSTR. Add char conversion. 2013-04-23 02:20:03 +02:00
Mike Pall
557391c3b7 Fuse string creation into concats. Optimize single-char concats. 2013-04-23 00:56:03 +02:00
Mike Pall
2cdf90f068 Always emit TOSTR for non-string CAT operands. Fuse in backend. 2013-04-23 00:10:01 +02:00
Mike Pall
1ae3e5204b Fix PHI barrier in BUFPUT FOLD rule. 2013-04-22 22:37:22 +02:00
Mike Pall
a2c78810ca Combine IR instruction dispatch for all assembler backends. 2013-04-22 22:32:41 +02:00
Mike Pall
2ab5e7c5dc Merge branch 'master' into v2.1 2013-04-22 22:30:33 +02:00
Mike Pall
611ec41bca Fix compiler warning. 2013-04-22 22:27:23 +02:00
Mike Pall
2cd4ce6141 Use same HREF+EQ/NE optimization in all assembler backends. 2013-04-22 20:47:39 +02:00
Mike Pall
988e183965 Reorganize generic operations common to all assembler backends. 2013-04-22 17:34:36 +02:00
Mike Pall
5f1781a127 Compile string concatenations (BC_CAT). 2013-04-21 01:01:33 +02:00
Mike Pall
7b629b7bcf Move buffer shrinking to atomic GC phase. 2013-04-21 01:00:01 +02:00
Mike Pall
9ead735159 Add generic load/store with offset to assembler backends. 2013-04-21 00:58:32 +02:00
Mike Pall
e92e29dd4e Merge branch 'master' into v2.1 2013-04-09 16:35:02 +02:00
Mike Pall
f17b038828 Inhibit DSE for implicit loads via calls. 2013-04-09 11:50:33 +02:00
Mike Pall
48912a2dea Merge branch 'master' into v2.1 2013-04-05 20:24:24 +02:00
Mike Pall
b5bbacdc17 Fix jump-range constrained mcode allocation. 2013-04-05 20:22:41 +02:00
Mike Pall
ac14d88030 Merge branch 'master' into v2.1 2013-04-04 18:20:58 +02:00
Mike Pall
389822d606 Fix spurious red zone overflows in machine code generation. 2013-04-04 17:19:31 +02:00
Mike Pall
6ba65cefb0 FFI/x86: Fix register allocation for 64 bit comparisons. 2013-04-04 17:05:00 +02:00
Mike Pall
df94b81b2d Tune string concatenation. 2013-03-25 17:13:08 +01:00
Mike Pall
59329cfbbf Optimize and refactor printing of numbers to buffers. 2013-03-25 16:41:13 +01:00
Mike Pall
3b0b3afbb1 Merge branch 'master' into v2.1 2013-03-23 14:55:35 +01:00
Mike Pall
172bd95365 FFI: Fix snapshot substitution in SPLIT pass. 2013-03-23 14:51:23 +01:00
Mike Pall
f1dbd65c0e Use string buffer for string.format(). 2013-03-21 22:17:59 +01:00
Mike Pall
fecde1b222 Use string buffer for string.dump(). 2013-03-20 16:56:09 +01:00
Mike Pall
d38d10a3dd Use string buffer for os.date(). 2013-03-20 16:54:30 +01:00
Mike Pall
deb61e0be0 Use string buffer for table.concat(). 2013-03-20 16:51:36 +01:00
Mike Pall
d1645c88a1 Clean up TValue to buffer conversions. 2013-03-18 17:08:37 +01:00
Mike Pall
a98aede377 FFI: Add 64 bit bitwise operations. 2013-03-14 06:03:18 +01:00
Mike Pall
3e8f5ac718 Merge branch 'master' into v2.1 2013-03-13 21:59:40 +01:00
Mike Pall
eea48c8b26 Fix rotate definitions for variable shifts. 2013-03-13 21:58:53 +01:00
Mike Pall
7950894d70 ARM: Rearrange global_State to satisfy imm12 encoding constraints. 2013-03-13 17:12:23 +01:00
Mike Pall
b2edd5cf28 Merge branch 'master' into v2.1 2013-03-04 13:34:01 +01:00
Mike Pall
dac2825e9d Add missing GC steps for io.* functions. 2013-03-03 21:18:22 +01:00
Mike Pall
b65196b7fd Merge branch 'master' into v2.1 2013-02-28 17:53:45 +01:00
Mike Pall
78c97bc5a1 MIPS: Fix cache flush/sync for JIT-compiled code jump area. 2013-02-28 17:52:31 +01:00
Mike Pall
3e286c1e72 ARM: Fix cache flush/sync for exit stubs of JIT-compiled code. 2013-02-28 17:51:16 +01:00
Mike Pall
9ec869b362 String buffer refactoring, part 4.
Add lua_State pointer to SBuf for buffer resizing.
2013-02-28 13:43:37 +01:00
Mike Pall
3c0157f426 String buffer refactoring, part 3.
Switch to pointers for start/end of buffer in lexer.
2013-02-28 02:31:30 +01:00
Mike Pall
87c51e7f57 Cleanup lexer source code. 2013-02-28 01:11:49 +01:00
Mike Pall
116cdd7e9a String buffer refactoring, part 2.
Switch to pointers for start/pos/end of buffer.
Abstract out some buffer writers.
2013-02-27 21:28:28 +01:00
Mike Pall
28cfcf7744 String buffer refactoring, part 1.
Move string buffer handling to lj_buf.*.
Use common buffer resizing function.
2013-02-27 17:29:35 +01:00
Mike Pall
d44337a566 Merge branch 'master' into v2.1 2013-02-26 18:31:12 +01:00
Mike Pall
cea899b61a Allow changing *.dll/*.lib name in msvcbuild.bat. 2013-02-26 18:31:01 +01:00
Mike Pall
5e601891fc Replace table.remove with bytecode builtin. 2013-02-24 17:59:04 +01:00
Mike Pall
b8abb4b91d Fix genlibbc. 2013-02-24 17:58:19 +01:00
Mike Pall
41f3ae26d9 Merge branch 'master' into v2.1 2013-02-24 12:43:15 +01:00
Mike Pall
9b7d2e9276 Properly fix MSVC intrinsics for older versions. 2013-02-24 12:41:53 +01:00
Mike Pall
60e380fd93 Replace table.getn/foreach/foreachi with bytecode builtins. 2013-02-23 02:17:50 +01:00