
Primer on Go Assembly - blacksmythe
https://github.com/teh-cmc/go-internals/blob/master/chapter1_assembly_primer/README.md
======
theparanoid
Go's "pseudo-assembly" is not a plus. Everyone ends up learning _both_ the
architecture's assembly and the mapping to Go's pseudo-assembly which isn't
actually portable because each architecture has architecture-specific
features.

~~~
yur83838
Would you say LLVM's pseudo assembly is also not a plus?

~~~
gameswithgo
Perhaps such a thing makes sense when you are a target for languages but not
when you are just a language. Instead make sure anything that you can express
with your IR can be expressed with the language?

~~~
pjmlp
It always makes sense. because it is easier to port to new platforms.

A low level IR requires less effort to implement a compiler backend.

In Go's case, it is what makes the reference compiler so easy to cross-
compile.

------
spooneybarger
A colleague passed this along to me. I've been doing a lot of work in the guts
of the Go runtime as part of my work at Wallaroo Labs and while there isn't a
ton here yet, what there is was helpful.

The links at the bottom were what I found particularly helpful.

~~~
robzyb
Yeah I tried to research Go Assembly ~12 months ago and came up with
relatively little. It's great to see this!

------
Aissen
This 2017 FOSDEM talk is also interesting on this subject:
[https://archive.fosdem.org/2017/schedule/event/go_scaling/](https://archive.fosdem.org/2017/schedule/event/go_scaling/)
; albeit it's more on the cryptographic side of things.

------
to3m
> 137438953482 actually corresponds to the 10 and 32 4-byte values
> concatenated into one 8-byte value

32<<32|10 might be a bit clearer, then...

