Commit Graph

1850 Commits

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