I think we can do the Whole Business with callee-save registers only!
\begin{code}
-#if powerpc_TARGET_ARCH
+#if powerpc_TARGET_ARCH || rs6000_TARGET_ARCH
#define REG(x) __asm__(#x)
#if defined(MARK_REG_MAP)
-#define REG_Mark 22
-#define REG_MStack 23
-#define REG_MRoot 24
-#define REG_BitArray 25
-#define REG_HeapBase 26
-#define REG_HeapLim 27
+#define REG_Mark r22
+#define REG_MStack r23
+#define REG_MRoot r24
+#define REG_BitArray r25
+#define REG_HeapBase r26
+#define REG_HeapLim r27
#else
#if defined(SCAN_REG_MAP)
-#define REG_Scan 22
-#define REG_New 23
-#define REG_LinkLim 24
+#define REG_Scan r22
+#define REG_New r23
+#define REG_LinkLim r24
#else
#if defined(SCAV_REG_MAP)
-#define REG_Scav 22
-#define REG_ToHp 23
+#define REG_Scav r22
+#define REG_ToHp r23
#if defined(GCap) || defined(GCgn)
-#define REG_OldGen 24
+#define REG_OldGen r24
#endif /* GCap || GCgn */
#else /* default: MAIN_REG_MAP */
/* callee saves */
-/* #define CALLEE_SAVES_FltReg1 */
-/* #define CALLEE_SAVES_FltReg2 */
-/* #define CALLEE_SAVES_FltReg3 */
-/* #define CALLEE_SAVES_FltReg4 */
-/* #define CALLEE_SAVES_DblReg1 */
-/* #define CALLEE_SAVES_DblReg2 */
+#define CALLEE_SAVES_FltReg1
+#define CALLEE_SAVES_FltReg2
+#define CALLEE_SAVES_FltReg3
+#define CALLEE_SAVES_FltReg4
+#define CALLEE_SAVES_DblReg1
+#define CALLEE_SAVES_DblReg2
#define CALLEE_SAVES_SpA
#define CALLEE_SAVES_SuA
#define CALLEE_SAVES_SpB
#define CALLEE_SAVES_R7
#define CALLEE_SAVES_R8
-#define REG_R1 14
-#define REG_R2 15
-#define REG_R3 16
-#define REG_R4 17
-#define REG_R5 18
-#define REG_R6 19
-#define REG_R7 20
-#define REG_R8 21
+#define REG_R1 r14
+#define REG_R2 r15
+#define REG_R3 r16
+#define REG_R4 r17
+#define REG_R5 r18
+#define REG_R6 r19
+#define REG_R7 r20
+#define REG_R8 r21
-/* #define REG_Flt1 14 */
-/* #define REG_Flt2 15 */
-/* #define REG_Flt3 16 */
-/* #define REG_Flt4 17 */
+#define REG_Flt1 fr14
+#define REG_Flt2 fr15
+#define REG_Flt3 fr16
+#define REG_Flt4 fr17
-/* #define REG_Dbl1 18 */
-/* #define REG_Dbl2 19 */
+#define REG_Dbl1 fr18
+#define REG_Dbl2 fr19
-#define REG_SpA 22
-#define REG_SuA 23
-#define REG_SpB 24
-#define REG_SuB 25
+#define REG_SpA r22
+#define REG_SuA r23
+#define REG_SpB r24
+#define REG_SuB r25
-#define REG_Hp 26
-#define REG_HpLim 27
+#define REG_Hp r26
+#define REG_HpLim r27
-#define REG_Ret 28
+#define REG_Ret r28
-#define REG_StkStub 29
+#define REG_StkStub r29
#endif /* SCAV_REG_MAP */
#endif /* SCAN_REG_MAP */