RX: 4.5 branch: Fix alignment and addressing issues.
Andrew Pinski
pinskia@gmail.com
Wed Mar 16 19:05:00 GMT 2011
On Wed, Mar 16, 2011 at 4:48 AM, Nick Clifton <nickc@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
More information about the Gcc-patches
mailing list