Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Pass MULTRES or negated error code in RD to lj_vm_exit_interp. | Mike Pall | 2010-03-23 | 1 | -5/+5 | |
| | | | | Fixes overwrite of saved r12 after trace exit. | |||||
* | Fix TSETM on x64/SSE builds when table is resized. | Mike Pall | 2010-03-15 | 1 | -8/+2 | |
| | ||||||
* | Fix unwind info for assembler part for OSX. | Mike Pall | 2010-03-07 | 1 | -36/+61 | |
| | ||||||
* | Fix generated 64 bit Mach-O assembler output. | Mike Pall | 2010-03-05 | 1 | -0/+8 | |
| | ||||||
* | Enable tracing of recursion. | Mike Pall | 2010-03-01 | 1 | -2/+1 | |
| | | | | | Now compiles tail-recursion, up-recursion and down-recursion. Benchmarks vs. Lua: fib 20x, ack 23x, binary-trees 4.7x. | |||||
* | Save/restore remaining callee-save regs on trace<->interp transitions. | Mike Pall | 2010-02-27 | 1 | -12/+67 | |
| | ||||||
* | Add trace exit helper for x64. Fix trace entry for x64. | Mike Pall | 2010-02-24 | 1 | -11/+39 | |
| | ||||||
* | Fix type() implementation for x64 lightuserdata. | Mike Pall | 2010-02-24 | 1 | -0/+12 | |
| | ||||||
* | Rethrow errors from trace exit handling from the right C frame. | Mike Pall | 2010-02-19 | 1 | -3/+11 | |
| | ||||||
* | Use a different marker for hot calls. | Mike Pall | 2010-02-15 | 1 | -3/+6 | |
| | ||||||
* | Implement return hooks for Lua functions (zero-cost if disabled). | Mike Pall | 2010-02-14 | 1 | -1/+7 | |
| | ||||||
* | Implement call hooks (zero-cost if disabled). | Mike Pall | 2010-02-14 | 1 | -12/+19 | |
| | ||||||
* | Major redesign of function call handling. | Mike Pall | 2010-02-13 | 1 | -588/+593 | |
| | | | | | | | | | | | 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 Pall | 2010-02-11 | 1 | -4/+4 | |
| | ||||||
* | Switch to pre-initialized stacks. Drop frame clearing in interpreter. | Mike Pall | 2010-02-11 | 1 | -28/+32 | |
| | ||||||
* | Replace GCproto reference with bytecode PC in GCfuncL. | Mike Pall | 2010-02-10 | 1 | -25/+26 | |
| | ||||||
* | Drop bc field in GCproto since the bytecode is colocated. | Mike Pall | 2010-02-08 | 1 | -3/+3 | |
| | ||||||
* | Integrate MinGW build with DWARF2 exception handling. | Mike Pall | 2010-01-22 | 1 | -0/+45 | |
| | | | | | | | | Only works with DWARF2-enabled GCC 4.x (not the default MinGW GCC). Fix fastcall symbol names for COFF assembler output. Add DWARF2 unwind info to COFF assembler output. Use COFF assembler mode for MinGW builds. Always enable the DWARF2 handler if compiled with GCC. | |||||
* | Bump all copyright dates to 2010. | Mike Pall | 2010-01-09 | 1 | -1/+1 | |
| | ||||||
* | Add support for WIN64 exception handling to external unwinder. | Mike Pall | 2010-01-05 | 1 | -17/+13 | |
| | | | | | | Modify unwinding to always return _ff or _c unwind type. Generate PE object .pdata/.xdata sections for x64 interpreter. Can drop r12-r15 saves in Windows/x64 interpreter now. | |||||
* | Fix PE object build for fastcall entry points into interpreter. | Mike Pall | 2010-01-05 | 1 | -2/+2 | |
| | ||||||
* | Major rewrite of error handling to allow external/internal unwinding. | Mike Pall | 2010-01-02 | 1 | -19/+11 | |
| | | | | | | | | | | | Make external unwinding the default on x64. It's mandatory on WIN64 due to the abundance of callee-saved regs. Allow piecewise internal frame unwinding and optional cleanup. Store ERRMEM, ERRERR and ERRCPP early and copy down later. Use FRAME_CP for lj_vm_resume. Add lj_vm_unwind_*_eh variants as landing pads for external unwinder. Use fastcall for lj_vm_unwind_*. Can drop r12/r13 saves in POSIX/x64 interpreter now. | |||||
* | Rename NRESULTS to MULTRES on the assembler side, too. | Mike Pall | 2009-12-30 | 1 | -33/+33 | |
| | ||||||
* | Implement yield from C hooks. | Mike Pall | 2009-12-30 | 1 | -17/+12 | |
| | | | | | | 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. | |||||
* | Minor fixes for x64 interpreter. | Mike Pall | 2009-12-29 | 1 | -4/+12 | |
| | ||||||
* | Add DWARF2 unwind info for x64 interpreter. | Mike Pall | 2009-12-29 | 1 | -23/+65 | |
| | ||||||
* | Fix various 32/64 bit issues in interpreter. | Mike Pall | 2009-12-29 | 1 | -10/+21 | |
| | ||||||
* | Fix x64 lj_vm_pow_sse(). | Mike Pall | 2009-12-29 | 1 | -2/+2 | |
| | ||||||
* | Save all callee-saved x64 integer regs for unwinding. | Mike Pall | 2009-12-29 | 1 | -11/+19 | |
| | | | | | Temporary measure. Does not cover xmm saves on WIN64. May have to use unwind info or waste another 160 bytes per CFRAME. | |||||
* | Logical 'not' must be sign-extended for address operands. | Mike Pall | 2009-12-29 | 1 | -17/+25 | |
| | ||||||
* | Fix POSIX/x64 call argument order. | Mike Pall | 2009-12-28 | 1 | -4/+4 | |
| | ||||||
* | Change callee-save regs for x64 interpreter to shorten code. | Mike Pall | 2009-12-28 | 1 | -2/+4 | |
| | ||||||
* | Final calling convention cleanup for x64 interpreter. | Mike Pall | 2009-12-28 | 1 | -13/+38 | |
| | ||||||
* | More calling convention cleanups for x64 interpreter. | Mike Pall | 2009-12-27 | 1 | -13/+94 | |
| | ||||||
* | Use fastcall for remaining 1-arg/2-arg calls from interpreter. | Mike Pall | 2009-12-27 | 1 | -116/+59 | |
| | | | | Simplifies conversion to x64 calling conventions. | |||||
* | Add SSE variant of pow/powi to interpreter. | Mike Pall | 2009-12-25 | 1 | -118/+300 | |
| | | | | | | Use SSE pow/powi helper functions from compiled code. Cleanup use of helper functions. Related cleanups of folding functions in x64 interpreter. | |||||
* | Add build infrastructure for the SSE2-enabled interpreter. | Mike Pall | 2009-12-22 | 1 | -1/+1 | |
| | | | | Works on x86 now. Will be enabled by default on x64 (not ready, yet). | |||||
* | Fix last commit. | Mike Pall | 2009-12-22 | 1 | -1/+1 | |
| | ||||||
* | Miscellaneous cleanups for x64 interpreter. | Mike Pall | 2009-12-22 | 1 | -16/+43 | |
| | ||||||
* | Add SSE2 variants for all FP ops (except vm_pow*) in interpreter. | Mike Pall | 2009-12-22 | 1 | -152/+531 | |
| | ||||||
* | Add SSE2 variants of basic arithmetic ops in interpreter. | Mike Pall | 2009-12-21 | 1 | -75/+278 | |
| | ||||||
* | Adapt most outbound calls in interpreter to x64 calling conventions. | Mike Pall | 2009-12-19 | 1 | -32/+204 | |
| | ||||||
* | Better change the saved regs for the x64 interpreter, too. | Mike Pall | 2009-12-18 | 1 | -2/+2 | |
| | ||||||
* | Change KBASE/PC regs for x64/POSIX to get shorter encodings. | Mike Pall | 2009-12-17 | 1 | -3/+3 | |
| | ||||||
* | Adapt primary inbound calls in x64 interpreter. | Mike Pall | 2009-12-17 | 1 | -30/+115 | |
| | | | | Change argument order for lj_vm_cpcall() to simplify x64 interpreter. | |||||
* | Change some misuses of esp in x64 interpreter. | Mike Pall | 2009-12-16 | 1 | -34/+34 | |
| | ||||||
* | Define x64 interpreter frame and cleanup use of stack temps. | Mike Pall | 2009-12-16 | 1 | -88/+157 | |
| | ||||||
* | Unify interpreter reg saves/restores for WIN64 prolog/epilog req. | Mike Pall | 2009-12-15 | 1 | -6/+5 | |
| | ||||||
* | First bunch of register definitions for x64 interpreter. | Mike Pall | 2009-12-15 | 1 | -14/+70 | |
| | ||||||
* | Fast forward to sync public repo. | Mike Pall | 2009-12-08 | 1 | -59/+58 | |
| | | | | | | | | 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. |