I think this version of the patch addresses all the issues Richard raised with the last version, unless I've gotten confused again and let something slip through the cracks. I experimented with tweaking all of MOVE_RATIO/CLEAR_RATIO/SET_RATIO and came up with values that produce good -Os results in CSiBE as well as making sense in terms of the base MIPS_CALL_RATIO versus how many instructions would be required for each bytewise move/clear/set. Overall I am getting just over 0.5% improvement with -Os from this patch now. Mark, could you take another look at this as well, since I included Richard's suggested change to remove the optimize_size check from the target-independent code in builtins.c? -Sandra