Commit Graph

722 Commits

Author SHA1 Message Date
Mike Pall
2ca58aa67d Fix arg check for two-arg SSE math functions in interpreter. 2010-07-14 14:11:48 +02:00
Mike Pall
0d3f190d94 Fix passing of constant args in FPRs on x64. 2010-07-14 13:04:29 +02:00
Mike Pall
7d5a3cb5d4 Rechain pseudo-resurrected string keys with colliding hashes. 2010-07-04 23:07:21 +02:00
Mike Pall
bbd1584d5f Do not eliminate PHIs for values only referenced from side exits. 2010-06-30 23:30:08 +02:00
Mike Pall
9f6707ddbb Fix frame setup for error handling in next(). 2010-06-28 18:07:34 +02:00
Mike Pall
cdc37a33b3 Fallback to metamethod resolving for tostring in print(). 2010-06-16 19:43:07 +02:00
Mike Pall
fa673eb179 Fix string.char() range check on x64. 2010-05-30 12:29:55 +02:00
Mike Pall
926f688cd0 Canonicalize string conversion of nan, inf, -inf. 2010-05-20 00:40:51 +02:00
Mike Pall
c7a3103f41 Fix handling of failed fp:read(..., "*n"). 2010-05-15 18:10:41 +02:00
Mike Pall
655401f3e9 Avoid name clash with standard POSIX function. 2010-05-09 22:47:09 +02:00
Mike Pall
41ec9a94b3 Avoid string allocation in GDB JIT API. 2010-05-09 03:27:24 +02:00
Mike Pall
5ff994fa37 Add weak guards. Emit TNEW/TDUP with a guard bit. 2010-05-08 18:59:59 +02:00
Mike Pall
8fa1db826c Create symbol table of JIT-compiled code for use with Linux perf tools.
Enable with: -DLUAJIT_USE_PERFTOOLS
2010-05-01 04:27:14 +02:00
Mike Pall
f28a42c923 Fix PHI elimination: mark right PHI as used, too. 2010-04-28 22:00:40 +02:00
Mike Pall
28cfccf748 Turn TValue setter macros into inline functions. 2010-04-26 00:28:44 +02:00
Mike Pall
41379126a2 Treat the tag of a TValue as unsigned everywhere. 2010-04-25 23:21:15 +02:00
Mike Pall
f396f3d192 Avoid starting a GC cycle immediately after library init. 2010-04-25 19:45:54 +02:00
Mike Pall
2ccb24f894 Fix TNEW in x64 interpreter. Do not force a full GC (ouch). 2010-04-25 19:33:39 +02:00
Mike Pall
ef0904e80b Make metamethod names proper GC roots. 2010-04-25 18:35:47 +02:00
Mike Pall
87e4daf89c Reorganize and fix placement of generated machine code on x64. 2010-04-25 14:52:29 +02:00
Mike Pall
2e24770ed3 Simplify management of current trace. Drop lazy save. 2010-04-25 13:53:33 +02:00
Mike Pall
721b73fecb Turn traces into true GC objects (GCtrace). 2010-04-25 03:32:29 +02:00
Mike Pall
3a32bbc7cb Simplify lexer a bit. 2010-04-24 20:23:02 +02:00
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