This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Hi,
How about a patch like this to support signed and unsigned
multiplication and addition? We can extend to MSUB/MSUBU as well.
Thanks!
2007-04-20 Chao-ying Fu <fu@mips.com>
* optabs.c (init_optabs): Initialize smadd_widen_optab and umadd_widen_optab.
* optabs.h (optab_index): Add OTI_smadd_widen and OTI_umadd_widen.
(smadd_widen_optab, umadd_widen_optab): Define.
* genopinit.c (optabs): Add smadd_widen_optab and usmadd_widen_optab.
* expr.c (expand_expr_real_1): Add rtx of op2.
Process PLUS_EXPR to generate multiplication and add instructions.
* config/mips/mips-dspr2.md (maddsidi4, umaddsidi4): New patterns.
Ex: (bug72.c)
long long t1 (int a, int b, long long c)
{
return (long long)a * b + c;
}
unsigned long long t2 (unsigned int a, unsigned int b, unsigned long long c)
{
return (unsigned long long)a * b + c;
}
# <812> ~/dev/gcc4x/install32/bin/mipsisa32r2-elf-gcc -S -mdspr2 bug72.c -O
t1:
mtlo $7
mthi $6
madd $ac0,$5,$4
mflo $7
mfhi $6
move $2,$6
j $31
move $3,$7
t2:
mtlo $7
mthi $6
maddu $ac0,$5,$4
mflo $7
mfhi $6
move $2,$6
j $31
move $3,$7
Regards,
Chao-ying
> -----Original Message-----
> From: gcc-owner@gcc.gnu.org [mailto:gcc-owner@gcc.gnu.org]On Behalf Of
> Richard Sandiford
> Sent: Friday, April 20, 2007 8:05 AM
> To: Stephens, Nigel
> Cc: Fu, Chao-Ying; gcc@gcc.gnu.org; Thekkath, Radhika
> Subject: Re: [MIPS] MADD issue
>
>
> Nigel Stephens <nigel@mips.com> writes:
> > OK, so maybe as the person who removed adddi3 from the MIPS
> backend, and
> > the main proponent of the new fused opcodes, you get to
> volunteer to
> > implement this? :)
>
> Hey, I was pretty happy with the status quo ;)
>
> Richard
>
Attachment:
gcc.diff
Description: gcc.diff
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |