summaryrefslogtreecommitdiff
path: root/sys/src/cmd/6l
AgeCommit message (Collapse)Author
2015-02-176l: no need to emit rex.w prefix for MOVBQZX and MOVWQZXcinap_lenrek
as with 32 bit operand size, the upper bits 63:32 are automatically zeroed in 64bit mode. this gives a shoter instruction encoding.
2015-02-17[125678kqv][cl]: fix sprint() and strcpy() buffer overflowscinap_lenrek
2014-05-306a, 6c, 6l: fix copy propagationAram Hăvărneanu
Without an explicit signal for a truncation, copy propagation will sometimes propagate a 32-bit truncation and end up overwriting uses of the original 64-bit value. This was independently discovered and fixed in Go. See: http://golang.org/issue/1315 https://codereview.appspot.com/6002043/ Thanks Charles Forsyth for tips and advice.
2014-02-016l: fix warning, setmalloctag declaration, missing header type casescinap_lenrek
2013-02-016l: eleminate NOP X0 instructions (from eriks 6l-nop-x0 patch)cinap_lenrek
erik found that -N left NOPs in that 6l couldn't ignore. add Xn to the NOP table. bonanza; cat > fp.c #include <u.h> #include <libc.h> #include <stdio.h> void main(void) { double g; g = -0.; print("%g\n", g); printf("%g\n", g); exits(""); } bonanza; 6c -N -FVTw fp.c bonanza; 6l -o 6.fp fp.6 main: doasm: notfound from=6f to=34 (939) NOP ,X0 main: doasm: notfound from=6f to=34 (939) NOP ,X0 main: doasm: notfound from=6f to=34 (939) NOP ,X0
2012-12-106l: fix wrong opcode for MOVLQZX (import from sources)cinap_lenrek
2012-09-186c: extern register fix (import from patch/6c-extreg)cinap_lenrek
to make it easy to use normal libraries (such as libdraw, libsec, and libmp) with the kernel, which uses extern register, don't stray into the external register set when allocating values to registers.
2012-07-30import updated compilers from sourcescinap_lenrek