* Replaced ptrdiff_t with intptr_t.
git-svn-id: svn://svn.zoy.org/elk/trunk@109 55e467fa-43c5-0310-a8a2-de718669efc6
This commit is contained in:
		
							parent
							
								
									ad75a09e38
								
							
						
					
					
						commit
						4f60aa8bd1
					
				| 
						 | 
				
			
			@ -46,13 +46,13 @@ extern Object False2;
 | 
			
		|||
 | 
			
		||||
/* Align heap addresses */
 | 
			
		||||
#ifdef ALIGN_8BYTE
 | 
			
		||||
#  define ALIGN(ptr) ((ptr) = (void *)(((ptrdiff_t)(ptr) + 7) & ~7))
 | 
			
		||||
#  define ALIGN(ptr) ((ptr) = (void *)(((intptr_t)(ptr) + 7) & ~7))
 | 
			
		||||
#else
 | 
			
		||||
#  define ALIGN(ptr) ((ptr) = (void *)(((ptrdiff_t)(ptr) + 3) & ~3))
 | 
			
		||||
#  define ALIGN(ptr) ((ptr) = (void *)(((intptr_t)(ptr) + 3) & ~3))
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/* Normalize stack addresses */
 | 
			
		||||
#define NORM(addr)  ((ptrdiff_t)(addr) + delta)
 | 
			
		||||
#define NORM(addr)  ((intptr_t)(addr) + delta)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Used in special forms: */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,8 +51,8 @@ typedef struct {
 | 
			
		|||
#define FIXNUM(x)       ((int)(x).data)
 | 
			
		||||
#define CHAR(x)         ((int)(x).data)
 | 
			
		||||
 | 
			
		||||
#define POINTER(x)      ((void *)(ptrdiff_t)(x).data)
 | 
			
		||||
#define SETPOINTER(x,p) ((x).data = (ptrdiff_t)(void *)(p))
 | 
			
		||||
#define POINTER(x)      ((void *)(intptr_t)(x).data)
 | 
			
		||||
#define SETPOINTER(x,p) ((x).data = (intptr_t)(void *)(p))
 | 
			
		||||
#define SET(x,t,p)      ((x).tag = (int)t << 1, (x).data = (p))
 | 
			
		||||
 | 
			
		||||
#define ISCONST(x)      ((x).tag & CONSTBIT)
 | 
			
		||||
| 
						 | 
				
			
			@ -68,9 +68,9 @@ typedef struct {
 | 
			
		|||
#ifdef GENERATIONAL_GC
 | 
			
		||||
 | 
			
		||||
   typedef int gcspace_t;                 /* type for space and type arrays */
 | 
			
		||||
   typedef ptrdiff_t gcptr_t;             /* type for pointers */
 | 
			
		||||
   typedef intptr_t gcptr_t;              /* type for pointers */
 | 
			
		||||
   typedef long int pageno_t;             /* type for page numbers */
 | 
			
		||||
   typedef ptrdiff_t addrarith_t;         /* type for address arithmetic */
 | 
			
		||||
   typedef intptr_t addrarith_t;          /* type for address arithmetic */
 | 
			
		||||
 | 
			
		||||
   extern gcspace_t *space;
 | 
			
		||||
   extern gcspace_t current_space;
 | 
			
		||||
| 
						 | 
				
			
			@ -237,7 +237,7 @@ struct S_Control {
 | 
			
		|||
    Object gcsave;              /* vector */
 | 
			
		||||
    WIND *firstwind, *lastwind;
 | 
			
		||||
    int tailcall;
 | 
			
		||||
    ptrdiff_t delta;
 | 
			
		||||
    intptr_t delta;
 | 
			
		||||
#ifdef GENERATIONAL_GC
 | 
			
		||||
    int reloc;
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -151,7 +151,7 @@ Object P_Dump (Object ofile) {
 | 
			
		|||
        Primitive_Error ("sbrk(0) failed: ~E");
 | 
			
		||||
    }
 | 
			
		||||
    ndata     = obssp->sh_addr;
 | 
			
		||||
    ndatasize = (Elf32_Addr)((ptrdiff_t)Brk_On_Dump - (ptrdiff_t)ndata);
 | 
			
		||||
    ndatasize = (Elf32_Addr)((intptr_t)Brk_On_Dump - (intptr_t)ndata);
 | 
			
		||||
    ndataoff  = obssp->sh_offset;
 | 
			
		||||
 | 
			
		||||
    /* mmap new a.out file, setup pointers to ELF header, section header
 | 
			
		||||
| 
						 | 
				
			
			@ -272,7 +272,7 @@ Object P_Dump (Object ofile) {
 | 
			
		|||
            "memory" : "file"); (void)fflush (stdout);
 | 
			
		||||
#endif
 | 
			
		||||
        if ((sp->sh_flags & (SHF_ALLOC|SHF_WRITE)) == (SHF_ALLOC|SHF_WRITE))
 | 
			
		||||
            from = (void *)(ptrdiff_t)sp->sh_addr;
 | 
			
		||||
            from = (void *)(intptr_t)sp->sh_addr;
 | 
			
		||||
        else
 | 
			
		||||
            from = (void *)(oaddr + sp->sh_offset);
 | 
			
		||||
        if (sp != ndatap && sp->sh_offset >= ndataoff)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -109,7 +109,7 @@ void Init_Dump () {
 | 
			
		|||
    return False;\
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if defined(ELF)
 | 
			
		||||
#if defined(HAVE_ELF)
 | 
			
		||||
#  include "dump-elf.c"
 | 
			
		||||
#elif defined(ECOFF)
 | 
			
		||||
#  include "dump-ecoff.c"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,8 +37,8 @@ void Memoize_Frame (Object);
 | 
			
		|||
void Memoize_Frames (Object, Object);
 | 
			
		||||
void Forget_Frame (Object);
 | 
			
		||||
 | 
			
		||||
#define Env_To_List(env, list) SET((list), T_Pair, (ptrdiff_t)POINTER(env))
 | 
			
		||||
#define List_To_Env(list, env) SET((env), T_Environment, (ptrdiff_t)POINTER(list))
 | 
			
		||||
#define Env_To_List(env, list) SET((list), T_Pair, (intptr_t)POINTER(env))
 | 
			
		||||
#define List_To_Env(list, env) SET((env), T_Environment, (intptr_t)POINTER(list))
 | 
			
		||||
 | 
			
		||||
Object The_Environment, Global_Environment;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -528,7 +528,7 @@ void Make_Heap (int size) {
 | 
			
		|||
    else
 | 
			
		||||
        aligned_heap_ptr = heap_ptr;
 | 
			
		||||
 | 
			
		||||
    SET(heap_obj, 0, (ptrdiff_t)aligned_heap_ptr);
 | 
			
		||||
    SET(heap_obj, 0, (intptr_t)aligned_heap_ptr);
 | 
			
		||||
 | 
			
		||||
#ifdef ARRAY_BROKEN
 | 
			
		||||
    pagebase = ((gcptr_t)POINTER (heap_obj)) / PAGEBYTES;
 | 
			
		||||
| 
						 | 
				
			
			@ -620,7 +620,7 @@ static int ExpandHeap (char *reason) {
 | 
			
		|||
    else
 | 
			
		||||
        aligned_heap_ptr = heap_ptr;
 | 
			
		||||
 | 
			
		||||
    SET(heap_obj, 0, (ptrdiff_t)aligned_heap_ptr);
 | 
			
		||||
    SET(heap_obj, 0, (intptr_t)aligned_heap_ptr);
 | 
			
		||||
 | 
			
		||||
    new_first = firstpage;
 | 
			
		||||
    new_last = lastpage;
 | 
			
		||||
| 
						 | 
				
			
			@ -931,7 +931,7 @@ Object Alloc_Object (size, type, konst) {
 | 
			
		|||
    MAKE_HEADER (*current_freep, s, type);
 | 
			
		||||
    current_freep++;
 | 
			
		||||
    *current_freep = Null;
 | 
			
		||||
    SET (obj, type, (ptrdiff_t)current_freep);
 | 
			
		||||
    SET (obj, type, (intptr_t)current_freep);
 | 
			
		||||
    if (big)
 | 
			
		||||
        current_freep = (Object*)0, current_free = 0;
 | 
			
		||||
    else
 | 
			
		||||
| 
						 | 
				
			
			@ -1038,7 +1038,7 @@ int Visit (register Object *cp) {
 | 
			
		|||
    if (WAS_FORWARDED (*cp)) {
 | 
			
		||||
        if (pageaddr != 0)
 | 
			
		||||
            PROTECT (pageaddr);
 | 
			
		||||
        MAKEOBJ (*cp, tag, (ptrdiff_t)POINTER(*obj_ptr));
 | 
			
		||||
        MAKEOBJ (*cp, tag, (intptr_t)POINTER(*obj_ptr));
 | 
			
		||||
        if (konst)
 | 
			
		||||
            SETCONST (*cp);
 | 
			
		||||
        return 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -1111,8 +1111,8 @@ do_forward:
 | 
			
		|||
    MAKE_HEADER (*forward_freep, objwords, tag);
 | 
			
		||||
    forward_freep++;
 | 
			
		||||
    memcpy (forward_freep, obj_ptr, (objwords-1)*sizeof(Object));
 | 
			
		||||
    SET (*obj_ptr, T_Broken_Heart, (ptrdiff_t)forward_freep);
 | 
			
		||||
    MAKEOBJ (*cp, tag, (ptrdiff_t)forward_freep);
 | 
			
		||||
    SET (*obj_ptr, T_Broken_Heart, (intptr_t)forward_freep);
 | 
			
		||||
    MAKEOBJ (*cp, tag, (intptr_t)forward_freep);
 | 
			
		||||
    if (konst)
 | 
			
		||||
        SETCONST (*cp);
 | 
			
		||||
    forward_freep += (objwords - 1);
 | 
			
		||||
| 
						 | 
				
			
			@ -1155,7 +1155,7 @@ static void ScanPage (Object *currentp, Object *nextcp) {
 | 
			
		|||
         * words.
 | 
			
		||||
         */
 | 
			
		||||
 | 
			
		||||
        SET(obj, t, (ptrdiff_t)cp);
 | 
			
		||||
        SET(obj, t, (intptr_t)cp);
 | 
			
		||||
 | 
			
		||||
        switch (t) {
 | 
			
		||||
        case T_Symbol:
 | 
			
		||||
| 
						 | 
				
			
			@ -1560,7 +1560,7 @@ static void General_Collect (int initiate) {
 | 
			
		|||
        fpage = next (fpage);
 | 
			
		||||
    }
 | 
			
		||||
    current_freep = (Object *)PHYSPAGE (fpage);
 | 
			
		||||
    SET(obj, 0, (ptrdiff_t)current_freep);
 | 
			
		||||
    SET(obj, 0, (intptr_t)current_freep);
 | 
			
		||||
    current_freepage = OBJ_TO_PAGE (obj);
 | 
			
		||||
 | 
			
		||||
    /* advance spaces. Then forward all objects directly accessible
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -84,7 +84,7 @@ void Call_After_GC () {
 | 
			
		|||
        p->func();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Visit_GC_List (GCNODE *list, ptrdiff_t delta) {
 | 
			
		||||
void Visit_GC_List (GCNODE *list, intptr_t delta) {
 | 
			
		||||
    register GCNODE *gp, *p;
 | 
			
		||||
    register int n;
 | 
			
		||||
    register Object *vec;
 | 
			
		||||
| 
						 | 
				
			
			@ -101,7 +101,7 @@ void Visit_GC_List (GCNODE *list, ptrdiff_t delta) {
 | 
			
		|||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Visit_Wind (WIND *list, ptrdiff_t delta) {
 | 
			
		||||
void Visit_Wind (WIND *list, intptr_t delta) {
 | 
			
		||||
    register WIND *wp, *p;
 | 
			
		||||
 | 
			
		||||
    for (wp = list; wp; wp = p->next) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -209,13 +209,13 @@ int main (int ac, char **av) {
 | 
			
		|||
            fprintf (stderr,
 | 
			
		||||
"Can't restart dumped interpreter from a different machine architecture\n");
 | 
			
		||||
            fprintf (stderr,
 | 
			
		||||
"   (Stack delta = %lld bytes).\n", (long long int)(ptrdiff_t)(stkbase - &foo));
 | 
			
		||||
"   (Stack delta = %lld bytes).\n", (long long int)(intptr_t)(stkbase - &foo));
 | 
			
		||||
            exit (1);
 | 
			
		||||
        }
 | 
			
		||||
        /* Check if program break must be reset.
 | 
			
		||||
        */
 | 
			
		||||
        if ((ptrdiff_t)Brk_On_Dump && (ptrdiff_t)brk (Brk_On_Dump)
 | 
			
		||||
                == (ptrdiff_t)-1) {
 | 
			
		||||
        if ((intptr_t)Brk_On_Dump && (intptr_t)brk (Brk_On_Dump)
 | 
			
		||||
                == (intptr_t)-1) {
 | 
			
		||||
            perror ("brk"); exit (1);
 | 
			
		||||
        }
 | 
			
		||||
#if defined(HP9K) && defined(CAN_DUMP) && defined(HPSHLIB)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue