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.2 % 41 37
Test Date: 2026-02-28 14:20:25 Functions: 100.0 % 4 4
Legend: Lines:     hit not hit

            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_neg_const_int_operand (rtx, machine_mode);
      52              : extern bool x86_64_hilo_int_operand (rtx, machine_mode);
      53              : extern bool x86_64_dwzext_immediate_operand (rtx, machine_mode);
      54              : extern bool x86_64_immediate_size_operand (rtx, machine_mode);
      55              : extern bool x86_64_general_operand (rtx, machine_mode);
      56              : extern bool x86_64_hilo_general_operand (rtx, machine_mode);
      57              : extern bool x86_64_sext_operand (rtx, machine_mode);
      58              : extern bool sext_operand (rtx, machine_mode);
      59              : extern bool x86_64_zext_operand (rtx, machine_mode);
      60              : extern bool x86_64_szext_general_operand (rtx, machine_mode);
      61              : extern bool x86_64_nonmemory_operand (rtx, machine_mode);
      62              : extern bool x86_64_szext_nonmemory_operand (rtx, machine_mode);
      63              : extern bool pic_32bit_operand (rtx, machine_mode);
      64              : extern bool x86_64_movabs_operand (rtx, machine_mode);
      65              : extern bool symbolic_operand (rtx, machine_mode);
      66              : extern bool local_symbolic_operand (rtx, machine_mode);
      67              : extern bool local_func_symbolic_operand (rtx, machine_mode);
      68              : extern bool gotoff_operand (rtx, machine_mode);
      69              : extern bool tls_symbolic_operand (rtx, machine_mode);
      70              : extern bool tls_modbase_operand (rtx, machine_mode);
      71              : extern bool tls_address_pattern (rtx, machine_mode);
      72              : extern bool constant_call_address_operand (rtx, machine_mode);
      73              : extern bool register_no_elim_operand (rtx, machine_mode);
      74              : extern bool register_no_SP_operand (rtx, machine_mode);
      75              : extern bool call_register_operand (rtx, machine_mode);
      76              : extern bool general_no_elim_operand (rtx, machine_mode);
      77              : extern bool nonmemory_no_elim_operand (rtx, machine_mode);
      78              : extern bool indirect_branch_operand (rtx, machine_mode);
      79              : extern bool sibcall_memory_operand (rtx, machine_mode);
      80              : extern bool GOT_memory_operand (rtx, machine_mode);
      81              : extern bool call_insn_operand (rtx, machine_mode);
      82              : extern bool sibcall_insn_operand (rtx, machine_mode);
      83              : extern bool GOT32_symbol_operand (rtx, machine_mode);
      84              : extern bool const0_operand (rtx, machine_mode);
      85              : extern bool const1_operand (rtx, machine_mode);
      86              : extern bool constm1_operand (rtx, machine_mode);
      87              : extern bool const0_or_m1_operand (rtx, machine_mode);
      88              : extern bool const8_operand (rtx, machine_mode);
      89              : extern bool const128_operand (rtx, machine_mode);
      90              : extern bool const_32bit_mask (rtx, machine_mode);
      91              : extern bool const248_operand (rtx, machine_mode);
      92              : extern bool const123_operand (rtx, machine_mode);
      93              : extern bool const2367_operand (rtx, machine_mode);
      94              : extern bool const1248_operand (rtx, machine_mode);
      95              : extern bool const359_operand (rtx, machine_mode);
      96              : extern bool const_4_or_8_to_11_operand (rtx, machine_mode);
      97              : extern bool const48_operand (rtx, machine_mode);
      98              : extern bool const_0_to_1_operand (rtx, machine_mode);
      99              : extern bool const_0_to_3_operand (rtx, machine_mode);
     100              : extern bool const_0_to_4_operand (rtx, machine_mode);
     101              : extern bool const_0_to_5_operand (rtx, machine_mode);
     102              : extern bool const_0_to_7_operand (rtx, machine_mode);
     103              : extern bool const_0_to_15_operand (rtx, machine_mode);
     104              : extern bool const_0_to_31_operand (rtx, machine_mode);
     105              : extern bool const_0_to_63_operand (rtx, machine_mode);
     106              : extern bool const_0_to_127_operand (rtx, machine_mode);
     107              : extern bool const_0_to_255_operand (rtx, machine_mode);
     108              : extern bool const_0_to_255_mul_8_operand (rtx, machine_mode);
     109              : extern bool const_0_to_255_not_mul_8_operand (rtx, machine_mode);
     110              : extern bool const_1_to_31_operand (rtx, machine_mode);
     111              : extern bool const_1_to_63_operand (rtx, machine_mode);
     112              : extern bool const_2_to_3_operand (rtx, machine_mode);
     113              : extern bool const_4_to_5_operand (rtx, machine_mode);
     114              : extern bool const_4_to_7_operand (rtx, machine_mode);
     115              : extern bool const_6_to_7_operand (rtx, machine_mode);
     116              : extern bool const_8_to_9_operand (rtx, machine_mode);
     117              : extern bool const_8_to_11_operand (rtx, machine_mode);
     118              : extern bool const_8_to_15_operand (rtx, machine_mode);
     119              : extern bool const_10_to_11_operand (rtx, machine_mode);
     120              : extern bool const_12_to_13_operand (rtx, machine_mode);
     121              : extern bool const_12_to_15_operand (rtx, machine_mode);
     122              : extern bool const_14_to_15_operand (rtx, machine_mode);
     123              : extern bool const_16_to_19_operand (rtx, machine_mode);
     124              : extern bool const_16_to_31_operand (rtx, machine_mode);
     125              : extern bool const_20_to_23_operand (rtx, machine_mode);
     126              : extern bool const_24_to_27_operand (rtx, machine_mode);
     127              : extern bool const_28_to_31_operand (rtx, machine_mode);
     128              : extern bool cmpps_imm_operand (rtx, machine_mode);
     129              : extern bool incdec_operand (rtx, machine_mode);
     130              : extern bool vec_setm_sse41_operand (rtx, machine_mode);
     131              : extern bool vec_setm_avx2_operand (rtx, machine_mode);
     132              : extern bool vec_setm_mmx_operand (rtx, machine_mode);
     133              : extern bool reg_or_pm1_operand (rtx, machine_mode);
     134              : extern bool regmem_or_bitnot_regmem_operand (rtx, machine_mode);
     135              : extern bool ternlog_operand (rtx, machine_mode);
     136              : extern bool shiftdi_operand (rtx, machine_mode);
     137              : extern bool ashldi_input_operand (rtx, machine_mode);
     138              : extern bool zero_extended_scalar_load_operand (rtx, machine_mode);
     139              : extern bool float_vector_all_ones_operand (rtx, machine_mode);
     140              : extern bool vector_all_ones_operand (rtx, machine_mode);
     141              : extern bool int_float_vector_all_ones_operand (rtx, machine_mode);
     142              : extern bool vector_all_ones_zero_extend_half_operand (rtx, machine_mode);
     143              : extern bool vector_all_ones_zero_extend_quarter_operand (rtx, machine_mode);
     144              : extern bool vector_memory_operand (rtx, machine_mode);
     145              : extern bool vector_operand (rtx, machine_mode);
     146              : extern bool vector_or_const_vector_operand (rtx, machine_mode);
     147              : extern bool vector_or_0_or_1s_operand (rtx, machine_mode);
     148              : extern bool bcst_mem_operand (rtx, machine_mode);
     149              : extern bool bcst_vector_operand (rtx, machine_mode);
     150              : extern bool nonimmediate_or_const_vector_operand (rtx, machine_mode);
     151              : extern bool nonimmediate_or_const_vec_dup_operand (rtx, machine_mode);
     152              : extern bool reg_or_const_vector_operand (rtx, machine_mode);
     153              : extern bool x86_64_const_vector_operand (rtx, machine_mode);
     154              : extern bool nonimmediate_or_x86_64_const_vector_operand (rtx, machine_mode);
     155              : extern bool nonimmediate_or_sse_const_operand (rtx, machine_mode);
     156              : extern bool reg_or_0_operand (rtx, machine_mode);
     157              : extern bool nonimm_or_0_operand (rtx, machine_mode);
     158              : extern bool nonimm_or_0_or_1s_operand (rtx, machine_mode);
     159              : extern bool SImode_address_operand (rtx, machine_mode);
     160              : extern bool address_no_seg_operand (rtx, machine_mode);
     161              : extern bool vsib_address_operand (rtx, machine_mode);
     162              : extern bool vsib_mem_operator (rtx, machine_mode);
     163              : extern bool aligned_operand (rtx, machine_mode);
     164              : extern bool memory_displacement_operand (rtx, machine_mode);
     165              : extern bool memory_displacement_only_operand (rtx, machine_mode);
     166              : extern bool long_memory_operand (rtx, machine_mode);
     167              : extern bool fcmov_comparison_operator (rtx, machine_mode);
     168              : extern bool sse_comparison_operator (rtx, machine_mode);
     169              : extern bool ix86_comparison_int_operator (rtx, machine_mode);
     170              : extern bool ix86_comparison_uns_operator (rtx, machine_mode);
     171              : extern bool bt_comparison_operator (rtx, machine_mode);
     172              : extern bool shr_comparison_operator (rtx, machine_mode);
     173              : extern bool add_comparison_operator (rtx, machine_mode);
     174              : extern bool ieee_maxmin_comparison_operator (rtx, machine_mode);
     175              : extern bool ix86_comparison_operator (rtx, machine_mode);
     176              : extern bool ix86_carry_flag_operator (rtx, machine_mode);
     177              : extern bool ix86_carry_flag_unset_operator (rtx, machine_mode);
     178              : extern bool ix86_trivial_fp_comparison_operator (rtx, machine_mode);
     179              : extern bool ix86_trivial_fp_comparison_operator_xf (rtx, machine_mode);
     180              : extern bool ix86_fp_comparison_operator (rtx, machine_mode);
     181              : extern bool ix86_fp_comparison_operator_xf (rtx, machine_mode);
     182              : extern bool ix86_timode_comparison_operator (rtx, machine_mode);
     183              : extern bool ix86_timode_comparison_operand (rtx, machine_mode);
     184              : extern bool cmp_fp_expander_operand (rtx, machine_mode);
     185              : extern bool binary_fp_operator (rtx, machine_mode);
     186              : extern bool mult_operator (rtx, machine_mode);
     187              : extern bool div_operator (rtx, machine_mode);
     188              : extern bool logic_operator (rtx, machine_mode);
     189              : extern bool and_operator (rtx, machine_mode);
     190              : extern bool plusminuslogic_operator (rtx, machine_mode);
     191              : extern bool arith_or_logical_operator (rtx, machine_mode);
     192              : extern bool commutative_operator (rtx, machine_mode);
     193              : extern bool promotable_binary_operator (rtx, machine_mode);
     194              : extern bool compare_operator (rtx, machine_mode);
     195              : extern bool extract_high_operator (rtx, machine_mode);
     196              : extern bool misaligned_operand (rtx, machine_mode);
     197              : extern bool movq_parallel (rtx, machine_mode);
     198              : extern bool vzeroall_operation (rtx, machine_mode);
     199              : extern bool vzeroall_pattern (rtx, machine_mode);
     200              : extern bool vzeroupper_pattern (rtx, machine_mode);
     201              : extern bool addsub_vm_operator (rtx, machine_mode);
     202              : extern bool addsub_vs_operator (rtx, machine_mode);
     203              : extern bool addsub_vs_parallel (rtx, machine_mode);
     204              : extern bool permvar_truncate_operand (rtx, machine_mode);
     205              : extern bool pshufb_truncv4siv4hi_operand (rtx, machine_mode);
     206              : extern bool pshufb_truncv8hiv8qi_operand (rtx, machine_mode);
     207              : extern bool pmovzx_parallel (rtx, machine_mode);
     208              : extern bool const_vector_duplicate_operand (rtx, machine_mode);
     209              : extern bool avx_vbroadcast_operand (rtx, machine_mode);
     210              : extern bool avx_vbroadcast128_operand (rtx, machine_mode);
     211              : extern bool palignr_operand (rtx, machine_mode);
     212              : extern bool avx2_pblendw_operand (rtx, machine_mode);
     213              : extern bool general_vector_operand (rtx, machine_mode);
     214              : extern bool register_or_constm1_operand (rtx, machine_mode);
     215              : extern bool save_multiple (rtx, machine_mode);
     216              : extern bool restore_multiple (rtx, machine_mode);
     217              : extern bool encodekey128_operation (rtx, machine_mode);
     218              : extern bool encodekey256_operation (rtx, machine_mode);
     219              : extern bool aeswidekl_operation (rtx, machine_mode);
     220              : extern bool apx_evex_memory_operand (rtx, machine_mode);
     221              : extern bool apx_evex_add_memory_operand (rtx, machine_mode);
     222              : #endif /* HAVE_MACHINE_MODES */
     223              : 
     224              : #ifdef GCC_HARD_REG_SET_H
     225              : struct target_constraints {
     226              :   HARD_REG_SET register_filters[1];
     227              : };
     228              : 
     229              : extern struct target_constraints default_target_constraints;
     230              : #if SWITCHABLE_TARGET
     231              : extern struct target_constraints *this_target_constraints;
     232              : #else
     233              : #define this_target_constraints (&default_target_constraints)
     234              : #endif
     235              : 
     236              : #define TEST_REGISTER_FILTER_BIT(ID, REGNO) \
     237              :   ((void) (ID), (void) (REGNO), false)
     238              : 
     239              : inline bool
     240              : test_register_filters (unsigned int, unsigned int)
     241              : {
     242              :   return true;
     243              : }
     244              : #endif
     245              : 
     246              : #define CONSTRAINT_NUM_DEFINED_P 1
     247              : enum constraint_num
     248              : {
     249              :   CONSTRAINT__UNKNOWN = 0,
     250              :   CONSTRAINT_r,
     251              :   CONSTRAINT_R,
     252              :   CONSTRAINT_q,
     253              :   CONSTRAINT_Q,
     254              :   CONSTRAINT_l,
     255              :   CONSTRAINT_a,
     256              :   CONSTRAINT_b,
     257              :   CONSTRAINT_c,
     258              :   CONSTRAINT_d,
     259              :   CONSTRAINT_S,
     260              :   CONSTRAINT_D,
     261              :   CONSTRAINT_A,
     262              :   CONSTRAINT_U,
     263              :   CONSTRAINT_f,
     264              :   CONSTRAINT_t,
     265              :   CONSTRAINT_u,
     266              :   CONSTRAINT_Yk,
     267              :   CONSTRAINT_k,
     268              :   CONSTRAINT_y,
     269              :   CONSTRAINT_x,
     270              :   CONSTRAINT_v,
     271              :   CONSTRAINT_Yz,
     272              :   CONSTRAINT_Yd,
     273              :   CONSTRAINT_Yp,
     274              :   CONSTRAINT_Ya,
     275              :   CONSTRAINT_Yb,
     276              :   CONSTRAINT_Yf,
     277              :   CONSTRAINT_Yr,
     278              :   CONSTRAINT_Yv,
     279              :   CONSTRAINT_Yw,
     280              :   CONSTRAINT_YW,
     281              :   CONSTRAINT_jR,
     282              :   CONSTRAINT_jr,
     283              :   CONSTRAINT_jc,
     284              :   CONSTRAINT_I,
     285              :   CONSTRAINT_J,
     286              :   CONSTRAINT_K,
     287              :   CONSTRAINT_L,
     288              :   CONSTRAINT_M,
     289              :   CONSTRAINT_N,
     290              :   CONSTRAINT_O,
     291              :   CONSTRAINT_m,
     292              :   CONSTRAINT_o,
     293              :   CONSTRAINT_jm,
     294              :   CONSTRAINT_jo,
     295              :   CONSTRAINT_je,
     296              :   CONSTRAINT_jM,
     297              :   CONSTRAINT_jO,
     298              :   CONSTRAINT_Bm,
     299              :   CONSTRAINT_Bk,
     300              :   CONSTRAINT_Bn,
     301              :   CONSTRAINT_Br,
     302              :   CONSTRAINT_ja,
     303              :   CONSTRAINT_p,
     304              :   CONSTRAINT_Tv,
     305              :   CONSTRAINT_Ts,
     306              :   CONSTRAINT_jp,
     307              :   CONSTRAINT_jb,
     308              :   CONSTRAINT_Bz,
     309              :   CONSTRAINT_BH,
     310              :   CONSTRAINT_Wb,
     311              :   CONSTRAINT_Wc,
     312              :   CONSTRAINT_Ww,
     313              :   CONSTRAINT_G,
     314              :   CONSTRAINT_e,
     315              :   CONSTRAINT_We,
     316              :   CONSTRAINT_Wz,
     317              :   CONSTRAINT_Wd,
     318              :   CONSTRAINT_Wf,
     319              :   CONSTRAINT_Ws,
     320              :   CONSTRAINT_Z,
     321              :   CONSTRAINT_Bf,
     322              :   CONSTRAINT_V,
     323              :   CONSTRAINT__l,
     324              :   CONSTRAINT__g,
     325              :   CONSTRAINT_BF,
     326              :   CONSTRAINT_BM,
     327              :   CONSTRAINT_j_l,
     328              :   CONSTRAINT_j_g,
     329              :   CONSTRAINT_jV,
     330              :   CONSTRAINT_i,
     331              :   CONSTRAINT_s,
     332              :   CONSTRAINT__c,
     333              :   CONSTRAINT_n,
     334              :   CONSTRAINT_E,
     335              :   CONSTRAINT_F,
     336              :   CONSTRAINT_X,
     337              :   CONSTRAINT_Bg,
     338              :   CONSTRAINT_Bs,
     339              :   CONSTRAINT_Bw,
     340              :   CONSTRAINT_BC,
     341              :   CONSTRAINT_C,
     342              :   CONSTRAINT__LIMIT
     343              : };
     344              : 
     345              : extern enum constraint_num lookup_constraint_1 (const char *);
     346              : extern const unsigned char lookup_constraint_array[];
     347              : 
     348              : /* Return the constraint at the beginning of P, or CONSTRAINT__UNKNOWN if it
     349              :    isn't recognized.  */
     350              : 
     351              : static inline enum constraint_num
     352  17444608158 : lookup_constraint (const char *p)
     353              : {
     354  17444608158 :   unsigned int index = lookup_constraint_array[(unsigned char) *p];
     355  17444608158 :   return (index == UCHAR_MAX
     356  17444608158 :           ? lookup_constraint_1 (p)
     357  17444608158 :           : (enum constraint_num) index);
     358              : }
     359              : 
     360              : extern bool (*constraint_satisfied_p_array[]) (rtx);
     361              : 
     362              : /* Return true if X satisfies constraint C.  */
     363              : 
     364              : static inline bool
     365   6250969626 : constraint_satisfied_p (rtx x, enum constraint_num c)
     366              : {
     367   6250969626 :   int i = (int) c - (int) CONSTRAINT_I;
     368   6250969626 :   return i >= 0 && constraint_satisfied_p_array[i] (x);
     369              : }
     370              : 
     371              : static inline bool
     372  15305101116 : insn_extra_register_constraint (enum constraint_num c)
     373              : {
     374  15305101116 :   return c >= CONSTRAINT_r && c <= CONSTRAINT_jc;
     375              : }
     376              : 
     377              : static inline bool
     378   4619892063 : insn_extra_memory_constraint (enum constraint_num c)
     379              : {
     380   4619892063 :   return c >= CONSTRAINT_m && c <= CONSTRAINT_jO;
     381              : }
     382              : 
     383              : static inline bool
     384    166458348 : insn_extra_special_memory_constraint (enum constraint_num c)
     385              : {
     386    166458348 :   return c >= CONSTRAINT_Bm && c <= CONSTRAINT_ja;
     387              : }
     388              : 
     389              : static inline bool
     390              : insn_extra_relaxed_memory_constraint (enum constraint_num)
     391              : {
     392              :   return false;
     393              : }
     394              : 
     395              : static inline bool
     396   4896612492 : insn_extra_address_constraint (enum constraint_num c)
     397              : {
     398   4896612492 :   return c >= CONSTRAINT_p && c <= CONSTRAINT_jb;
     399              : }
     400              : 
     401              : static inline void
     402              : insn_extra_constraint_allows_reg_mem (enum constraint_num c,
     403              :                                       bool *allows_reg, bool *allows_mem)
     404              : {
     405              :   if (c >= CONSTRAINT_Bz && c <= CONSTRAINT_Z)
     406              :     return;
     407              :   if (c >= CONSTRAINT_Bf && c <= CONSTRAINT_Bf)
     408              :     {
     409            0 :       *allows_reg = true;
     410            0 :       return;
     411              :     }
     412              :   if (c >= CONSTRAINT_V && c <= CONSTRAINT_jV)
     413              :     {
     414            0 :       *allows_mem = true;
     415            0 :       return;
     416              :     }
     417         2852 :   (void) c;
     418         2852 :   *allows_reg = true;
     419         2852 :   *allows_mem = true;
     420              : }
     421              : 
     422              : static inline size_t
     423  41398646902 : insn_constraint_len (char fc, const char *str)
     424              : {
     425  41398646902 :   switch (fc)
     426              :     {
     427              :     case 'B': return 2;
     428              :     case 'T': return 2;
     429              :     case 'W': return 2;
     430              :     case 'Y': return 2;
     431              :     case 'j': return 2;
     432  39573219315 :     default: break;
     433              :     }
     434  39573219315 :   if (str[0] == '{')
     435              :     {
     436              :       size_t len = 1;
     437       200399 :       while (str[len] != '}' && str[len] != '\0')
     438       150625 :         ++len;
     439        49774 :       return len + 1;
     440              :     }
     441              :   return 1;
     442              : }
     443              : 
     444              : #define CONSTRAINT_LEN(c_,s_) insn_constraint_len (c_,s_)
     445              : 
     446              : extern enum reg_class reg_class_for_constraint_1 (enum constraint_num);
     447              : 
     448              : static inline enum reg_class
     449  15305101116 : reg_class_for_constraint (enum constraint_num c)
     450              : {
     451  15305101116 :   if (insn_extra_register_constraint (c))
     452   7251638501 :     return reg_class_for_constraint_1 (c);
     453              :   return NO_REGS;
     454              : }
     455              : 
     456              : extern bool insn_const_int_ok_for_constraint (HOST_WIDE_INT, enum constraint_num);
     457              : #define CONST_OK_FOR_CONSTRAINT_P(v_,c_,s_) \
     458              :     insn_const_int_ok_for_constraint (v_, lookup_constraint (s_))
     459              : 
     460              : enum constraint_type
     461              : {
     462              :   CT_REGISTER,
     463              :   CT_CONST_INT,
     464              :   CT_MEMORY,
     465              :   CT_SPECIAL_MEMORY,
     466              :   CT_RELAXED_MEMORY,
     467              :   CT_ADDRESS,
     468              :   CT_FIXED_FORM
     469              : };
     470              : 
     471              : static inline enum constraint_type
     472   7022588919 : get_constraint_type (enum constraint_num c)
     473              : {
     474   7022588919 :   if (c >= CONSTRAINT_Bm)
     475              :     {
     476    833499770 :       if (c >= CONSTRAINT_Bz)
     477              :         return CT_FIXED_FORM;
     478    113691480 :       if (c >= CONSTRAINT_p)
     479              :         return CT_ADDRESS;
     480    108191878 :       return CT_SPECIAL_MEMORY;
     481              :     }
     482   6189089149 :   if (c >= CONSTRAINT_m)
     483              :     return CT_MEMORY;
     484   5632659213 :   if (c >= CONSTRAINT_I)
     485     11636836 :     return CT_CONST_INT;
     486              :   return CT_REGISTER;
     487              : }
     488              : 
     489              : #ifdef GCC_HARD_REG_SET_H
     490              : static inline const HARD_REG_SET *
     491              : get_register_filter (constraint_num)
     492              : {
     493              :   return nullptr;
     494              : }
     495              : #endif
     496              : 
     497              : static inline int
     498              : get_register_filter_id (constraint_num)
     499              : {
     500              :   return -1;
     501              : }
     502              : #endif /* tm-preds.h */
        

Generated by: LCOV version 2.4-beta

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.