6l doesn't really use 64-bit addresses. If you try to use a 64-bit address it will silently create incorrect code. This patch will at least warn you that you're trying to do something that 6l can not do. Reference: /n/sources/patch/sorry/6l.64-bit-addr.warn Date: Sat Jun 18 02:02:53 CES 2011 Signed-off-by: rminnich@gmail.com --- /sys/src/cmd/6l/span.c Sat Jun 18 02:01:31 2011 +++ /sys/src/cmd/6l/span.c Sat Jun 18 02:01:27 2011 @@ -668,6 +668,8 @@ rex &= (0x40 | Rxr); v = a->offset; + if ((vlong)v != a->offset) + sysfatal("asmandsz:Trying to emit %#ullx and 32 bits is not sufficient\n", a->offset); t = a->type; if(a->index != D_NONE) { if(t >= D_INDIR) {