Michael Munday
d50f8aa92b
Add preliminary frame offsets.
...
These are educated guesses at this point. We might need more stack space because
we don't have many free registers available.
2016-11-22 13:36:46 -05:00
Mike Pall
01e4754962
Properly clean up state before restart of trace assembly.
2016-06-27 15:46:09 +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
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
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
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
1931b38da5
LJ_GC64: Introduce IRT_PGC.
...
Contributed by Peter Cawley.
2016-05-20 22:41:42 +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
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
825dcdc4d1
Generalize LJ_SOFTFP dependencies in lj_asm.c.
2016-02-09 17:29:23 +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
054e6abe37
Add LJ_FR2 mode: Two-slot frame info.
2015-01-03 15:04:38 +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
ad03eba715
x86/x64: Drop internal x87 math functions. Use libm functions.
2014-12-08 02:02:34 +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
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
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
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
c1328e9795
x86: Fix stack slot counting for IR_CALLA (affects table.new).
2013-12-26 11:03:25 +01:00
Mike Pall
e6e760ca9f
Compile getfenv(0).
2013-10-09 20:34:40 +02:00
Mike Pall
c8cfca0557
Add table.new().
2013-10-09 17:02:01 +02:00
Mike Pall
d1194a82eb
Low-overhead profiler, part 4: JIT compiler support.
2013-09-08 02:53:23 +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
f1f7e40318
FFI: Compile VLA/VLS and large cdata allocs with default initialization.
2013-05-24 00:49:02 +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
acda75ad2c
Refactor CCallInfo representation for split arguments.
2013-05-13 19:49:46 +02:00
Mike Pall
8f90a1279e
Big renaming of string buffer/formatting/conversion functions.
2013-05-13 10:15:07 +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
47fa9a8d8f
Change semantics of buffer ops to simplify CSE and DCE.
2013-04-26 13:47:41 +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
a2c78810ca
Combine IR instruction dispatch for all assembler backends.
2013-04-22 22:32:41 +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
9ead735159
Add generic load/store with offset to assembler backends.
2013-04-21 00:58:32 +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
57768cd588
x86: Remove x87 support from interpreter.
...
SSE2 required from now on.
2013-02-21 16:56:59 +01:00
Mike Pall
4a44c4ff69
Bump copyright date to 2013.
2013-02-11 12:54:48 +01:00