Commit Graph

2599 Commits (master)

Author SHA1 Message Date
Mike Pall 28a6284642 Add assertions to guard against using lua_*call on dead coroutines. 2010-04-23 17:42:25 +02:00
Mike Pall a6c52d80a2 Avoid compiler warning. 2010-04-23 15:38:08 +02:00
Mike Pall ab45481199 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).
2010-04-21 01:45:58 +02:00
Mike Pall d8cb69ed07 Simplify GC step calls from on-trace code. 2010-04-19 23:41:48 +02:00
Mike Pall 932cda0fe3 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.
2010-04-19 00:43:35 +02:00
Mike Pall ff82df797a Refactor buildvm symbol generation.
Fixes Windows and OSX builds with LUAJIT_DISABLE_JIT.
2010-04-14 17:13:13 +02:00
Mike Pall fbe092c22d Fix setup of RD when dispatching to function headers after exit. 2010-04-09 14:26:18 +02:00
Mike Pall db756430ee Don't copy SNAP_NORESTORE mark into loops and suppress restore in exit. 2010-04-08 01:32:26 +02:00
Mike Pall 23189fa40d RELEASE LuaJIT-2.0.0-beta4 2010-03-28 19:26:33 +02:00
Mike Pall 3a8b9bad2e Update changelog. 2010-03-28 18:31:36 +02:00
Mike Pall 1d1d9221f3 Fold HREF of TNEW/TDUP to niltv. Fold HLOAD of niltv to nil. 2010-03-28 06:53:41 +02:00
Mike Pall e4bca95451 Generate EQ(HREF, niltv) for load path, too (better CSE). 2010-03-28 06:49:09 +02:00
Mike Pall 1130ade4de Also merge EQ(HREF, niltv) in backend. 2010-03-28 06:47:04 +02:00
Mike Pall 44756ded7a Only fuse with spill slots for cross-section references. 2010-03-28 06:42:48 +02:00
Mike Pall 69df01efb2 Fix precondition check for NEWREF.
A check for nil value is not enough. Must check for ptr == niltv.
2010-03-28 03:34:18 +02:00
Mike Pall 6038866f7d Pass MULTRES or negated error code in RD to lj_vm_exit_interp.
Fixes overwrite of saved r12 after trace exit.
2010-03-23 18:31:17 +01:00
Mike Pall 097db7317b Move colocated array part after GCtab (now properly aligned). 2010-03-22 15:59:50 +01:00
Mike Pall 361266518c Move free node pos to t->node[0].freetop. Saves 4 bytes in GCtab. 2010-03-22 15:05:37 +01:00
Mike Pall 51c14bf1c8 Avoid snapshots for returns to known callers. 2010-03-21 16:01:44 +01:00
Mike Pall 8e20b030ac Add links to interactive performance comparison to offline docs. 2010-03-19 21:01:14 +01:00
Mike Pall 5c8f1f2594 Increase max. fusion distance. 2010-03-19 00:28:04 +01:00
Mike Pall 37a3ca330f Reorder various structs to reduce padding (thanks to /usr/bin/pahole). 2010-03-15 23:29:10 +01:00
Mike Pall 1fea5cb822 Fix TSETM on x64/SSE builds when table is resized. 2010-03-15 19:00:16 +01:00
Mike Pall 871941a840 Add static target to msvcbuild.bat. 2010-03-15 18:50:59 +01:00
Mike Pall e57390f734 Update changelog. 2010-03-15 17:20:08 +01:00
Mike Pall c4727220e8 Add array bounds check elimination (-Oabc, on by default). 2010-03-15 17:02:53 +01:00
Mike Pall 24402ede04 Reorganize scalar evolution analysis. 2010-03-15 16:23:02 +01:00
Mike Pall a25a717089 Fix folding of (comparison x x). 2010-03-14 17:10:47 +01:00
Mike Pall 16f33422f1 Restore MULTRES for snapshots pointing to CALLM etc. bytecodes. 2010-03-13 17:45:09 +01:00
Mike Pall 4f19a15bd9 Fix potential hang in UCLO redirection handling in hooks. 2010-03-10 22:13:23 +01:00
Mike Pall c56d791316 Fix handling of bad argument types in recorder. 2010-03-09 19:03:43 +01:00
Mike Pall f49649d005 Fix recording of getmetatable() for non-tables. 2010-03-09 17:49:13 +01:00
Mike Pall 6e6034e809 Avoid tracing the nil return case of tonumber(). 2010-03-09 03:47:49 +01:00
Mike Pall d87cb5b526 Add WinSDK v7.0 requirement for building on Windows/x64. 2010-03-09 02:45:47 +01:00
Mike Pall 2e614adb21 Do not fuse SLOAD across RETF. 2010-03-08 23:43:16 +01:00
Mike Pall 09e875519b RELEASE LuaJIT-2.0.0-beta3 2010-03-07 19:30:21 +01:00
Mike Pall f354b46d29 Fix tracebacks for failed coroutines. 2010-03-07 18:21:14 +01:00
Mike Pall 9fd1c6c586 Add OS/CPU/CC compatibility matrix to docs. Fix spelling. 2010-03-07 17:12:21 +01:00
Mike Pall 6769397d38 Rebase dynamic library on OSX/x64. 2010-03-07 15:04:42 +01:00
Mike Pall e40b001a79 Improve placement of dynamically generated code on x64. 2010-03-07 14:33:52 +01:00
Mike Pall e38fbb3d0a Fix assertion in rec_check_slots. 2010-03-07 14:32:50 +01:00
Mike Pall e807d46931 Generate indirect calls for out-of-range distances on x64. 2010-03-07 14:31:51 +01:00
Mike Pall b4299256cd Fix unwind info for assembler part for OSX. 2010-03-07 14:29:04 +01:00
Mike Pall 88244c6372 Fix disassembly of call/jmp ModRM. 2010-03-07 14:28:05 +01:00
Mike Pall 5594a0c653 Fix generated 64 bit Mach-O assembler output. 2010-03-05 03:21:52 +01:00
Mike Pall f8f6d0299b Document jit.status(). 2010-03-04 20:46:07 +01:00
Mike Pall af92a14313 Update docs: native build default, cross-compilation, embedding. 2010-03-04 19:07:38 +01:00
Mike Pall f76e5a311b Allocate 32 bit memory on OSX/x64 with mmap() hinting.
Must set -pagezero_size, otherwise the lower 4GB are blocked.
2010-03-04 16:27:42 +01:00
Mike Pall 3d2abf3148 Build as a native 32 or 64 bit binary by default. 2010-03-04 16:23:28 +01:00
Mike Pall 15c3bd7725 Improve performance of HREF/HREFK on x64. 2010-03-03 04:26:31 +01:00