
Does a free swap turn a stack into a traditional register set? (2005) - Tomte
http://cr.yp.to/qhasm/20050210-fxch.txt
======
gwu78
"I suggest compiler writers stop viewing the x86 stack as a twisted version of
a traditional 8-register set."

What if compiler writers will not fix the problem?

Write own register allocator:
[http://cr.yp.to/qhasm.html](http://cr.yp.to/qhasm.html)

Bonus: allow use of a "portable assembly language" to generate assembly, being
respectful of the fact that _users might not all be using computers with the
same CPU architecture._

This could be like assembler with C-like operators and structure.

In addtion to facilitating portability it might also make writing in assembler
a little easier.

Reminds me of Bell Labs' LIL:
[http://www.ultimate.com/phil/lil/tut.html](http://www.ultimate.com/phil/lil/tut.html)

------
krallja
So, what's the follow up a dozen years later? Do clang or gcc treat the
floating point stack as a stack?

Is x86-64 completely different?

~~~
tsuyoshi
x86-64 replaced the stack with registers. So this article, while interesting,
is not of much practical use anymore.

