]> git.ipfire.org Git - thirdparty/LuaJIT.git/log
thirdparty/LuaJIT.git
15 years agoFix some compiler warnings.
Mike Pall [Tue, 3 Aug 2010 21:11:12 +0000 (23:11 +0200)] 
Fix some compiler warnings.

15 years agoCleanup library function caching in dasm_x86.lua.
Mike Pall [Tue, 3 Aug 2010 20:32:43 +0000 (22:32 +0200)] 
Cleanup library function caching in dasm_x86.lua.

15 years agoRemove bogus global in -jdump.
Mike Pall [Tue, 3 Aug 2010 20:14:14 +0000 (22:14 +0200)] 
Remove bogus global in -jdump.

15 years agoUntangle some target dependencies.
Mike Pall [Tue, 3 Aug 2010 20:09:12 +0000 (22:09 +0200)] 
Untangle some target dependencies.

15 years agoUse FuncState typedef in favor of struct.
Mike Pall [Tue, 3 Aug 2010 20:08:08 +0000 (22:08 +0200)] 
Use FuncState typedef in favor of struct.

15 years agoSpeed up string compares in string interning.
Mike Pall [Wed, 21 Jul 2010 21:55:05 +0000 (23:55 +0200)] 
Speed up string compares in string interning.

15 years agoSwitch to fast string hash.
Mike Pall [Wed, 21 Jul 2010 20:53:27 +0000 (22:53 +0200)] 
Switch to fast string hash.

15 years agoAbstract out pointer hash to hashrot(). Tune hash constants.
Mike Pall [Wed, 21 Jul 2010 19:42:40 +0000 (21:42 +0200)] 
Abstract out pointer hash to hashrot(). Tune hash constants.

15 years agoUse independent hash for VM event dispatch.
Mike Pall [Wed, 21 Jul 2010 19:23:45 +0000 (21:23 +0200)] 
Use independent hash for VM event dispatch.

15 years agoFix arg check for two-arg SSE math functions in interpreter.
Mike Pall [Wed, 14 Jul 2010 12:11:48 +0000 (14:11 +0200)] 
Fix arg check for two-arg SSE math functions in interpreter.

15 years agoFix passing of constant args in FPRs on x64.
Mike Pall [Wed, 14 Jul 2010 11:04:29 +0000 (13:04 +0200)] 
Fix passing of constant args in FPRs on x64.

15 years agoRechain pseudo-resurrected string keys with colliding hashes.
Mike Pall [Sun, 4 Jul 2010 21:07:21 +0000 (23:07 +0200)] 
Rechain pseudo-resurrected string keys with colliding hashes.

15 years agoDo not eliminate PHIs for values only referenced from side exits.
Mike Pall [Wed, 30 Jun 2010 21:30:08 +0000 (23:30 +0200)] 
Do not eliminate PHIs for values only referenced from side exits.

15 years agoFix frame setup for error handling in next().
Mike Pall [Mon, 28 Jun 2010 16:07:34 +0000 (18:07 +0200)] 
Fix frame setup for error handling in next().

15 years agoFallback to metamethod resolving for tostring in print().
Mike Pall [Wed, 16 Jun 2010 17:43:07 +0000 (19:43 +0200)] 
Fallback to metamethod resolving for tostring in print().

15 years agoFix string.char() range check on x64.
Mike Pall [Sun, 30 May 2010 10:29:55 +0000 (12:29 +0200)] 
Fix string.char() range check on x64.

15 years agoCanonicalize string conversion of nan, inf, -inf.
Mike Pall [Wed, 19 May 2010 22:40:51 +0000 (00:40 +0200)] 
Canonicalize string conversion of nan, inf, -inf.

15 years agoFix handling of failed fp:read(..., "*n").
Mike Pall [Sat, 15 May 2010 16:10:41 +0000 (18:10 +0200)] 
Fix handling of failed fp:read(..., "*n").

15 years agoAvoid name clash with standard POSIX function.
Mike Pall [Sun, 9 May 2010 20:47:09 +0000 (22:47 +0200)] 
Avoid name clash with standard POSIX function.

15 years agoAvoid string allocation in GDB JIT API.
Mike Pall [Sun, 9 May 2010 01:27:24 +0000 (03:27 +0200)] 
Avoid string allocation in GDB JIT API.

15 years agoAdd weak guards. Emit TNEW/TDUP with a guard bit.
Mike Pall [Sat, 8 May 2010 16:59:59 +0000 (18:59 +0200)] 
Add weak guards. Emit TNEW/TDUP with a guard bit.

15 years agoCreate symbol table of JIT-compiled code for use with Linux perf tools.
Mike Pall [Sat, 1 May 2010 02:27:14 +0000 (04:27 +0200)] 
Create symbol table of JIT-compiled code for use with Linux perf tools.

Enable with: -DLUAJIT_USE_PERFTOOLS

15 years agoFix PHI elimination: mark right PHI as used, too.
Mike Pall [Wed, 28 Apr 2010 20:00:40 +0000 (22:00 +0200)] 
Fix PHI elimination: mark right PHI as used, too.

15 years agoTurn TValue setter macros into inline functions.
Mike Pall [Sun, 25 Apr 2010 22:28:44 +0000 (00:28 +0200)] 
Turn TValue setter macros into inline functions.

15 years agoTreat the tag of a TValue as unsigned everywhere.
Mike Pall [Sun, 25 Apr 2010 21:21:15 +0000 (23:21 +0200)] 
Treat the tag of a TValue as unsigned everywhere.

15 years agoAvoid starting a GC cycle immediately after library init.
Mike Pall [Sun, 25 Apr 2010 17:45:54 +0000 (19:45 +0200)] 
Avoid starting a GC cycle immediately after library init.

15 years agoFix TNEW in x64 interpreter. Do not force a full GC (ouch).
Mike Pall [Sun, 25 Apr 2010 17:33:39 +0000 (19:33 +0200)] 
Fix TNEW in x64 interpreter. Do not force a full GC (ouch).

15 years agoMake metamethod names proper GC roots.
Mike Pall [Sun, 25 Apr 2010 16:35:47 +0000 (18:35 +0200)] 
Make metamethod names proper GC roots.

15 years agoReorganize and fix placement of generated machine code on x64.
Mike Pall [Sun, 25 Apr 2010 12:52:29 +0000 (14:52 +0200)] 
Reorganize and fix placement of generated machine code on x64.

15 years agoSimplify management of current trace. Drop lazy save.
Mike Pall [Sun, 25 Apr 2010 11:53:33 +0000 (13:53 +0200)] 
Simplify management of current trace. Drop lazy save.

15 years agoTurn traces into true GC objects (GCtrace).
Mike Pall [Sun, 25 Apr 2010 01:32:29 +0000 (03:32 +0200)] 
Turn traces into true GC objects (GCtrace).

15 years agoSimplify lexer a bit.
Mike Pall [Sat, 24 Apr 2010 18:23:02 +0000 (20:23 +0200)] 
Simplify lexer a bit.

15 years agoAdd assertions to guard against using lua_*call on dead coroutines.
Mike Pall [Fri, 23 Apr 2010 15:42:25 +0000 (17:42 +0200)] 
Add assertions to guard against using lua_*call on dead coroutines.

15 years agoAvoid compiler warning.
Mike Pall [Fri, 23 Apr 2010 13:38:08 +0000 (15:38 +0200)] 
Avoid compiler warning.

15 years agoNo longer let the GC replace dead keys with the LJ_TDEADKEY tag.
Mike Pall [Tue, 20 Apr 2010 23:45:58 +0000 (01:45 +0200)] 
No longer let the GC replace dead keys with the LJ_TDEADKEY tag.

Important: this changes the semantics of the write barrier!
Carefully read the big comment block in lj_obj.h
This helps HREFK key slot specialization and allows safely hoisting
HREF/HREFK across GC steps, too (fix for a barely reproducible bug).
Dead keys are only removed during a table resize (as before).

15 years agoSimplify GC step calls from on-trace code.
Mike Pall [Mon, 19 Apr 2010 21:41:48 +0000 (23:41 +0200)] 
Simplify GC step calls from on-trace code.

15 years agoReplace on-trace GC frame syncing with interpreter exit.
Mike Pall [Sun, 18 Apr 2010 11:41:30 +0000 (13:41 +0200)] 
Replace on-trace GC frame syncing with interpreter exit.

Need to sync GC objects to stack only during atomic GC phase.
Need to setup a proper frame structure only for calling finalizers.
Force an exit to the interpreter and let it handle the uncommon cases.
Finally solves the "NYI: gcstep sync with frames" issue.

15 years agoRefactor buildvm symbol generation.
Mike Pall [Wed, 14 Apr 2010 15:13:13 +0000 (17:13 +0200)] 
Refactor buildvm symbol generation.

Fixes Windows and OSX builds with LUAJIT_DISABLE_JIT.

15 years agoFix setup of RD when dispatching to function headers after exit.
Mike Pall [Fri, 9 Apr 2010 12:26:18 +0000 (14:26 +0200)] 
Fix setup of RD when dispatching to function headers after exit.

15 years agoDon't copy SNAP_NORESTORE mark into loops and suppress restore in exit.
Mike Pall [Wed, 7 Apr 2010 23:28:51 +0000 (01:28 +0200)] 
Don't copy SNAP_NORESTORE mark into loops and suppress restore in exit.

15 years agoRELEASE LuaJIT-2.0.0-beta4 v2.0.0-beta4
Mike Pall [Sun, 28 Mar 2010 17:26:33 +0000 (19:26 +0200)] 
RELEASE LuaJIT-2.0.0-beta4

15 years agoUpdate changelog.
Mike Pall [Sun, 28 Mar 2010 16:31:36 +0000 (18:31 +0200)] 
Update changelog.

15 years agoFold HREF of TNEW/TDUP to niltv. Fold HLOAD of niltv to nil.
Mike Pall [Sun, 28 Mar 2010 04:50:39 +0000 (06:50 +0200)] 
Fold HREF of TNEW/TDUP to niltv. Fold HLOAD of niltv to nil.

15 years agoGenerate EQ(HREF, niltv) for load path, too (better CSE).
Mike Pall [Sun, 28 Mar 2010 04:49:09 +0000 (06:49 +0200)] 
Generate EQ(HREF, niltv) for load path, too (better CSE).

15 years agoAlso merge EQ(HREF, niltv) in backend.
Mike Pall [Sun, 28 Mar 2010 04:47:04 +0000 (06:47 +0200)] 
Also merge EQ(HREF, niltv) in backend.

15 years agoOnly fuse with spill slots for cross-section references.
Mike Pall [Sun, 28 Mar 2010 04:42:48 +0000 (06:42 +0200)] 
Only fuse with spill slots for cross-section references.

15 years agoFix precondition check for NEWREF.
Mike Pall [Sun, 28 Mar 2010 01:34:18 +0000 (03:34 +0200)] 
Fix precondition check for NEWREF.

A check for nil value is not enough. Must check for ptr == niltv.

15 years agoPass MULTRES or negated error code in RD to lj_vm_exit_interp.
Mike Pall [Tue, 23 Mar 2010 17:31:17 +0000 (18:31 +0100)] 
Pass MULTRES or negated error code in RD to lj_vm_exit_interp.

Fixes overwrite of saved r12 after trace exit.

15 years agoMove colocated array part after GCtab (now properly aligned).
Mike Pall [Mon, 22 Mar 2010 14:59:50 +0000 (15:59 +0100)] 
Move colocated array part after GCtab (now properly aligned).

15 years agoMove free node pos to t->node[0].freetop. Saves 4 bytes in GCtab.
Mike Pall [Mon, 22 Mar 2010 14:05:37 +0000 (15:05 +0100)] 
Move free node pos to t->node[0].freetop. Saves 4 bytes in GCtab.

15 years agoAvoid snapshots for returns to known callers.
Mike Pall [Sun, 21 Mar 2010 15:01:44 +0000 (16:01 +0100)] 
Avoid snapshots for returns to known callers.

15 years agoAdd links to interactive performance comparison to offline docs.
Mike Pall [Fri, 19 Mar 2010 20:01:14 +0000 (21:01 +0100)] 
Add links to interactive performance comparison to offline docs.

15 years agoIncrease max. fusion distance.
Mike Pall [Thu, 18 Mar 2010 23:28:04 +0000 (00:28 +0100)] 
Increase max. fusion distance.

15 years agoReorder various structs to reduce padding (thanks to /usr/bin/pahole).
Mike Pall [Mon, 15 Mar 2010 22:29:10 +0000 (23:29 +0100)] 
Reorder various structs to reduce padding (thanks to /usr/bin/pahole).

15 years agoFix TSETM on x64/SSE builds when table is resized.
Mike Pall [Mon, 15 Mar 2010 18:00:16 +0000 (19:00 +0100)] 
Fix TSETM on x64/SSE builds when table is resized.

15 years agoAdd static target to msvcbuild.bat.
Mike Pall [Mon, 15 Mar 2010 17:50:59 +0000 (18:50 +0100)] 
Add static target to msvcbuild.bat.

15 years agoUpdate changelog.
Mike Pall [Mon, 15 Mar 2010 16:20:08 +0000 (17:20 +0100)] 
Update changelog.

15 years agoAdd array bounds check elimination (-Oabc, on by default).
Mike Pall [Mon, 15 Mar 2010 16:02:53 +0000 (17:02 +0100)] 
Add array bounds check elimination (-Oabc, on by default).

15 years agoReorganize scalar evolution analysis.
Mike Pall [Mon, 15 Mar 2010 15:23:02 +0000 (16:23 +0100)] 
Reorganize scalar evolution analysis.

15 years agoFix folding of (comparison x x).
Mike Pall [Sun, 14 Mar 2010 16:10:47 +0000 (17:10 +0100)] 
Fix folding of (comparison x x).

15 years agoRestore MULTRES for snapshots pointing to CALLM etc. bytecodes.
Mike Pall [Sat, 13 Mar 2010 16:45:09 +0000 (17:45 +0100)] 
Restore MULTRES for snapshots pointing to CALLM etc. bytecodes.

15 years agoFix potential hang in UCLO redirection handling in hooks.
Mike Pall [Wed, 10 Mar 2010 21:13:23 +0000 (22:13 +0100)] 
Fix potential hang in UCLO redirection handling in hooks.

15 years agoFix handling of bad argument types in recorder.
Mike Pall [Tue, 9 Mar 2010 18:03:43 +0000 (19:03 +0100)] 
Fix handling of bad argument types in recorder.

15 years agoFix recording of getmetatable() for non-tables.
Mike Pall [Tue, 9 Mar 2010 16:49:13 +0000 (17:49 +0100)] 
Fix recording of getmetatable() for non-tables.

15 years agoAvoid tracing the nil return case of tonumber().
Mike Pall [Tue, 9 Mar 2010 02:47:49 +0000 (03:47 +0100)] 
Avoid tracing the nil return case of tonumber().

15 years agoAdd WinSDK v7.0 requirement for building on Windows/x64.
Mike Pall [Tue, 9 Mar 2010 01:45:47 +0000 (02:45 +0100)] 
Add WinSDK v7.0 requirement for building on Windows/x64.

15 years agoDo not fuse SLOAD across RETF.
Mike Pall [Mon, 8 Mar 2010 22:43:16 +0000 (23:43 +0100)] 
Do not fuse SLOAD across RETF.

15 years agoRELEASE LuaJIT-2.0.0-beta3 v2.0.0-beta3
Mike Pall [Sun, 7 Mar 2010 18:30:21 +0000 (19:30 +0100)] 
RELEASE LuaJIT-2.0.0-beta3

15 years agoFix tracebacks for failed coroutines.
Mike Pall [Sun, 7 Mar 2010 17:21:14 +0000 (18:21 +0100)] 
Fix tracebacks for failed coroutines.

15 years agoAdd OS/CPU/CC compatibility matrix to docs. Fix spelling.
Mike Pall [Sun, 7 Mar 2010 16:12:21 +0000 (17:12 +0100)] 
Add OS/CPU/CC compatibility matrix to docs. Fix spelling.

15 years agoRebase dynamic library on OSX/x64.
Mike Pall [Sun, 7 Mar 2010 14:04:42 +0000 (15:04 +0100)] 
Rebase dynamic library on OSX/x64.

15 years agoImprove placement of dynamically generated code on x64.
Mike Pall [Sun, 7 Mar 2010 13:33:52 +0000 (14:33 +0100)] 
Improve placement of dynamically generated code on x64.

15 years agoFix assertion in rec_check_slots.
Mike Pall [Sun, 7 Mar 2010 13:32:50 +0000 (14:32 +0100)] 
Fix assertion in rec_check_slots.

15 years agoGenerate indirect calls for out-of-range distances on x64.
Mike Pall [Sun, 7 Mar 2010 13:31:51 +0000 (14:31 +0100)] 
Generate indirect calls for out-of-range distances on x64.

15 years agoFix unwind info for assembler part for OSX.
Mike Pall [Sun, 7 Mar 2010 13:29:04 +0000 (14:29 +0100)] 
Fix unwind info for assembler part for OSX.

15 years agoFix disassembly of call/jmp ModRM.
Mike Pall [Sun, 7 Mar 2010 13:28:05 +0000 (14:28 +0100)] 
Fix disassembly of call/jmp ModRM.

15 years agoFix generated 64 bit Mach-O assembler output.
Mike Pall [Fri, 5 Mar 2010 02:21:52 +0000 (03:21 +0100)] 
Fix generated 64 bit Mach-O assembler output.

15 years agoDocument jit.status().
Mike Pall [Thu, 4 Mar 2010 19:46:07 +0000 (20:46 +0100)] 
Document jit.status().

15 years agoUpdate docs: native build default, cross-compilation, embedding.
Mike Pall [Thu, 4 Mar 2010 18:07:38 +0000 (19:07 +0100)] 
Update docs: native build default, cross-compilation, embedding.

15 years agoAllocate 32 bit memory on OSX/x64 with mmap() hinting.
Mike Pall [Thu, 4 Mar 2010 15:27:42 +0000 (16:27 +0100)] 
Allocate 32 bit memory on OSX/x64 with mmap() hinting.

Must set -pagezero_size, otherwise the lower 4GB are blocked.

15 years agoBuild as a native 32 or 64 bit binary by default.
Mike Pall [Thu, 4 Mar 2010 15:23:28 +0000 (16:23 +0100)] 
Build as a native 32 or 64 bit binary by default.

15 years agoImprove performance of HREF/HREFK on x64.
Mike Pall [Wed, 3 Mar 2010 03:26:31 +0000 (04:26 +0100)] 
Improve performance of HREF/HREFK on x64.

15 years agoFix 64 bit conversion warning.
Mike Pall [Wed, 3 Mar 2010 03:25:48 +0000 (04:25 +0100)] 
Fix 64 bit conversion warning.

15 years agoImprove register allocation on x64.
Mike Pall [Tue, 2 Mar 2010 22:34:13 +0000 (23:34 +0100)] 
Improve register allocation on x64.

15 years agoFix comments about 64 bit FreeBSD mmap() behavior.
Mike Pall [Tue, 2 Mar 2010 20:53:59 +0000 (21:53 +0100)] 
Fix comments about 64 bit FreeBSD mmap() behavior.

15 years agoAdd compile errors for 64 bit OS without an equivalent of MAP_32BIT.
Mike Pall [Tue, 2 Mar 2010 18:41:56 +0000 (19:41 +0100)] 
Add compile errors for 64 bit OS without an equivalent of MAP_32BIT.

15 years agoAdd support for recursion to changelog.
Mike Pall [Tue, 2 Mar 2010 04:55:23 +0000 (05:55 +0100)] 
Add support for recursion to changelog.

15 years agoFix amalgamated build.
Mike Pall [Tue, 2 Mar 2010 00:48:37 +0000 (01:48 +0100)] 
Fix amalgamated build.

15 years agoEnable tracing of recursion.
Mike Pall [Mon, 1 Mar 2010 05:46:45 +0000 (06:46 +0100)] 
Enable tracing of recursion.

Now compiles tail-recursion, up-recursion and down-recursion.
Benchmarks vs. Lua: fib 20x, ack 23x, binary-trees 4.7x.

15 years agoImplement down-recursion.
Mike Pall [Mon, 1 Mar 2010 05:45:30 +0000 (06:45 +0100)] 
Implement down-recursion.

15 years agoFix pc to line number translation for GDB JIT API.
Mike Pall [Mon, 1 Mar 2010 05:33:48 +0000 (06:33 +0100)] 
Fix pc to line number translation for GDB JIT API.

15 years agoResize stack up to the true limit.
Mike Pall [Mon, 1 Mar 2010 04:51:04 +0000 (05:51 +0100)] 
Resize stack up to the true limit.

15 years agoFix error message generation for OOM error.
Mike Pall [Sun, 28 Feb 2010 21:22:45 +0000 (22:22 +0100)] 
Fix error message generation for OOM error.

15 years agoConditionally compile functions that are unused with JIT disabled.
Mike Pall [Sun, 28 Feb 2010 20:58:40 +0000 (21:58 +0100)] 
Conditionally compile functions that are unused with JIT disabled.

15 years agoEnable JIT compiler for x64.
Mike Pall [Sun, 28 Feb 2010 20:45:38 +0000 (21:45 +0100)] 
Enable JIT compiler for x64.

Only works on Linux/x64 and Windows/x64 right now.
Force an x64 build on Linux/x64 with: make CC="gcc -m64"
NYI: handle on-trace OOM errors.
NYI: improve register allocation for x64.

15 years agoAdd frame info for x64 GDB JIT API.
Mike Pall [Sun, 28 Feb 2010 16:52:11 +0000 (17:52 +0100)] 
Add frame info for x64 GDB JIT API.

15 years agoSave/restore remaining callee-save regs on trace<->interp transitions.
Mike Pall [Sat, 27 Feb 2010 20:40:40 +0000 (21:40 +0100)] 
Save/restore remaining callee-save regs on trace<->interp transitions.

15 years agoCorrectly align and free allocated machine code areas.
Mike Pall [Sat, 27 Feb 2010 18:53:14 +0000 (19:53 +0100)] 
Correctly align and free allocated machine code areas.

Bump default mcode area size to 64K for x64.

15 years agoPlace dynamically generated code near static code on x64.
Mike Pall [Fri, 26 Feb 2010 17:20:24 +0000 (18:20 +0100)] 
Place dynamically generated code near static code on x64.

15 years agoMake penalty PRNG available for general use by compiler.
Mike Pall [Fri, 26 Feb 2010 16:01:33 +0000 (17:01 +0100)] 
Make penalty PRNG available for general use by compiler.