XXX1 - why does this "type-punned pointer" warning only affect little- endian MIPS and not big-endian MIPS?! XXX2 - too much duplicated code.