Age | Commit message (Collapse) | Author | |
---|---|---|---|
2016-06-09 | 8c, 6c: native ROL (cyclic shift) instruction support, improve peephole ↵ | cinap_lenrek | |
optimizers introduce rolor() function to subsitute (a << c) | (a >> (bits(a) - c)) with (a <<< c) where <<< is cyclic rotation and c is constant. this almost doubles the speed of chacha encryption of 386 and amd64. the peephole optimizer used to stop when it hit a shift or rol instruction when attempting to eleminate moves by register substitution. but we do not have to as long as the shift count operand is not CX (which cannot be substituted) and CX is not a subject for substitution. | |||
2016-06-09 | ?c: track ../cc/cc.h dependency and rebuild cc.a$O as neccesary | cinap_lenrek | |
2015-10-06 | 5c/6c/8c/vc: import various changes from charles forsyth | cinap_lenrek | |
- cover more cases that have no side effects - ensure function has complex FNX - pull operators out of OFUNC level - rewrite OSTRUCT lhs to avoid all side-effects, use regalloc() instead of regret() | |||
2015-10-04 | 8c: dont abort() when running out of registers. | cinap_lenrek | |
2015-10-04 | 8c: handle 64 bit mixedmode asop and type vlong <-> float/double type ↵ | cinap_lenrek | |
conversions | |||
2015-10-03 | 8c: make cgen64() compile target first when it contains functoin call so ↵ | cinap_lenrek | |
final assignment wont trash the registers | |||
2015-02-17 | [125678kqv][cl]: fix sprint() and strcpy() buffer overflows | cinap_lenrek | |
2014-09-24 | 6c/8c: eleminate moves by swaping source and destination operands in ↵ | cinap_lenrek | |
peephole pass | |||
2014-08-07 | 8c, 6c: generate enam.c file, just like 5c | cinap_lenrek | |
2014-04-28 | 8c, 6c: fix peephole bug for eleminating CMPL $0,R after shift | cinap_lenrek | |
the shift instructions does not change the zero flag when the shift count is 0, so we cannot remove the compare instruction in this case. this fixes oggdec under 386. | |||
2014-03-29 | 6c, 8c: optimize away CMPL/CMPQ reg, $0 instruction in peephole pass | cinap_lenrek | |
when the previous instruction sets the zero flag, we can remove the CMPL/CMPQ instruction. this removes compares for zero/non zero tests only. it only looks at the previous non-nop instruction to see if it sets our compare value register. | |||
2014-03-21 | 8c, 6c: fix mulgen botch error for handling multiplication by zero constant | cinap_lenrek | |
2013-06-01 | 8c: apply charles forsyth's 8c-cgen64-mul-savereg patch (from sources) | cinap_lenrek | |
If 64-bit multiply has to save both AX and DX, it could load the wrong value into DX; also, biggen shouldn't allocate either AX or DX as temporaries when using the template for MUL. | |||
2013-05-21 | add 6(a|l) sse support to 8(a|l) | jpathy | |
2012-07-30 | import updated compilers from sources | cinap_lenrek | |
2011-07-12 | added Blethal to libbio | aiju | |
2011-03-30 | Import sources from 2011-03-30 iso image - lib | Taru Karttunen | |
2011-03-30 | Import sources from 2011-03-30 iso image | Taru Karttunen | |