Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Split up FP IR instructions with SPLIT pass for soft-float targets. | Mike Pall | 2011-05-22 | 1 | -1/+1 |
| | |||||
* | Move IR_CALL* definitions to lj_ircall.h. | Mike Pall | 2011-05-22 | 1 | -85/+0 |
| | |||||
* | FFI: Fix cdata finalization. | Mike Pall | 2011-04-13 | 1 | -0/+1 |
| | |||||
* | DUALNUM: Handle integer type in JIT compiler. | Mike Pall | 2011-03-10 | 1 | -9/+21 |
| | |||||
* | DUALNUM: Make overflow guards weak. Add IR_USE and IR_MULOV. | Mike Pall | 2011-03-07 | 1 | -2/+5 |
| | |||||
* | FFI: Fix compiled ffi.string() semantics. | Mike Pall | 2011-02-28 | 1 | -0/+1 |
| | |||||
* | FFI: Record ffi.copy() and ffi.fill(). | Mike Pall | 2011-02-07 | 1 | -1/+3 |
| | |||||
* | Add IR_XBAR, a barrier against XLOAD/XSTORE optimizations. | Mike Pall | 2011-02-07 | 1 | -1/+2 |
| | |||||
* | Improve static assertion macro. | Mike Pall | 2011-02-07 | 1 | -1/+2 |
| | |||||
* | FFI: Record simple C function calls. | Mike Pall | 2011-02-05 | 1 | -2/+2 |
| | | | | | | Only handles cdecl and fixarg C functions. Doesn't handle pass-by-value aggregates. Doesn't handle 64 bit args/returns on 32 bit CPUs. | ||||
* | FFI: Record ffi.string(). | Mike Pall | 2011-02-05 | 1 | -1/+2 |
| | |||||
* | FFI: Rename IR_CNEWP to IR_CNEWI and use it to box 64 bit integers. | Mike Pall | 2011-02-03 | 1 | -4/+6 |
| | | | | | Generates smaller IR and DCE eliminates many intermediate boxes. Needs allocation sinking to eliminate the boxes kept alive by PHIs. | ||||
* | Rename IR_POWI to IR_POW. | Mike Pall | 2011-02-02 | 1 | -1/+1 |
| | |||||
* | FFI: Record 64 bit integer divide and modulo. | Mike Pall | 2011-02-02 | 1 | -7/+11 |
| | |||||
* | Add SPLIT pass to split 64 bit IR instructions for 32 bit CPUs. | Mike Pall | 2011-02-02 | 1 | -5/+16 |
| | | | | | | | Add generic HIOP instruction for extra backend functionality. Add support for HIOP to x86 backend. Use POWI for 64 bit integer x^k, too. POWI is lowered to a call by SPLIT or the x64 backend. | ||||
* | FFI: Split up 64 bit x^k helper into signed/unsigned. | Mike Pall | 2011-01-28 | 1 | -1/+3 |
| | |||||
* | FFI: Move code for cdata arithmetic to lj_carith.c. | Mike Pall | 2011-01-26 | 1 | -1/+1 |
| | |||||
* | Add volatile XLOADs. | Mike Pall | 2011-01-19 | 1 | -1/+2 |
| | |||||
* | Differentiate between IR_KPTR and IR_KKPTR. | Mike Pall | 2011-01-19 | 1 | -1/+3 |
| | | | | | | | IR_KPTR holds a const pointer to possibly non-const content. IR_KKPTR holds a const pointer to definitely const content. Note that only content known by the VM to be const qualifies. Content tagged as const by users (e.g. const char *) doesn't. | ||||
* | Bump copyright date to 2011. | Mike Pall | 2011-01-09 | 1 | -1/+1 |
| | |||||
* | Fix handling of floats in x86/x64 backend. | Mike Pall | 2011-01-05 | 1 | -0/+1 |
| | |||||
* | FFI: Record 64 bit integer arithmetic. | Mike Pall | 2011-01-03 | 1 | -0/+7 |
| | | | | Currently NYI in the x86 backend. | ||||
* | Use cdata to pass IR_KINT64 to -jdump. | Mike Pall | 2011-01-02 | 1 | -0/+1 |
| | |||||
* | Refactoring of conversion ops, part 5: drop TOINT/TOI64/TONUM. | Mike Pall | 2010-12-31 | 1 | -13/+0 |
| | |||||
* | Refactoring of conversion ops, part 4: use CONV instead of TOINT/TONUM. | Mike Pall | 2010-12-31 | 1 | -0/+4 |
| | | | | Also narrow CONV.int.num and CONV.i64.num. | ||||
* | Copy destination type for CONV from ir->t to op2, too. | Mike Pall | 2010-12-31 | 1 | -5/+7 |
| | |||||
* | Refactoring of conversion ops, part 2: cleanup cdata conversions. | Mike Pall | 2010-12-30 | 1 | -0/+2 |
| | |||||
* | Refactoring of conversion ops, part 1: add IR_CONV. | Mike Pall | 2010-12-30 | 1 | -0/+11 |
| | |||||
* | Use macro-map for IRT_* enum. Add IRT_FLOAT. | Mike Pall | 2010-12-28 | 1 | -30/+19 |
| | |||||
* | FFI: Drop IR_CNEWI. Add IR_CNEWP only for pointers/refs. | Mike Pall | 2010-12-17 | 1 | -4/+2 |
| | |||||
* | FFI: Add IR_CNEW/IR_CNEWI to allocate/init cdata objects. | Mike Pall | 2010-12-11 | 1 | -2/+8 |
| | |||||
* | FFI: Record cdata index operations (preliminary, lots of NYI cases). | Mike Pall | 2010-12-08 | 1 | -2/+6 |
| | |||||
* | Add IR_TOI64. | Mike Pall | 2010-12-06 | 1 | -2/+6 |
| | |||||
* | Use native IRT_PTR instead of IRT_LIGHTUD workaround for FILE*. | Mike Pall | 2010-12-06 | 1 | -0/+3 |
| | |||||
* | Add IR_XSTORE. | Mike Pall | 2010-12-06 | 1 | -0/+2 |
| | |||||
* | Add support for 64 bit integer arithmetic to x64 backend. | Mike Pall | 2010-12-06 | 1 | -2/+7 |
| | |||||
* | Add IR_KINT64. | Mike Pall | 2010-12-05 | 1 | -18/+22 |
| | |||||
* | Cleanup 64 bit IR type handling. | Mike Pall | 2010-12-05 | 1 | -6/+15 |
| | |||||
* | Rename IRT_PTR to IRT_P32. | Mike Pall | 2010-12-05 | 1 | -2/+2 |
| | |||||
* | Make sure to use irt_toitype() macro everywhere. | Mike Pall | 2010-12-05 | 1 | -1/+0 |
| | |||||
* | FFI: Add cdata object type. | Mike Pall | 2010-11-26 | 1 | -1/+2 |
| | |||||
* | Decouple SLOAD type and optional conversion. | Mike Pall | 2010-10-11 | 1 | -5/+6 |
| | |||||
* | Add IR_VLOAD for vararg loads. | Mike Pall | 2010-09-14 | 1 | -1/+2 |
| | | | | Also fixes the broken AA improvement in the last commit. | ||||
* | Record vararg expressions with varargs defined off-trace. | Mike Pall | 2010-09-13 | 1 | -4/+5 |
| | | | | Add SLOAD variant to access the frame type/size. | ||||
* | Add weak guards. Emit TNEW/TDUP with a guard bit. | Mike Pall | 2010-05-08 | 1 | -37/+40 |
| | |||||
* | Treat the tag of a TValue as unsigned everywhere. | Mike Pall | 2010-04-25 | 1 | -2/+2 |
| | |||||
* | Turn traces into true GC objects (GCtrace). | Mike Pall | 2010-04-25 | 1 | -1/+1 |
| | |||||
* | No longer let the GC replace dead keys with the LJ_TDEADKEY tag. | Mike Pall | 2010-04-21 | 1 | -1/+1 |
| | | | | | | | | 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). | ||||
* | Major 32/64 bit cleanups in assembler and exit handling. | Mike Pall | 2010-02-24 | 1 | -3/+15 |
| | | | | | | | | | 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). | ||||
* | RETF modifies BASE. Treat it like a store or it gets CSEd. | Mike Pall | 2010-02-04 | 1 | -1/+2 |
| |