pedz@bobkat.UUCP (Pedz Thing) (01/12/87)
I have brought up gnu emacs version 18.35 up on an intergrated solutions Optimum V16 System running 4.2 BSD UNIX Release 3.05. I had to change the m-isi-ov.h file slightly to get the alloca routine from the system to be used. I then discovered that this routine was buggy so I wrote my own. The difference is that the returned value pointed 4 bytes too low. Below is the diff and the new alloca. I suggest that you just replace the alloca in the libc.a so that other programs may use it as well. *** m-isi-ov.h Fri Jan 9 16:16:01 1987 --- m-isi-ov.h.old Fri Jan 9 16:03:08 1987 *************** *** 62,82 /* Mask for address bits within a memory segment */ #define SEGMENT_MASK 0x3ffff - - /* use the -20 switch to get the 68020 code */ - /* use the 68881 so also add the -f switch */ - #define C_SWITCH_MACHINE -20 -f - - /* No point to have debugging since it does not work. */ - #define C_DEBUG_SWITCH - #define LIBS_DEBUG - - /* Define C_ALLOCA if this machine does not support a true alloca - and the one written in C should be used instead. - Define HAVE_ALLOCA to say that the system provides a properly - working alloca function and it should be used. - Define neither one if an assembler-language alloca - in the file alloca.s should be used. */ - - #undef C_ALLOCA - #define HAVE_ALLOCA --- 62,64 ----- /* Mask for address bits within a memory segment */ #define SEGMENT_MASK 0x3ffff ------------------------- alloca.s ---------------------------------------- /* * alloca for the intergrated solutions which works. * Written by Perry Smith (pedz@bobkat) */ .globl _alloca _alloca: movl sp@+,a0 movl a7,d0 subl sp@,d0 andl #~3,d0 movl d0,sp tstb sp@(0) addql #4,d0 jmp a0@ -- Perry Smith {convex!ctvax,{ti-csl,infotel}!pollux}!bobkat!pedz