Commit Graph

1906 Commits

Author SHA1 Message Date
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