Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
The plan 9 assemblers support the DUPOK flag on text symbols. They parse and
ignore it on GLOBL symbols. This patch makes it work in the linkers.
The reason I ran into this is because my programming language (Myrddin) uses
data symbols to generate type information, and it's useful to avoid
duplicating all of the type info in every file that gets generated.
|
|
quanstro)
|
|
as with 32 bit operand size, the upper bits 63:32 are
automatically zeroed in 64bit mode. this gives a shoter
instruction encoding.
|
|
|
|
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.
|
|
|
|
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
|
|
|
|
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.
|
|
|