DJ Delorie wrote:
Are there any ports besides m32c that have registers which can hold HI (or SI I suppose) but not QI values?
IA-64 has branch registers that are only allowed to hold DImode values. We use CANNOT_CHANGE_MODE_CLASS to enforce this.
On x86, the vector registers can hold SImode, but do not allow HImode/QImode loads, and again CANNOT_CHANGE_MODE_CLASS is used to enforce this.
I'm sure that there are other examples out there. -- Jim Wilson, GNU Tools Support, http://www.specifix.com