diff options
| author | simonm <unknown> | 1999-03-01 17:40:55 +0000 |
|---|---|---|
| committer | simonm <unknown> | 1999-03-01 17:40:55 +0000 |
| commit | 323ca12e5f3248b845beb3fe9582fa3d9a86edd7 (patch) | |
| tree | 7dd2024751bdbd4ff4fdca058aae28bfddeb4901 | |
| parent | 44d304875bf091c9ac6eb337a89f4dc4d5b19a6b (diff) | |
| download | haskell-323ca12e5f3248b845beb3fe9582fa3d9a86edd7.tar.gz | |
[project @ 1999-03-01 17:40:55 by simonm]
hppa1.1 support, first cut.
| -rw-r--r-- | ghc/includes/TailCalls.h | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/ghc/includes/TailCalls.h b/ghc/includes/TailCalls.h index ab6edd061c..87908d5fa5 100644 --- a/ghc/includes/TailCalls.h +++ b/ghc/includes/TailCalls.h @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: TailCalls.h,v 1.3 1999/02/05 16:02:31 simonm Exp $ + * $Id: TailCalls.h,v 1.4 1999/03/01 17:40:55 simonm Exp $ * * (c) The GHC Team, 1998-1999 * @@ -89,13 +89,26 @@ register void *_procedure __asm__("$27"); #endif alpha_TARGET_ARCH -/* +/* ----------------------------------------------------------------------------- + Tail calling on HP + -------------------------------------------------------------------------- */ + +#ifdef hppa1_1_hp_hpux_TARGET + +#define JMP_(cont) \ + do { void *_procedure = (void *)(cont); \ + goto *_procedure; \ + } while(0) + +#endif /* hppa1_1_hp_hpux_TARGET */ + +/* ----------------------------------------------------------------------------- FUNBEGIN and FUNEND. These are markers indicating the start and end of Real Code in a function. All instructions between the actual start and end of the function and these markers is shredded by the mangler. - */ + -------------------------------------------------------------------------- */ #ifndef FB_ #define FB_ __asm__ volatile ("--- BEGIN ---"); |
