Ross, > Kai Tietz writes: > >I read that too, but how can I teach gcc to do this that registers are > >callee-saved? I tried it by use of call_used part in regclass.c, but > >this didn't worked as expected. > > I think you need to modify CALL_USED_REGISTERS and/or > CONDITIONAL_REGISTER_USAGE in i386.h. Making any changes to regclass.c > is probably not the right thing to do. Hmm, the parts in CALL_USED_REGISTERS and CONDITIONAL_REGISTER_USAGE seems to be ok (beside xmm6-xmm15). If I change xmm6-xmm15 to be non-volatile, I get ICE's in float initialize. But the interesting part is, that by methods like memset/memcpy/ the register r13 still get clobbered. Could it be that on externals (or dll imported) symbols in optimization the register clobbering of a call is not treated correctly?
Cheers, Kai | (\_/) This is Bunny. Copy and paste Bunny | (='.'=) into your signature to help him gain | (")_(") world domination.