On 05/31/2011 07:51 PM, Richard Sandiford wrote: > Ping for: > > http://gcc.gnu.org/ml/gcc-patches/2011-04/msg01327.html > > It fixes the expansion of multiword operations in cases where the > suggested target is a hard register and where CANNOT_CHANGE_MODE_CLASS > forbids word-mode subparts.
Can you call the new function valid_multiword_target_p? In a sense, we already know it's a multiword target, so the function name is a bit unfortunate. I see two copies of this code /* If TARGET is the same as one of the operands, the REG_EQUAL note won't be accurate, so use a new target. */ - if (target == 0 || target == op0 || target == op1) in expand_binop, and you seem to be changing only one? Also, there's xtarget = gen_reg_rtx (mode); if (target == 0 || !REG_P (target)) target = xtarget; /* Indicate for flow that the entire target reg is being set. */ if (REG_P (target)) emit_clobber (xtarget); Ok with these changes (or if there's a good reason not to touch the ones you left out). Bernd