Commit Graph

61 Commits

Author SHA1 Message Date
Mike Pall
0eddcbead2 Cleanup CPU detection and tuning for old CPUs. 2020-05-20 20:42:04 +02:00
Mike Pall
87b111f0fe Merge branch 'master' into v2.1 2020-01-20 23:34:21 +01:00
Mike Pall
38a5ed4b43 Bump copyright date. 2020-01-20 23:26:51 +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
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