Few technical comments:
Go's calling convention is using registers, except when writing own assembly functions then it's stack-based; the latter is also how it worked in the past. See https://go.dev/s/regabi and https://go.dev/doc/asm
Build tags have a form "go:build" not "+build" since Go 1.17, that is for couple of years already.
More about build tags: using both build tags and filename suffix for arch-based conditional compilation is redundant. Just use one of them, not both.