1 /* Sparc fix borrowed from SCM, so here's the copyright: */ 2 /* Scheme implementation intended for JACAL. 3 Copyright (C) 1990, 1991, 1992, 1993, 1994 Aubrey Jaffer. */ 4 /* James Clark came up with this neat one instruction fix for 5 continuations on the SPARC. It flushes the register windows so 6 that all the state of the process is contained in the stack. */ 7 #ifdef FLUSH_SPARC_REGISTER_WINDOWS 8 #define FLUSH_REGISTER_WINDOWS asm("ta 3") 9 #else 10 #define FLUSH_REGISTER_WINDOWS /* empty */ 11 #endif 12 13 /* If stack is not longword aligned then */ 14 15 /* #define SHORT_ALIGN */ 16 #ifdef THINK_C 17 #define SHORT_ALIGN 18 #endif 19 #ifdef MSDOS 20 #define SHORT_ALIGN 21 #endif 22 #ifdef atarist 23 #define SHORT_ALIGN 24 #endif 25 26 /* If stacks grow up then */ 27 28 /* STACK_GROWS_UP means that deeper stack values have higher 29 numbered addresses. 30 STACK_GROWS_DOWN means that deeper stack values have lower 31 numbered addresses. This is usually the case (Sparc and 32 Intel platforms, for example, use this). */ 33 34 #if STACK_DIRECTION > 0 35 # define STACK_GROWS_UP 36 #else 37 # define STACK_GROWS_DOWN 38 #endif 39 40 #ifdef STACK_GROWS_UP 41 # define STK_COMP(a,b) ((a) > (b)) 42 # define STK_DIFF(a, b) ((b) - (a)) 43 #else 44 # define STK_COMP(a,b) ((a) < (b)) 45 # define STK_DIFF(a, b) ((a) - (b)) 46 #endif 47 48 #ifndef STACK_SAFETY_MARGIN 49 # ifdef SIXTY_FOUR_BIT_INTEGERS 50 # define STACK_SAFETY_MARGIN 100000 51 # else 52 # define STACK_SAFETY_MARGIN 50000 53 # endif 54 #endif 55