[project @ 2005-01-28 12:55:17 by simonmar]
[ghc-hetmet.git] / ghc / compiler / nativeGen / NCG.h
index 3e4d8c1..78db0c9 100644 (file)
-#define COMMA ,
-
-#ifndef NCG_H
-#define NCG_H
-#if 0
- COMPILING_NCG is used to control the visibility of 
- relevant information from the GHC header files when
- compiling the native code generator modules.
-#endif
-
-#ifndef COMPILING_NCG
-#define COMPILING_NCG
-#endif
-
-#if 0
-
-IMPORTANT!  If you put extra tabs/spaces in these macro definitions,
-you will screw up the layout where they are used in case expressions!
-
-(This is cpp-dependent, of course)
-
-** Convenience macros for writing the native-code generator **
-
-#endif
+/* -----------------------------------------------------------------------------
 
-#define FAST_REG_NO FAST_INT
+   (c) The University of Glasgow, 1994-2004
 
-#include "../../includes/config.h"
+   Native-code generator header file - just useful macros for now.
 
-#if 0
-{-testing only-}
-#undef sparc_TARGET_ARCH
-#undef sunos4_TARGET_OS
-#undef i386_TARGET_ARCH
-#define i386_TARGET_ARCH 1
-#undef linuxaout_TARGET_OS
-#define linuxaout_TARGET_OS 1
-#endif
-#if 0
-{-testing only-}
-#undef sparc_TARGET_ARCH
-#undef sunos4_TARGET_OS
-#undef alpha_TARGET_ARCH
-#define alpha_TARGET_ARCH 1
-#endif
-
-#if i386_TARGET_ARCH
-# define STOLEN_X86_REGS 4
--- HACK: go for the max
-#endif
-
-#include "../../includes/MachRegs.h"
-
-#if alpha_TARGET_ARCH
-# define BYTES_PER_WORD 8
-# define BYTES_PER_WORD_STR "8"
-
-# include "../../includes/alpha-dec-osf1.h"
-#endif
-
-#if i386_TARGET_ARCH
-# define BYTES_PER_WORD 4
-# define BYTES_PER_WORD_STR "4"
+   -------------------------------------------------------------------------- */
 
-# if linuxaout_TARGET_OS
-#  include "../../includes/i386-unknown-linuxaout.h"
-# endif
-# if linux_TARGET_OS
-#  include "../../includes/i386-unknown-linux.h"
-# endif
-# if freebsd_TARGET_OS
-#  include "../../includes/i386-unknown-freebsd.h"
-# endif
-# if netbsd_TARGET_OS
-#  include "../../includes/i386-unknown-netbsd.h"
-# endif
-# if bsdi_TARGET_OS
-#  include "../../includes/i386-unknown-bsdi.h"
-# endif
-# if cygwin32_TARGET_OS
-#  include "../../includes/i386-unknown-cygwin32.h"
-# endif
-# if solaris2_TARGET_OS
-#  include "../../includes/i386-unknown-solaris2.h"
-# endif
-#endif
-
-#if sparc_TARGET_ARCH
-# define BYTES_PER_WORD 4
-# define BYTES_PER_WORD_STR "4"
+#ifndef NCG_H
+#define NCG_H
 
-# if sunos4_TARGET_OS
-#  include "../../includes/sparc-sun-sunos4.h"
-# endif
-# if solaris2_TARGET_OS
-#  include "../../includes/sparc-sun-solaris2.h"
-# endif
-#endif
+#include "ghc_boot_platform.h"
 
----------------------------------------------
+#define COMMA ,
 
+-- - - - - - - - - - - - - - - - - - - - - - 
 #if alpha_TARGET_ARCH
 # define IF_ARCH_alpha(x,y) x
 #else
 # define IF_ARCH_alpha(x,y) y
 #endif
-
----------------------------------------------
-
+-- - - - - - - - - - - - - - - - - - - - - - 
 #if i386_TARGET_ARCH
 # define IF_ARCH_i386(x,y) x
 #else
@@ -125,6 +38,12 @@ you will screw up the layout where they are used in case expressions!
 # define IF_OS_netbsd(x,y) y
 #endif
 -- - - - - - - - - - - - - - - - - - - - - - 
+#if openbsd_TARGET_OS
+# define IF_OS_openbsd(x,y) x
+#else
+# define IF_OS_openbsd(x,y) y
+#endif
+-- - - - - - - - - - - - - - - - - - - - - - 
 #if linux_TARGET_OS
 # define IF_OS_linux(x,y) x
 #else
@@ -148,7 +67,7 @@ you will screw up the layout where they are used in case expressions!
 #else
 # define IF_OS_cygwin32(x,y) y
 #endif
----------------------------------------------
+-- - - - - - - - - - - - - - - - - - - - - - 
 #if sparc_TARGET_ARCH
 # define IF_ARCH_sparc(x,y) x
 #else
@@ -167,5 +86,17 @@ you will screw up the layout where they are used in case expressions!
 #else
 # define IF_OS_solaris2(x,y) y
 #endif
+-- - - - - - - - - - - - - - - - - - - - - - 
+#if powerpc_TARGET_ARCH
+# define IF_ARCH_powerpc(x,y) x
+#else
+# define IF_ARCH_powerpc(x,y) y
+#endif
+-- - - - - - - - - - - - - - - - - - - - - - 
+#if darwin_TARGET_OS
+# define IF_OS_darwin(x,y) x
+#else
+# define IF_OS_darwin(x,y) y
+#endif
 ---------------------------------------------
 #endif