From: simonm Date: Mon, 1 Mar 1999 17:40:55 +0000 (+0000) Subject: [project @ 1999-03-01 17:40:55 by simonm] X-Git-Tag: Approximately_9120_patches~6478 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=323ca12e5f3248b845beb3fe9582fa3d9a86edd7;hp=44d304875bf091c9ac6eb337a89f4dc4d5b19a6b;p=ghc-hetmet.git [project @ 1999-03-01 17:40:55 by simonm] hppa1.1 support, first cut. --- 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 ---");