/[cmucl]/src/lisp/gencgc.c
ViewVC logotype

Diff of /src/lisp/gencgc.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.68 by rtoy, Tue Jan 31 03:16:39 2006 UTC revision 1.69 by rtoy, Tue Jan 31 13:58:36 2006 UTC
# Line 2277  static void Line 2277  static void
2277  scavenge_interrupt_context(os_context_t * context)  scavenge_interrupt_context(os_context_t * context)
2278  {  {
2279      int i;      int i;
2280        unsigned long pc_code_offset;
2281    
2282  #ifdef reg_LIP  #ifdef reg_LIP
2283      unsigned long lip;      unsigned long lip;
# Line 2289  scavenge_interrupt_context(os_context_t Line 2290  scavenge_interrupt_context(os_context_t
2290  #ifdef reg_CTR  #ifdef reg_CTR
2291      unsigned long ctr_code_offset;      unsigned long ctr_code_offset;
2292  #endif  #endif
     unsigned long pc_code_offset;  
   
2293  #ifdef SC_NPC  #ifdef SC_NPC
2294      unsigned long npc_code_offset;      unsigned long npc_code_offset;
2295  #endif  #endif
# Line 2324  scavenge_interrupt_context(os_context_t Line 2323  scavenge_interrupt_context(os_context_t
2323      }      }
2324  #endif /* reg_LIP */  #endif /* reg_LIP */
2325    
2326      /* Compute the PC's offset from the start of the CODE */      /*
2327      /* register. */       * Compute the PC's offset from the start of the CODE
2328         * register.
2329         */
2330      pc_code_offset = SC_PC(context) - SC_REG(context, reg_CODE);      pc_code_offset = SC_PC(context) - SC_REG(context, reg_CODE);
2331  #ifdef SC_NPC  #ifdef SC_NPC
2332      npc_code_offset = SC_NPC(context) - SC_REG(context, reg_CODE);      npc_code_offset = SC_NPC(context) - SC_REG(context, reg_CODE);
# Line 2369  scavenge_interrupt_context(os_context_t Line 2370  scavenge_interrupt_context(os_context_t
2370  #endif /* reg_LIP */  #endif /* reg_LIP */
2371    
2372      /* Fix the PC if it was in from space */      /* Fix the PC if it was in from space */
2373      if (from_space_p(SC_PC(context)))      if (from_space_p(SC_PC(context))) {
2374          SC_PC(context) = SC_REG(context, reg_CODE) + pc_code_offset;          SC_PC(context) = SC_REG(context, reg_CODE) + pc_code_offset;
2375        }
2376  #ifdef SC_NPC  #ifdef SC_NPC
2377      if (from_space_p(SC_NPC(context)))      if (from_space_p(SC_NPC(context))) {
2378          SC_NPC(context) = SC_REG(context, reg_CODE) + npc_code_offset;          SC_NPC(context) = SC_REG(context, reg_CODE) + npc_code_offset;
2379        }
2380  #endif /* SC_NPC */  #endif /* SC_NPC */
2381    
2382  #ifdef reg_LR  #ifdef reg_LR
2383      if (from_space_p(SC_REG(context, reg_LR)) {      if (from_space_p(SC_REG(context, reg_LR))) {
2384          SC_REG(context, reg_LR) = SC_REG(context, reg_CODE)          SC_REG(context, reg_LR) = SC_REG(context, reg_CODE) + lr_code_offset;
                                   + lr_code_offset;  
2385      }      }
2386  #endif  #endif
2387  #ifdef reg_CTR  #ifdef reg_CTR
2388      if (from_space_p(SC_REG(context, reg_CTR)) {      if (from_space_p(SC_REG(context, reg_CTR))) {
2389          SC_REG(context, reg_CTR) = SC_REG(context, reg_CODE)        SC_REG(context, reg_CTR) = SC_REG(context, reg_CODE) + ctr_code_offset;
                                     + ctr_code_offset;  
2390      }      }
2391  #endif  #endif
2392  }  }

Legend:
Removed from v.1.68  
changed lines
  Added in v.1.69

  ViewVC Help
Powered by ViewVC 1.1.5