TIL: Go not only passes all arguments via the stack on x86-64, it passes *return values* via the stack too. 😧
Conversation
Is there a reason other than simplicity of the initial implementation?
Quote Tweet
Replying to @graydon_pub @pcwalton and @phenlix
Yes, that was the original reason and stuck. And that the traditional ABIs don't define multiple return values or as Go needed. That said, Go just started ABI versioning to explore changing it.
2


