HBO043%DJUKFA11.BITNET@cunyvm.cuny.edu (Christoph van Wuellen) (12/11/90)
I am proud to announce the 386 port of c68. After two days, i managed to write the new code generator and the modified register allocator. The compiler is not complete yet (e.g. floating point stuff omitted), but it is able to compile itself and to reproduce itself identically. things to do - register variables: free are ebx, edi, esi, (edi and esi only if the function in question does not assign structures) - peephole optimizations (e.q. a lot of addl $1,... wait to be converted to incl .... Performance: On a 25 MHz 386 with cache (Sun386i): ca. 6500 Dhrystones 1.1, ca. 7150 Dhrystones 2.1 time to compile itself, compiler compiled by Sun-C: 32.0 sec user time to compile itself, self-compiled: : 36.9 sec user Since there are no register variables and no peephole optimizations, I regard these are fair figures. 80386 gurus, please contact me, I want to beat Sun-C. C.v.W. P.S. After some strategic changes in c68 (e.g enums must become int, not short, double is not the same as float), there will a a converged c68/c386 version with very few #ifdefs and the modules gen386.c gen68k.c (replacing gencode.c) peep386.c peep68k.c (replacing peepgen.c) reg386.c reg68k.c (replacing register.c) outsun.c --- output module for Sun386i assembler, should be OK for GAS.