Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add IR_XBAR, a barrier against XLOAD/XSTORE optimizations. | Mike Pall | 2011-02-07 | 1 | -1/+1 |
| | |||||
* | FFI: Record simple C function calls. | Mike Pall | 2011-02-05 | 1 | -25/+92 |
| | | | | | | 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: Rename IR_CNEWP to IR_CNEWI and use it to box 64 bit integers. | Mike Pall | 2011-02-03 | 1 | -25/+42 |
| | | | | | 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 | -4/+4 |
| | |||||
* | FFI: Record 64 bit integer divide and modulo. | Mike Pall | 2011-02-02 | 1 | -5/+26 |
| | |||||
* | Add SPLIT pass to split 64 bit IR instructions for 32 bit CPUs. | Mike Pall | 2011-02-02 | 1 | -81/+363 |
| | | | | | | | 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. | ||||
* | Combine i8/u8 XLOAD with BAND+comparison into test byte mrm, imm8. | Mike Pall | 2011-01-19 | 1 | -0/+20 |
| | |||||
* | Differentiate between IR_KPTR and IR_KKPTR. | Mike Pall | 2011-01-19 | 1 | -3/+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. | ||||
* | FFI: Record 64 bit integer comparisons and pointer comparisons. | Mike Pall | 2011-01-17 | 1 | -1/+1 |
| | |||||
* | 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 | -13/+17 |
| | |||||
* | Add support for non-constant integer IR_MUL to backend. | Mike Pall | 2011-01-03 | 1 | -27/+13 |
| | |||||
* | Add support for integer IR_NEG to backend. | Mike Pall | 2011-01-03 | 1 | -4/+9 |
| | |||||
* | Improve uint64_t <-> FP conversions in x64 backend. | Mike Pall | 2011-01-02 | 1 | -13/+17 |
| | |||||
* | Add support for uint64_t <-> FP conversions to x64 backend. | Mike Pall | 2011-01-02 | 1 | -15/+34 |
| | |||||
* | Add 8/16 to 32 bit sign/zero-extension variants to CONV. | Mike Pall | 2010-12-31 | 1 | -1/+24 |
| | |||||
* | Fix register allocation for FP <- int conversion. | Mike Pall | 2010-12-31 | 1 | -1/+1 |
| | |||||
* | Refactoring of conversion ops, part 5: drop TOINT/TOI64/TONUM. | Mike Pall | 2010-12-31 | 1 | -44/+2 |
| | |||||
* | Copy destination type for CONV from ir->t to op2, too. | Mike Pall | 2010-12-31 | 1 | -1/+1 |
| | |||||
* | Add support for IRT_FLOAT to XLOAD/XSTORE. | Mike Pall | 2010-12-30 | 1 | -2/+5 |
| | |||||
* | Refactoring of conversion ops, part 1: add IR_CONV. | Mike Pall | 2010-12-30 | 1 | -1/+95 |
| | |||||
* | Improve register allocation for loops with variable shifts. | Mike Pall | 2010-12-23 | 1 | -1/+4 |
| | |||||
* | Fix XSTORE for IRT_NUM constants. | Mike Pall | 2010-12-20 | 1 | -1/+2 |
| | |||||
* | FFI: Drop IR_CNEWI. Add IR_CNEWP only for pointers/refs. | Mike Pall | 2010-12-17 | 1 | -58/+32 |
| | |||||
* | FFI: Add IR_CNEW/IR_CNEWI to allocate/init cdata objects. | Mike Pall | 2010-12-11 | 1 | -1/+90 |
| | |||||
* | x86/x64 backend: keep invariants on the right rather than fusing loads. | Mike Pall | 2010-12-09 | 1 | -3/+6 |
| | |||||
* | Avoid fusing loads if there are multiple references. | Mike Pall | 2010-12-08 | 1 | -8/+13 |
| | |||||
* | Fix IRT_NUM support for XLOAD/XSTORE. | Mike Pall | 2010-12-08 | 1 | -2/+3 |
| | |||||
* | FFI: Turn cdata indexing into x86/x64 [base+idx*sz+ofs] addressing. | Mike Pall | 2010-12-08 | 1 | -4/+36 |
| | |||||
* | Fix x64 code generation for A16+REX prefixed instructions. | Mike Pall | 2010-12-08 | 1 | -0/+1 |
| | |||||
* | Fix register allocation for 8 bit stores in x86 backend. | Mike Pall | 2010-12-07 | 1 | -2/+10 |
| | |||||
* | Add IRT_NUM support to XLOAD/XSTORE. | Mike Pall | 2010-12-06 | 1 | -2/+4 |
| | |||||
* | Add IR_TOI64. | Mike Pall | 2010-12-06 | 1 | -0/+19 |
| | |||||
* | Fix 64 bit shifts in backend. Fix shift by 0. | Mike Pall | 2010-12-06 | 1 | -2/+2 |
| | |||||
* | Fix XLOAD/XSTORE references. | Mike Pall | 2010-12-06 | 1 | -2/+3 |
| | |||||
* | Add support for integer IR_MUL. | Mike Pall | 2010-12-06 | 1 | -1/+31 |
| | |||||
* | Support all kinds of XLOAD/XSTORE references in backend. | Mike Pall | 2010-12-06 | 1 | -6/+13 |
| | | | | Fuse pointer arithmetic, too. | ||||
* | Avoid warning. | Mike Pall | 2010-12-06 | 1 | -0/+1 |
| | |||||
* | Add IR_XSTORE. | Mike Pall | 2010-12-06 | 1 | -4/+9 |
| | |||||
* | Add support for 64 bit integer arithmetic to x64 backend. | Mike Pall | 2010-12-06 | 1 | -33/+51 |
| | |||||
* | Fix xmm spill/restore broken by b1fb71fb. | Mike Pall | 2010-12-05 | 1 | -7/+16 |
| | |||||
* | Add IR_KINT64. | Mike Pall | 2010-12-05 | 1 | -21/+44 |
| | |||||
* | Cleanup 64 bit IR type handling. | Mike Pall | 2010-12-05 | 1 | -21/+23 |
| | |||||
* | Make sure to use irt_toitype() macro everywhere. | Mike Pall | 2010-12-05 | 1 | -8/+8 |
| | |||||
* | Cleanup architecture, ABI and OS definitions. | Mike Pall | 2010-11-16 | 1 | -6/+2 |
| | |||||
* | Fix conflict between loop branch inversion and HREF+NE/EQ merging. | Mike Pall | 2010-11-05 | 1 | -5/+7 |
| | |||||
* | Decouple SLOAD type and optional conversion. | Mike Pall | 2010-10-11 | 1 | -6/+7 |
| | |||||
* | x64: Fix type check for numbers in compiled code. | Mike Pall | 2010-10-11 | 1 | -5/+21 |
| | |||||
* | Avoid fusing potentially negative indexes into AREF on x64. | Mike Pall | 2010-09-18 | 1 | -2/+3 |
| | |||||
* | Add IR_VLOAD for vararg loads. | Mike Pall | 2010-09-14 | 1 | -3/+8 |
| | | | | Also fixes the broken AA improvement in the last commit. |