This is the mail archive of the gcc-patches@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, This patch extends integer madd supports to fixed-point types (both saturating and non-saturating). One new MIPS test is added. Tree reassociation is extended to support non-saturating fixed-point types. MIPS EABI is extended to pass 64-bit fixed-point modes in registers, similar to passing the DI mode. Thanks a lot! Regards, Chao-ying gcc/ChangeLog 2007-05-03 Chao-ying Fu <fu@mips.com> * doc/md.texi (madd@var{m}@var{n}4): Extend to fixed-point modes. (ssmadd@var{m}@var{n}4, usmadd@var{m}@var{n}4): Document. * optabs.c (init_optabs): Initialize ssmadd_widen_optab and usmadd_widen_optab. * optabs.h (OTI_ssmadd_widen, OTI_usmadd_widen): New optab_indexes. (ssmadd_widen_optab, usmadd_widen_optab): Define. * genopinit.c (optabs): Fill in ssmadd_widen_optab and usmadd_widen_optab. * tree.h (NON_SAT_FIXED_POINT_TYPE_P, SAT_FIXED_POINT_TYPE_P, FIXED_POINT_TYPE_P): Define. * expr.c (expand_expr_real_1): Support saturating and non-saturating multiply and add for fixed-point types. * c-typeck.c (c_common_type): Initialize mclass to 0 to avoid warnings. * tree-ssa-reassoc.c (break_up_subtract_bb): We can do reassociation for non-saturating fixed-point types (reassociate_bb): Likewise. * config/mips/mips-fixed.md (ssmaddsqdq4): New instruction. * config/mips/mips.c (mips_pass_by_reference): Pass DQ, UDQ, DA, and UDA modes in registers. gcc/testsuite/ChangeLog 2007-05-03 Chao-ying Fu <fu@mips.com> * gcc.target/mips/dpaq_sa_l_w.c: New test.
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] |