[project @ 2005-01-13 16:04:52 by simonmar]
[ghc-hetmet.git] / ghc / includes / MachRegs.h
index c54de67..0261fe7 100644 (file)
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: MachRegs.h,v 1.15 2003/12/10 11:35:25 wolfgang Exp $
+ * $Id: MachRegs.h,v 1.18 2005/01/13 16:04:52 simonmar Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
  * only in here please.
  */
 
-/* define NO_REGS to omit register declarations - used in RTS C code
- * that needs all the STG definitions but not the global register 
- * settings.
+/* 
+ * Defining NO_REGS causes no global registers to be used.  NO_REGS is
+ * typically defined by GHC, via a command-line option passed to gcc,
+ * when the -funregisterised flag is given.
+ *
+ * NB. When NO_REGS is on, calling & return conventions may be
+ * different.  For example, all function arguments will be passed on
+ * the stack, and components of an unboxed tuple will be returned on
+ * the stack rather than in registers.
  */
 #ifndef NO_REGS
 
    I think we can do the Whole Business with callee-save registers only!
    -------------------------------------------------------------------------- */
 
-#if powerpc_TARGET_ARCH || rs6000_TARGET_ARCH
+#if powerpc_TARGET_ARCH || powerpc64_TARGET_ARCH || rs6000_TARGET_ARCH
 
 #define REG(x) __asm__(#x)
 
 #define REG_Hp         r25
 #define REG_HpLim      r26
 
-#define NCG_SpillTmp_I1        r27
-#define NCG_SpillTmp_I2        r28
-
-#define NCG_SpillTmp_D1        f20
-#define NCG_SpillTmp_D2        f21
+#define REG_Base        r27
 
 #endif /* powerpc */