CVSROOT: /cvs Module name: src Changes by: m...@cvs.openbsd.org 2012/11/11 14:20:28
Modified files: gnu/usr.bin/gcc/gcc/config/m88k: m88k.c m88k.h openbsd.h Log message: The next step towards a working gcc3/m88k: remove the argument area (from gcc2), and try to get the builtin varargs code to work. I have tried to mimic the gcc2 varargs logic, which is optimal in the sense that no argument gets duplicated and as many arguments as possible are passed in registers, to no avail (read: hair-pulling ICE out of nowhere in variadic functions). So I am now sticking to the original gcc 2.7 varargs, where an argument passed on the stack consumes the registers it would have been passed as, if its type would have allowed it. This spills too much memory on the stack, but on the other hand makes the expansion of va_arg() much simpler. This means that, should gcc3 on m88k platforms be solid enough, mixing varargs objects compiled with gcc 2 and gcc 3 will not be possible. But we're not there yet.