<s> name = helper_function_name_mappings [ i ] . ti_name ; break ; }

if ( user_label_prefix [ <NUM_LIT> ] != <NUM_LIT> ) fputs ( user_label_prefix , file ) ;


<s> for ( i = <NUM_LIT> ; helper_function_name_mappings [ i ] . gcc_name ; i ++ ) if ( strcmp ( helper_function_name_mappings [ i ] . gcc_name , name ) == <NUM_LIT> ) { name = helper_function_name_mappings [ i ] . ti_name ;


<s> if ( crtl -> is_leaf && df_regs_ever_live_p ( regno ) ) return true ; else if ( ! crtl -> is_leaf ) return true ; } if ( ! call_used_or_fixed_reg_p ( regno ) && df_regs_ever_live_p ( regno ) ) return true ;


<s> if ( crtl -> calls_eh_return ) return true ; if ( fixed_regs [ regno ] ) return false ; if ( msp430_is_interrupt_func ( ) && regno >= <NUM_LIT> && regno <= <NUM_LIT> ) { if ( crtl -> is_leaf && df_regs_ever_live_p ( regno ) ) return true ; else if ( ! crtl -> is_leaf ) return true ;


<s> op = XEXP ( op , <NUM_LIT> ) ; break ; case 'r' : switch ( GET_CODE ( op ) ) { case EQ : fprintf ( file , <STR_LIT> ) ; break ; case NE : fprintf ( file , <STR_LIT> ) ; break ; case GEU : fprintf ( file , <STR_LIT> ) ; break ; case LTU : fprintf ( file , <STR_LIT> ) ; break ; case GE : fprintf ( file , <STR_LIT> ) ; break ; case LT : fprintf ( file , <STR_LIT> ) ; break ; case GTU : fprintf ( file , <STR_LIT> ) ; break ; case LEU : fprintf ( file , <STR_LIT> ) ; break ; case GT : fprintf ( file , <STR_LIT> ) ; break ; case LE : fprintf ( file , <STR_LIT> ) ; break ; default : msp430_print_operand_raw ( file , op ) ; break ; } return ; case 'R' : switch ( GET_CODE ( op ) ) { case GTU : fprintf ( file , <STR_LIT> ) ; break ; case LEU : fprintf ( file , <STR_LIT> ) ; break ; case GT : fprintf ( file , <STR_LIT> ) ; break ; case LE : fprintf ( file , <STR_LIT> ) ; break ; default : msp430_print_operand_raw ( file , op ) ; break ; } return ; case 'p' : gcc_assert ( CONST_INT_P ( op ) ) ; fprintf ( file , <STR_LIT> , <NUM_LIT> << INTVAL ( op ) ) ; return ; case 'b' : switch ( GET_MODE ( op ) ) { case E_QImode : fprintf ( file , <STR_LIT> ) ; return ; case E_HImode : fprintf ( file , <STR_LIT> ) ; return ; case E_PSImode : fprintf ( file , <STR_LIT> ) ; return ; case E_SImode : fprintf ( file , <STR_LIT> ) ; return ; default : return ; } case 'd' : case 'e' : case 'f' : case 'g' : if ( REG_P ( op ) ) { output_operand_lossage ( <STR_LIT> <STR_LIT> <STR_LIT> ) ; return ; } case 'B' : case 'H' : case 'C' : case 'D' : switch ( letter ) { case 'd' : mem_off = <NUM_LIT> ; const_shift = <NUM_LIT> ; break ; case 'B' : case 'H' : mem_off = <NUM_LIT> ; reg_off = <NUM_LIT> ; const_shift = <NUM_LIT> ; break ; case 'e' : mem_off = <NUM_LIT> ; const_shift = <NUM_LIT> ; break ; case 'C' : mem_off = <NUM_LIT> ; reg_off = <NUM_LIT> ; const_shift = <NUM_LIT> ; break ; case 'f' : mem_off = <NUM_LIT> ; const_shift = <NUM_LIT> ; break ; case 'D' : mem_off = <NUM_LIT> ; reg_off = <NUM_LIT> ; const_shift = <NUM_LIT> ; break ;


<s> case PLUS : msp430_print_operand_raw ( file , XEXP ( addr , <NUM_LIT> ) ) ; gcc_assert ( REG_P ( XEXP ( addr , <NUM_LIT> ) ) ) ; fprintf ( file , <STR_LIT> , reg_names [ REGNO ( XEXP ( addr , <NUM_LIT> ) ) ] ) ; return ; case REG : fprintf ( file , <STR_LIT> ) ; break ; case POST_INC : fprintf ( file , <STR_LIT> , reg_names [ REGNO ( XEXP ( addr , <NUM_LIT> ) ) ] ) ; return ; case CONST : case CONST_INT : case SYMBOL_REF : case LABEL_REF : fprintf ( file , <STR_LIT> ) ; break ; default :


<s> switch ( GET_CODE ( op ) ) { case REG : fprintf ( file , <STR_LIT> , reg_names [ REGNO ( op ) ] ) ; break ; case CONST_INT : i = INTVAL ( op ) ; if ( TARGET_ASM_HEX ) fprintf ( file , <STR_LIT> HOST_WIDE_INT_PRINT <STR_LIT> , i ) ; else fprintf ( file , <STR_LIT> HOST_WIDE_INT_PRINT <STR_LIT> , i ) ; break ; case CONST : case PLUS : case MINUS : case SYMBOL_REF : case LABEL_REF : output_addr_const ( file , op ) ; break ; default :


<s> bool msp430_promote_prototypes ( const_tree fntype ATTRIBUTE_UNUSED ) {


<s> char * include_dir ; if ( msp430_devices_csv_loc ) include_dir = xstrdup ( msp430_devices_csv_loc ) ; else if ( msp430_check_env_var_for_devices ( & include_dir ) ) return ; include_dir = msp430_dirname ( include_dir ) ; include_dir = update_path ( include_dir , <STR_LIT> ) ; add_path ( include_dir , INC_SYSTEM , false , false ) ;


<s> if ( crtl -> args . pretend_args_size ) ra_size += <NUM_LIT> ;

return gen_rtx_MEM ( Pmode , gen_rtx_PLUS ( Pmode , arg_pointer_rtx , GEN_INT ( - ra_size ) ) ) ;


<s> else if ( has_attr ( ATTR_PERSIST , * node ) && ! TREE_NAME_EQ ( name , <STR_LIT> ) ) message = G_ ( <STR_LIT> <STR_LIT> ) ; else if ( ! TARGET_LARGE ) message = G_ ( <STR_LIT> <STR_LIT> ) ; if ( message ) { warning ( OPT_Wattributes , message , name ) ;


<s> if ( startswith ( name , lower_prefix ) ) name += strlen ( lower_prefix ) ; else if ( startswith ( name , upper_prefix ) ) name += strlen ( upper_prefix ) ;

else if ( startswith ( name , either_prefix ) ) name += strlen ( either_prefix ) ;


<s> case SECCAT_BSS : if ( ! prefix ) return bss_section ; base_sec_name = <STR_LIT> ; break ; case SECCAT_RODATA : if ( ! prefix ) return readonly_data_section ; base_sec_name = <STR_LIT> ; break ; case SECCAT_RODATA_MERGE_STR : case SECCAT_RODATA_MERGE_STR_INIT : case SECCAT_RODATA_MERGE_CONST : return default_elf_select_section ( decl , reloc , align ) ; case SECCAT_SRODATA : case SECCAT_SDATA : case SECCAT_SBSS : case SECCAT_TDATA : case SECCAT_TBSS : case SECCAT_DATA_REL : case SECCAT_DATA_REL_LOCAL : case SECCAT_DATA_REL_RO : case SECCAT_DATA_REL_RO_LOCAL : return default_select_section ( decl , reloc , align ) ; default : gcc_unreachable ( ) ; } sec_name = ACONCAT ( ( prefix , base_sec_name , DECL_SECTION_NAME ( decl ) , NULL ) ) ;

return get_named_section ( decl , sec_name , <NUM_LIT> ) ;


<s> if ( msp430_is_mem_indirect ( dst ) ) return cost_p -> ind ; else return cost_p -> mem ; case CONST_INT : case CONST_FIXED : case CONST_DOUBLE : case SYMBOL_REF : case CONST : return double_op_cost_p -> imm2r + cost_p -> reg ; default : return cost_p -> mem ;


<s> int i ; for ( i = <NUM_LIT> ; special_convention_function_names [ i ] ; i ++ ) if ( ! strcmp ( name , special_convention_function_names [ i ] ) ) return true ; return false ;


<s> for ( i = <NUM_LIT> ; special_convention_function_names [ i ] ; i ++ ) if ( ! strcmp ( name , special_convention_function_names [ i ] ) ) return true ;


<s> operands [ <NUM_LIT> ] = msp430_subreg ( HImode , operands [ <NUM_LIT> ] , SImode , <NUM_LIT> ) ; operands [ <NUM_LIT> ] = msp430_subreg ( HImode , operands [ <NUM_LIT> ] , SImode , <NUM_LIT> ) ; operands [ <NUM_LIT> ] = msp430_subreg ( HImode , operands [ <NUM_LIT> ] , SImode , <NUM_LIT> ) ; if ( reg_overlap_mentioned_p ( operands [ <NUM_LIT> ] , operands [ <NUM_LIT> ] ) || reg_overlap_mentioned_p ( operands [ <NUM_LIT> ] , operands [ <NUM_LIT> ] ) ) return <NUM_LIT> ; if ( GET_CODE ( operands [ <NUM_LIT> ] ) == CONST_INT ) operands [ <NUM_LIT> ] = GEN_INT ( INTVAL ( operands [ <NUM_LIT> ] ) & <NUM_LIT> ) ; else if ( MEM_P ( operands [ <NUM_LIT> ] ) && GET_CODE ( XEXP ( operands [ <NUM_LIT> ] , <NUM_LIT> ) ) == POST_INC ) { operands [ <NUM_LIT> ] = XEXP ( XEXP ( operands [ <NUM_LIT> ] , <NUM_LIT> ) , <NUM_LIT> ) ; operands [ <NUM_LIT> ] = gen_rtx_MEM ( HImode , operands [ <NUM_LIT> ] ) ; operands [ <NUM_LIT> ] = gen_rtx_ZERO_EXTEND ( SImode , operands [ <NUM_LIT> ] ) ; } else operands [ <NUM_LIT> ] = gen_rtx_ZERO_EXTEND ( SImode , operands [ <NUM_LIT> ] ) ;


<s> operands [ <NUM_LIT> ] = msp430_subreg ( HImode , operands [ <NUM_LIT> ] , SImode , <NUM_LIT> ) ; operands [ <NUM_LIT> ] = msp430_subreg ( HImode , operands [ <NUM_LIT> ] , SImode , <NUM_LIT> ) ; operands [ <NUM_LIT> ] = msp430_subreg ( HImode , operands [ <NUM_LIT> ] , SImode , <NUM_LIT> ) ; operands [ <NUM_LIT> ] = msp430_subreg ( HImode , operands [ <NUM_LIT> ] , SImode , <NUM_LIT> ) ; if ( reg_overlap_mentioned_p ( operands [ <NUM_LIT> ] , operands [ <NUM_LIT> ] ) || reg_overlap_mentioned_p ( operands [ <NUM_LIT> ] , operands [ <NUM_LIT> ] ) ) return <NUM_LIT> ; if ( GET_CODE ( operands [ <NUM_LIT> ] ) == CONST_INT ) operands [ <NUM_LIT> ] = GEN_INT ( INTVAL ( operands [ <NUM_LIT> ] ) & <NUM_LIT> ) ; else if ( MEM_P ( operands [ <NUM_LIT> ] ) && GET_CODE ( XEXP ( operands [ <NUM_LIT> ] , <NUM_LIT> ) ) == POST_INC ) { operands [ <NUM_LIT> ] = XEXP ( XEXP ( operands [ <NUM_LIT> ] , <NUM_LIT> ) , <NUM_LIT> ) ; operands [ <NUM_LIT> ] = gen_rtx_MEM ( HImode , operands [ <NUM_LIT> ] ) ; operands [ <NUM_LIT> ] = gen_rtx_ZERO_EXTEND ( SImode , operands [ <NUM_LIT> ] ) ;


<s> op12 = gen_rtx_CONST ( HImode , op12 ) ; } else { op10 = msp430_subreg ( HImode , operands [ <NUM_LIT> ] , SImode , <NUM_LIT> ) ; op12 = msp430_subreg ( HImode , operands [ <NUM_LIT> ] , SImode , <NUM_LIT> ) ; } if ( rtx_equal_p ( operands [ <NUM_LIT> ] , operands [ <NUM_LIT> ] ) ) { operands [ <NUM_LIT> ] = op02 ; operands [ <NUM_LIT> ] = op12 ; operands [ <NUM_LIT> ] = op00 ; operands [ <NUM_LIT> ] = op10 ; } else if ( rtx_equal_p ( op00 , op12 ) || ( REG_P ( op00 ) && reg_mentioned_p ( op00 , op10 ) ) || ( REG_P ( op10 ) && reg_mentioned_p ( op10 , op00 ) ) ) {


<s> int_attr = lookup_attribute ( <STR_LIT> , DECL_ATTRIBUTES ( decl ) ) ; if ( int_attr != NULL_TREE ) { tree intr_vector = TREE_VALUE ( int_attr ) ; if ( intr_vector != NULL_TREE ) { char buf [ <NUM_LIT> ] ; if ( DECL_WEAK ( decl ) ) { error ( <STR_LIT> <STR_LIT> ) ; }


<s> if ( imode == PSImode && mode == HImode && byte == <NUM_LIT> ) rv = gen_rtx_SUBREG ( mode , ireg , byte ) ; else rv = simplify_gen_subreg ( mode , ireg , imode , byte ) ; } else if ( GET_CODE ( r ) == MEM ) { if ( GET_CODE ( XEXP ( r , <NUM_LIT> ) ) == POST_INC && byte == <NUM_LIT> ) byte = <NUM_LIT> ; rv = adjust_address ( r , mode , byte ) ; } else if ( GET_CODE ( r ) == SYMBOL_REF && ( byte == <NUM_LIT> || byte == <NUM_LIT> ) && mode == HImode ) {

rv = gen_rtx_ZERO_EXTRACT ( HImode , r , GEN_INT ( <NUM_LIT> ) , GEN_INT ( <NUM_LIT> * byte ) ) ;


<s> static scalar_int_mode msp430_unwind_word_mode ( void ) { return msp430x ? PSImode : HImode ;


<s> if ( target_mcu == NULL || msp430_hwmult_type != MSP430_HWMULT_AUTO ) return false ; if ( target_mcu == cached_match ) return cached_result ; cached_match = target_mcu ; msp430_extract_mcu_data ( target_mcu ) ; if ( extracted_mcu_data . name != NULL ) return cached_result = ( extracted_mcu_data . hwmpy == <NUM_LIT> || extracted_mcu_data . hwmpy == <NUM_LIT> ) ; return cached_result = false ;


<s> if ( extracted_mcu_data . name != NULL ) return cached_result = ( extracted_mcu_data . hwmpy == <NUM_LIT> || extracted_mcu_data . hwmpy == <NUM_LIT> ) ;


<s> static bool msp430_use_32bit_hwmult ( void ) { static const char * cached_match = NULL ; static bool cached_result ; if ( msp430_hwmult_type == MSP430_HWMULT_LARGE ) return true ; if ( target_mcu == NULL || msp430_hwmult_type != MSP430_HWMULT_AUTO ) return false ; if ( target_mcu == cached_match ) return cached_result ;


<s> cached_match = target_mcu ; if ( strncasecmp ( target_mcu , <STR_LIT> , <NUM_LIT> ) == <NUM_LIT> ) return cached_result = true ; if ( strncasecmp ( target_mcu , <STR_LIT> , <NUM_LIT> ) == <NUM_LIT> ) return cached_result = true ; if ( strncasecmp ( target_mcu , <STR_LIT> , <NUM_LIT> ) == <NUM_LIT> ) return cached_result = true ; msp430_extract_mcu_data ( target_mcu ) ; if ( extracted_mcu_data . name != NULL ) return cached_result = extracted_mcu_data . hwmpy == <NUM_LIT> ;


<s> if ( has_attr ( ATTR_UPPER , decl ) || has_attr ( ATTR_EITHER , decl ) || has_attr ( ATTR_PERSIST , decl ) || ( ! has_attr ( ATTR_LOWER , decl ) && ! has_attr ( ATTR_NOINIT , decl ) && ( has_attr ( <STR_LIT> , decl ) || msp430_data_region == MSP430_REGION_UPPER || msp430_data_region == MSP430_REGION_EITHER || msp430_data_region == MSP430_REGION_ANY ) ) ) return false ; return true ;


<s> static bool msp430_var_in_low_mem ( tree decl ) { gcc_assert ( VAR_P ( decl ) ) ; if ( has_attr ( ATTR_UPPER , decl ) || has_attr ( ATTR_EITHER , decl ) || has_attr ( ATTR_PERSIST , decl ) || ( ! has_attr ( ATTR_LOWER , decl ) && ! has_attr ( ATTR_NOINIT , decl ) && ( has_attr ( <STR_LIT> , decl ) || msp430_data_region == MSP430_REGION_UPPER || msp430_data_region == MSP430_REGION_EITHER || msp430_data_region == MSP430_REGION_ANY ) ) ) return false ;


<s> if ( strict && rn >= FIRST_PSEUDO_REGISTER ) rn = reg_renumber [ rn ] ; if ( strict && <NUM_LIT> <= rn && rn < FIRST_PSEUDO_REGISTER ) return true ; if ( ! strict ) return true ;


<s> static bool reg_ok_for_addr ( rtx r , bool strict ) { int rn = REGNO ( r ) ; if ( strict && rn >= FIRST_PSEUDO_REGISTER ) rn = reg_renumber [ rn ] ; if ( strict && <NUM_LIT> <= rn && rn < FIRST_PSEUDO_REGISTER ) return true ; if ( ! strict ) return true ; return false ;


<s> if ( msp430_hwmult_type == MSP430_HWMULT_LARGE ) return true ; if ( target_mcu == NULL || msp430_hwmult_type != MSP430_HWMULT_AUTO ) return false ;

if ( target_mcu == cached_match ) return cached_result ;


<s> static bool use_helper_for_const_shift ( machine_mode mode , HOST_WIDE_INT amt ) { const int default_inline_shift = <NUM_LIT> ; int user_set_max_inline = ( msp430_max_inline_shift == <NUM_LIT> ? <NUM_LIT> : <NUM_LIT> ) ; int max_inline = ( user_set_max_inline ? msp430_max_inline_shift : default_inline_shift ) ; int max_inline_32 = max_inline / <NUM_LIT> ; if ( mode == E_DImode ) return true ; if ( ( mode == E_QImode || mode == E_HImode || mode == E_PSImode ) && ( msp430x || amt <= max_inline || ( ! user_set_max_inline && ( optimize >= <NUM_LIT> && ! optimize_size ) ) ) ) return false ;

if ( mode == E_SImode && ( amt <= max_inline_32 || ( ! user_set_max_inline && ( optimize >= <NUM_LIT> && ! optimize_size ) && amt <= <NUM_LIT> ) ) ) return false ;