Hi, At present, if a G5 or 970 processor is selected (-mcpu=), we can (and do) generate 64 bit register usage for m32 code. This appears to be a long-standing bug.
OK for trunk & all open branches? Iain gcc/ * config/rs6000/darwin.h (OS_MISSING_POWERPC64): New. Index: gcc/config/rs6000/darwin.h =================================================================== --- gcc/config/rs6000/darwin.h (revision 189712) +++ gcc/config/rs6000/darwin.h (working copy) @@ -398,6 +398,9 @@ extern int darwin_emit_branch_islands; default, as kernel code doesn't save/restore those registers. */ #define OS_MISSING_ALTIVEC (flag_mkernel || flag_apple_kext) +/* When building m32 code, we cannot use POWERPC64. */ +#define OS_MISSING_POWERPC64 !TARGET_64BIT + /* Darwin has support for section anchors on powerpc*. It is disabled for any section containing a "zero-sized item" (because these are re-written as size=1 to be compatible with the OSX ld64).