Commit Graph

18 Commits

Author SHA1 Message Date
Mike Pall
5140b40b44 x64: Optimize internal/external tag conversion in lua_type(). 2010-10-11 17:26:07 +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
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
28a6284642 Add assertions to guard against using lua_*call on dead coroutines. 2010-04-23 17:42:25 +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
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
Mike Pall
6194b1c896 Redesign of prototype generation, part 5: colocation of protoype arrays. 2010-02-08 05:30:57 +01:00
Mike Pall
60b5af4422 Redesign of prototype generation, part 1: varinfo and uvname.
Use a growable, per-chunk variable stack.
Collect varinfo/uvname for prototype at the end.
2010-02-08 05:26:52 +01:00
Mike Pall
d778982120 32/64 bit memory ref cleanup, part 2: GCproto ->uvname and ->chunkname. 2010-02-05 00:52:21 +01:00
Mike Pall
a33204ae5e Fix 32/64 bit portability issue with upval->v. 2010-01-09 21:11:35 +01:00
Mike Pall
4d9be5b8f8 Bump all copyright dates to 2010. 2010-01-09 14:28:11 +01:00
Mike Pall
9de0f53a8d Implement yield from C hooks.
Get number of multiple results from C frame.
Add lj_cont_hook: restores multres and dispatch to static ins.
Can use fastcall for lj_dispatch_ins() now.
2009-12-30 02:37:57 +01:00
Mike Pall
6adab430af Adapt primary inbound calls in x64 interpreter.
Change argument order for lj_vm_cpcall() to simplify x64 interpreter.
2009-12-17 22:08:20 +01:00
Mike Pall
3f1f9e11f4 Fast forward to sync public repo.
Compile math.sinh(), math.cosh(), math.tanh() and math.random().
Compile various io.*() functions.
Drive the GC forward on string allocations in the parser.
Improve KNUM fuse vs. load heuristics.
Add abstract C call handling to IR.
2009-12-08 20:35:29 +01:00
Mike Pall
5287b93264 LuaJIT-2.0.0-beta2 hotfix #2
Fix lua_tocfunction().
Fix cutoff register in JMP bytecode for some conditional expressions.
Fix PHI marking algorithm for references from variant slots.
2009-12-08 19:52:28 +01:00
Mike Pall
1d1fed48a0 RELEASE LuaJIT-2.0.0-beta2 2009-12-08 19:49:20 +01:00
Mike Pall
55b1695971 RELEASE LuaJIT-2.0.0-beta1 2009-12-08 19:46:35 +01:00