Home | History | Annotate | Line # | Download | only in gcc
      1 /* Mapping from optabs to underlying library functions
      2    Copyright (C) 2001-2022 Free Software Foundation, Inc.
      3 
      4 This file is part of GCC.
      5 
      6 GCC is free software; you can redistribute it and/or modify
      7 it under the terms of the GNU General Public License as published by
      8 the Free Software Foundation; either version 3, or (at your option)
      9 any later version.
     10 
     11 GCC is distributed in the hope that it will be useful,
     12 but WITHOUT ANY WARRANTY; without even the implied warranty of
     13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     14 GNU General Public License for more details.
     15 
     16 You should have received a copy of the GNU General Public License
     17 along with GCC; see the file COPYING3.  If not see
     18 <http://www.gnu.org/licenses/>.  */
     19 
     20 #ifndef GCC_OPTABS_LIBFUNCS_H
     21 #define GCC_OPTABS_LIBFUNCS_H
     22 
     23 #include "insn-opinit.h"
     24 
     25 rtx convert_optab_libfunc (convert_optab, machine_mode, machine_mode);
     26 rtx optab_libfunc (optab, machine_mode);
     27 
     28 void gen_int_libfunc (optab, const char *, char, machine_mode);
     29 void gen_fp_libfunc (optab, const char *, char, machine_mode);
     30 void gen_fixed_libfunc (optab, const char *, char, machine_mode);
     31 void gen_signed_fixed_libfunc (optab, const char *, char, machine_mode);
     32 void gen_unsigned_fixed_libfunc (optab, const char *, char, machine_mode);
     33 void gen_int_fp_libfunc (optab, const char *, char, machine_mode);
     34 void gen_intv_fp_libfunc (optab, const char *, char, machine_mode);
     35 void gen_int_fp_fixed_libfunc (optab, const char *, char, machine_mode);
     36 void gen_int_fp_signed_fixed_libfunc (optab, const char *, char, machine_mode);
     37 void gen_int_fixed_libfunc (optab, const char *, char, machine_mode);
     38 void gen_int_signed_fixed_libfunc (optab, const char *, char, machine_mode);
     39 void gen_int_unsigned_fixed_libfunc (optab, const char *, char, machine_mode);
     40 
     41 void gen_interclass_conv_libfunc (convert_optab, const char *,
     42 				  machine_mode, machine_mode);
     43 void gen_int_to_fp_conv_libfunc (convert_optab, const char *,
     44 				 machine_mode, machine_mode);
     45 void gen_ufloat_conv_libfunc (convert_optab, const char *,
     46 			      machine_mode, machine_mode);
     47 void gen_int_to_fp_nondecimal_conv_libfunc (convert_optab, const char *,
     48 					    machine_mode, machine_mode);
     49 void gen_fp_to_int_conv_libfunc (convert_optab, const char *,
     50 				 machine_mode, machine_mode);
     51 void gen_intraclass_conv_libfunc (convert_optab, const char *,
     52 				  machine_mode, machine_mode);
     53 void gen_trunc_conv_libfunc (convert_optab, const char *,
     54 			     machine_mode, machine_mode);
     55 void gen_extend_conv_libfunc (convert_optab, const char *,
     56 			      machine_mode, machine_mode);
     57 void gen_fract_conv_libfunc (convert_optab, const char *,
     58 			     machine_mode, machine_mode);
     59 void gen_fractuns_conv_libfunc (convert_optab, const char *,
     60 				machine_mode, machine_mode);
     61 void gen_satfract_conv_libfunc (convert_optab, const char *,
     62 				machine_mode, machine_mode);
     63 void gen_satfractuns_conv_libfunc (convert_optab, const char *,
     64 				   machine_mode, machine_mode);
     65 
     66 tree build_libfunc_function_visibility (const char *, symbol_visibility);
     67 tree build_libfunc_function (const char *);
     68 rtx init_one_libfunc_visibility (const char *, symbol_visibility);
     69 rtx init_one_libfunc (const char *);
     70 rtx set_user_assembler_libfunc (const char *, const char *);
     71 
     72 void set_optab_libfunc (optab, machine_mode, const char *);
     73 void set_conv_libfunc (convert_optab, machine_mode,
     74 		       machine_mode, const char *);
     75 
     76 void init_optabs (void);
     77 void init_sync_libfuncs (int max);
     78 
     79 #endif
     80