>I did not realize this was currently supported by Plan 9 ... maybe I >didn't get the memo?
go's 8c/8l convert extern register to references off a segment register, although the implementation of extern register isn't general enough for plan 9 kernel use; it's just enough for go. it sounds as though the current plan9/go implementation instead changes its 8l to catch the GS references and convert them to references to known locations on the per-process stack (which would also work for go). i made a more accurate implementation of extern register in plan 9's own 8c/8l that could for instance be used by kernels to make up and/or m extern register on x86, but i'm not sure of its status.