0.pre7.31:
[sbcl.git] / src / runtime / gc.c
index b944ef1..b7fee14 100644 (file)
@@ -79,9 +79,9 @@ from_space_p(lispobj object)
 
        /* this can be called for untagged pointers as well as for 
           descriptors, so this assertion's not applicable
-          gc_assert(Pointerp(object));
+          gc_assert(is_lisp_pointer(object));
        */
-       ptr = (lispobj *) PTR(object);
+       ptr = (lispobj *) native_pointer(object);
 
        return ((from_space <= ptr) &&
                (ptr < from_space_free_pointer));
@@ -92,9 +92,9 @@ new_space_p(lispobj object)
 {
        lispobj *ptr;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
-       ptr = (lispobj *) PTR(object);
+       ptr = (lispobj *) native_pointer(object);
                
        return ((new_space <= ptr) &&
                (ptr < new_space_free_pointer));
@@ -122,7 +122,7 @@ copy_object(lispobj object, int nwords)
        lispobj *new;
        lispobj *source, *dest;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
        gc_assert(from_space_p(object));
        gc_assert((nwords & 0x01) == 0);
 
@@ -134,7 +134,7 @@ copy_object(lispobj object, int nwords)
        new_space_free_pointer += nwords;
 
        dest = new;
-       source = (lispobj *) PTR(object);
+       source = (lispobj *) native_pointer(object);
 
 #ifdef DEBUG_COPY_VERBOSE
        fprintf(stderr,"Copying %d words from %p to %p\n", nwords,source,new);
@@ -230,11 +230,7 @@ struct timeval start_tv, stop_tv;
        /* Set up from space and new space pointers. */
 
        from_space = current_dynamic_space;
-#ifndef ibmrt
        from_space_free_pointer = dynamic_space_free_pointer;
-#else
-       from_space_free_pointer = (lispobj *)SymbolValue(ALLOCATION_POINTER);
-#endif
 
 #ifdef PRINTNOISE
        fprintf(stderr,"from_space = %lx\n",
@@ -279,14 +275,9 @@ struct timeval start_tv, stop_tv;
        scavenge(((lispobj *)CONTROL_STACK_START), control_stack_size);
                 
 
-#ifdef ibmrt
-       binding_stack_size =
-           (lispobj *)SymbolValue(BINDING_STACK_POINTER) - binding_stack;
-#else
        binding_stack_size = 
          current_binding_stack_pointer - 
            (lispobj *)BINDING_STACK_START;
-#endif
 #ifdef PRINTNOISE
        printf("Scavenging the binding stack %x - %x (%d words) ...\n",
               BINDING_STACK_START,current_binding_stack_pointer,
@@ -331,11 +322,7 @@ struct timeval start_tv, stop_tv;
                (os_vm_size_t) DYNAMIC_SPACE_SIZE);
 
        current_dynamic_space = new_space;
-#ifndef ibmrt
        dynamic_space_free_pointer = new_space_free_pointer;
-#else
-       SetSymbolValue(ALLOCATION_POINTER, (lispobj)new_space_free_pointer);
-#endif
 
 #ifdef PRINTNOISE
        size_discarded = (from_space_free_pointer - from_space) * sizeof(lispobj);
@@ -386,8 +373,6 @@ struct timeval start_tv, stop_tv;
 \f
 /* scavenging */
 
-#define DIRECT_SCAV 0
-
 static void
 scavenge(lispobj *start, u32 nwords)
 {
@@ -403,18 +388,16 @@ scavenge(lispobj *start, u32 nwords)
                       (unsigned long) start, (unsigned long) object, type);
 #endif
 
-#if DIRECT_SCAV
-               words_scavenged = (scavtab[type])(start, object);
-#else
-                if (Pointerp(object)) {
+                if (is_lisp_pointer(object)) {
                    /* It be a pointer. */
                    if (from_space_p(object)) {
                         /* It currently points to old space.  Check for a */
                         /* forwarding pointer. */
                         lispobj first_word;
 
-                        first_word = *((lispobj *)PTR(object));
-                        if (Pointerp(first_word) && new_space_p(first_word)) {
+                        first_word = *((lispobj *)native_pointer(object));
+                        if (is_lisp_pointer(first_word) &&
+                           new_space_p(first_word)) {
                             /* Yep, there be a forwarding pointer. */
                             *start = first_word;
                             words_scavenged = 1;
@@ -456,7 +439,7 @@ scavenge(lispobj *start, u32 nwords)
                     words_scavenged = (scavtab[type])(start, object);
 
                 }
-#endif
+
                start += words_scavenged;
                nwords -= words_scavenged;
        }
@@ -565,15 +548,15 @@ scavenge_interrupt_context(os_context_t *context)
 
 void scavenge_interrupt_contexts(void)
 {
-       int i, index;
-       os_context_t *context;
+    int i, index;
+    os_context_t *context;
 
-       index = fixnum_value(SymbolValue(FREE_INTERRUPT_CONTEXT_INDEX));
+    index = fixnum_value(SymbolValue(FREE_INTERRUPT_CONTEXT_INDEX));
 
-       for (i = 0; i < index; i++) {
-               context = lisp_interrupt_contexts[i];
-               scavenge_interrupt_context(context); 
-       }
+    for (i = 0; i < index; i++) {
+       context = lisp_interrupt_contexts[i];
+       scavenge_interrupt_context(context); 
+    }
 }
 
 \f
@@ -595,7 +578,7 @@ print_garbage(lispobj *from_space, lispobj *from_space_free_pointer)
                lispobj header;
 
                object = *start;
-               forwardp = Pointerp(object) && new_space_p(object);
+               forwardp = is_lisp_pointer(object) && new_space_p(object);
 
                if (forwardp) {
                        int tag;
@@ -615,7 +598,7 @@ print_garbage(lispobj *from_space, lispobj *from_space_free_pointer)
                                nwords = 1;
                                break;
                        case type_OtherPointer:
-                               pointer = (lispobj *) PTR(object);
+                               pointer = (lispobj *) native_pointer(object);
                                header = *pointer;
                                type = TypeOf(header);
                                nwords = (sizetab[type])(pointer);
@@ -642,50 +625,6 @@ print_garbage(lispobj *from_space, lispobj *from_space_free_pointer)
 static lispobj trans_function_header(lispobj object);
 static lispobj trans_boxed(lispobj object);
 
-#if DIRECT_SCAV
-static int
-scav_function_pointer(lispobj *where, lispobj object)
-{
-       gc_assert(Pointerp(object));
-
-       if (from_space_p(object)) {
-               lispobj first, *first_pointer;
-
-               /* object is a pointer into from space.  check to see */
-               /* if it has been forwarded */
-               first_pointer = (lispobj *) PTR(object);
-               first = *first_pointer;
-               
-               if (!(Pointerp(first) && new_space_p(first))) {
-                       int type;
-                       lispobj copy;
-
-                       /* must transport object -- object may point */
-                       /* to either a function header, a closure */
-                       /* function header, or to a closure header. */
-                       
-                       type = TypeOf(first);
-                       switch (type) {
-                         case type_FunctionHeader:
-                         case type_ClosureFunctionHeader:
-                           copy = trans_function_header(object);
-                           break;
-                         default:
-                           copy = trans_boxed(object);
-                           break;
-                       }
-
-                       first = *first_pointer = copy;
-               }
-
-               gc_assert(Pointerp(first));
-               gc_assert(!from_space_p(first));
-
-               *where = first;
-       }
-       return 1;
-}
-#else
 static int
 scav_function_pointer(lispobj *where, lispobj object)
 {
@@ -694,10 +633,10 @@ scav_function_pointer(lispobj *where, lispobj object)
   lispobj first;
   int type;
 
-  gc_assert(Pointerp(object));
+  gc_assert(is_lisp_pointer(object));
       
   /* object is a pointer into from space. Not a FP */
-  first_pointer = (lispobj *) PTR(object);
+  first_pointer = (lispobj *) native_pointer(object);
   first = *first_pointer;
                
   /* must transport object -- object may point */
@@ -717,13 +656,12 @@ scav_function_pointer(lispobj *where, lispobj object)
   
   first = *first_pointer = copy;
 
-  gc_assert(Pointerp(first));
+  gc_assert(is_lisp_pointer(first));
   gc_assert(!from_space_p(first));
 
   *where = first;
   return 1;
 }
-#endif
 
 static struct code *
 trans_code(struct code *code)
@@ -741,11 +679,11 @@ trans_code(struct code *code)
 
        /* if object has already been transported, just return pointer */
        first = code->header;
-       if (Pointerp(first) && new_space_p(first)) {
+       if (is_lisp_pointer(first) && new_space_p(first)) {
 #ifdef DEBUG_CODE_GC
            printf("Was already transported\n");
 #endif
-           return (struct code *) PTR(first);
+           return (struct code *) native_pointer(first);
        }
        
        gc_assert(TypeOf(first) == type_CodeHeader);
@@ -759,7 +697,7 @@ trans_code(struct code *code)
        nwords = CEILING(nwords, 2);
 
        l_new_code = copy_object(l_code, nwords);
-       new_code = (struct code *) PTR(l_new_code);
+       new_code = (struct code *) native_pointer(l_new_code);
 
        displacement = l_new_code - l_code;
 
@@ -782,13 +720,13 @@ trans_code(struct code *code)
                struct function *fheaderp, *nfheaderp;
                lispobj nfheaderl;
                
-               fheaderp = (struct function *) PTR(fheaderl);
+               fheaderp = (struct function *) native_pointer(fheaderl);
                gc_assert(TypeOf(fheaderp->header) == type_FunctionHeader);
 
                /* calcuate the new function pointer and the new */
                /* function header */
                nfheaderl = fheaderl + displacement;
-               nfheaderp = (struct function *) PTR(nfheaderl);
+               nfheaderp = (struct function *) native_pointer(nfheaderl);
 
                /* set forwarding pointer */
 #ifdef DEBUG_CODE_GC
@@ -842,12 +780,12 @@ scav_code_header(lispobj *where, lispobj object)
        /* code data block */
        fheaderl = code->entry_points;
        while (fheaderl != NIL) {
-               fheaderp = (struct function *) PTR(fheaderl);
+               fheaderp = (struct function *) native_pointer(fheaderl);
                gc_assert(TypeOf(fheaderp->header) == type_FunctionHeader);
                
 #if defined(DEBUG_CODE_GC)
                printf("Scavenging boxed section of entry point located at 0x%08x.\n",
-                      (unsigned long) PTR(fheaderl));
+                      (unsigned long) native_pointer(fheaderl));
 #endif
                scavenge(&fheaderp->name, 1);
                scavenge(&fheaderp->arglist, 1);
@@ -864,7 +802,7 @@ trans_code_header(lispobj object)
 {
        struct code *ncode;
 
-       ncode = trans_code((struct code *) PTR(object));
+       ncode = trans_code((struct code *) native_pointer(object));
        return (lispobj) LOW_WORD(ncode) | type_OtherPointer;
 }
 
@@ -902,7 +840,7 @@ trans_return_pc_header(lispobj object)
        unsigned long offset;
        struct code *code, *ncode;
        lispobj ret;
-       return_pc = (struct function *) PTR(object);
+       return_pc = (struct function *) native_pointer(object);
        offset = HeaderValue(return_pc->header)  * 4 ;
 
        /* Transport the whole code object */
@@ -912,7 +850,7 @@ trans_return_pc_header(lispobj object)
 #endif
        ncode = trans_code(code);
        if(object==0x304748d7) {
-           /* ldb_monitor(); */
+           /* monitor_or_something(); */
        }
        ret= ((lispobj) LOW_WORD(ncode) + offset) | type_OtherPointer;
 #ifdef DEBUG_CODE_GC
@@ -960,7 +898,7 @@ trans_function_header(lispobj object)
        unsigned long offset;
        struct code *code, *ncode;
        
-       fheader = (struct function *) PTR(object);
+       fheader = (struct function *) native_pointer(object);
        offset = HeaderValue(fheader->header) * 4;
 
        /* Transport the whole code object */
@@ -974,87 +912,41 @@ trans_function_header(lispobj object)
 \f
 /* instances */
 
-#if DIRECT_SCAV
-static int
-scav_instance_pointer(lispobj *where, lispobj object)
-{
-    if (from_space_p(object)) {
-       lispobj first, *first_pointer;
-
-       /* object is a pointer into from space.  check to see */
-       /* if it has been forwarded */
-       first_pointer = (lispobj *) PTR(object);
-       first = *first_pointer;
-               
-       if (!(Pointerp(first) && new_space_p(first)))
-           first = *first_pointer = trans_boxed(object);
-       *where = first;
-    }
-    return 1;
-}
-#else
 static int
 scav_instance_pointer(lispobj *where, lispobj object)
 {
   lispobj  *first_pointer;
   
   /* object is a pointer into from space.  Not a FP */
-  first_pointer = (lispobj *) PTR(object);
+  first_pointer = (lispobj *) native_pointer(object);
   
   *where = *first_pointer = trans_boxed(object);
   return 1;
 }
-#endif
 
 \f
 /* lists and conses */
 
 static lispobj trans_list(lispobj object);
 
-#if DIRECT_SCAV
-static int
-scav_list_pointer(lispobj *where, lispobj object)
-{
-       gc_assert(Pointerp(object));
-
-       if (from_space_p(object)) {
-               lispobj first, *first_pointer;
-
-               /* object is a pointer into from space.  check to see */
-               /* if it has been forwarded */
-               first_pointer = (lispobj *) PTR(object);
-               first = *first_pointer;
-               
-               if (!(Pointerp(first) && new_space_p(first)))
-                       first = *first_pointer = trans_list(object);
-
-               gc_assert(Pointerp(first));
-               gc_assert(!from_space_p(first));
-       
-               *where = first;
-       }
-       return 1;
-}
-#else
 static int
 scav_list_pointer(lispobj *where, lispobj object)
 {
   lispobj first, *first_pointer;
 
-  gc_assert(Pointerp(object));
+  gc_assert(is_lisp_pointer(object));
 
   /* object is a pointer into from space.  Not a FP. */
-  first_pointer = (lispobj *) PTR(object);
+  first_pointer = (lispobj *) native_pointer(object);
   
   first = *first_pointer = trans_list(object);
   
-  gc_assert(Pointerp(first));
+  gc_assert(is_lisp_pointer(first));
   gc_assert(!from_space_p(first));
   
   *where = first;
   return 1;
 }
-#endif
 
 static lispobj
 trans_list(lispobj object)
@@ -1062,11 +954,11 @@ trans_list(lispobj object)
        lispobj new_list_pointer;
        struct cons *cons, *new_cons;
        
-       cons = (struct cons *) PTR(object);
+       cons = (struct cons *) native_pointer(object);
 
        /* ### Don't use copy_object here. */
        new_list_pointer = copy_object(object, 2);
-       new_cons = (struct cons *) PTR(new_list_pointer);
+       new_cons = (struct cons *) native_pointer(new_list_pointer);
 
        /* Set forwarding pointer. */
        cons->car = new_list_pointer;
@@ -1082,15 +974,15 @@ trans_list(lispobj object)
 
                 if (LowtagOf(cdr) != type_ListPointer ||
                     !from_space_p(cdr) ||
-                    (Pointerp(first = *(lispobj *)PTR(cdr)) &&
-                     new_space_p(first)))
+                    (is_lisp_pointer(first = *(lispobj *)native_pointer(cdr))
+                    && new_space_p(first)))
                        break;
 
-               cdr_cons = (struct cons *) PTR(cdr);
+               cdr_cons = (struct cons *) native_pointer(cdr);
 
                /* ### Don't use copy_object here */
                new_cdr = copy_object(cdr, 2);
-               new_cdr_cons = (struct cons *) PTR(new_cdr);
+               new_cdr_cons = (struct cons *) native_pointer(new_cdr);
 
                /* Set forwarding pointer */
                cdr_cons->car = new_cdr;
@@ -1110,50 +1002,23 @@ trans_list(lispobj object)
 \f
 /* scavenging and transporting other pointers */
 
-#if DIRECT_SCAV
-static int
-scav_other_pointer(lispobj *where, lispobj object)
-{
-       gc_assert(Pointerp(object));
-
-       if (from_space_p(object)) {
-               lispobj first, *first_pointer;
-
-               /* object is a pointer into from space.  check to see */
-               /* if it has been forwarded */
-               first_pointer = (lispobj *) PTR(object);
-               first = *first_pointer;
-               
-               if (!(Pointerp(first) && new_space_p(first)))
-                       first = *first_pointer = 
-                               (transother[TypeOf(first)])(object);
-
-               gc_assert(Pointerp(first));
-               gc_assert(!from_space_p(first));
-
-               *where = first;
-       }
-       return 1;
-}
-#else
 static int
 scav_other_pointer(lispobj *where, lispobj object)
 {
   lispobj first, *first_pointer;
 
-  gc_assert(Pointerp(object));
+  gc_assert(is_lisp_pointer(object));
 
   /* Object is a pointer into from space - not a FP */
-  first_pointer = (lispobj *) PTR(object);
+  first_pointer = (lispobj *) native_pointer(object);
   first = *first_pointer = (transother[TypeOf(*first_pointer)])(object);
 
-  gc_assert(Pointerp(first));
+  gc_assert(is_lisp_pointer(first));
   gc_assert(!from_space_p(first));
 
   *where = first;
   return 1;
 }
-#endif
 
 \f
 /* immediate, boxed, and unboxed objects */
@@ -1197,9 +1062,9 @@ trans_boxed(lispobj object)
        lispobj header;
        unsigned long length;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
-       header = *((lispobj *) PTR(object));
+       header = *((lispobj *) native_pointer(object));
        length = HeaderValue(header) + 1;
        length = CEILING(length, 2);
 
@@ -1258,9 +1123,9 @@ trans_unboxed(lispobj object)
        unsigned long length;
 
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
-       header = *((lispobj *) PTR(object));
+       header = *((lispobj *) native_pointer(object));
        length = HeaderValue(header) + 1;
        length = CEILING(length, 2);
 
@@ -1307,12 +1172,12 @@ trans_string(lispobj object)
        struct vector *vector;
        int length, nwords;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
        /* NOTE: Strings contain one more byte of data than the length */
        /* slot indicates. */
 
-       vector = (struct vector *) PTR(object);
+       vector = (struct vector *) native_pointer(object);
        length = fixnum_value(vector->length) + 1;
        nwords = CEILING(NWORDS(length, 4) + 2, 2);
 
@@ -1351,9 +1216,9 @@ trans_vector(lispobj object)
        struct vector *vector;
        int length, nwords;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
-       vector = (struct vector *) PTR(object);
+       vector = (struct vector *) native_pointer(object);
 
        length = fixnum_value(vector->length);
        nwords = CEILING(length + 2, 2);
@@ -1394,9 +1259,9 @@ trans_vector_bit(lispobj object)
        struct vector *vector;
        int length, nwords;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
-       vector = (struct vector *) PTR(object);
+       vector = (struct vector *) native_pointer(object);
        length = fixnum_value(vector->length);
        nwords = CEILING(NWORDS(length, 32) + 2, 2);
 
@@ -1436,9 +1301,9 @@ trans_vector_unsigned_byte_2(lispobj object)
        struct vector *vector;
        int length, nwords;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
-       vector = (struct vector *) PTR(object);
+       vector = (struct vector *) native_pointer(object);
        length = fixnum_value(vector->length);
        nwords = CEILING(NWORDS(length, 16) + 2, 2);
 
@@ -1478,9 +1343,9 @@ trans_vector_unsigned_byte_4(lispobj object)
        struct vector *vector;
        int length, nwords;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
-       vector = (struct vector *) PTR(object);
+       vector = (struct vector *) native_pointer(object);
        length = fixnum_value(vector->length);
        nwords = CEILING(NWORDS(length, 8) + 2, 2);
 
@@ -1520,9 +1385,9 @@ trans_vector_unsigned_byte_8(lispobj object)
        struct vector *vector;
        int length, nwords;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
-       vector = (struct vector *) PTR(object);
+       vector = (struct vector *) native_pointer(object);
        length = fixnum_value(vector->length);
        nwords = CEILING(NWORDS(length, 4) + 2, 2);
 
@@ -1562,9 +1427,9 @@ trans_vector_unsigned_byte_16(lispobj object)
        struct vector *vector;
        int length, nwords;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
-       vector = (struct vector *) PTR(object);
+       vector = (struct vector *) native_pointer(object);
        length = fixnum_value(vector->length);
        nwords = CEILING(NWORDS(length, 2) + 2, 2);
 
@@ -1604,9 +1469,9 @@ trans_vector_unsigned_byte_32(lispobj object)
        struct vector *vector;
        int length, nwords;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
-       vector = (struct vector *) PTR(object);
+       vector = (struct vector *) native_pointer(object);
        length = fixnum_value(vector->length);
        nwords = CEILING(length + 2, 2);
 
@@ -1646,9 +1511,9 @@ trans_vector_single_float(lispobj object)
        struct vector *vector;
        int length, nwords;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
-       vector = (struct vector *) PTR(object);
+       vector = (struct vector *) native_pointer(object);
        length = fixnum_value(vector->length);
        nwords = CEILING(length + 2, 2);
 
@@ -1688,9 +1553,9 @@ trans_vector_double_float(lispobj object)
        struct vector *vector;
        int length, nwords;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
-       vector = (struct vector *) PTR(object);
+       vector = (struct vector *) native_pointer(object);
        length = fixnum_value(vector->length);
        nwords = CEILING(length * 2 + 2, 2);
 
@@ -1733,9 +1598,9 @@ trans_vector_long_float(lispobj object)
        struct vector *vector;
        int length, nwords;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
-       vector = (struct vector *) PTR(object);
+       vector = (struct vector *) native_pointer(object);
        length = fixnum_value(vector->length);
 #ifdef sparc
        nwords = CEILING(length * 4 + 2, 2);
@@ -1781,9 +1646,9 @@ trans_vector_complex_single_float(lispobj object)
        struct vector *vector;
        int length, nwords;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
-       vector = (struct vector *) PTR(object);
+       vector = (struct vector *) native_pointer(object);
        length = fixnum_value(vector->length);
        nwords = CEILING(length * 2 + 2, 2);
 
@@ -1824,9 +1689,9 @@ trans_vector_complex_double_float(lispobj object)
        struct vector *vector;
        int length, nwords;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
-       vector = (struct vector *) PTR(object);
+       vector = (struct vector *) native_pointer(object);
        length = fixnum_value(vector->length);
        nwords = CEILING(length * 4 + 2, 2);
 
@@ -1869,9 +1734,9 @@ trans_vector_complex_long_float(lispobj object)
        struct vector *vector;
        int length, nwords;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
-       vector = (struct vector *) PTR(object);
+       vector = (struct vector *) native_pointer(object);
        length = fixnum_value(vector->length);
 #ifdef sparc
        nwords = CEILING(length * 8 + 2, 2);
@@ -1918,7 +1783,7 @@ trans_weak_pointer(lispobj object)
        lispobj copy;
        struct weak_pointer *wp;
 
-       gc_assert(Pointerp(object));
+       gc_assert(is_lisp_pointer(object));
 
 #if defined(DEBUG_WEAK)
        printf("Transporting weak pointer from 0x%08x\n", object);
@@ -1928,7 +1793,7 @@ trans_weak_pointer(lispobj object)
        /* been transported so they can be fixed up in a post-GC pass. */
 
        copy = copy_object(object, WEAK_POINTER_NWORDS);
-       wp = (struct weak_pointer *) PTR(copy);
+       wp = (struct weak_pointer *) native_pointer(copy);
        
 
        /* Push the weak pointer onto the list of weak pointers. */
@@ -1960,7 +1825,7 @@ void scan_weak_pointers(void)
                printf("Value: 0x%08x\n", (unsigned int) value);
 #endif         
 
-               if (!(Pointerp(value) && from_space_p(value)))
+               if (!(is_lisp_pointer(value) && from_space_p(value)))
                        continue;
 
                /* Now, we need to check if the object has been */
@@ -1968,14 +1833,14 @@ void scan_weak_pointers(void)
                /* still good and needs to be updated.  Otherwise, the */
                /* weak pointer needs to be nil'ed out. */
 
-               first_pointer = (lispobj *) PTR(value);
+               first_pointer = (lispobj *) native_pointer(value);
                first = *first_pointer;
                
 #if defined(DEBUG_WEAK)
                printf("First: 0x%08x\n", (unsigned long) first);
 #endif         
 
-               if (Pointerp(first) && new_space_p(first))
+               if (is_lisp_pointer(first) && new_space_p(first))
                        wp->value = first;
                else {
                        wp->value = NIL;
@@ -2298,8 +2163,6 @@ gc_init(void)
 \f
 /* noise to manipulate the gc trigger stuff */
 
-#ifndef ibmrt
-
 void set_auto_gc_trigger(os_vm_size_t dynamic_usage)
 {
     os_vm_address_t addr=(os_vm_address_t)current_dynamic_space +
@@ -2352,5 +2215,3 @@ void clear_auto_gc_trigger(void)
        current_auto_gc_trigger = NULL;
     }
 }
-
-#endif