[BACK]Return to mark_rts.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gc

Diff for /OpenXM_contrib/gc/Attic/mark_rts.c between version 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 1999/11/27 10:58:32 version 1.1.1.2, 2000/04/14 11:07:58
Line 412  ptr_t cold_gc_frame;
Line 412  ptr_t cold_gc_frame;
         if (0 == cold_gc_frame) return;          if (0 == cold_gc_frame) return;
 #       ifdef STACK_GROWS_DOWN  #       ifdef STACK_GROWS_DOWN
           GC_push_all_eager(GC_approx_sp(), cold_gc_frame);            GC_push_all_eager(GC_approx_sp(), cold_gc_frame);
   #         ifdef IA64
               --> fix this
   #         endif
 #       else  #       else
           GC_push_all_eager( cold_gc_frame, GC_approx_sp() );            GC_push_all_eager( cold_gc_frame, GC_approx_sp() );
 #       endif  #       endif
Line 419  ptr_t cold_gc_frame;
Line 422  ptr_t cold_gc_frame;
 #       ifdef STACK_GROWS_DOWN  #       ifdef STACK_GROWS_DOWN
             GC_push_all_stack_partially_eager( GC_approx_sp(), GC_stackbottom,              GC_push_all_stack_partially_eager( GC_approx_sp(), GC_stackbottom,
                                                cold_gc_frame );                                                 cold_gc_frame );
   #           ifdef IA64
                 /* We also need to push the register stack backing store. */
                 /* This should really be done in the same way as the      */
                 /* regular stack.  For now we fudge it a bit.             */
                 /* Note that the backing store grows up, so we can't use  */
                 /* GC_push_all_stack_partially_eager.                     */
                 {
                   extern word GC_save_regs_ret_val;
                           /* Previously set to backing store pointer.     */
                   ptr_t bsp = (ptr_t) GC_save_regs_ret_val;
                   ptr_t cold_gc_bs_pointer;
   #               ifdef ALL_INTERIOR_POINTERS
                     cold_gc_bs_pointer = bsp - 2048;
                     if (cold_gc_bs_pointer < BACKING_STORE_BASE) {
                       cold_gc_bs_pointer = BACKING_STORE_BASE;
                     }
                     GC_push_all(BACKING_STORE_BASE, cold_gc_bs_pointer);
   #               else
                     cold_gc_bs_pointer = BACKING_STORE_BASE;
   #               endif
                   GC_push_all_eager(cold_gc_bs_pointer, bsp);
                   /* All values should be sufficiently aligned that we    */
                   /* dont have to worry about the boundary.               */
                 }
   #           endif
 #       else  #       else
             GC_push_all_stack_partially_eager( GC_stackbottom, GC_approx_sp(),              GC_push_all_stack_partially_eager( GC_stackbottom, GC_approx_sp(),
                                                cold_gc_frame );                                                 cold_gc_frame );

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>