Hacker News new | ask | show | jobs
by bcantrill 4129 days ago
One does wonder if the register re-naming from their abstract (but misleading) names to their proper machine names (e.g., from "SP" to "R13") wasn't at all a reaction to the (in)famous polemic on the golang build chain.[1]

[1] http://dtrace.org/blogs/wesolows/2014/12/29/golang-is-trash/

4 comments

SP, FP, and PC are all still there. What we did was make the conventions more uniform across all architectures. The rules for certain corner cases for when SP and PC were references to the virtual register and when they were references to the real register were inconsistent. As part of having a single assembly parser, we made the rules consistent, which meant eliminating some forms that were accepted on only a subset of systems, or that had different meanings on different systems.

I'm a little surprised you brought that post up to begin with. It completely misses the point, as I explained in my comment here at the time (https://news.ycombinator.com/item?id=8817990). When I wrote that response I also submitted a comment on the blog itself with a link to the HN comment. That blog comment has not yet been published. If you're going to keep sending around links to such an inflammatory blog post, could you also try to get my comment there approved?

Thanks.

No, this was unrelated.

SP, PC and FP are virtual registers, from the POV of the assembler. On _some_ architecture those words have real meanings, like RSP on intel, but on others they are just conventions.

I don't think Keith's rage quit has had a measurable impact on the direction of Go or its toolchain.

Aside from what the other reply to your comment said, using R13 and R15 is actually a move away from standard notation: even though those do correspond to SP and PC, the ARM architecture manual as well as all assembly code I've seen uses the special names for those registers.
That's a classic of the "too rude and opinionated to salvage anything reasonable" genre right there.