egcs 1.1 alpha critical fix

Richard Henderson rth@cygnus.com
Sat Sep 5 21:34:00 GMT 1998


I just committed the following to fix a code gen problem
in the SMP Linux Alpha kernel.  Sigh.


r~



Sat Sep  5 21:46:47 1998  Richard Henderson  <rth@cygnus.com>

        * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence,
        not whatever we're generating now.


Index: config/alpha/alpha.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/alpha/alpha.c,v
retrieving revision 1.53
diff -u -p -r1.53 alpha.c
--- alpha.c	1998/07/06 23:32:38	1.53
+++ alpha.c	1998/09/06 04:28:55
@@ -2468,6 +2468,8 @@ alpha_return_addr (count, frame)
 static int
 alpha_ra_ever_killed ()
 {
+  rtx top;
+
 #ifdef ASM_OUTPUT_MI_THUNK
   if (current_function_is_thunk)
     return 0;
@@ -2475,8 +2477,11 @@ alpha_ra_ever_killed ()
   if (!alpha_return_addr_rtx)
     return regs_ever_live[REG_RA];
 
-  return reg_set_between_p (gen_rtx_REG (Pmode, REG_RA),
-			    get_insns(), NULL_RTX);
+  push_topmost_sequence ();
+  top = get_insns();
+  pop_topmost_sequence ();
+  
+  return reg_set_between_p (gen_rtx_REG (Pmode, REG_RA), top, NULL_RTX);
 }
 
 



More information about the Gcc-patches mailing list