On Wed, Mar 16, 2011 at 4:48 AM, Nick Clifton <ni...@redhat.com> wrote: > Hi Guys, > > I am checking in the attached patch to fix some regressions in the RX > port with regard to alignment and addressing modes. With this patch > applied I have 18 fewer failures in the GCC testsuite.
> + (set_attr "length" "5")] ;; Worst case sceanario. FIXME: If we defined > separate patterns > +) ;; rather than using iterators we could specify > exact sizes. You can set up the correct length even without using separate patterns. An example can be found in mips/mips.md: (define_insn "*div<mode>3" [(set (match_operand:ANYF 0 "register_operand" "=f") (div:ANYF (match_operand:ANYF 1 "register_operand" "f") (match_operand:ANYF 2 "register_operand" "f")))] "<divide_condition>" { if (TARGET_FIX_SB1) return "div.<fmt>\t%0,%1,%2\;mov.<fmt>\t%0,%0"; else return "div.<fmt>\t%0,%1,%2"; } [(set_attr "type" "fdiv") (set_attr "mode" "<UNITMODE>") (set (attr "length") (if_then_else (ne (symbol_ref "TARGET_FIX_SB1") (const_int 0)) (const_int 8) (const_int 4)))]) Thanks, Andrew Pinski