summaryrefslogtreecommitdiff
path: root/src/lj_asm.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add IR_XBAR, a barrier against XLOAD/XSTORE optimizations.Mike Pall2011-02-071-1/+1
|
* FFI: Record simple C function calls.Mike Pall2011-02-051-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 Pall2011-02-031-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 Pall2011-02-021-4/+4
|
* FFI: Record 64 bit integer divide and modulo.Mike Pall2011-02-021-5/+26
|
* Add SPLIT pass to split 64 bit IR instructions for 32 bit CPUs.Mike Pall2011-02-021-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 Pall2011-01-191-0/+20
|
* Differentiate between IR_KPTR and IR_KKPTR.Mike Pall2011-01-191-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 Pall2011-01-171-1/+1
|
* Bump copyright date to 2011.Mike Pall2011-01-091-1/+1
|
* Fix handling of floats in x86/x64 backend.Mike Pall2011-01-051-13/+17
|
* Add support for non-constant integer IR_MUL to backend.Mike Pall2011-01-031-27/+13
|
* Add support for integer IR_NEG to backend.Mike Pall2011-01-031-4/+9
|
* Improve uint64_t <-> FP conversions in x64 backend.Mike Pall2011-01-021-13/+17
|
* Add support for uint64_t <-> FP conversions to x64 backend.Mike Pall2011-01-021-15/+34
|
* Add 8/16 to 32 bit sign/zero-extension variants to CONV.Mike Pall2010-12-311-1/+24
|
* Fix register allocation for FP <- int conversion.Mike Pall2010-12-311-1/+1
|
* Refactoring of conversion ops, part 5: drop TOINT/TOI64/TONUM.Mike Pall2010-12-311-44/+2
|
* Copy destination type for CONV from ir->t to op2, too.Mike Pall2010-12-311-1/+1
|
* Add support for IRT_FLOAT to XLOAD/XSTORE.Mike Pall2010-12-301-2/+5
|
* Refactoring of conversion ops, part 1: add IR_CONV.Mike Pall2010-12-301-1/+95
|
* Improve register allocation for loops with variable shifts.Mike Pall2010-12-231-1/+4
|
* Fix XSTORE for IRT_NUM constants.Mike Pall2010-12-201-1/+2
|
* FFI: Drop IR_CNEWI. Add IR_CNEWP only for pointers/refs.Mike Pall2010-12-171-58/+32
|
* FFI: Add IR_CNEW/IR_CNEWI to allocate/init cdata objects.Mike Pall2010-12-111-1/+90
|
* x86/x64 backend: keep invariants on the right rather than fusing loads.Mike Pall2010-12-091-3/+6
|
* Avoid fusing loads if there are multiple references.Mike Pall2010-12-081-8/+13
|
* Fix IRT_NUM support for XLOAD/XSTORE.Mike Pall2010-12-081-2/+3
|
* FFI: Turn cdata indexing into x86/x64 [base+idx*sz+ofs] addressing.Mike Pall2010-12-081-4/+36
|
* Fix x64 code generation for A16+REX prefixed instructions.Mike Pall2010-12-081-0/+1
|
* Fix register allocation for 8 bit stores in x86 backend.Mike Pall2010-12-071-2/+10
|
* Add IRT_NUM support to XLOAD/XSTORE.Mike Pall2010-12-061-2/+4
|
* Add IR_TOI64.Mike Pall2010-12-061-0/+19
|
* Fix 64 bit shifts in backend. Fix shift by 0.Mike Pall2010-12-061-2/+2
|
* Fix XLOAD/XSTORE references.Mike Pall2010-12-061-2/+3
|
* Add support for integer IR_MUL.Mike Pall2010-12-061-1/+31
|
* Support all kinds of XLOAD/XSTORE references in backend.Mike Pall2010-12-061-6/+13
| | | | Fuse pointer arithmetic, too.
* Avoid warning.Mike Pall2010-12-061-0/+1
|
* Add IR_XSTORE.Mike Pall2010-12-061-4/+9
|
* Add support for 64 bit integer arithmetic to x64 backend.Mike Pall2010-12-061-33/+51
|
* Fix xmm spill/restore broken by b1fb71fb.Mike Pall2010-12-051-7/+16
|
* Add IR_KINT64.Mike Pall2010-12-051-21/+44
|
* 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.