Currently in the PPC assembler the type of a register is an int and the type of a displacement is an int. In the Intel compiler the registers are bytes, scales are shorts and the displacements ints. It is all too easy with the PPC assembler to pass a register as a displacement or vice versa. For example here are the definitions of STW and STWX:
public final void emitSTW (int RS, int D, int RA)
public final void emitSTWX (int RS, int RA, int RB)
creating the statement:
asm.emitSTW(T0, T1, T2)
would not create any warnings (the 2nd argument probably means this should be an STWX) whereas had the definition of the registers been bytes (or even enums) the developer could have been spared some head scratching.
This replaces SF RFE tracker 1658972.