- Mar 25, 2002
- 2
- 0
- 0
Okay, maybe AMD wanted to keep their ISA as close to x86 as possible, but the two biggest complaints against the x86 instruction set are (a) not enough registers, and (b) any instruction can access memory (with complex addressing modes).
Obviously AMD fixed the former to a degree, though 16 registers (with xSP reserved) is still far less than the 32-64 rename registers on the average x86 chip, and a tiny fraction of IA64's 128 GPRs. I'd like to have seen 32 GPRs, and elimination of all implicit register opcodes.
The other part is a bigger problem. The ModR/M, SIB, Imm, and Disp bytes make instruction decoding hell, and almost any instruction can have any combination of them. Switching to a load/store architecture would allow the 8 bits formerly in the ModR/M byte to be used for 16 source and 16 destination registers with no need for a REX prefix, and one could completely ditch the these hellish suffix bytes from all but load/store instructions.
Comments from the more microarchitecture-savvy?
Obviously AMD fixed the former to a degree, though 16 registers (with xSP reserved) is still far less than the 32-64 rename registers on the average x86 chip, and a tiny fraction of IA64's 128 GPRs. I'd like to have seen 32 GPRs, and elimination of all implicit register opcodes.
The other part is a bigger problem. The ModR/M, SIB, Imm, and Disp bytes make instruction decoding hell, and almost any instruction can have any combination of them. Switching to a load/store architecture would allow the 8 bits formerly in the ModR/M byte to be used for 16 source and 16 destination registers with no need for a REX prefix, and one could completely ditch the these hellish suffix bytes from all but load/store instructions.
Comments from the more microarchitecture-savvy?
