summaryrefslogtreecommitdiff
path: root/src/lj_asm.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Improve register allocation on x64.Mike Pall2010-03-021-0/+5
|
* Implement down-recursion.Mike Pall2010-03-011-1/+7
|
* Add x64 call argument setup. More 32/64 bit cleanups in assembler.Mike Pall2010-02-251-42/+58
|
* Fix 64 bit conversion warnings.Mike Pall2010-02-241-1/+1
|
* Major 32/64 bit cleanups in assembler and exit handling.Mike Pall2010-02-241-66/+152
| | | | | | | | | Add 64 bit lightuserdata handling. Keep the tagged 64 bit value. Allocate/save/restore 64 bit spill slots for 64 bit lightuserdata. Fix code generation for 64 bit loads/stores/moves/compares. Fix code generation for stack pointer adjustments. Add fixed spill slot definitions for x64. Reduce reserved spill slots. Disable STRREF + ADD fusion in 64 bit mode (avoid negative 32 bit ofs).
* Check relative jump distances for x64.Mike Pall2010-02-241-9/+18
|
* Mark renamed registers as modified.Mike Pall2010-02-231-1/+2
|
* Don't eliminate SLOAD restores across RETF.Mike Pall2010-02-231-3/+1
| | | | Move restore-elimination logic into snapshot_slots().
* Do not patch parent exit for a stack check.Mike Pall2010-02-221-0/+8
|
* Refactor Lua stack handling in lj_asm.c.Mike Pall2010-02-211-104/+115
|
* Eliminate redundant stack checks. Add checks for growing root traces.Mike Pall2010-02-211-7/+21
|
* Drop obsolete shadow frame link stack.Mike Pall2010-02-181-3/+3
|
* Improve FOR loop const specialization and integerness checks.Mike Pall2010-02-151-5/+7
|
* Major redesign of function call handling.Mike Pall2010-02-131-2/+2
| | | | | | | | | | | 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.
* Move dispatch tables out of GG_State struct.Mike Pall2010-02-111-2/+2
|
* Drop frame clearing in exit handling and JIT compiled code.Mike Pall2010-02-111-17/+1
|
* Add shadow frame link stack for trace recorder.Mike Pall2010-02-041-3/+3
| | | | | Simplifies snapshots. Prerequisite for pre-call snapshots. Increases consistency for fast function calls, too.
* Improve coalescing of BASE register in side traces.Mike Pall2010-02-011-21/+47
|
* Revise hardcoded inlining in lj_asm.c. Saves 1-2K.Mike Pall2010-01-301-4/+4
|
* Add support for weak IR references to register allocator.Mike Pall2010-01-301-18/+51
| | | | | | Spilling a weak ref forces a spill slot, but omits the restore. Spill slots for snapshot refs override the register, anyway. Marking snapshot refs weak avoids pointless restores.
* Compile return to lower frame. Only for Lua frames right now.Mike Pall2010-01-291-3/+21
|
* Avoid reuse of PHI registers, even for duplicate right PHIs.Mike Pall2010-01-271-1/+1
|
* Eliminate IR_FRAME. Replace with KGC and TRef/SnapEntry flags.Mike Pall2010-01-271-39/+28
|
* Add frame and continuation flags to TRef and SnapEntry.Mike Pall2010-01-271-17/+17
|
* Compress snapshots using a simple, extensible 1D-compression.Mike Pall2010-01-261-53/+48
| | | | | | Typically reduces storage overhead for snapshot maps by 60%. The extensible format is a prerequisite for the next redesign steps: Eliminate IR_FRAME and implement return-to-lower-frame.
* Add missing eviction in asm_obar().Mike Pall2010-01-261-0/+1
|
* Fill gaps in frames (caused by metamethod calls) with nil.Mike Pall2010-01-261-2/+2
| | | | Simplifies storing snapshots to stack.
* Use dedicated type for snapshot map entry.Mike Pall2010-01-251-5/+5
| | | | Preparatory work for compressed snapshots.
* Decouple guard vs. INT check vs. TYPECHECK semantics for SLOAD.Mike Pall2010-01-191-2/+4
|
* Fix broken intarith + testop optimization.Mike Pall2010-01-191-1/+1
|
* Improve alias analysis of upvalues using a disambiguation hash value.Mike Pall2010-01-091-3/+3
| | | | | | | | All upvalue objects hold a disambiguation hash value now. It's built from the parent prototype and the slot number. Different hash values imply the upvalues cannot alias. Same hash values don't imply anything (collision or different closures). Upvalue disambiguation makes use of a reduced hash due to IR contraints.
* Fix 32/64 bit portability issue with upval->v.Mike Pall2010-01-091-1/+1
|
* Bump all copyright dates to 2010.Mike Pall2010-01-091-1/+1
|
* Add SSE variant of pow/powi to interpreter.Mike Pall2009-12-251-39/+72
| | | | | | Use SSE pow/powi helper functions from compiled code. Cleanup use of helper functions. Related cleanups of folding functions in x64 interpreter.
* Use SSE variants for IRFPM_FLOOR/CEIL/TRUNC unless SSE4.1 available.Mike Pall2009-12-221-0/+18
|
* Fast forward to sync public repo.Mike Pall2009-12-081-251/+347
| | | | | | | | 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.
* RELEASE LuaJIT-2.0.0-beta2v2.0.0-beta2Mike Pall2009-12-081-4/+7
|
* RELEASE LuaJIT-2.0.0-beta1v2.0.0-beta1Mike Pall2009-12-081-0/+3324