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]

Call for testers: SH optimized software floating point


The only change I made to the actual library since the last post are
some changes to make sh2e / sh3e / sh4-single-only truncsdfsf2 / extendsfdf2
match the original calling convention, but I also made a number of changes in
the glue code in sh.c and sh.md to support cstore[sd]f (although middle-end
support seems still missing) and to make the use of SH3 specific library calls
dependent on these libraries being present (unless you configure with
--enable-incomplete-targets).



TODO:


- either:
 - Activate cstoresf4 / cstoredf4 patterns - middle-end code missing
 - remove code obsoleted by these patterns
 or:
 - fix middle-end so that cbranchdf4 / cbranchdf4 can be active in the
   presence of cmpsf/cmpdf insns
- Remove code obsoleted by cbranch* patterns
- Test & submit companion patches separately.
- Test.

2006-09-02 J"orn Rennecke <joern.rennecke@st.com>

       * targhooks.c (regs.h): #include.
       (default_match_adjust): New function.
       * targhooks.h (default_match_adjust): Declare.
       * reload.c (operands_match_p): Use targetm.match_adjust.
       * target.h (struct gcc_target): Add member match_adjust.
       * target-def.h (TARGET_MATCH_ADJUST): New macro.
       * Makefile.in (targhooks.o): Depend on $(REGS_H).
       * config/sh/sh-protos.h (sh_match_adjust): Declare.
       * config/sh/sh.c (TARGET_MATCH_ADJUST): Define as sh_match_adjust.
       (sh_match_adjust): New function.

2006-09-02 J"orn Rennecke <joern.rennecke@st.com>

* print-tree.c (print_node_brief, print_node): Print sign of Inf.

2006-09-15 J"orn Rennecke <joern.rennecke@st.com>

       * sched-deps.c (sched_analyze_2): When a likely spilled register
       is used, put in into a scheduling group with the insn that
       sets it and with all the insns in-between.

2006-09-02 J"orn Rennecke <joern.rennecke@st.com>

       config/sh/t-sh: ($(T)ic_invalidate_array_4-100.o): Add -I. .
       ($(T)ic_invalidate_array_4-200.o): Likewise.
       ($(T)ic_invalidate_array_4a.o): Likewise.

2006-09-02 J"orn Rennecke <joern.rennecke@st.com>

* config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Define

2006-09-02 J"orn Rennecke <joern.rennecke@st.com>

* sh.md (*movsicc_t_false, *movsicc_t_true): Add mode.

2006-09-02  J"orn Rennecke  <joern.rennecke@st.com>
           Aanchal Khanna   <aanchalk@noida.hcltech.com>
           Rakesh Kumar  <rakesh.kumar@noida.hcltech.com>

* config/sh/sh-protos.h (sh_function_kind): New enumerator
SFUNC_FREQUENT.
(expand_sfunc_unop, expand_sfunc_binop): Declare.
(sh_expand_float_cbranch): Likewise.
* config/sh/lib1funcs.asm (ieee-754-sf.S, ieee-754-df.S): #include.
* config/sh/t-sh (LIB1ASMFUNCS): Add nesf2, _nedf2, _gtsf2t, _gtdf2t,
_gesf2f, _gedf2f, _extendsfdf2, , _truncdfsf2, _add_sub_sf3, _mulsf3,
_hypotf, _muldf3, _add_sub_df3, _divsf3, _divdf3, _fixunssfsi,
_fixsfsi, _fixunsdfsi, _fixdfsi, _floatunssisf, _floatsisf,
_floatunssidf and _floatsidf.
(FPBIT, DPBIT, dp-bit.c, fp-bit.c): Removed.
* config/sh/ieee-754-df.S, config/sh/ieee-754-sf.S: New files.
* config/sh/predicates.md (soft_fp_comparison_operand): New predicate.
(soft_fp_comparison_operator): Likewise.
* config/sh/sh.c (sh_soft_fp_cmp, expand_sfunc_op): New functions.
(expand_sfunc_unop, expand_sfunc_binop): Likewise.
(sh_expand_float_cbranch): Likewise.
(sh_expand_float_condop, sh_expand_float_scc): Likewise.
(from_compare): Add support for software floating point.
(function_symbol): Always look up name. Add SFUNC_FREQUENT case.
* config/sh/sh.h (TARGET_SH1_SOFTFP): New macro.
(TARGET_SH1_SOFTFP_MODE): Likewise.
* config/sh/sh-modes.def (CC_FP_NE, CC_FP_GT, CC_FP_UNLT): New modes.
* config/sh/lib1funcs.h (SLC, SLI, SLCMP, DMULU_SAVE): New macros.
(DMULUL, DMULUH, DMULU_RESTORE, SHLL4, SHLR4, SHLL6, SHLR6): Likewise.
(SHLL12, SHLR12, SHLR19, SHLL23, SHLR24, SHLR21, SHLL21): Likewise.
(SHLR11, SHLR22, SHLR23, SHLR20, SHLL20, SHLD_COUNT, SHLRN): Likewise.
(SHLLN, DYN_SHIFT): Likewise.
(SUPPORT_SH3_OSFP, SUPPORT_SH3E_OSFP): Likewise.
(SUPPORT_SH4_NOFPU_OSFP, SUPPORT_SH4_SINGLE_ONLY_OSFP): Likewise.
(TARGET_OSFP): Likewise.
* config/sh/IEEE-754/m3/divsf3.S: New file.
* config/sh/IEEE-754/m3/divdf3.S: Likewise.
* config/sh/IEEE-754/m3/floatunssisf.S: Likewise.
* config/sh/IEEE-754/m3/floatunssidf.S: Likewise.
* config/sh/IEEE-754/m3/fixunsdfsi.S: Likewise.
* config/sh/IEEE-754/m3/divdf3-rt.S: Likewise.
* config/sh/IEEE-754/m3/addsf3.S: Likewise.
* config/sh/IEEE-754/m3/adddf3.S: Likewise.
* config/sh/IEEE-754/m3/mulsf3.S: Likewise.
* config/sh/IEEE-754/m3/muldf3.S: Likewise.
* config/sh/IEEE-754/m3/floatsisf.S: Likewise.
* config/sh/IEEE-754/m3/floatsidf.S: Likewise.
* config/sh/IEEE-754/m3/fixdfsi.S: Likewise.
* config/sh/IEEE-754/divdf3.S: Likewise.
* config/sh/IEEE-754/floatunssisf.S: Likewise.
* config/sh/IEEE-754/fixunsdfsi.S: Likewise.
* config/sh/IEEE-754/adddf3.S: Likewise.
* config/sh/IEEE-754/floatsisf.S: Likewise.
* config/sh/IEEE-754/muldf3.S: Likewise.
* config/sh/IEEE-754/fixdfsi.S: Likewise.
* config/sh/IEEE-754/divsf3.S: Likewise.
* config/sh/IEEE-754/fixunssfsi.S: Likewise.
* config/sh/IEEE-754/floatunssidf.S: Likewise.
* config/sh/IEEE-754/addsf3.S: Likewise.
* config/sh/IEEE-754/mulsf3.S: Likewise.
* config/sh/IEEE-754/floatsidf.S: Likewise.
* config/sh/IEEE-754/fixsfsi.S: Likewise.
* config/sh/sh.md (SF_NAN_MASK, DF_NAN_MASK, FR4_REG): New constants.
(fpcmp_i1, cbranchsf4, cbranchdf4, addsf3_i3, subsf3_i3): New patterns.
(mulsf3_i3, cmpnesf_i1, cmpgtsf_i1, cmpunltsf_i1): Likewise.
(cmpeqsf_i1_finite, cmplesf_i1_finite, cmpunsf_i1): Likewise.
(cmpuneqsf_i1, movcc_fp_ne, movcc_fp_gtmovcc_fp_unlt): Likewise.
(cmpltgtsf_t, cmporderedsf_t, cmpltgtsf_t_4): Likewise.
(cmporderedsf_t_4, abssc2, adddf3_i3_wrap, adddf3_i3): Likewise.
(muldf3_i3_wrap, muldf3_i3, cmpnedf_i1, cmpgtdf_i1): Likewise.
(cmpunltdf_i1, cmpeqdf_i1_finite, cmpundf_i1, cmpuneqdf_i1): Likewise.
(cmpltgtdf_t, cmpordereddf_t_4, extendsfdf2_i1): Likewise.
(extendsfdf2_i2e, extendsfdf2_i2e_r0, truncdfsf2_i2e): Likewise.
(extendsfdf2_i1_r0, truncdfsf2_i1): Likewise.
(cstoresf4, cstoredf4): Likewise.
??? individual branch / set flag expanders should be obsoleted by cbranch* patterns
??? (cmpun_sdf, sunle, cmpuneq_sdf, bunle, bunlt, bunge, bungt): Likewise.
??? (bgt, blt, ble, bge, bleu) Add support for software floating point.
??? (seq, sge, sne): Likewise.
(addsf3, subsf3, mulsf3) Add support for software floating point.
(adddf3, subdf3, muldf3, extendsfdf2, truncdfsf2): Likewise.
(cmpsf, cmpdf): Don't enable for TARGET_SH2E.
(movnegt): Match only one operand. Changed user.

Attachment: softfp-20060915.bz2
Description: BZip2 compressed data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]