+#if powerpc_TARGET_ARCH || rs6000_TARGET_ARCH
+
+#define REG(x) __asm__(#x)
+
+#if defined(MARK_REG_MAP)
+#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 r22
+#define REG_New r23
+#define REG_LinkLim r24
+#else
+#if defined(SCAV_REG_MAP)
+#define REG_Scav r22
+#define REG_ToHp r23
+#if defined(GCap) || defined(GCgn)
+#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
+#if HAVE_LONG_LONG && SIZEOF_LONG < 8
+#define CALLEE_SAVES_LngReg1
+#define CALLEE_SAVES_LngReg2
+#endif
+#define CALLEE_SAVES_SpA
+#define CALLEE_SAVES_SuA
+#define CALLEE_SAVES_SpB
+#define CALLEE_SAVES_SuB
+#define CALLEE_SAVES_Hp
+#define CALLEE_SAVES_HpLim
+
+#define CALLEE_SAVES_Ret
+
+#define CALLEE_SAVES_R1
+#define CALLEE_SAVES_R2
+#define CALLEE_SAVES_R3
+#define CALLEE_SAVES_R4
+#define CALLEE_SAVES_R5
+#define CALLEE_SAVES_R6
+#define CALLEE_SAVES_R7
+#define CALLEE_SAVES_R8
+
+#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 fr14
+#define REG_Flt2 fr15
+#define REG_Flt3 fr16
+#define REG_Flt4 fr17
+
+#define REG_Dbl1 fr18
+#define REG_Dbl2 fr19
+
+#define REG_SpA r22
+#define REG_SuA r23
+#define REG_SpB r24
+#define REG_SuB r25
+
+#define REG_Hp r26
+#define REG_HpLim r27
+
+#define REG_Ret r28
+
+#define REG_StkStub r29
+
+#endif /* SCAV_REG_MAP */
+#endif /* SCAN_REG_MAP */
+#endif /* MARK_REG_MAP */
+
+#endif /* powerpc */