From: ken Date: Thu, 18 Apr 2002 19:12:43 +0000 (+0000) Subject: [project @ 2002-04-18 19:12:43 by ken] X-Git-Tag: Approx_11550_changesets_converted~2142 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=cb06faa1163bc87b665d4924ba05e7c0886f31dc;p=ghc-hetmet.git [project @ 2002-04-18 19:12:43 by ken] Save $gp in StgRun() on the Alpha --- diff --git a/ghc/rts/StgCRun.c b/ghc/rts/StgCRun.c index ac46b73..884f9c3 100644 --- a/ghc/rts/StgCRun.c +++ b/ghc/rts/StgCRun.c @@ -1,5 +1,5 @@ /* ----------------------------------------------------------------------------- - * $Id: StgCRun.c,v 1.31 2002/03/26 10:35:20 simonmar Exp $ + * $Id: StgCRun.c,v 1.32 2002/04/18 19:12:43 ken Exp $ * * (c) The GHC Team, 1998-2000 * @@ -54,6 +54,7 @@ #ifdef alpha_TARGET_ARCH #define alpha_EXTRA_CAREFUL register long fake_ra __asm__("$26"); +register long fake_gp __asm__("$29"); #ifdef alpha_EXTRA_CAREFUL register long fake_s6 __asm__("$15"); register double fake_f8 __asm__("$f8"); @@ -268,6 +269,7 @@ StgThreadReturnCode StgRun(StgFunPtr f, StgRegTable *basereg) { register long real_ra __asm__("$26"); volatile long save_ra; + register long real_gp __asm__("$29"); volatile long save_gp; register long real_s0 __asm__("$9" ); volatile long save_s0; register long real_s1 __asm__("$10"); volatile long save_s1; @@ -295,6 +297,7 @@ StgRun(StgFunPtr f, StgRegTable *basereg) StgThreadReturnCode ret; save_ra = real_ra; + save_gp = real_gp; save_s0 = real_s0; save_s1 = real_s1; @@ -351,6 +354,7 @@ StgRun(StgFunPtr f, StgRegTable *basereg) #endif real_ra = save_ra; + real_gp = save_gp; return ret; }