Diff for /gforth/arch/386/machine.h between versions 1.35 and 1.36

version 1.35, 2007/06/23 10:22:54 version 1.36, 2007/06/24 20:44:04
Line 54 Line 54
 #define FLUSH_ICACHE(addr,size)  #define FLUSH_ICACHE(addr,size)
   
 #if defined(FORCE_REG) && !defined(DOUBLY_INDIRECT) && !defined(VM_PROFILING)  #if defined(FORCE_REG) && !defined(DOUBLY_INDIRECT) && !defined(VM_PROFILING)
 #if (__GNUC__==2 && defined(__GNUC_MINOR__) && __GNUC_MINOR__==5)  # if (__GNUC__==2 && defined(__GNUC_MINOR__) && __GNUC_MINOR__==5)
 /* i.e. gcc-2.5.x */  /* i.e. gcc-2.5.x */
 /* this works with 2.5.7; nothing works with 2.5.8 */  /* this works with 2.5.7; nothing works with 2.5.8 */
 #define IPREG asm("%esi")  #  define IPREG asm("%esi")
 #define SPREG asm("%edi")  #  define SPREG asm("%edi")
 #if 0  #  if 0
 #ifdef USE_TOS  #   ifdef USE_TOS
 #define CFAREG asm("%ecx")  #    define CFAREG asm("%ecx")
 #else  #   else
 #define CFAREG asm("%edx")  #    define CFAREG asm("%edx")
 #endif  #   endif
 #endif  #  endif
 #else /* !gcc-2.5.x */  # else /* !gcc-2.5.x */
 /* this works with 2.6.3 (and quite well, too) */  /* this works with 2.6.3 (and quite well, too) */
 /* since this is not very demanding, it's the default for other gcc versions */  /* since this is not very demanding, it's the default for other gcc versions */
 #if defined(USE_TOS) && !defined(CFA_NEXT)  #  if defined(USE_TOS) && !defined(CFA_NEXT)
 #if ((__GNUC__==2 && defined(__GNUC_MINOR__) && __GNUC_MINOR__>=95) || (__GNUC__==3))  #   if ((__GNUC__==2 && defined(__GNUC_MINOR__) && __GNUC_MINOR__>=95) || (__GNUC__==3))
      /* gcc 2.95 has a better register allocater */       /* gcc 2.95 has a better register allocater */
 #define SPREG asm("%esi")  #    define SPREG asm("%esi")
 #define RPREG asm("%edi")  #    define RPREG asm("%edi")
 #ifdef NO_IP  #    ifdef NO_IP
 #define spbREG asm("%ebx")  #     define spbREG asm("%ebx")
 #else  #    else
 #define IPREG asm("%ebx")  #     define IPREG asm("%ebx")
 #endif  #    endif
 /* ebp leads to broken code (gcc-3.0); eax, ecx, edx produce compile errors */  /* ebp leads to broken code (gcc-3.0); eax, ecx, edx produce compile errors */
 #define TOSREG asm("%ecx")  #    define TOSREG asm("%ecx")
 /* ecx works only for TOS, and eax, edx don't work for anything (gcc-3.0) */  /* ecx works only for TOS, and eax, edx don't work for anything (gcc-3.0) */
 #else /* !(gcc-2.95 or gcc-3.x) */  #   else /* !(gcc-2.95 or gcc-3.x) */
 #define IPREG asm("%ebx")  #    define IPREG asm("%ebx")
 #endif /* !(gcc-2.95 or later) */  #    if (__GNUC__==4 && defined(__GNUC_MINOR__) && __GNUC_MINOR__>=2)
 #else /* !defined(USE_TOS) || defined(CFA_NEXT) */  #     define SPREG asm("%esi")
 #if ((__GNUC__==2 && defined(__GNUC_MINOR__) && __GNUC_MINOR__>=95) || (__GNUC__>2))  #     define RPREG asm("%edi")
 #define SPREG asm("%esi")  #     define TOSREG asm("%edx")
 #define RPREG asm("%edi")  #    endif /* (gcc-4.2 or later) */
 #ifdef NO_IP  #   endif /* !(gcc-2.95 or later) */
 #define spbREG asm("%ebx")  #  else /* !defined(USE_TOS) || defined(CFA_NEXT) */
 #else  #   if ((__GNUC__==2 && defined(__GNUC_MINOR__) && __GNUC_MINOR__>=95) || (__GNUC__>2))
 #define IPREG asm("%ebx")  #    define SPREG asm("%esi")
 #endif  #    define RPREG asm("%edi")
 #else /* !(gcc-2.95 or later) */  #    ifdef NO_IP
 #define SPREG asm("%ebx")  #     define spbREG asm("%ebx")
 #endif  /* !(gcc-2.95 or later) */  #    else
 #endif /* !defined(USE_TOS) || defined(CFA_NEXT) */  #     define IPREG asm("%ebx")
 #endif /* !gcc-2.5.x */  #    endif
   #   else /* !(gcc-2.95 or later) */
   #    define SPREG asm("%ebx")
   #   endif  /* !(gcc-2.95 or later) */
   #  endif /* !defined(USE_TOS) || defined(CFA_NEXT) */
   # endif /* !gcc-2.5.x */
 #endif /* defined(FORCE_REG) && !defined(DOUBLY_INDIRECT) && !defined(VM_PROFILING) */  #endif /* defined(FORCE_REG) && !defined(DOUBLY_INDIRECT) && !defined(VM_PROFILING) */
   
 /* #define ALIGNMENT_CHECK 1 */  /* #define ALIGNMENT_CHECK 1 */

Removed from v.1.35  
changed lines
  Added in v.1.36


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>