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.

Reply via email to