Here's a revised version of the patch, incorporating comments from Richard and Mark. I did some fiddling around with CSiBE to further improve the cost estimate for a call. Setting the base cost to 4, rather than 3 as in the original patch, produced smaller code both with and without -mabicalls. With o32 abicalls, which Richard indicated would be the worst case scenario for call overhead, base cost of 5 gave similar size results to 4 (overall a tiny decrease, but it looked like just as many individual tests went up as down), but code size went up for everything else. So I think 4 is probably a reasonable value without having to conditionalize it for -mabicalls. OK to commit this time? I did the i686 bootstrap on this version of the patch as well as MIPS testing. -Sandra