So golang has a machine-independent assembler. Which is very cool, and yes, machine instruction sets for modern machines are very similar: ALU instructions, memory load/store, branches.
However, it appears that this machine-independent instruction set is not actually used by the compiler's code generator. Instead it has completely machine-specific backends, with all the extra effort that entails.
Anybody know why?