X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FnativeGen%2FNCG.h;h=78db0c943ff2655be63807cbd8419fb9d88ddfa6;hb=153b9cb9b11e05c4edb1b6bc0a7b972660e41f70;hp=ac69c2666617ccb84774b7a4a5208625e37dc3ee;hpb=23c94851fb2c98d345d913d35a5a12bbc3a346bd;p=ghc-hetmet.git diff --git a/ghc/compiler/nativeGen/NCG.h b/ghc/compiler/nativeGen/NCG.h index ac69c26..78db0c9 100644 --- a/ghc/compiler/nativeGen/NCG.h +++ b/ghc/compiler/nativeGen/NCG.h @@ -1,117 +1,25 @@ -#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" - -# if osf1_TARGET_OS -# include "../../includes/alpha-dec-osf1.h" -# endif -# if osf3_TARGET_OS -# include "../../includes/alpha-dec-osf3.h" -# endif -#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 @@ -130,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 @@ -153,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 @@ -172,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