LCOV - code coverage report
Current view: top level - /mnt/build/buildbot/bld/build-lcov/gcc - tm-preds.h (source / functions) Coverage Total Hit
Test: gcc.info Lines: 90.5 % 42 38
Test Date: 2024-03-23 14:05:01 Functions: 100.0 % 10 10
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: - 0 0

             Branch data     Line data    Source code
       1                 :             : /* Generated automatically by the program 'build/genpreds'
       2                 :             :    from the machine description file '/home/worker/buildworker/tiber-lcov/build/gcc/config/i386/i386.md'.  */
       3                 :             : 
       4                 :             : #ifndef GCC_TM_PREDS_H
       5                 :             : #define GCC_TM_PREDS_H
       6                 :             : 
       7                 :             : #ifdef HAVE_MACHINE_MODES
       8                 :             : extern bool general_operand (rtx, machine_mode);
       9                 :             : extern bool address_operand (rtx, machine_mode);
      10                 :             : extern bool register_operand (rtx, machine_mode);
      11                 :             : extern bool pmode_register_operand (rtx, machine_mode);
      12                 :             : extern bool scratch_operand (rtx, machine_mode);
      13                 :             : extern bool immediate_operand (rtx, machine_mode);
      14                 :             : extern bool const_int_operand (rtx, machine_mode);
      15                 :             : extern bool const_scalar_int_operand (rtx, machine_mode);
      16                 :             : extern bool const_double_operand (rtx, machine_mode);
      17                 :             : extern bool nonimmediate_operand (rtx, machine_mode);
      18                 :             : extern bool nonmemory_operand (rtx, machine_mode);
      19                 :             : extern bool push_operand (rtx, machine_mode);
      20                 :             : extern bool pop_operand (rtx, machine_mode);
      21                 :             : extern bool memory_operand (rtx, machine_mode);
      22                 :             : extern bool indirect_operand (rtx, machine_mode);
      23                 :             : extern bool ordered_comparison_operator (rtx, machine_mode);
      24                 :             : extern bool comparison_operator (rtx, machine_mode);
      25                 :             : extern bool aligned_register_operand (rtx, machine_mode);
      26                 :             : extern bool any_fp_register_operand (rtx, machine_mode);
      27                 :             : extern bool fp_register_operand (rtx, machine_mode);
      28                 :             : extern bool general_reg_operand (rtx, machine_mode);
      29                 :             : extern bool index_reg_operand (rtx, machine_mode);
      30                 :             : extern bool nonimmediate_gr_operand (rtx, machine_mode);
      31                 :             : extern bool general_gr_operand (rtx, machine_mode);
      32                 :             : extern bool mmx_reg_operand (rtx, machine_mode);
      33                 :             : extern bool register_mmxmem_operand (rtx, machine_mode);
      34                 :             : extern bool sse_reg_operand (rtx, machine_mode);
      35                 :             : extern bool any_QIreg_operand (rtx, machine_mode);
      36                 :             : extern bool QIreg_operand (rtx, machine_mode);
      37                 :             : extern bool ext_QIreg_operand (rtx, machine_mode);
      38                 :             : extern bool ax_reg_operand (rtx, machine_mode);
      39                 :             : extern bool flags_reg_operand (rtx, machine_mode);
      40                 :             : extern bool mask_reg_operand (rtx, machine_mode);
      41                 :             : extern bool int248_register_operand (rtx, machine_mode);
      42                 :             : extern bool int_nonimmediate_operand (rtx, machine_mode);
      43                 :             : extern bool register_ssemem_operand (rtx, machine_mode);
      44                 :             : extern bool nonimm_ssenomem_operand (rtx, machine_mode);
      45                 :             : extern bool x87nonimm_ssenomem_operand (rtx, machine_mode);
      46                 :             : extern bool register_sse4nonimm_operand (rtx, machine_mode);
      47                 :             : extern bool symbol_operand (rtx, machine_mode);
      48                 :             : extern bool ix86_endbr_immediate_operand (rtx, machine_mode);
      49                 :             : extern bool x86_64_immediate_operand (rtx, machine_mode);
      50                 :             : extern bool x86_64_zext_immediate_operand (rtx, machine_mode);
      51                 :             : extern bool x86_64_hilo_int_operand (rtx, machine_mode);
      52                 :             : extern bool x86_64_dwzext_immediate_operand (rtx, machine_mode);
      53                 :             : extern bool x86_64_immediate_size_operand (rtx, machine_mode);
      54                 :             : extern bool x86_64_general_operand (rtx, machine_mode);
      55                 :             : extern bool x86_64_hilo_general_operand (rtx, machine_mode);
      56                 :             : extern bool x86_64_sext_operand (rtx, machine_mode);
      57                 :             : extern bool sext_operand (rtx, machine_mode);
      58                 :             : extern bool x86_64_zext_operand (rtx, machine_mode);
      59                 :             : extern bool x86_64_szext_general_operand (rtx, machine_mode);
      60                 :             : extern bool x86_64_nonmemory_operand (rtx, machine_mode);
      61                 :             : extern bool x86_64_szext_nonmemory_operand (rtx, machine_mode);
      62                 :             : extern bool pic_32bit_operand (rtx, machine_mode);
      63                 :             : extern bool x86_64_movabs_operand (rtx, machine_mode);
      64                 :             : extern bool symbolic_operand (rtx, machine_mode);
      65                 :             : extern bool local_symbolic_operand (rtx, machine_mode);
      66                 :             : extern bool local_func_symbolic_operand (rtx, machine_mode);
      67                 :             : extern bool gotoff_operand (rtx, machine_mode);
      68                 :             : extern bool tls_symbolic_operand (rtx, machine_mode);
      69                 :             : extern bool tls_modbase_operand (rtx, machine_mode);
      70                 :             : extern bool tls_address_pattern (rtx, machine_mode);
      71                 :             : extern bool constant_call_address_operand (rtx, machine_mode);
      72                 :             : extern bool register_no_elim_operand (rtx, machine_mode);
      73                 :             : extern bool register_no_SP_operand (rtx, machine_mode);
      74                 :             : extern bool call_register_operand (rtx, machine_mode);
      75                 :             : extern bool general_no_elim_operand (rtx, machine_mode);
      76                 :             : extern bool nonmemory_no_elim_operand (rtx, machine_mode);
      77                 :             : extern bool indirect_branch_operand (rtx, machine_mode);
      78                 :             : extern bool sibcall_memory_operand (rtx, machine_mode);
      79                 :             : extern bool GOT_memory_operand (rtx, machine_mode);
      80                 :             : extern bool call_insn_operand (rtx, machine_mode);
      81                 :             : extern bool sibcall_insn_operand (rtx, machine_mode);
      82                 :             : extern bool GOT32_symbol_operand (rtx, machine_mode);
      83                 :             : extern bool const0_operand (rtx, machine_mode);
      84                 :             : extern bool const1_operand (rtx, machine_mode);
      85                 :             : extern bool constm1_operand (rtx, machine_mode);
      86                 :             : extern bool const8_operand (rtx, machine_mode);
      87                 :             : extern bool const128_operand (rtx, machine_mode);
      88                 :             : extern bool const_32bit_mask (rtx, machine_mode);
      89                 :             : extern bool const248_operand (rtx, machine_mode);
      90                 :             : extern bool const123_operand (rtx, machine_mode);
      91                 :             : extern bool const2367_operand (rtx, machine_mode);
      92                 :             : extern bool const1248_operand (rtx, machine_mode);
      93                 :             : extern bool const359_operand (rtx, machine_mode);
      94                 :             : extern bool const_4_or_8_to_11_operand (rtx, machine_mode);
      95                 :             : extern bool const48_operand (rtx, machine_mode);
      96                 :             : extern bool const_0_to_1_operand (rtx, machine_mode);
      97                 :             : extern bool const_0_to_3_operand (rtx, machine_mode);
      98                 :             : extern bool const_0_to_4_operand (rtx, machine_mode);
      99                 :             : extern bool const_0_to_5_operand (rtx, machine_mode);
     100                 :             : extern bool const_0_to_7_operand (rtx, machine_mode);
     101                 :             : extern bool const_0_to_15_operand (rtx, machine_mode);
     102                 :             : extern bool const_0_to_31_operand (rtx, machine_mode);
     103                 :             : extern bool const_0_to_63_operand (rtx, machine_mode);
     104                 :             : extern bool const_0_to_127_operand (rtx, machine_mode);
     105                 :             : extern bool const_0_to_255_operand (rtx, machine_mode);
     106                 :             : extern bool const_0_to_255_mul_8_operand (rtx, machine_mode);
     107                 :             : extern bool const_0_to_255_not_mul_8_operand (rtx, machine_mode);
     108                 :             : extern bool const_1_to_31_operand (rtx, machine_mode);
     109                 :             : extern bool const_1_to_63_operand (rtx, machine_mode);
     110                 :             : extern bool const_2_to_3_operand (rtx, machine_mode);
     111                 :             : extern bool const_4_to_5_operand (rtx, machine_mode);
     112                 :             : extern bool const_4_to_7_operand (rtx, machine_mode);
     113                 :             : extern bool const_6_to_7_operand (rtx, machine_mode);
     114                 :             : extern bool const_8_to_9_operand (rtx, machine_mode);
     115                 :             : extern bool const_8_to_11_operand (rtx, machine_mode);
     116                 :             : extern bool const_8_to_15_operand (rtx, machine_mode);
     117                 :             : extern bool const_10_to_11_operand (rtx, machine_mode);
     118                 :             : extern bool const_12_to_13_operand (rtx, machine_mode);
     119                 :             : extern bool const_12_to_15_operand (rtx, machine_mode);
     120                 :             : extern bool const_14_to_15_operand (rtx, machine_mode);
     121                 :             : extern bool const_16_to_19_operand (rtx, machine_mode);
     122                 :             : extern bool const_16_to_31_operand (rtx, machine_mode);
     123                 :             : extern bool const_20_to_23_operand (rtx, machine_mode);
     124                 :             : extern bool const_24_to_27_operand (rtx, machine_mode);
     125                 :             : extern bool const_28_to_31_operand (rtx, machine_mode);
     126                 :             : extern bool incdec_operand (rtx, machine_mode);
     127                 :             : extern bool vec_setm_sse41_operand (rtx, machine_mode);
     128                 :             : extern bool vec_setm_avx2_operand (rtx, machine_mode);
     129                 :             : extern bool vec_setm_mmx_operand (rtx, machine_mode);
     130                 :             : extern bool reg_or_pm1_operand (rtx, machine_mode);
     131                 :             : extern bool regmem_or_bitnot_regmem_operand (rtx, machine_mode);
     132                 :             : extern bool shiftdi_operand (rtx, machine_mode);
     133                 :             : extern bool ashldi_input_operand (rtx, machine_mode);
     134                 :             : extern bool zero_extended_scalar_load_operand (rtx, machine_mode);
     135                 :             : extern bool float_vector_all_ones_operand (rtx, machine_mode);
     136                 :             : extern bool vector_all_ones_operand (rtx, machine_mode);
     137                 :             : extern bool int_float_vector_all_ones_operand (rtx, machine_mode);
     138                 :             : extern bool vector_all_ones_zero_extend_half_operand (rtx, machine_mode);
     139                 :             : extern bool vector_all_ones_zero_extend_quarter_operand (rtx, machine_mode);
     140                 :             : extern bool vector_memory_operand (rtx, machine_mode);
     141                 :             : extern bool vector_operand (rtx, machine_mode);
     142                 :             : extern bool vector_or_const_vector_operand (rtx, machine_mode);
     143                 :             : extern bool bcst_mem_operand (rtx, machine_mode);
     144                 :             : extern bool bcst_vector_operand (rtx, machine_mode);
     145                 :             : extern bool nonimmediate_or_const_vector_operand (rtx, machine_mode);
     146                 :             : extern bool nonimmediate_or_const_vec_dup_operand (rtx, machine_mode);
     147                 :             : extern bool reg_or_const_vector_operand (rtx, machine_mode);
     148                 :             : extern bool x86_64_const_vector_operand (rtx, machine_mode);
     149                 :             : extern bool nonimmediate_or_x86_64_const_vector_operand (rtx, machine_mode);
     150                 :             : extern bool nonimmediate_or_sse_const_operand (rtx, machine_mode);
     151                 :             : extern bool reg_or_0_operand (rtx, machine_mode);
     152                 :             : extern bool nonimm_or_0_operand (rtx, machine_mode);
     153                 :             : extern bool SImode_address_operand (rtx, machine_mode);
     154                 :             : extern bool address_no_seg_operand (rtx, machine_mode);
     155                 :             : extern bool vsib_address_operand (rtx, machine_mode);
     156                 :             : extern bool vsib_mem_operator (rtx, machine_mode);
     157                 :             : extern bool aligned_operand (rtx, machine_mode);
     158                 :             : extern bool memory_displacement_operand (rtx, machine_mode);
     159                 :             : extern bool memory_displacement_only_operand (rtx, machine_mode);
     160                 :             : extern bool long_memory_operand (rtx, machine_mode);
     161                 :             : extern bool fcmov_comparison_operator (rtx, machine_mode);
     162                 :             : extern bool sse_comparison_operator (rtx, machine_mode);
     163                 :             : extern bool ix86_comparison_int_operator (rtx, machine_mode);
     164                 :             : extern bool ix86_comparison_uns_operator (rtx, machine_mode);
     165                 :             : extern bool bt_comparison_operator (rtx, machine_mode);
     166                 :             : extern bool shr_comparison_operator (rtx, machine_mode);
     167                 :             : extern bool add_comparison_operator (rtx, machine_mode);
     168                 :             : extern bool ix86_comparison_operator (rtx, machine_mode);
     169                 :             : extern bool ix86_carry_flag_operator (rtx, machine_mode);
     170                 :             : extern bool ix86_carry_flag_unset_operator (rtx, machine_mode);
     171                 :             : extern bool ix86_trivial_fp_comparison_operator (rtx, machine_mode);
     172                 :             : extern bool ix86_fp_comparison_operator (rtx, machine_mode);
     173                 :             : extern bool ix86_timode_comparison_operator (rtx, machine_mode);
     174                 :             : extern bool ix86_timode_comparison_operand (rtx, machine_mode);
     175                 :             : extern bool cmp_fp_expander_operand (rtx, machine_mode);
     176                 :             : extern bool binary_fp_operator (rtx, machine_mode);
     177                 :             : extern bool mult_operator (rtx, machine_mode);
     178                 :             : extern bool div_operator (rtx, machine_mode);
     179                 :             : extern bool logic_operator (rtx, machine_mode);
     180                 :             : extern bool plusminuslogic_operator (rtx, machine_mode);
     181                 :             : extern bool arith_or_logical_operator (rtx, machine_mode);
     182                 :             : extern bool commutative_operator (rtx, machine_mode);
     183                 :             : extern bool promotable_binary_operator (rtx, machine_mode);
     184                 :             : extern bool compare_operator (rtx, machine_mode);
     185                 :             : extern bool extract_operator (rtx, machine_mode);
     186                 :             : extern bool misaligned_operand (rtx, machine_mode);
     187                 :             : extern bool movq_parallel (rtx, machine_mode);
     188                 :             : extern bool vzeroall_operation (rtx, machine_mode);
     189                 :             : extern bool vzeroall_pattern (rtx, machine_mode);
     190                 :             : extern bool vzeroupper_pattern (rtx, machine_mode);
     191                 :             : extern bool addsub_vm_operator (rtx, machine_mode);
     192                 :             : extern bool addsub_vs_operator (rtx, machine_mode);
     193                 :             : extern bool addsub_vs_parallel (rtx, machine_mode);
     194                 :             : extern bool permvar_truncate_operand (rtx, machine_mode);
     195                 :             : extern bool pshufb_truncv4siv4hi_operand (rtx, machine_mode);
     196                 :             : extern bool pshufb_truncv8hiv8qi_operand (rtx, machine_mode);
     197                 :             : extern bool pmovzx_parallel (rtx, machine_mode);
     198                 :             : extern bool const_vector_duplicate_operand (rtx, machine_mode);
     199                 :             : extern bool avx_vbroadcast_operand (rtx, machine_mode);
     200                 :             : extern bool palignr_operand (rtx, machine_mode);
     201                 :             : extern bool avx2_pblendw_operand (rtx, machine_mode);
     202                 :             : extern bool general_vector_operand (rtx, machine_mode);
     203                 :             : extern bool register_or_constm1_operand (rtx, machine_mode);
     204                 :             : extern bool save_multiple (rtx, machine_mode);
     205                 :             : extern bool restore_multiple (rtx, machine_mode);
     206                 :             : extern bool encodekey128_operation (rtx, machine_mode);
     207                 :             : extern bool encodekey256_operation (rtx, machine_mode);
     208                 :             : extern bool aeswidekl_operation (rtx, machine_mode);
     209                 :             : extern bool apx_ndd_memory_operand (rtx, machine_mode);
     210                 :             : extern bool apx_ndd_add_memory_operand (rtx, machine_mode);
     211                 :             : #endif /* HAVE_MACHINE_MODES */
     212                 :             : 
     213                 :             : #ifdef GCC_HARD_REG_SET_H
     214                 :             : struct target_constraints {
     215                 :             :   HARD_REG_SET register_filters[1];
     216                 :             : };
     217                 :             : 
     218                 :             : extern struct target_constraints default_target_constraints;
     219                 :             : #if SWITCHABLE_TARGET
     220                 :             : extern struct target_constraints *this_target_constraints;
     221                 :             : #else
     222                 :             : #define this_target_constraints (&default_target_constraints)
     223                 :             : #endif
     224                 :             : 
     225                 :             : #define TEST_REGISTER_FILTER_BIT(ID, REGNO) \
     226                 :             :   ((void) (ID), (void) (REGNO), false)
     227                 :             : 
     228                 :             : inline bool
     229                 :             : test_register_filters (unsigned int, unsigned int)
     230                 :             : {
     231                 :             :   return true;
     232                 :             : }
     233                 :             : #endif
     234                 :             : 
     235                 :             : #define CONSTRAINT_NUM_DEFINED_P 1
     236                 :             : enum constraint_num
     237                 :             : {
     238                 :             :   CONSTRAINT__UNKNOWN = 0,
     239                 :             :   CONSTRAINT_r,
     240                 :             :   CONSTRAINT_R,
     241                 :             :   CONSTRAINT_q,
     242                 :             :   CONSTRAINT_Q,
     243                 :             :   CONSTRAINT_l,
     244                 :             :   CONSTRAINT_a,
     245                 :             :   CONSTRAINT_b,
     246                 :             :   CONSTRAINT_c,
     247                 :             :   CONSTRAINT_d,
     248                 :             :   CONSTRAINT_S,
     249                 :             :   CONSTRAINT_D,
     250                 :             :   CONSTRAINT_A,
     251                 :             :   CONSTRAINT_U,
     252                 :             :   CONSTRAINT_f,
     253                 :             :   CONSTRAINT_t,
     254                 :             :   CONSTRAINT_u,
     255                 :             :   CONSTRAINT_Yk,
     256                 :             :   CONSTRAINT_k,
     257                 :             :   CONSTRAINT_y,
     258                 :             :   CONSTRAINT_x,
     259                 :             :   CONSTRAINT_v,
     260                 :             :   CONSTRAINT_Yz,
     261                 :             :   CONSTRAINT_Yd,
     262                 :             :   CONSTRAINT_Yp,
     263                 :             :   CONSTRAINT_Ya,
     264                 :             :   CONSTRAINT_Yb,
     265                 :             :   CONSTRAINT_Yf,
     266                 :             :   CONSTRAINT_Yr,
     267                 :             :   CONSTRAINT_Yv,
     268                 :             :   CONSTRAINT_Yw,
     269                 :             :   CONSTRAINT_YW,
     270                 :             :   CONSTRAINT_jR,
     271                 :             :   CONSTRAINT_jr,
     272                 :             :   CONSTRAINT_jc,
     273                 :             :   CONSTRAINT_I,
     274                 :             :   CONSTRAINT_J,
     275                 :             :   CONSTRAINT_K,
     276                 :             :   CONSTRAINT_L,
     277                 :             :   CONSTRAINT_M,
     278                 :             :   CONSTRAINT_N,
     279                 :             :   CONSTRAINT_O,
     280                 :             :   CONSTRAINT_m,
     281                 :             :   CONSTRAINT_o,
     282                 :             :   CONSTRAINT_Bk,
     283                 :             :   CONSTRAINT_jm,
     284                 :             :   CONSTRAINT_jo,
     285                 :             :   CONSTRAINT_je,
     286                 :             :   CONSTRAINT_jM,
     287                 :             :   CONSTRAINT_jO,
     288                 :             :   CONSTRAINT_Bm,
     289                 :             :   CONSTRAINT_Bn,
     290                 :             :   CONSTRAINT_Br,
     291                 :             :   CONSTRAINT_ja,
     292                 :             :   CONSTRAINT_p,
     293                 :             :   CONSTRAINT_Tv,
     294                 :             :   CONSTRAINT_Ts,
     295                 :             :   CONSTRAINT_jp,
     296                 :             :   CONSTRAINT_jb,
     297                 :             :   CONSTRAINT_Bz,
     298                 :             :   CONSTRAINT_BH,
     299                 :             :   CONSTRAINT_Wb,
     300                 :             :   CONSTRAINT_Ww,
     301                 :             :   CONSTRAINT_G,
     302                 :             :   CONSTRAINT_e,
     303                 :             :   CONSTRAINT_We,
     304                 :             :   CONSTRAINT_Wz,
     305                 :             :   CONSTRAINT_Wd,
     306                 :             :   CONSTRAINT_Wf,
     307                 :             :   CONSTRAINT_Ws,
     308                 :             :   CONSTRAINT_Z,
     309                 :             :   CONSTRAINT_Bf,
     310                 :             :   CONSTRAINT_V,
     311                 :             :   CONSTRAINT__l,
     312                 :             :   CONSTRAINT__g,
     313                 :             :   CONSTRAINT_BF,
     314                 :             :   CONSTRAINT_BM,
     315                 :             :   CONSTRAINT_j_l,
     316                 :             :   CONSTRAINT_j_g,
     317                 :             :   CONSTRAINT_jV,
     318                 :             :   CONSTRAINT_i,
     319                 :             :   CONSTRAINT_s,
     320                 :             :   CONSTRAINT_n,
     321                 :             :   CONSTRAINT_E,
     322                 :             :   CONSTRAINT_F,
     323                 :             :   CONSTRAINT_X,
     324                 :             :   CONSTRAINT_Bg,
     325                 :             :   CONSTRAINT_Bs,
     326                 :             :   CONSTRAINT_Bw,
     327                 :             :   CONSTRAINT_BC,
     328                 :             :   CONSTRAINT_C,
     329                 :             :   CONSTRAINT__LIMIT
     330                 :             : };
     331                 :             : 
     332                 :             : extern enum constraint_num lookup_constraint_1 (const char *);
     333                 :             : extern const unsigned char lookup_constraint_array[];
     334                 :             : 
     335                 :             : /* Return the constraint at the beginning of P, or CONSTRAINT__UNKNOWN if it
     336                 :             :    isn't recognized.  */
     337                 :             : 
     338                 :             : static inline enum constraint_num
     339                 : 16757479829 : lookup_constraint (const char *p)
     340                 :             : {
     341                 : 16757479829 :   unsigned int index = lookup_constraint_array[(unsigned char) *p];
     342                 : 16757479829 :   return (index == UCHAR_MAX
     343                 : 16757479829 :           ? lookup_constraint_1 (p)
     344                 : 16757479829 :           : (enum constraint_num) index);
     345                 :             : }
     346                 :             : 
     347                 :             : extern bool (*constraint_satisfied_p_array[]) (rtx);
     348                 :             : 
     349                 :             : /* Return true if X satisfies constraint C.  */
     350                 :             : 
     351                 :             : static inline bool
     352                 :  5809539653 : constraint_satisfied_p (rtx x, enum constraint_num c)
     353                 :             : {
     354                 :  5809539653 :   int i = (int) c - (int) CONSTRAINT_I;
     355                 :  5809539653 :   return i >= 0 && constraint_satisfied_p_array[i] (x);
     356                 :             : }
     357                 :             : 
     358                 :             : static inline bool
     359                 : 14762258853 : insn_extra_register_constraint (enum constraint_num c)
     360                 :             : {
     361                 : 14762258853 :   return c >= CONSTRAINT_r && c <= CONSTRAINT_jc;
     362                 :             : }
     363                 :             : 
     364                 :             : static inline bool
     365                 :  4354605988 : insn_extra_memory_constraint (enum constraint_num c)
     366                 :             : {
     367                 :  4354605988 :   return c >= CONSTRAINT_m && c <= CONSTRAINT_jO;
     368                 :             : }
     369                 :             : 
     370                 :             : static inline bool
     371                 :   177773388 : insn_extra_special_memory_constraint (enum constraint_num c)
     372                 :             : {
     373                 :   177773388 :   return c >= CONSTRAINT_Bm && c <= CONSTRAINT_ja;
     374                 :             : }
     375                 :             : 
     376                 :             : static inline bool
     377                 :      108758 : insn_extra_relaxed_memory_constraint (enum constraint_num)
     378                 :             : {
     379                 :      108758 :   return false;
     380                 :             : }
     381                 :             : 
     382                 :             : static inline bool
     383                 :  4718201383 : insn_extra_address_constraint (enum constraint_num c)
     384                 :             : {
     385                 :  4718201383 :   return c >= CONSTRAINT_p && c <= CONSTRAINT_jb;
     386                 :             : }
     387                 :             : 
     388                 :             : static inline void
     389                 :             : insn_extra_constraint_allows_reg_mem (enum constraint_num c,
     390                 :             :                                       bool *allows_reg, bool *allows_mem)
     391                 :             : {
     392                 :             :   if (c >= CONSTRAINT_Bz && c <= CONSTRAINT_Z)
     393                 :             :     return;
     394                 :             :   if (c >= CONSTRAINT_Bf && c <= CONSTRAINT_Bf)
     395                 :             :     {
     396                 :           0 :       *allows_reg = true;
     397                 :           0 :       return;
     398                 :             :     }
     399                 :             :   if (c >= CONSTRAINT_V && c <= CONSTRAINT_jV)
     400                 :             :     {
     401                 :           0 :       *allows_mem = true;
     402                 :           0 :       return;
     403                 :             :     }
     404                 :        2409 :   (void) c;
     405                 :        2409 :   *allows_reg = true;
     406                 :        2409 :   *allows_mem = true;
     407                 :             : }
     408                 :             : 
     409                 :             : static inline size_t
     410                 : 25385494552 : insn_constraint_len (char fc, const char *str ATTRIBUTE_UNUSED)
     411                 :             : {
     412                 : 25385494552 :   switch (fc)
     413                 :             :     {
     414                 :             :     case 'B': return 2;
     415                 :             :     case 'T': return 2;
     416                 :             :     case 'W': return 2;
     417                 :             :     case 'Y': return 2;
     418                 :             :     case 'j': return 2;
     419                 : 24457130147 :     default: break;
     420                 :             :     }
     421                 : 24457130147 :   return 1;
     422                 :             : }
     423                 :             : 
     424                 :             : #define CONSTRAINT_LEN(c_,s_) insn_constraint_len (c_,s_)
     425                 :             : 
     426                 :             : extern enum reg_class reg_class_for_constraint_1 (enum constraint_num);
     427                 :             : 
     428                 :             : static inline enum reg_class
     429                 : 14762258853 : reg_class_for_constraint (enum constraint_num c)
     430                 :             : {
     431                 : 14762258853 :   if (insn_extra_register_constraint (c))
     432                 :  6881293711 :     return reg_class_for_constraint_1 (c);
     433                 :             :   return NO_REGS;
     434                 :             : }
     435                 :             : 
     436                 :             : extern bool insn_const_int_ok_for_constraint (HOST_WIDE_INT, enum constraint_num);
     437                 :             : #define CONST_OK_FOR_CONSTRAINT_P(v_,c_,s_) \
     438                 :             :     insn_const_int_ok_for_constraint (v_, lookup_constraint (s_))
     439                 :             : 
     440                 :             : enum constraint_type
     441                 :             : {
     442                 :             :   CT_REGISTER,
     443                 :             :   CT_CONST_INT,
     444                 :             :   CT_MEMORY,
     445                 :             :   CT_SPECIAL_MEMORY,
     446                 :             :   CT_RELAXED_MEMORY,
     447                 :             :   CT_ADDRESS,
     448                 :             :   CT_FIXED_FORM
     449                 :             : };
     450                 :             : 
     451                 :             : static inline enum constraint_type
     452                 :  7145385244 : get_constraint_type (enum constraint_num c)
     453                 :             : {
     454                 :  7145385244 :   if (c >= CONSTRAINT_Bm)
     455                 :             :     {
     456                 :   681130636 :       if (c >= CONSTRAINT_Bz)
     457                 :             :         return CT_FIXED_FORM;
     458                 :     5739166 :       if (c >= CONSTRAINT_p)
     459                 :             :         return CT_ADDRESS;
     460                 :     2095373 :       return CT_SPECIAL_MEMORY;
     461                 :             :     }
     462                 :  6464254608 :   if (c >= CONSTRAINT_m)
     463                 :             :     return CT_MEMORY;
     464                 :  5830979814 :   if (c >= CONSTRAINT_I)
     465                 :    10645801 :     return CT_CONST_INT;
     466                 :             :   return CT_REGISTER;
     467                 :             : }
     468                 :             : 
     469                 :             : #ifdef GCC_HARD_REG_SET_H
     470                 :             : static inline const HARD_REG_SET *
     471                 :   293385340 : get_register_filter (constraint_num)
     472                 :             : {
     473                 :   293385340 :   return nullptr;
     474                 :             : }
     475                 :             : #endif
     476                 :             : 
     477                 :             : static inline int
     478                 :             : get_register_filter_id (constraint_num)
     479                 :             : {
     480                 :             :   return -1;
     481                 :             : }
     482                 :             : #endif /* tm-preds.h */
        

Generated by: LCOV version 2.0-1

LCOV profile is generated on x86_64 machine using following configure options: configure --disable-bootstrap --enable-coverage=opt --enable-languages=c,c++,fortran,go,jit,lto,rust,m2 --enable-host-shared. GCC test suite is run with the built compiler.