Changeset 14499 for release


Ignore:
Timestamp:
Dec 20, 2010, 8:54:00 PM (9 years ago)
Author:
rme
Message:

From trunk: GC integrity check more places; fix to progvsave.
(ARM only)

Location:
release/1.6/source
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • release/1.6/source

  • release/1.6/source/lisp-kernel/arm-gc.c

    r14485 r14499  
    144144
    145145void
     146check_xp(ExceptionInformation *xp)
     147{
     148  natural *regs = (natural *) xpGPRvector(xp);
     149  LispObj lr_value;
     150  int r;
     151
     152  for (r = arg_z; r <= Rfn; r++) {
     153    check_node((regs[r]));
     154  }
     155}
     156
     157
     158
     159void
     160check_tcrs(TCR *first)
     161{
     162  xframe_list *xframes;
     163  ExceptionInformation *xp;
     164 
     165  TCR *tcr = first;
     166  LispObj *tlb_start,*tlb_end;
     167
     168  do {
     169    xp = tcr->gc_context;
     170    if (xp) {
     171      check_xp(xp);
     172    }
     173    for (xframes = (xframe_list *) tcr->xframe;
     174         xframes;
     175         xframes = xframes->prev) {
     176      check_xp(xframes->curr);
     177    }
     178    tlb_start = tcr->tlb_pointer;
     179    if (tlb_start) {
     180      tlb_end = tlb_start + ((tcr->tlb_limit)>>fixnumshift);
     181      check_range(tlb_start,tlb_end,false);
     182    }
     183    tcr = tcr->next;
     184  } while (tcr != first);
     185}
     186
     187void
    146188check_all_areas(TCR *tcr)
    147189{
     
    169211      break;
    170212
     213    case AREA_CSTACK:
     214      check_range((LispObj *)a->active, (LispObj *)a->high, true);
     215      break;
     216
    171217    }
    172218    a = a->succ;
    173219    code = (a->code);
    174220  }
     221  check_tcrs(tcr);
    175222}
    176223
  • release/1.6/source/lisp-kernel/arm-spentry.s

    r14272 r14499  
    41604160        __(b 9f)
    416141612:
     4162        __(orr imm1,imm1,fixnumone) /* force odd */
    41624163        __(mov imm1,imm1,lsl #num_subtag_bits-fixnumshift)
    41634164        __(orr imm1,imm1,#subtag_u32_vector)
Note: See TracChangeset for help on using the changeset viewer.