summaryrefslogtreecommitdiff
path: root/src/lj_asm.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* Cleanup 64 bit IR type handling.Mike Pall2010-12-051-21/+23
|
* Make sure to use irt_toitype() macro everywhere.Mike Pall2010-12-051-8/+8
|
* Cleanup architecture, ABI and OS definitions.Mike Pall2010-11-161-6/+2
|
* Fix conflict between loop branch inversion and HREF+NE/EQ merging.Mike Pall2010-11-051-5/+7
|
* Decouple SLOAD type and optional conversion.Mike Pall2010-10-111-6/+7
|
* x64: Fix type check for numbers in compiled code.Mike Pall2010-10-111-5/+21
|
* Avoid fusing potentially negative indexes into AREF on x64.Mike Pall2010-09-181-2/+3
|
* Add IR_VLOAD for vararg loads.Mike Pall2010-09-141-3/+8
| | | | Also fixes the broken AA improvement in the last commit.
* Record vararg expressions with varargs defined off-trace.Mike Pall2010-09-131-18/+29
| | | | Add SLOAD variant to access the frame type/size.
* Untangle some target dependencies.Mike Pall2010-08-031-1/+1
|
* Abstract out pointer hash to hashrot(). Tune hash constants.Mike Pall2010-07-211-10/+7
|
* Fix passing of constant args in FPRs on x64.Mike Pall2010-07-141-1/+1
|
* Add weak guards. Emit TNEW/TDUP with a guard bit.Mike Pall2010-05-081-21/+18
|
* Simplify management of current trace. Drop lazy save.Mike Pall2010-04-251-2/+2
|
* Turn traces into true GC objects (GCtrace).Mike Pall2010-04-251-8/+8
|
* Simplify GC step calls from on-trace code.Mike Pall2010-04-191-39/+28
|
* Replace on-trace GC frame syncing with interpreter exit.Mike Pall2010-04-191-49/+17
| | | | | | | 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.
* Fix setup of RD when dispatching to function headers after exit.Mike Pall2010-04-091-5/+6
|
* Also merge EQ(HREF, niltv) in backend.Mike Pall2010-03-281-4/+10
|
* Only fuse with spill slots for cross-section references.Mike Pall2010-03-281-1/+1
|
* Pass MULTRES or negated error code in RD to lj_vm_exit_interp.Mike Pall2010-03-231-21/+7
| | | | Fixes overwrite of saved r12 after trace exit.
* Move colocated array part after GCtab (now properly aligned).Mike Pall2010-03-221-1/+1
|
* Increase max. fusion distance.Mike Pall2010-03-191-1/+1
|
* Reorder various structs to reduce padding (thanks to /usr/bin/pahole).Mike Pall2010-03-151-3/+3
|
* Add array bounds check elimination (-Oabc, on by default).Mike Pall2010-03-151-1/+1
|
* Restore MULTRES for snapshots pointing to CALLM etc. bytecodes.Mike Pall2010-03-131-0/+23
|
* Do not fuse SLOAD across RETF.Mike Pall2010-03-081-1/+2
|
* Generate indirect calls for out-of-range distances on x64.Mike Pall2010-03-071-0/+8
|
* Improve performance of HREF/HREFK on x64.Mike Pall2010-03-031-3/+42
|
* 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
|