This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, MIPS] 74k madd scheduler tweaks
Maxim Kuvyrkov <maxim@codesourcery.com> writes:
> I thought I'll butt in since I did a very similar thing for
> sync_memmodel a couple of months ago.
Thanks.
> + /* We take care in instruction definitions to make sure accum_in operand is
> + a register_operand or [a more restrictive] muldiv_target_operand. */
> + gcc_assert (REG_P (accum_in_op));
register_operand can accept subregs too. I think it'd be better to
leave this bit out.
> diff --git a/gcc/config/mips/mips.md b/gcc/config/mips/mips.md
> index 759958b..79c1f25 100644
> --- a/gcc/config/mips/mips.md
> +++ b/gcc/config/mips/mips.md
> @@ -275,6 +275,10 @@
> (define_attr "sync_memmodel" "" (const_int 10))
>
>
> +;; Accumulator operand for madd patterns.
> +(define_attr "accum_in" "none,0,1,2,3,4,5" (const_string "none"))
> +
> +
Nit: just one blank line between attributes.
> @@ -1715,6 +1724,7 @@
> "ISA_HAS_MACC && reload_completed"
> "macc\t%3,%1,%2"
> [(set_attr "type" "imadd")
> + (set_attr "accum_in" "3")
> (set_attr "mode" "SI")])
>
> (define_insn "*msac2"
> @@ -1729,6 +1739,7 @@
> "ISA_HAS_MSAC && reload_completed"
> "msac\t%3,%1,%2"
> [(set_attr "type" "imadd")
> + (set_attr "accum_in" "3")
> (set_attr "mode" "SI")])
>
> ;; Convert macc $0,<r1>,<r2> & mflo <r3> into macc <r3>,<r1>,<r2>
These two should be "0" instead.
OK with those changes, thanks.
Richard