projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[project @ 2005-01-28 12:55:17 by simonmar]
[ghc-hetmet.git]
/
ghc
/
includes
/
TailCalls.h
diff --git
a/ghc/includes/TailCalls.h
b/ghc/includes/TailCalls.h
index
bdcc400
..
13eea0e
100644
(file)
--- a/
ghc/includes/TailCalls.h
+++ b/
ghc/includes/TailCalls.h
@@
-1,5
+1,5
@@
/* -----------------------------------------------------------------------------
/* -----------------------------------------------------------------------------
- * $Id: TailCalls.h,v 1.15 2003/10/12 13:24:52 igloo Exp $
+ * $Id: TailCalls.h,v 1.18 2005/01/28 12:55:54 simonmar Exp $
*
* (c) The GHC Team, 1998-1999
*
*
* (c) The GHC Team, 1998-1999
*
@@
-16,7
+16,7
@@
#ifdef USE_MINIINTERPRETER
#ifdef USE_MINIINTERPRETER
-#define JMP_(cont) return(stgCast(StgFunPtr,cont))
+#define JMP_(cont) return((StgFunPtr)(cont))
#define FB_
#define FE_
#define FB_
#define FE_
@@
-28,7
+28,7
@@
extern void __DISCARD__(void);
Tail calling on x86
-------------------------------------------------------------------------- */
Tail calling on x86
-------------------------------------------------------------------------- */
-#if i386_TARGET_ARCH
+#if i386_HOST_ARCH
/* Note about discard: possibly there to fool GCC into clearing up
before we do the jump eg. if there are some arguments left on the C
/* Note about discard: possibly there to fool GCC into clearing up
before we do the jump eg. if there are some arguments left on the C
@@
-57,13
+57,13
@@
extern void __DISCARD__(void);
goto *__target; \
}
goto *__target; \
}
-#endif /* i386_TARGET_ARCH */
+#endif /* i386_HOST_ARCH */
/* -----------------------------------------------------------------------------
Tail calling on x86_64
-------------------------------------------------------------------------- */
/* -----------------------------------------------------------------------------
Tail calling on x86_64
-------------------------------------------------------------------------- */
-#if x86_64_TARGET_ARCH
+#if x86_64_HOST_ARCH
#define JMP_(cont) \
{ \
#define JMP_(cont) \
{ \
@@
-72,13
+72,13
@@
extern void __DISCARD__(void);
goto *__target; \
}
goto *__target; \
}
-#endif /* x86_64_TARGET_ARCH */
+#endif /* x86_64_HOST_ARCH */
/* -----------------------------------------------------------------------------
Tail calling on Sparc
-------------------------------------------------------------------------- */
/* -----------------------------------------------------------------------------
Tail calling on Sparc
-------------------------------------------------------------------------- */
-#ifdef sparc_TARGET_ARCH
+#ifdef sparc_HOST_ARCH
#define JMP_(cont) ((F_) (cont))()
/* Oh so happily, the above turns into a "call" instruction,
#define JMP_(cont) ((F_) (cont))()
/* Oh so happily, the above turns into a "call" instruction,
@@
-90,13
+90,13
@@
extern void __DISCARD__(void);
#define FB_
#define FE_
#define FB_
#define FE_
-#endif /* sparc_TARGET_ARCH */
+#endif /* sparc_HOST_ARCH */
/* -----------------------------------------------------------------------------
Tail calling on Alpha
-------------------------------------------------------------------------- */
/* -----------------------------------------------------------------------------
Tail calling on Alpha
-------------------------------------------------------------------------- */
-#ifdef alpha_TARGET_ARCH
+#ifdef alpha_HOST_ARCH
#if IN_STG_CODE
register void *_procedure __asm__("$27");
#if IN_STG_CODE
register void *_procedure __asm__("$27");
@@
-112,7
+112,7
@@
register void *_procedure __asm__("$27");
#define FB_
#define FE_
#define FB_
#define FE_
-#endif /* alpha_TARGET_ARCH */
+#endif /* alpha_HOST_ARCH */
/* -----------------------------------------------------------------------------
Tail calling on HP
/* -----------------------------------------------------------------------------
Tail calling on HP
@@
-173,7
+173,7
@@
but uses $$dyncall if necessary to cope, just in case you aren't.
Tail calling on PowerPC
-------------------------------------------------------------------------- */
Tail calling on PowerPC
-------------------------------------------------------------------------- */
-#ifdef powerpc_TARGET_ARCH
+#ifdef powerpc_HOST_ARCH
#define JMP_(cont) \
{ \
#define JMP_(cont) \
{ \
@@
-201,13
+201,17
@@
but uses $$dyncall if necessary to cope, just in case you aren't.
#define JMP_(cont) ((F_) (cont))()
*/
#define JMP_(cont) ((F_) (cont))()
*/
-#endif /* powerpc_TARGET_ARCH */
+#endif /* powerpc_HOST_ARCH */
+
+#ifdef powerpc64_HOST_ARCH
+#define JMP_(cont) ((F_) (cont))()
+#endif
/* -----------------------------------------------------------------------------
Tail calling on IA64
-------------------------------------------------------------------------- */
/* -----------------------------------------------------------------------------
Tail calling on IA64
-------------------------------------------------------------------------- */
-#ifdef ia64_TARGET_ARCH
+#ifdef ia64_HOST_ARCH
/* The compiler can more intelligently decide how to do this. We therefore
* implement it as a call and optimise to a jump at mangle time. */
/* The compiler can more intelligently decide how to do this. We therefore
* implement it as a call and optimise to a jump at mangle time. */