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
63465fe71d
LJ_GC64: Fix jit.on/off.
2016-10-08 11:30:01 +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
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
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
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
b5d741fa7e
Add trace stitching.
2013-12-25 02:55:25 +01:00
Mike Pall
eec06a0e3b
Fix profiler/hook interaction.
2013-09-18 15:27:28 +02:00
Mike Pall
b30a789ab8
Protect g->hookmask with lock when using profiler thread.
2013-09-16 11:23:10 +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
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
8f90a1279e
Big renaming of string buffer/formatting/conversion functions.
2013-05-13 10:15:07 +02:00
Mike Pall
61cb25b0ca
Refactor string.reverse(), string.lower(), string.upper().
2013-04-26 00:31:10 +02:00
Mike Pall
4a44c4ff69
Bump copyright date to 2013.
2013-02-11 12:54:48 +01:00
Mike Pall
039bf85e26
Add more assertions for stack consistency during recording.
2012-09-12 11:02:19 +02:00
Mike Pall
bf2d4acf00
Correct dispatch table modifications for return hooks.
2012-07-16 22:36:38 +02:00
Mike Pall
10ef109eef
Bump copyright date to 2012.
2012-01-23 22:42:42 +01:00
Mike Pall
5bed11e6b4
MIPS: Add interpreter. Enable MIPS build rules.
2012-01-23 22:24:11 +01:00
Mike Pall
bed0f18466
Remove temporary mcode limit error from application stack.
2011-08-09 00:45:26 +02:00
Mike Pall
82eca898db
Prefer recording loops over calls.
...
Hotcounts are decremented by 2 for loops and by 1 for calls.
2011-06-29 01:52:23 +02:00
Mike Pall
b6a7fc5330
Cleanup prototype flags.
2011-06-09 13:54:40 +02:00
Mike Pall
585cf05dbd
Move debugging/introspection functionality to lj_debug.c.
2011-06-07 21:37:24 +02:00
Mike Pall
67d3ac9b19
Fix some portability issues with the JIT compiler.
2011-05-09 20:46:58 +02:00
Mike Pall
77ba7726e2
FFI: Save errno/GetLastError() around allocations, hooks etc.
2011-05-08 22:33:04 +02:00
Mike Pall
03946ac978
DUALNUM: Add integer type to core VM.
2011-02-17 00:44:14 +01:00
Mike Pall
06f99fc3df
Bump copyright date to 2011.
2011-01-09 17:12:53 +01:00
Mike Pall
d0b283e596
Avoid stack resizes while recording calls to vararg functions.
...
FUNCV might have been recorded twice (with ill effects).
2010-12-08 19:11:58 +01:00
Mike Pall
8a87395d8d
PPC: Add support for shifted MULTRES.
2010-09-13 21:50:27 +02:00
Mike Pall
c2c08ba9b3
Record calls to vararg functions.
...
This loop is now roughly 1000x faster than the Lua interpreter:
local function f(a,b,...) end; for i=1,2e8 do f(1,2,i) end
Yet another silly microbenchmark -- I know.
2010-09-12 01:44:13 +02:00
Mike Pall
96957a4551
Turn some lua_State fields into 32 bit pointers.
...
lua_State now fits into one cache line on x64.
2010-09-09 12:28:17 +02:00
Mike Pall
44de7eb48c
Keep framesize in RA of FUNCC/FUNCCW instructions, too
2010-08-06 19:43:55 +02:00
Mike Pall
721b73fecb
Turn traces into true GC objects (GCtrace).
2010-04-25 03:32:29 +02:00
Mike Pall
4f19a15bd9
Fix potential hang in UCLO redirection handling in hooks.
2010-03-10 22:13:23 +01:00
Mike Pall
e7b737aa12
Implement down-recursion.
2010-03-01 06:45:30 +01:00
Mike Pall
59f54be9d3
Update trace recorder infrastructure for hot calls.
2010-02-18 06:07:31 +01:00
Mike Pall
8060f5b531
Just disable JIT compiler for non-SSE2 CPUs instead of aborting.
2010-02-16 23:39:24 +01:00
Mike Pall
c225ee8db4
Split CALL/FUNC recording.
...
Record __call resolving and specialization for CALL* bytecodes.
Record argument adjustment and fast functions for FUNC* bytecodes.
Avoids all pending/immediate decisions for chained fast functions.
Cleaner semantics for pcall(), xpcall() and __tostring metamethod.
Prerequisite to drop the shadow frame link stack again.
2010-02-16 04:04:16 +01:00
Mike Pall
e1905f498a
Use a different marker for hot calls.
2010-02-15 18:04:06 +01:00
Mike Pall
b838cd8dca
Minor cleanup of trace event handling.
2010-02-15 16:41:52 +01:00
Mike Pall
2a2f8ed6a1
Implement return hooks for Lua functions (zero-cost if disabled).
2010-02-14 20:48:33 +01:00
Mike Pall
8e38231f9e
Implement call hooks (zero-cost if disabled).
2010-02-14 17:47:03 +01:00
Mike Pall
c93138b59e
Major redesign of function call handling.
...
Drop call gates. Use function headers, dispatched like bytecodes.
Emit BC_FUNCF/BC_FUNCV bytecode at PC 0 for all Lua functions.
C functions and ASM fast functions get extra bytecodes.
Modify internal calling convention: new base in BASE (formerly in RA).
Can now use better C function wrapper semantics (dynamic on/off).
Prerequisite for call hooks with zero-overhead if disabled.
Prerequisite for compiling recursive calls.
Prerequisite for efficient 32/64 bit prototype guards.
2010-02-13 04:51:56 +01:00
Mike Pall
b2067236c5
Move dispatch tables out of GG_State struct.
2010-02-11 16:21:18 +01:00
Mike Pall
6194b1c896
Redesign of prototype generation, part 5: colocation of protoype arrays.
2010-02-08 05:30:57 +01:00
Mike Pall
c4dadf1d67
Move bytecode offsets from lj_vm.* to generated header.
2010-02-05 20:15:01 +01:00