plan9fox/sys/src/cmd/6c
cinap_lenrek a00b6bdbfa 8c, 6c: native ROL (cyclic shift) instruction support, improve peephole 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 23:12:46 +02:00
..
6.out.h 6a, 6c, 6l: fix copy propagation 2014-05-30 12:28:01 +02:00
cgen.c 8c, 6c: native ROL (cyclic shift) instruction support, improve peephole optimizers 2016-06-09 23:12:46 +02:00
div.c import updated compilers from sources 2012-07-30 19:11:16 +02:00
gc.h import updated compilers from sources 2012-07-30 19:11:16 +02:00
list.c 6c: fix missing memset in Bconv() 2015-03-01 05:33:41 +01:00
machcap.c import updated compilers from sources 2012-07-30 19:11:16 +02:00
mkenam import updated compilers from sources 2012-07-30 19:11:16 +02:00
mkfile ?c: track ../cc/cc.h dependency and rebuild cc.a$O as neccesary 2016-06-09 23:03:30 +02:00
mul.c 8c, 6c: fix mulgen botch error for handling multiplication by zero constant 2014-03-21 19:05:17 +01:00
peep.c 8c, 6c: native ROL (cyclic shift) instruction support, improve peephole optimizers 2016-06-09 23:12:46 +02:00
reg.c 6a, 6c, 6l: fix copy propagation 2014-05-30 12:28:01 +02:00
sgen.c 8c, 6c: native ROL (cyclic shift) instruction support, improve peephole optimizers 2016-06-09 23:12:46 +02:00
swt.c import updated compilers from sources 2012-07-30 19:11:16 +02:00
sys.c import updated compilers from sources 2012-07-30 19:11:16 +02:00
txt.c 8c, 6c: native ROL (cyclic shift) instruction support, improve peephole optimizers 2016-06-09 23:12:46 +02:00