Changeset 14273


Ignore:
Timestamp:
Sep 17, 2010, 10:45:50 PM (9 years ago)
Author:
gb
Message:

In forward_memoized_references(), try to keep function's entrypoint
in synch with codevector on ARM.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/gc-common.c

    r14197 r14273  
    11141114{
    11151115  bitvector refbits = a->refbits;
    1116   LispObj *p = (LispObj *) a->low, x1, x2, new;
     1116  LispObj *p = (LispObj *) a->low, *p0 = p, x1, x2, new;
    11171117  natural bits, bitidx, *bitsp, nextbit, diff, memo_dnode = 0, hash_dnode_limit = 0;
    11181118  int tag_x1;
     
    11651165          if (new != x1) {
    11661166            *p = new;
     1167#ifdef ARM
     1168            if (p != p0) {
     1169              if(header_subtag(p[-2]) == subtag_function) {
     1170                /* Just updated the code vector; fix the entrypoint */
     1171                if (p[-1] == (untag(x1)+fulltag_odd_fixnum)) {
     1172                  p[-1] = (untag(new)+fulltag_odd_fixnum);
     1173                }
     1174              }
     1175            }
     1176#endif
    11671177          }
    11681178        }
Note: See TracChangeset for help on using the changeset viewer.