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
Mike Pall
5fdb6e2e20
Fix 64 bit conversion warning.
2010-03-03 04:25:48 +01:00
Mike Pall
32309583e5
Improve register allocation on x64.
2010-03-02 23:34:13 +01:00