armcpu-architecturebackwards-compatibilityinstruction-setrisc

Do RISC processors not have backward compatibility?


I'm reading a textbook which says:

RISC processors have done very well in the market for embedded processors, controlling such systems as cellular telephones, automobile brakes, and Internet appliances. In these applications, saving on cost and power is more important than maintaining backward compatibility.

Does it mean RISC processors (e.g. ARM) are not backward compatible with older versions?


Solution

  • That's correct; for example on really old ARM, a word load with non-zero low bits meant to rotate an aligned word. On modern ARM, those bits are just part of the address and give you an unaligned load.

    So ARM at one point subtly broke compat with rare code which depended on that feature, making those old binaries unusable on modern ARM. Most ARM binaries are still fine because they avoided unaligned word loads/stores entirely.