According to official documentation, get_tls is a marco defined in go_asm.h. But it is actually in go_tls.h which is in the go source.
#include "go_asm.h" // this should be #include "go_tls.h"
get_tls(CX)
MOVL g(CX), AX // Move g into AX.
MOVL g_m(AX), BX // Move g.m into BX.
I made these two PRs[1][2] in golang, but I recieve a feedback which think this is not helpful. It’s really depressing.