From: Richard Stallman Date: Thu, 7 Jan 1993 00:07:47 +0000 (+0000) Subject: (init_optabs): Add optab entries for QFmode and HFmode. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e77be1b8f392b0a301b6952715039c0fd57982e2;p=gcc.git (init_optabs): Add optab entries for QFmode and HFmode. From-SVN: r3134 --- diff --git a/gcc/optabs.c b/gcc/optabs.c index 356a0595f18..a6295131778 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -2803,6 +2803,18 @@ init_fixtab () p++) *p = CODE_FOR_nothing; +#ifdef HAVE_fixqfqi2 + if (HAVE_fixqfqi2) + fixtab[(int) QFmode][(int) QImode][0] = CODE_FOR_fixqfqi2; +#endif +#ifdef HAVE_fixhfqi2 + if (HAVE_fixhfqi2) + fixtab[(int) HFmode][(int) QImode][0] = CODE_FOR_fixhfqi2; +#endif +#ifdef HAVE_fixhfhi2 + if (HAVE_fixhfhi2) + fixtab[(int) HFmode][(int) QImode][0] = CODE_FOR_fixhfhi2; +#endif #ifdef HAVE_fixsfqi2 if (HAVE_fixsfqi2) fixtab[(int) SFmode][(int) QImode][0] = CODE_FOR_fixsfqi2; @@ -2883,6 +2895,19 @@ init_fixtab () fixtab[(int) TFmode][(int) TImode][0] = CODE_FOR_fixtfti2; #endif +#ifdef HAVE_fixunsqfqi2 + if (HAVE_fixunsqfqi2) + fixtab[(int) QFmode][(int) QImode][0] = CODE_FOR_fixunsqfqi2; +#endif +#ifdef HAVE_fixunshfqi2 + if (HAVE_fixunshfqi2) + fixtab[(int) HFmode][(int) QImode][0] = CODE_FOR_fixunshfqi2; +#endif +#ifdef HAVE_fixunshfhi2 + if (HAVE_fixunshfhi2) + fixtab[(int) HFmode][(int) QImode][0] = CODE_FOR_fixunshfhi2; +#endif + #ifdef HAVE_fixunssfqi2 if (HAVE_fixunssfqi2) fixtab[(int) SFmode][(int) QImode][1] = CODE_FOR_fixunssfqi2; @@ -2963,6 +2988,18 @@ init_fixtab () fixtab[(int) TFmode][(int) TImode][1] = CODE_FOR_fixunstfti2; #endif +#ifdef HAVE_fix_truncqfqi2 + if (HAVE_fix_truncqfqi2) + fixtab[(int) QFmode][(int) QImode][0] = CODE_FOR_fix_truncqfqi2; +#endif +#ifdef HAVE_fix_trunchfqi2 + if (HAVE_fix_trunchfqi2) + fixtab[(int) HFmode][(int) QImode][0] = CODE_FOR_fix_trunchfqi2; +#endif +#ifdef HAVE_fixhfhi2 + if (HAVE_fixhfhi2) + fixtab[(int) HFmode][(int) QImode][0] = CODE_FOR_fixhfhi2; +#endif #ifdef HAVE_fix_truncsfqi2 if (HAVE_fix_truncsfqi2) fixtrunctab[(int) SFmode][(int) QImode][0] = CODE_FOR_fix_truncsfqi2; @@ -3043,6 +3080,18 @@ init_fixtab () fixtrunctab[(int) TFmode][(int) TImode][0] = CODE_FOR_fix_trunctfti2; #endif +#ifdef HAVE_fixuns_truncqfqi2 + if (HAVE_fixuns_truncqfqi2) + fixtab[(int) QFmode][(int) QImode][0] = CODE_FOR_fixuns_truncqfqi2; +#endif +#ifdef HAVE_fixuns_trunchfqi2 + if (HAVE_fixuns_trunchfqi2) + fixtab[(int) HFmode][(int) QImode][0] = CODE_FOR_fixuns_trunchfqi2; +#endif +#ifdef HAVE_fixhfhi2 + if (HAVE_fixhfhi2) + fixtab[(int) HFmode][(int) QImode][0] = CODE_FOR_fixhfhi2; +#endif #ifdef HAVE_fixuns_truncsfqi2 if (HAVE_fixuns_truncsfqi2) fixtrunctab[(int) SFmode][(int) QImode][1] = CODE_FOR_fixuns_truncsfqi2; @@ -3145,6 +3194,48 @@ init_floattab () p++) *p = CODE_FOR_nothing; +#ifdef HAVE_floatqiqf2 + if (HAVE_floatqiqf2) + floattab[(int) QFmode][(int) QImode][0] = CODE_FOR_floatqiqf2; +#endif +#ifdef HAVE_floathiqf2 + if (HAVE_floathiqf2) + floattab[(int) QFmode][(int) HImode][0] = CODE_FOR_floathiqf2; +#endif +#ifdef HAVE_floatsiqf2 + if (HAVE_floatsiqf2) + floattab[(int) QFmode][(int) SImode][0] = CODE_FOR_floatsiqf2; +#endif +#ifdef HAVE_floatdiqf2 + if (HAVE_floatdiqf2) + floattab[(int) QFmode][(int) DImode][0] = CODE_FOR_floatdiqf2; +#endif +#ifdef HAVE_floattiqf2 + if (HAVE_floattiqf2) + floattab[(int) QFmode][(int) TImode][0] = CODE_FOR_floattiqf2; +#endif + +#ifdef HAVE_floatqihf2 + if (HAVE_floatqihf2) + floattab[(int) HFmode][(int) QImode][0] = CODE_FOR_floatqihf2; +#endif +#ifdef HAVE_floathihf2 + if (HAVE_floathihf2) + floattab[(int) HFmode][(int) HImode][0] = CODE_FOR_floathihf2; +#endif +#ifdef HAVE_floatsihf2 + if (HAVE_floatsihf2) + floattab[(int) HFmode][(int) SImode][0] = CODE_FOR_floatsihf2; +#endif +#ifdef HAVE_floatdihf2 + if (HAVE_floatdihf2) + floattab[(int) HFmode][(int) DImode][0] = CODE_FOR_floatdihf2; +#endif +#ifdef HAVE_floattihf2 + if (HAVE_floattihf2) + floattab[(int) HFmode][(int) TImode][0] = CODE_FOR_floattihf2; +#endif + #ifdef HAVE_floatqisf2 if (HAVE_floatqisf2) floattab[(int) SFmode][(int) QImode][0] = CODE_FOR_floatqisf2; @@ -3229,7 +3320,49 @@ init_floattab () floattab[(int) TFmode][(int) TImode][0] = CODE_FOR_floattitf2; #endif -#ifdef HAVE_floatunsqisf2 +#ifdef HAVE_floatunsqiqf2 + if (HAVE_floatunsqiqf2) + floattab[(int) QFmode][(int) QImode][0] = CODE_FOR_floatunsqiqf2; +#endif +#ifdef HAVE_floatunshiqf2 + if (HAVE_floatunshiqf2) + floattab[(int) QFmode][(int) HImode][0] = CODE_FOR_floatunshiqf2; +#endif +#ifdef HAVE_floatunssiqf2 + if (HAVE_floatunsqsiqf2) + floattab[(int) QFmode][(int) SImode][0] = CODE_FOR_floatunssiqf2; +#endif +#ifdef HAVE_floatunsdiqf2 + if (HAVE_floatunsdiqf2) + floattab[(int) QFmode][(int) DImode][0] = CODE_FOR_floatunsdiqf2; +#endif +#ifdef HAVE_floatunstiqf2 + if (HAVE_floatunstiqf2) + floattab[(int) QFmode][(int) TImode][0] = CODE_FOR_floatunstiqf2; +#endif + +#ifdef HAVE_floatunsqihf2 + if (HAVE_floatunsqihf2) + floattab[(int) HFmode][(int) QImode][0] = CODE_FOR_floatunsqihf2; +#endif +#ifdef HAVE_floatunshihf2 + if (HAVE_floatunshihf2) + floattab[(int) HFmode][(int) HImode][0] = CODE_FOR_floatunshihf2; +#endif +#ifdef HAVE_floatunssihf2 + if (HAVE_floatunssihf2) + floattab[(int) HFmode][(int) SImode][0] = CODE_FOR_floatunssihf2; +#endif +#ifdef HAVE_floatunsdihf2 + if (HAVE_floatunsdihf2) + floattab[(int) HFmode][(int) DImode][0] = CODE_FOR_floatunsdihf2; +#endif +#ifdef HAVE_floatunstihf2 + if (HAVE_floatunstihf2) + floattab[(int) HFmode][(int) TImode][0] = CODE_FOR_floatunstihf2; +#endif + +#ifdef HAVE_floatqunsqisf2 if (HAVE_floatunsqisf2) floattab[(int) SFmode][(int) QImode][1] = CODE_FOR_floatunsqisf2; #endif @@ -3901,6 +4034,14 @@ init_optabs () if (HAVE_addti3) add_optab->handlers[(int) TImode].insn_code = CODE_FOR_addti3; #endif +#ifdef HAVE_addqf3 + if (HAVE_addqf3) + add_optab->handlers[(int) QFmode].insn_code = CODE_FOR_addqf3; +#endif +#ifdef HAVE_addhf3 + if (HAVE_addhf3) + add_optab->handlers[(int) HFmode].insn_code = CODE_FOR_addhf3; +#endif #ifdef HAVE_addsf3 if (HAVE_addsf3) add_optab->handlers[(int) SFmode].insn_code = CODE_FOR_addsf3; @@ -3944,6 +4085,14 @@ init_optabs () if (HAVE_subti3) sub_optab->handlers[(int) TImode].insn_code = CODE_FOR_subti3; #endif +#ifdef HAVE_subqf3 + if (HAVE_subqf3) + sub_optab->handlers[(int) QFmode].insn_code = CODE_FOR_subqf3; +#endif +#ifdef HAVE_subhf3 + if (HAVE_subhf3) + sub_optab->handlers[(int) HFmode].insn_code = CODE_FOR_subhf3; +#endif #ifdef HAVE_subsf3 if (HAVE_subsf3) sub_optab->handlers[(int) SFmode].insn_code = CODE_FOR_subsf3; @@ -3987,6 +4136,14 @@ init_optabs () if (HAVE_multi3) smul_optab->handlers[(int) TImode].insn_code = CODE_FOR_multi3; #endif +#ifdef HAVE_mulqf3 + if (HAVE_mulqf3) + smul_optab->handlers[(int) QFmode].insn_code = CODE_FOR_mulqf3; +#endif +#ifdef HAVE_mulhf3 + if (HAVE_mulhf3) + smul_optab->handlers[(int) HFmode].insn_code = CODE_FOR_mulhf3; +#endif #ifdef HAVE_mulsf3 if (HAVE_mulsf3) smul_optab->handlers[(int) SFmode].insn_code = CODE_FOR_mulsf3; @@ -4253,6 +4410,14 @@ init_optabs () = gen_rtx (SYMBOL_REF, Pmode, UMODTI3_LIBCALL); #endif +#ifdef HAVE_divqf3 + if (HAVE_divqf3) + flodiv_optab->handlers[(int) QFmode].insn_code = CODE_FOR_divqf3; +#endif +#ifdef HAVE_divhf3 + if (HAVE_divhf3) + flodiv_optab->handlers[(int) HFmode].insn_code = CODE_FOR_divhf3; +#endif #ifdef HAVE_divsf3 if (HAVE_divsf3) flodiv_optab->handlers[(int) SFmode].insn_code = CODE_FOR_divsf3; @@ -4271,6 +4436,14 @@ init_optabs () #endif init_floating_libfuncs (flodiv_optab, "div", '3'); +#ifdef HAVE_ftruncqf2 + if (HAVE_ftruncqf2) + ftrunc_optab->handlers[(int) QFmode].insn_code = CODE_FOR_ftruncqf2; +#endif +#ifdef HAVE_ftrunchf2 + if (HAVE_ftrunchf2) + ftrunc_optab->handlers[(int) HFmode].insn_code = CODE_FOR_ftrunchf3; +#endif #ifdef HAVE_ftruncsf2 if (HAVE_ftruncsf2) ftrunc_optab->handlers[(int) SFmode].insn_code = CODE_FOR_ftruncsf2; @@ -4543,6 +4716,14 @@ init_optabs () if (HAVE_sminti3) smin_optab->handlers[(int) TImode].insn_code = CODE_FOR_sminti3; #endif +#ifdef HAVE_minqf3 + if (HAVE_minqf3) + smin_optab->handlers[(int) QFmode].insn_code = CODE_FOR_minqf3; +#endif +#ifdef HAVE_minhf3 + if (HAVE_minhf3) + smin_optab->handlers[(int) HFmode].insn_code = CODE_FOR_minhf3; +#endif #ifdef HAVE_minsf3 if (HAVE_minsf3) smin_optab->handlers[(int) SFmode].insn_code = CODE_FOR_minsf3; @@ -4582,6 +4763,14 @@ init_optabs () if (HAVE_smaxti3) smax_optab->handlers[(int) TImode].insn_code = CODE_FOR_smaxti3; #endif +#ifdef HAVE_maxqf3 + if (HAVE_maxqf3) + smax_optab->handlers[(int) QFmode].insn_code = CODE_FOR_maxqf3; +#endif +#ifdef HAVE_maxhf3 + if (HAVE_maxhf3) + smax_optab->handlers[(int) HFmode].insn_code = CODE_FOR_maxhf3; +#endif #ifdef HAVE_maxsf3 if (HAVE_maxsf3) smax_optab->handlers[(int) SFmode].insn_code = CODE_FOR_maxsf3; @@ -4669,6 +4858,14 @@ init_optabs () if (HAVE_negti2) neg_optab->handlers[(int) TImode].insn_code = CODE_FOR_negti2; #endif +#ifdef HAVE_negqf2 + if (HAVE_negqf2) + neg_optab->handlers[(int) QFmode].insn_code = CODE_FOR_negqf2; +#endif +#ifdef HAVE_neghf2 + if (HAVE_neghf2) + neg_optab->handlers[(int) HFmode].insn_code = CODE_FOR_neghf2; +#endif #ifdef HAVE_negsf2 if (HAVE_negsf2) neg_optab->handlers[(int) SFmode].insn_code = CODE_FOR_negsf2; @@ -4712,6 +4909,14 @@ init_optabs () if (HAVE_absti2) abs_optab->handlers[(int) TImode].insn_code = CODE_FOR_absti2; #endif +#ifdef HAVE_absqf2 + if (HAVE_absqf2) + abs_optab->handlers[(int) QFmode].insn_code = CODE_FOR_absqf2; +#endif +#ifdef HAVE_abshf2 + if (HAVE_abshf2) + abs_optab->handlers[(int) HFmode].insn_code = CODE_FOR_abshf22; +#endif #ifdef HAVE_abssf2 if (HAVE_abssf2) abs_optab->handlers[(int) SFmode].insn_code = CODE_FOR_abssf2; @@ -4758,6 +4963,14 @@ init_optabs () if (HAVE_sqrtti2) sqrt_optab->handlers[(int) TImode].insn_code = CODE_FOR_sqrtti2; #endif +#ifdef HAVE_sqrtqf2 + if (HAVE_sqrtqf2) + sqrt_optab->handlers[(int) QFmode].insn_code = CODE_FOR_sqrtqf2; +#endif +#ifdef HAVE_sqrthf2 + if (HAVE_sqrthf2) + sqrt_optab->handlers[(int) HFmode].insn_code = CODE_FOR_sqrthf2; +#endif #ifdef HAVE_sqrtsf2 if (HAVE_sqrtsf2) sqrt_optab->handlers[(int) SFmode].insn_code = CODE_FOR_sqrtsf2; @@ -4773,6 +4986,14 @@ init_optabs () /* No library calls here! If there is no sqrt instruction expand_builtin should force the library call. */ +#ifdef HAVE_sinqf2 + if (HAVE_sinqf2) + sin_optab->handlers[(int) QFmode].insn_code = CODE_FOR_sinqf2; +#endif +#ifdef HAVE_sinhf2 + if (HAVE_sinhf2) + sin_optab->handlers[(int) HFmode].insn_code = CODE_FOR_sinhf2; +#endif #ifdef HAVE_sinsf2 if (HAVE_sinsf2) sin_optab->handlers[(int) SFmode].insn_code = CODE_FOR_sinsf2; @@ -4788,6 +5009,14 @@ init_optabs () /* No library calls here! If there is no sin instruction expand_builtin should force the library call. */ +#ifdef HAVE_cosqf2 + if (HAVE_cosqf2) + cos_optab->handlers[(int) QFmode].insn_code = CODE_FOR_cosqf2; +#endif +#ifdef HAVE_coshf2 + if (HAVE_coshf2) + cos_optab->handlers[(int) HFmode].insn_code = CODE_FOR_coshf2; +#endif #ifdef HAVE_cossf2 if (HAVE_cossf2) cos_optab->handlers[(int) SFmode].insn_code = CODE_FOR_cossf2; @@ -4906,6 +5135,14 @@ init_optabs () if (HAVE_movti) mov_optab->handlers[(int) TImode].insn_code = CODE_FOR_movti; #endif +#ifdef HAVE_movqf + if (HAVE_movqf) + mov_optab->handlers[(int) QFmode].insn_code = CODE_FOR_movqf; +#endif +#ifdef HAVE_movhf + if (HAVE_movhf) + mov_optab->handlers[(int) HFmode].insn_code = CODE_FOR_movhf; +#endif #ifdef HAVE_movsf if (HAVE_movsf) mov_optab->handlers[(int) SFmode].insn_code = CODE_FOR_movsf; @@ -4980,6 +5217,14 @@ init_optabs () if (HAVE_cmpti) cmp_optab->handlers[(int) TImode].insn_code = CODE_FOR_cmpti; #endif +#ifdef HAVE_cmpqf + if (HAVE_cmpqf) + cmp_optab->handlers[(int) QFmode].insn_code = CODE_FOR_cmpqf; +#endif +#ifdef HAVE_cmphf + if (HAVE_cmphf) + cmp_optab->handlers[(int) HFmode].insn_code = CODE_FOR_cmphf; +#endif #ifdef HAVE_cmpsf if (HAVE_cmpsf) cmp_optab->handlers[(int) SFmode].insn_code = CODE_FOR_cmpsf; @@ -5025,6 +5270,14 @@ init_optabs () if (HAVE_tstti) tst_optab->handlers[(int) TImode].insn_code = CODE_FOR_tstti; #endif +#ifdef HAVE_tstqf + if (HAVE_tstqf) + tst_optab->handlers[(int) QFmode].insn_code = CODE_FOR_tstqf; +#endif +#ifdef HAVE_tsthf + if (HAVE_tsthf) + tst_optab->handlers[(int) HFmode].insn_code = CODE_FOR_tsthf; +#endif #ifdef HAVE_tstsf if (HAVE_tstsf) tst_optab->handlers[(int) SFmode].insn_code = CODE_FOR_tstsf;