From 323ca12e5f3248b845beb3fe9582fa3d9a86edd7 Mon Sep 17 00:00:00 2001 From: simonm Date: Mon, 1 Mar 1999 17:40:55 +0000 Subject: [PATCH] [project @ 1999-03-01 17:40:55 by simonm] hppa1.1 support, first cut. --- ghc/includes/TailCalls.h | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/ghc/includes/TailCalls.h b/ghc/includes/TailCalls.h index ab6edd0..87908d5 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 ---"); -- 1.7.10.4