#include "config.h"#include "system.h"#include "rtl.h"#include "regs.h"#include "hard-reg-set.h"#include "real.h"#include "insn-config.h"#include "conditions.h"#include "output.h"#include "insn-attr.h"#include "tree.h"#include "expr.h"#include "function.h"#include "flags.h"#include "ggc.h"#include "toplev.h"#include "recog.h"#include "tm_p.h"#include "target.h"#include "target-def.h"

Go to the source code of this file.
| #define TARGET_ASM_FUNCTION_EPILOGUE dsp16xx_output_function_epilogue |
| #define TARGET_ASM_FUNCTION_PROLOGUE dsp16xx_output_function_prologue |
| int arith_reg_operand | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
Definition at line 1178 of file dsp16xx.c.
References FIRST_PSEUDO_REGISTER, FRAME_POINTER_REGNUM, GET_CODE, IS_YBASE_REGISTER_WINDOW, REG, register_operand(), and REGNO.
Definition at line 2235 of file dsp16xx.c.
References ASM_GLOBALIZE_LABEL, assemble_name(), fprintf(), and fputs().
| int call_address_operand | ( | rtx | op, | |
| mode | ||||
| ) |
| int class_max_nregs | ( | class | , | |
| enum machine_mode | mode | |||
| ) |
| long compute_frame_size | ( | int | size | ) |
Definition at line 1332 of file dsp16xx.c.
References dsp16xx_frame_info::args_size, current_function_outgoing_args_size, dsp16xx_frame_info::extra_size, dsp16xx_frame_info::fp_save_offset, dsp16xx_frame_info::function_makes_calls, dsp16xx_frame_info::initialized, leaf_function_p(), offset, reg_save_size(), dsp16xx_frame_info::reg_size, reload_completed, dsp16xx_frame_info::sp_save_offset, dsp16xx_frame_info::total_size, UNITS_PER_WORD, and dsp16xx_frame_info::var_size.
Definition at line 1642 of file dsp16xx.c.
References addr(), asm_out_file, fatal_error(), fprintf(), GET_CODE, INTVAL, offset, output_asm_insn(), PLUS, reg_names, REGNO, and XEXP.
| int dsp16xx_address_cost | ( | rtx | addr | ) |
Definition at line 2268 of file dsp16xx.c.
References CONST, const0_rtx, dsp16xx_address_cost(), eliminate_constant_term(), GET_CODE, GET_MODE, INTVAL, offset, PLUS, REG, and XEXP.
| int dsp16xx_call_saved_register | ( | int | regno | ) |
Definition at line 1373 of file dsp16xx.c.
References call_used_regs, dsp16xx_frame_info::function_makes_calls, IS_YBASE_REGISTER_WINDOW, REG_PR, and regs_ever_live.
| int dsp16xx_comparison_operator | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
| struct rtx_def* dsp16xx_function_arg | ( | CUMULATIVE_ARGS | args_so_far, | |
| enum machine_mode | mode, | |||
| tree | type, | |||
| int | named | |||
| ) | [read] |
Definition at line 2361 of file dsp16xx.c.
References FIRST_REG_FOR_FUNCTION_ARG, gen_rtx_REG(), GET_MODE_CLASS, MODE_FLOAT, MUST_PASS_IN_STACK, TARGET_REGPARM, and void_type_node.
| void dsp16xx_function_arg_advance | ( | CUMULATIVE_ARGS * | cum, | |
| enum machine_mode | mode, | |||
| tree | type, | |||
| named | ||||
| ) |
Definition at line 2388 of file dsp16xx.c.
References GET_MODE_CLASS, GET_MODE_SIZE, int_size_in_bytes(), MODE_FLOAT, and TARGET_REGPARM.
| int dsp16xx_makes_calls | ( | ) |
Definition at line 1511 of file dsp16xx.c.
References dsp16xx_frame_info::args_size, dsp16xx_call_saved_register(), FIRST_PSEUDO_REGISTER, fprintf(), FRAME_POINTER_REGNUM, dsp16xx_frame_info::function_makes_calls, init_emulation_routines(), REG_A1, REG_J, reg_names, REG_YBASE, RETURN_ADDRESS_REGNUM, STACK_POINTER_REGNUM, TARGET_YBASE_HIGH, dsp16xx_frame_info::var_size, and ybase_regs_ever_used().
Definition at line 1401 of file dsp16xx.c.
References dsp16xx_frame_info::args_size, compute_frame_size(), current_function_outgoing_args_size, dsp16xx_call_saved_register(), error(), dsp16xx_frame_info::extra_size, fatal_error(), FIRST_PSEUDO_REGISTER, dsp16xx_frame_info::fp_save_offset, fprintf(), frame_pointer_needed, FRAME_POINTER_REGNUM, dsp16xx_frame_info::function_makes_calls, REG_A1, REG_J, reg_names, dsp16xx_frame_info::reg_size, REG_YBASE, RETURN_ADDRESS_REGNUM, SMALL_INTVAL, dsp16xx_frame_info::sp_save_offset, STACK_POINTER_REGNUM, TARGET_YBASE_HIGH, dsp16xx_frame_info::total_size, dsp16xx_frame_info::var_size, and ybase_regs_ever_used().
| enum reg_class dsp16xx_reg_class_from_letter | ( | int | c | ) |
Definition at line 210 of file dsp16xx.c.
References A0_REG, A0H_REG, A0L_REG, A1_REG, A1H_REG, A1L_REG, ACCUM_HIGH_REGS, ACCUM_LOW_REGS, ACCUM_REGS, ACCUM_Y_OR_P_REGS, BMU_REGS, J_REG, NO_REGS, NON_YBASE_REGS, P_REG, PH_REG, PL_REG, SLOW_MEM_LOAD_REGS, TARGET_BMU, X_REG, Y_ADDR_REGS, Y_OR_P_REGS, Y_REG, YBASE_ELIGIBLE_REGS, YBASE_VIRT_REGS, YH_REG, and YL_REG.
Definition at line 388 of file dsp16xx.c.
References A0_REG, A0H_REG, A0L_REG, A1_REG, A1H_REG, A1L_REG, ACCUM_HIGH_REGS, ACCUM_LOW_REGS, ACCUM_REGS, P_REG, PH_REG, PL_REG, X_REG, Y_ADDR_REGS, Y_OR_P_REGS, Y_REG, YBASE_ELIGIBLE_REGS, YBASE_VIRT_REGS, YH_REG, and YL_REG.
Definition at line 2113 of file dsp16xx.c.
References fatal_error(), output_asm_insn(), SHIFT_INDEX_1, SHIFT_INDEX_16, SHIFT_INDEX_4, and SHIFT_INDEX_8.
| int emit_move_sequence | ( | rtx * | operands, | |
| enum machine_mode | mode | |||
| ) |
Definition at line 2475 of file dsp16xx.c.
References cc0_rtx, emit_insn(), fatal_error(), force_reg(), gen_rtvec(), gen_rtx_CLOBBER, gen_rtx_COMPARE, gen_rtx_PARALLEL, gen_rtx_SCRATCH, gen_rtx_SET, GET_MODE, GET_MODE_CLASS, and MODE_FLOAT.
Definition at line 2453 of file dsp16xx.c.
References cc0_rtx, emit_insn(), fatal_error(), gen_rtvec(), gen_rtx_CLOBBER, gen_rtx_PARALLEL, gen_rtx_SCRATCH, gen_rtx_SET, and GET_MODE.
| int hard_regno_mode_ok | ( | int | regno, | |
| enum machine_mode | mode | |||
| ) |
| void init_emulation_routines | ( | ) |
Definition at line 1484 of file dsp16xx.c.
References dsp16xx_addhf3_libcall, dsp16xx_ashlhi3_libcall, dsp16xx_ashrhi3_libcall, dsp16xx_cmphf3_libcall, dsp16xx_divhf3_libcall, dsp16xx_divhi3_libcall, dsp16xx_divqi3_libcall, dsp16xx_fixhfhi2_libcall, dsp16xx_floathihf2_libcall, dsp16xx_lshrhi3_libcall, dsp16xx_modhi3_libcall, dsp16xx_modqi3_libcall, dsp16xx_mulhf3_libcall, dsp16xx_mulhi3_libcall, dsp16xx_neghf2_libcall, dsp16xx_subhf3_libcall, dsp16xx_ucmphi2_libcall, dsp16xx_udivhi3_libcall, dsp16xx_udivqi3_libcall, dsp16xx_umodhi3_libcall, and dsp16xx_umodqi3_libcall.
| int initial_frame_pointer_offset | ( | ) |
Definition at line 2031 of file dsp16xx.c.
References compute_frame_size(), get_frame_size(), and offset.
Definition at line 2415 of file dsp16xx.c.
References fprintf(), len, main_input_filename, p, save_chip_name, strcpy, strlen(), TARGET_DEBUG, TARGET_SAVE_TEMPS, temp_filename, and xmalloc().
Definition at line 1770 of file dsp16xx.c.
References abort, comparison_operator(), GET_CODE, next_cc0_user(), PATTERN, SET, SET_SRC, and XEXP.
| int next_cc_user_unsigned | ( | rtx | insn | ) |
| int nonmemory_arith_operand | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
| const char* output_block_move | ( | operands | ) |
Definition at line 2547 of file dsp16xx.c.
References asm_out_file, fprintf(), INTVAL, loop_count, and output_asm_insn().
Definition at line 1975 of file dsp16xx.c.
References d, fatal_error(), GEN_INT, output_asm_insn(), REAL_VALUE_FROM_CONST_DOUBLE, REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TYPE, and src.
Definition at line 1692 of file dsp16xx.c.
References bss_seg_name, chip_name, const_seg_name, data_seg_name, DEFAULT_BSS_SEG_NAME, DEFAULT_CHIP_NAME, DEFAULT_CONST_SEG_NAME, DEFAULT_DATA_SEG_NAME, DEFAULT_TEXT_SEG_NAME, dsp16xx_addhf3_libcall, dsp16xx_ashlhi3_libcall, dsp16xx_ashrhi3_libcall, dsp16xx_cmphf3_libcall, dsp16xx_divhf3_libcall, dsp16xx_divhi3_libcall, dsp16xx_divqi3_libcall, dsp16xx_fixhfhi2_libcall, dsp16xx_floathihf2_libcall, dsp16xx_lshrhi3_libcall, dsp16xx_modhi3_libcall, dsp16xx_modqi3_libcall, dsp16xx_mulhf3_libcall, dsp16xx_mulhi3_libcall, dsp16xx_neghf2_libcall, dsp16xx_subhf3_libcall, dsp16xx_ucmphi2_libcall, dsp16xx_udivhi3_libcall, dsp16xx_udivqi3_libcall, dsp16xx_umodhi3_libcall, dsp16xx_umodqi3_libcall, rsect_bss, rsect_const, rsect_data, rsect_text, save_chip_name, sprintf(), strlen(), text_seg_name, tmp, xmalloc(), and xstrdup().
| static int reg_save_size PARAMS | ( | (void) | ) | [static, read] |
Definition at line 77 of file cplus-dem.c.
| rtx dsp16xx_compare_gen PARAMS | ( | () | ) |
Definition at line 448 of file dsp16xx.c.
References A0_REG, A0H_REG, A0L_REG, A1_REG, A1H_REG, A1L_REG, ACCUM_HIGH_REGS, ACCUM_LOW_OR_Y_ADDR_REGS, ACCUM_LOW_OR_YBASE_REGS, ACCUM_LOW_OR_YL_OR_P_REGS, ACCUM_LOW_REGS, ACCUM_LOW_YL_PL_OR_YBASE_REGS, ACCUM_OR_P_REGS, ACCUM_OR_Y_ADDR_REGS, ACCUM_OR_Y_REGS, ACCUM_OR_YBASE_REGS, ACCUM_REGS, ACCUM_Y_OR_P_REGS, ACCUM_Y_P_OR_YBASE_REGS, ALL_REGS, BMU_REGS, CONSTANT_P, frame_pointer_rtx, GET_CODE, GET_MODE, IS_ACCUM_REG, IS_YBASE_ELIGIBLE_REG, IS_YBASE_REGISTER_WINDOW, J_OR_DAU_16_BIT_REGS, J_REG, MEM, NO_ACCUM_NON_YBASE_REGS, NO_FRAME_Y_ADDR_REGS, NO_HIGH_ALL_REGS, NO_REGS, NOHIGH_NON_ADDR_REGS, NOHIGH_NON_YBASE_REGS, NON_ADDR_REGS, NON_HIGH_YBASE_ELIGIBLE_REGS, NON_YBASE_REGS, P_OR_Y_ADDR_REGS, P_OR_YBASE_REGS, P_REG, PH_REG, PL_OR_ACCUM_LOW_REGS, PL_REG, PLUS, reg_class_subset_p(), REG_P, REGNO, reload_in_progress, SLOW_MEM_LOAD_REGS, stack_pointer_rtx, TARGET_RESERVE_YBASE, X_OR_ACCUM_LOW_REGS, X_OR_ACCUM_REGS, X_OR_PH_REGS, X_OR_PL_REGS, X_OR_Y_ADDR_REGS, X_OR_Y_REGS, X_OR_YBASE_REGS, X_OR_YH_REGS, X_OR_YL_REGS, X_REG, XEXP, Y_ADDR_OR_YBASE_REGS, Y_ADDR_REGS, Y_OR_P_REGS, Y_OR_Y_ADDR_REGS, Y_OR_YBASE_REGS, Y_REG, YBASE_ELIGIBLE_REGS, YBASE_OR_NOHIGH_YBASE_ELIGIBLE_REGS, YBASE_OR_YBASE_ELIGIBLE_REGS, YBASE_VIRT_REGS, YH_OR_ACCUM_HIGH_REGS, YH_REG, YL_OR_ACCUM_LOW_REGS, YL_OR_P_REGS, YL_OR_PL_OR_ACCUM_LOW_REGS, and YL_REG.
Definition at line 1791 of file dsp16xx.c.
References abort, addr(), CONST, CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW, d, EQ, f, fprintf(), fputs(), GE, GET_CODE, GET_MODE, GT, himode_reg_name, HOST_WIDE_INT, HOST_WIDE_INT_PRINT_DEC, HOST_WIDE_INT_PRINT_HEX, i, int, INTVAL, LE, LT, MEM, n, NE, output_addr_const(), output_address(), output_operand_lossage(), PLUS, REG, reg_names, REGNO, reverse_condition(), val, and XEXP.
Definition at line 1928 of file dsp16xx.c.
References abort, base, fatal_error(), FITS_5_BITS, fprintf(), GET_CODE, INTVAL, offset, output_addr_const(), PLUS, REG, reg_names, REGNO, STACK_POINTER_REGNUM, and XEXP.
| static int reg_save_size | ( | ) | [static] |
Definition at line 1995 of file dsp16xx.c.
References dsp16xx_call_saved_register(), FIRST_PSEUDO_REGISTER, dsp16xx_frame_info::function_makes_calls, reg_save_size(), and UNITS_PER_WORD.
| int regno_reg_class | ( | int | regno | ) |
Definition at line 299 of file dsp16xx.c.
References A0H_REG, A0L_REG, A1H_REG, A1L_REG, BMU_REGS, GENERAL_REGS, J_REG, NO_REGS, PH_REG, PL_REG, REG_A0, REG_A0L, REG_A1, REG_A1L, REG_AR0, REG_AR1, REG_AR2, REG_AR3, REG_C0, REG_C1, REG_C2, REG_J, REG_K, REG_PR, REG_PROD, REG_PRODL, REG_PT, REG_R0, REG_R1, REG_R2, REG_R3, REG_RB, REG_X, REG_Y, REG_YBASE, REG_YBASE0, REG_YBASE1, REG_YBASE10, REG_YBASE11, REG_YBASE12, REG_YBASE13, REG_YBASE14, REG_YBASE15, REG_YBASE16, REG_YBASE17, REG_YBASE18, REG_YBASE19, REG_YBASE2, REG_YBASE20, REG_YBASE21, REG_YBASE22, REG_YBASE23, REG_YBASE24, REG_YBASE25, REG_YBASE26, REG_YBASE27, REG_YBASE28, REG_YBASE29, REG_YBASE3, REG_YBASE30, REG_YBASE31, REG_YBASE4, REG_YBASE5, REG_YBASE6, REG_YBASE7, REG_YBASE8, REG_YBASE9, REG_YL, X_REG, Y_ADDR_REGS, YBASE_VIRT_REGS, YH_REG, and YL_REG.
| enum reg_class secondary_reload_class | ( | enum reg_class | class, | |
| enum machine_mode mode | , | |||
| rtx | in | |||
| ) |
Definition at line 894 of file dsp16xx.c.
References A0H_REG, A0L_REG, A1_REG, A1H_REG, A1L_REG, ACCUM_HIGH_REGS, ACCUM_LOW_OR_Y_ADDR_REGS, ACCUM_LOW_OR_YL_OR_P_REGS, ACCUM_LOW_REGS, ACCUM_OR_P_REGS, ACCUM_OR_Y_ADDR_REGS, ACCUM_OR_Y_REGS, ACCUM_OR_YBASE_REGS, ACCUM_REGS, ACCUM_Y_OR_P_REGS, GET_CODE, IS_YBASE_ELIGIBLE_REG, IS_YBASE_REGISTER_WINDOW, NO_REGS, NON_YBASE_REGS, P_OR_Y_ADDR_REGS, P_REG, PH_REG, PL_OR_ACCUM_LOW_REGS, PL_REG, PLUS, REG, REG_A0, REG_A0L, REG_A1, REG_A1L, REG_P, REG_PROD, REG_PRODL, REG_R0, REG_R1, REG_R2, REG_R3, REG_X, REG_Y, REG_YL, TARGET_RESERVE_YBASE, true_regnum(), X_OR_ACCUM_LOW_REGS, X_OR_ACCUM_REGS, X_OR_PH_REGS, X_OR_PL_REGS, X_OR_Y_ADDR_REGS, X_OR_Y_REGS, X_OR_YH_REGS, X_OR_YL_REGS, X_REG, XEXP, Y_ADDR_REGS, Y_OR_P_REGS, Y_OR_Y_ADDR_REGS, Y_REG, YBASE_ELIGIBLE_REGS, YBASE_VIRT_REGS, YH_OR_ACCUM_HIGH_REGS, YH_REG, YL_OR_ACCUM_LOW_REGS, YL_OR_P_REGS, YL_OR_PL_OR_ACCUM_LOW_REGS, and YL_REG.
| int signed_comparison_operator | ( | rtx | op, | |
| enum machine_mode mode | ||||
| ) |
| int sp_operand | ( | rtx | op, | |
| mode | ||||
| ) |
Definition at line 1138 of file dsp16xx.c.
References frame_pointer_rtx, GET_CODE, PLUS, stack_pointer_rtx, and XEXP.
| int sp_operand2 | ( | rtx | op, | |
| mode | ||||
| ) |
Definition at line 1149 of file dsp16xx.c.
References frame_pointer_rtx, GET_CODE, IS_ADDRESS_REGISTER, PLUS, REG_P, REGNO, stack_pointer_rtx, and XEXP.
| int symbolic_address_operand | ( | rtx | op, | |
| mode | ||||
| ) |
| int symbolic_address_p | ( | rtx | op | ) |
| int uns_comparison_operator | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
| int Y_address_operand | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
| int ybase_regs_ever_used | ( | ) |
const char* const ashift_left_asm[] [static] |
const char* const ashift_left_asm_first[] [static] |
const char* const ashift_right_asm[] [static] |
const char* const ashift_right_asm_first[] [static] |
| const char* bss_seg_name |
| const char* const_seg_name |
| const char* data_seg_name |
| rtx dsp16xx_addhf3_libcall = (rtx) 0 |
| rtx dsp16xx_ashlhi3_libcall = (rtx) 0 |
| rtx dsp16xx_ashrhi3_libcall = (rtx) 0 |
| rtx dsp16xx_cmphf3_libcall = (rtx) 0 |
| rtx dsp16xx_divhf3_libcall = (rtx) 0 |
| rtx dsp16xx_divhi3_libcall = (rtx) 0 |
| rtx dsp16xx_divqi3_libcall = (rtx) 0 |
| rtx dsp16xx_fixhfhi2_libcall = (rtx) 0 |
| rtx dsp16xx_floathihf2_libcall = (rtx) 0 |
| rtx dsp16xx_lshrhi3_libcall = (rtx) 0 |
| rtx dsp16xx_modhi3_libcall = (rtx) 0 |
| rtx dsp16xx_modqi3_libcall = (rtx) 0 |
| rtx dsp16xx_mulhf3_libcall = (rtx) 0 |
| rtx dsp16xx_mulhi3_libcall = (rtx) 0 |
| rtx dsp16xx_neghf2_libcall = (rtx) 0 |
| rtx dsp16xx_subhf3_libcall = (rtx) 0 |
| rtx dsp16xx_ucmphi2_libcall = (rtx) 0 |
| rtx dsp16xx_udivhi3_libcall = (rtx) 0 |
| rtx dsp16xx_udivqi3_libcall = (rtx) 0 |
| rtx dsp16xx_umodhi3_libcall = (rtx) 0 |
| rtx dsp16xx_umodqi3_libcall = (rtx) 0 |
const char* const himode_reg_name[] = HIMODE_REGISTER_NAMES [static] |
const char* const lshift_right_asm[] [static] |
const char* const lshift_right_asm_first[] [static] |
| const char* rsect_const |
| const char* rsect_data |
| const char* rsect_text |
| const char* save_chip_name |
| struct gcc_target targetm = TARGET_INITIALIZER |
| const char* text_seg_name |
1.5.6