Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Yes. But what you cannot do is a load with the sum of any two GPRs. They need to be in the right partitions. That makes register assignment a huge pain for the optimizer, and historically hurt the architecture.

That's the kind of complexity that really hurts software. Compare vs. the commonly-cited x86 nonsense (the REP prefix, say), which complicates silicon implementations but generally makes software easier to write (c.f. decades of optimized inline memcpy implementations).

The point being the 68k was a dead end in a different direction. It was a "clean" archiecture from the perspective of a 1970's assembly programmer, but not a late 80's compiler writer.



The only thing you can't do is the sum of two data registers, and this only applies when calculating an effective address.

When you have 15 registers to work with that's not going to be more of a problem than only having 7 or 8 registers to work with.


I don't want to be too blunt, but have you looked at early 90's era 68k compiler output? It was crap. When Sun launched SPARC, like half the advantage of the platform was that the compiler was suddenly generating this amazingly clean code. The phantom spills and intra-GPR movs everyone was used to disappeared overnight.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: