#include "config.h"#include "system.h"#include "coretypes.h"#include "tm.h"#include "rtl.h"#include "regs.h"#include "hard-reg-set.h"#include "real.h"#include "insn-config.h"#include "conditions.h"#include "insn-attr.h"#include "recog.h"#include "toplev.h"#include "output.h"#include "integrate.h"#include "tree.h"#include "function.h"#include "expr.h"#include "optabs.h"#include "libfuncs.h"#include "flags.h"#include "tm_p.h"#include "ggc.h"#include "insn-flags.h"#include "obstack.h"#include "except.h"#include "target.h"#include "target-def.h"#include "basic-block.h"#include "gt-mt.h"

Go to the source code of this file.
| #define LINK_MASK (1 << (GPR_LINK)) |
| #define ROUND_ADVANCE | ( | SIZE | ) | (((SIZE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD) |
| #define TARGET_ATTRIBUTE_TABLE mt_attribute_table |
| #define TARGET_SETUP_INCOMING_VARARGS mt_setup_incoming_varargs |
| int arith_operand | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
| int big_const_operand | ( | rtx | op, | |
| enum machine_mode mode | ATTRIBUTE_UNUSED | |||
| ) |
Definition at line 752 of file mt.c.
References CONST_OK_FOR_LETTER_P, GET_CODE, and INTVAL.
Referenced by single_const_operand().
| DEF_VEC_ALLOC_O | ( | loop_work | , | |
| heap | ||||
| ) |
| DEF_VEC_ALLOC_P | ( | loop_info | , | |
| heap | ||||
| ) |
| DEF_VEC_O | ( | loop_work | ) |
| DEF_VEC_P | ( | loop_info | ) |
| struct machine_function GTY | ( | () | ) | [read, write] |
Definition at line 63 of file mt.c.
References interrupt_handler, and machine_function::ra_needs_full_frame.
Definition at line 171 of file mt.c.
References insn_dependent_p_1(), INSN_P, note_stores(), NULL_RTX, PATTERN, and tmp.
Definition at line 192 of file mt.c.
References insn_dependent_p_1(), INSN_P, note_stores(), NULL_RTX, PATTERN, and tmp.
Referenced by mt_final_prescan_insn().
Definition at line 2165 of file mt.c.
References label_info::branches, GET_CODE, info, branch_info::insn, label_info::label, branch_info::next, label_info::next, NULL, XEXP, and xmalloc().
Referenced by mt_reorg_hazard().
| static int mt_arg_partial_bytes | ( | CUMULATIVE_ARGS * | pcum, | |
| enum machine_mode | mode, | |||
| tree | type, | |||
| bool named | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 603 of file mt.c.
References bytes, gcc_target::calls, fprintf(), GET_MODE_SIZE, int_size_in_bytes(), MT_NUM_ARG_REGS, gcc_target::calls::pass_by_reference, TARGET_DEBUG, targetm, UNITS_PER_WORD, and words.
| static int mt_block_length | ( | basic_block | bb | ) | [static] |
Definition at line 1791 of file mt.c.
References BB_END, BB_HEAD, CALL_P, get_attr_length(), insn, INSN_P, length, MAX_LOOP_LENGTH, and NEXT_INSN.
Referenced by mt_reorg_loops().
Definition at line 2201 of file mt.c.
References delete_insn(), gcc_assert, GET_CODE, INSN_DELETED_P, insn_dependent_p_1(), NEXT_INSN, note_stores(), NULL_RTX, p, PATTERN, PREV_INSN, tmp, and XVECEXP.
Referenced by mt_reorg_hazard().
| unsigned int mt_compute_frame_size | ( | int | size | ) |
Definition at line 857 of file mt.c.
References arc_frame_info::args_size, current_frame_info, current_function_outgoing_args_size, current_function_pretend_args_size, arc_frame_info::extra_size, FIRST_PARM_OFFSET, frame_pointer_needed, frame_size, GPR_FP, GPR_LAST, GPR_LINK, GPR_R0, arc_frame_info::initialized, interrupt_handler, MUST_SAVE_REGISTER, arc_frame_info::pretend_size, profile_flag, arc_frame_info::reg_size, regs_ever_live, reload_completed, arc_frame_info::total_size, UNITS_PER_WORD, and arc_frame_info::var_size.
Referenced by mt_expand_epilogue(), mt_expand_prologue(), and mt_initial_elimination_offset().
| static void mt_debug_stack | ( | struct mt_frame_info * | info | ) | [static] |
Definition at line 307 of file mt.c.
References mt_frame_info::args_size, current_function_decl, DECL_NAME, error(), mt_frame_info::extra_size, fflush(), fprintf(), mt_frame_info::frame_size, gcc_unreachable, GPR_LAST, GPR_R0, IDENTIFIER_POINTER, mt_frame_info::initialized, mt_frame_info::pretend_size, putc(), mt_frame_info::reg_mask, reg_names, mt_frame_info::reg_size, mt_frame_info::save_fp, mt_frame_info::save_lr, mt_frame_info::total_size, and mt_frame_info::var_size.
Referenced by mt_expand_epilogue(), and mt_expand_prologue().
Definition at line 1361 of file mt.c.
References copy_to_mode_reg(), emit_jump_insn(), gen_rtx_IF_THEN_ELSE, gen_rtx_LABEL_REF, gen_rtx_SET, mt_generate_compare(), pc_rtx, and reg_or_0_operand().
Definition at line 1259 of file mt.c.
References cfun, EH_EPILOGUE, EH_RETURN_STACKADJ_RTX, and mt_expand_epilogue().
| static void mt_emit_save_fp | ( | enum save_direction | direction, | |
| struct mt_frame_info | info | |||
| ) | [static] |
Definition at line 948 of file mt.c.
References CONST_OK_FOR_LETTER_P, FP_MASK, GEN_INT, gen_rtx_MEM(), gen_rtx_PLUS, gen_rtx_REG(), GPR_FP, GPR_R9, LINK_MASK, mt_emit_save_restore(), offset, mt_frame_info::reg_mask, mt_frame_info::save_fp, mt_frame_info::save_lr, stack_pointer_rtx, mt_frame_info::total_size, and UNITS_PER_WORD.
Referenced by mt_expand_epilogue(), and mt_expand_prologue().
| static void mt_emit_save_regs | ( | enum save_direction | direction, | |
| struct mt_frame_info | info | |||
| ) | [static] |
Definition at line 987 of file mt.c.
References CONST_OK_FOR_LETTER_P, FP_MASK, GEN_INT, gen_rtx_MEM(), gen_rtx_PLUS, gen_rtx_REG(), GPR_LAST, GPR_LINK, GPR_R0, GPR_R9, LINK_MASK, mt_emit_save_restore(), offset, mt_frame_info::reg_mask, mt_frame_info::save_fp, mt_frame_info::save_lr, stack_pointer_rtx, mt_frame_info::total_size, and UNITS_PER_WORD.
Referenced by mt_expand_epilogue(), and mt_expand_prologue().
| static void mt_emit_save_restore | ( | enum save_direction | direction, | |
| rtx | reg, | |||
| rtx | mem, | |||
| int | stack_offset | |||
| ) | [static] |
Definition at line 919 of file mt.c.
References emit_move_insn(), FROM_PROCESSOR_TO_MEM, GEN_INT, gen_rtx_EXPR_LIST, gen_rtx_MEM(), gen_rtx_PLUS, gen_rtx_SET, insn, REG_FRAME_RELATED_EXPR, REG_NOTES, RTX_FRAME_RELATED_P, and stack_pointer_rtx.
Referenced by mt_emit_save_fp(), and mt_emit_save_regs().
| int mt_epilogue_uses | ( | int | regno | ) |
Definition at line 1243 of file mt.c.
References EH_RETURN_STACKADJ_REGNO, EH_RETURN_STACKADJ_RTX, emit_insn(), emit_move_insn(), gen_eh_epilogue(), GET_CODE, REG, REGNO, and sp.
| void mt_expand_epilogue | ( | enum epilogue_type | eh_mode | ) |
Definition at line 1153 of file mt.c.
References cfun, CONST_OK_FOR_LETTER_P, current_frame_info, EH_EPILOGUE, emit_barrier(), emit_insn(), emit_jump_insn(), emit_move_insn(), frame_pointer_needed, frame_pointer_rtx, frame_size, FROM_MEM_TO_PROCESSOR, gcc_assert, gen_addsi3(), GEN_INT, gen_iorsi3(), gen_return_internal(), gen_rtx_EXPR_LIST, gen_rtx_PLUS, gen_rtx_REG(), gen_rtx_SET, get_frame_size(), GPR_R9, insn, interrupt_handler, mt_compute_frame_size(), mt_debug_stack(), mt_emit_save_fp(), mt_emit_save_regs(), NULL_RTX, REG_FRAME_RELATED_EXPR, REG_NOTES, stack_pointer_rtx, TARGET_DEBUG_STACK, arc_frame_info::total_size, and zero_frame_info.
Referenced by mt_emit_eh_epilogue().
Definition at line 1061 of file mt.c.
References cfun, CONST_OK_FOR_LETTER_P, current_frame_info, current_function_decl, emit_insn(), emit_move_insn(), frame_pointer_needed, frame_pointer_rtx, frame_size, FROM_PROCESSOR_TO_MEM, gcc_assert, gen_addsi3(), gen_blockage(), GEN_INT, gen_iorsi3(), gen_rtx_EXPR_LIST, gen_rtx_MINUS, gen_rtx_REG(), gen_rtx_SET, gen_subsi3(), get_frame_size(), GPR_R9, insn, interrupt_handler, mt_compute_frame_size(), mt_debug_stack(), mt_emit_save_fp(), mt_emit_save_regs(), mt_interrupt_function_p(), profile_flag, REG_FRAME_RELATED_EXPR, REG_NOTES, arc_frame_info::reg_size, RTX_FRAME_RELATED_P, stack_pointer_rtx, TARGET_DEBUG_STACK, and arc_frame_info::total_size.
| void mt_final_prescan_insn | ( | rtx | insn, | |
| rtx *opvec | ATTRIBUTE_UNUSED, | |||
| int noperands | ATTRIBUTE_UNUSED | |||
| ) |
Definition at line 210 of file mt.c.
References BARRIER_P, fatal_insn, GET_CODE, insn_dependent_p(), INSN_P, insn_true_dependent_p(), mt_get_attr_type(), mt_nop_reasons, mt_nops_required, NULL, PATTERN, PREV_INSN, TARGET_MS1_64_001, TARGET_MS2, TYPE_ARITH, TYPE_BRANCH, TYPE_LOAD, TYPE_STORE, and USE.
| rtx mt_function_arg | ( | const CUMULATIVE_ARGS * | cum, | |
| enum machine_mode | mode, | |||
| tree | type, | |||
| int | named, | |||
| int | incoming_p | |||
| ) |
Definition at line 554 of file mt.c.
References gen_rtx_REG(), mt_function_arg_slotno(), and NULL_RTX.
| void mt_function_arg_advance | ( | CUMULATIVE_ARGS * | cum, | |
| enum machine_mode | mode, | |||
| tree type | ATTRIBUTE_UNUSED, | |||
| int | named | |||
| ) |
Definition at line 575 of file mt.c.
References fprintf(), GET_MODE_NAME, GET_MODE_SIZE, int_size_in_bytes(), mt_function_arg_slotno(), ROUND_ADVANCE, TARGET_DEBUG_ARG, and UNITS_PER_WORD.
| int mt_function_arg_boundary | ( | enum machine_mode mode | ATTRIBUTE_UNUSED, | |
| tree type | ATTRIBUTE_UNUSED | |||
| ) |
| static int mt_function_arg_slotno | ( | const CUMULATIVE_ARGS * | cum, | |
| enum machine_mode | mode, | |||
| tree | type, | |||
| int named | ATTRIBUTE_UNUSED, | |||
| int incoming_p | ATTRIBUTE_UNUSED, | |||
| int * | pregno | |||
| ) | [static] |
Definition at line 531 of file mt.c.
References gcc_target::calls, FIRST_ARG_REGNUM, MT_NUM_ARG_REGS, gcc_target::calls::must_pass_in_stack, and targetm.
Referenced by mt_function_arg(), and mt_function_arg_advance().
| rtx mt_function_value | ( | tree | valtype, | |
| enum machine_mode | mode, | |||
| tree func_decl | ATTRIBUTE_UNUSED | |||
| ) |
Definition at line 1468 of file mt.c.
References gen_rtx_MEM(), gen_rtx_REG(), RETURN_VALUE_REGNUM, and TYPE_MODE.
Definition at line 1315 of file mt.c.
References emit_insn(), force_reg(), GE, gen_addsi3(), GEN_INT, gen_reg_rtx(), gen_rtx_fmt_ee(), GT, LE, LT, and MT_MIN_INT.
Referenced by mt_emit_cbranch().
Definition at line 132 of file mt.c.
References CALL_P, GET_CODE, insn, JUMP_P, MEM, PATTERN, pc_rtx, SET, SET_DEST, SET_SRC, TYPE_ARITH, TYPE_BRANCH, TYPE_LOAD, and TYPE_STORE.
Referenced by mt_final_prescan_insn().
| void mt_init_cumulative_args | ( | CUMULATIVE_ARGS * | cum, | |
| tree | fntype, | |||
| rtx | libname, | |||
| tree fndecl | ATTRIBUTE_UNUSED, | |||
| int | incoming | |||
| ) |
| static struct machine_function* mt_init_machine_status | ( | void | ) | [static, read] |
Definition at line 781 of file mt.c.
References f, and ggc_alloc_cleared.
Referenced by mt_override_options().
| int mt_initial_elimination_offset | ( | int | from, | |
| int | to | |||
| ) |
Definition at line 1294 of file mt.c.
References ARG_POINTER_REGNUM, current_frame_info, FRAME_POINTER_REGNUM, gcc_unreachable, get_frame_size(), mt_compute_frame_size(), STACK_POINTER_REGNUM, and arc_frame_info::total_size.
Definition at line 1048 of file mt.c.
References a, DECL_ATTRIBUTES, lookup_attribute(), NULL_TREE, and TREE_CODE.
Referenced by mt_expand_prologue().
| int mt_legitimate_address_p | ( | enum machine_mode | mode, | |
| rtx | xinsn, | |||
| int | strict | |||
| ) |
| static bool mt_legitimate_simple_address_p | ( | enum machine_mode mode | ATTRIBUTE_UNUSED, | |
| rtx | xinsn, | |||
| int | strict | |||
| ) | [static] |
Definition at line 662 of file mt.c.
References debug_rtx(), fprintf(), GET_CODE, mt_reg_ok_for_base_p(), PLUS, REG, SMALL_INT, TARGET_DEBUG, and XEXP.
Referenced by mt_legitimate_address_p().
Definition at line 1734 of file mt.c.
References EDGE_COUNT, EDGE_FALLTHRU, EDGE_PRED, EDGE_SUCC, MAX_LOOP_DEPTH, MAX_LOOP_LENGTH, NULL, and VEC_iterate.
Referenced by mt_reorg_loops().
Definition at line 2449 of file mt.c.
References cfun, dbr_schedule(), dump_file, get_insns(), mt_flag_delayed_branch, mt_reorg_hazard(), mt_reorg_loops(), split_all_insns_noflow(), and TARGET_MS2.
Definition at line 792 of file mt.c.
References error(), flag_delayed_branch, flag_exceptions, flag_gcse, flag_omit_frame_pointer, init_machine_status, mt_cpu, mt_flag_delayed_branch, mt_init_machine_status(), NULL, PROCESSOR_MS1_16_002, PROCESSOR_MS1_16_003, PROCESSOR_MS1_64_001, PROCESSOR_MS2, and strcmp().
| static bool mt_pass_by_reference | ( | CUMULATIVE_ARGS *cum | ATTRIBUTE_UNUSED, | |
| enum machine_mode mode | ATTRIBUTE_UNUSED, | |||
| tree | type, | |||
| bool named | ATTRIBUTE_UNUSED | |||
| ) | [static] |
| static bool mt_pass_in_stack | ( | enum machine_mode mode | ATTRIBUTE_UNUSED, | |
| tree | type | |||
| ) | [static] |
Definition at line 402 of file mt.c.
References AND, GET_CODE, INTVAL, mt_print_operand_simple_address(), and XEXP.
Referenced by mt_print_operand().
Definition at line 347 of file mt.c.
References CONST, CONSTANT_P, error(), fatal_insn, fprintf(), GET_CODE, GPR_R0, offset, output_addr_const(), PLUS, REG, reg_names, REGNO, and XEXP.
Referenced by mt_print_operand_address().
| int mt_reg_ok_for_base_p | ( | rtx | x, | |
| int | strict | |||
| ) |
Definition at line 652 of file mt.c.
References FIRST_PSEUDO_REGISTER, and REGNO.
Referenced by mt_legitimate_simple_address_p().
Definition at line 2255 of file mt.c.
References BARRIER_P, label_info::branches, CODE_FOR_tablejump, count, emit_insn_after(), emit_insn_before(), for_each_rtx(), free(), gcc_assert, gen_nop(), get_attr_type(), GET_CODE, get_insns(), branch_info::insn, insn, INSN_CODE, INSN_DELETED_P, insn_dependent_p_1(), INSN_P, JUMP_TABLE_DATA_P, label_info::label, LABEL_P, mt_add_branches(), mt_check_delay_slot(), branch_info::next, next, label_info::next, NEXT_INSN, nops, note_stores(), NULL_RTX, PATTERN, prev, PREV_INSN, recog_memoized, rescan(), tmp, TYPE_ARITH, TYPE_BRANCH, TYPE_CALL, TYPE_LOAD, TYPE_UNKNOWN, USE, XEXP, and XVECEXP.
Referenced by mt_machine_reorg().
Definition at line 1882 of file mt.c.
References basic_block_def::aux, BB_END, BB_HEAD, BRANCH_EDGE, delete_insn(), EDGE_SUCC, emit_jump_insn_after(), emit_jump_insn_before(), emit_label_before(), EXIT_BLOCK_PTR, FALLTHRU_EDGE, FOR_EACH_BB, FOR_EACH_EDGE, fprintf(), GEN_INT, gen_label_rtx(), gen_rtx_REG(), GET_CODE, get_insns(), edge_iterator::index, insn, INSN_P, INTVAL, LOOP_FIRST, loop_work, mt_block_length(), mt_loop_nesting(), mt_scan_loop(), NULL, NULL_RTX, PATTERN, PREV_INSN, print_rtl(), print_rtl_single(), recog_memoized, reg_mentioned_p(), REG_P, rtx_equal_p(), SET, SET_DEST, SET_SRC, single_set, tail, VEC, VEC_alloc, VEC_block_remove, VEC_free, VEC_iterate, VEC_quick_push, VEC_reserve, VEC_safe_push, VEC_space, XDELETE, XEXP, XNEW, and XVECEXP.
Referenced by mt_machine_reorg().
| rtx mt_return_addr_rtx | ( | int | count | ) |
Definition at line 1819 of file mt.c.
References BB_END, BB_HEAD, insn, INSN_P, NEXT_INSN, NULL_RTX, PATTERN, reg_mentioned_p(), and VEC_iterate.
Referenced by mt_reorg_loops().
| enum reg_class mt_secondary_reload_class | ( | enum reg_class class | ATTRIBUTE_UNUSED, | |
| enum machine_mode | mode, | |||
| rtx | x | |||
| ) |
Definition at line 1447 of file mt.c.
References GENERAL_REGS, GET_CODE, MEM, NO_REGS, REG, SUBREG_REG, and true_regnum().
Definition at line 1424 of file mt.c.
References GET_CODE, get_insns(), insn, MEM, MEM_IN_STRUCT_P, MEM_VOLATILE_P, mt_set_memflags_1(), and NEXT_INSN.
Definition at line 1382 of file mt.c.
References GET_CODE, i, MEM, MEM_IN_STRUCT_P, MEM_VOLATILE_P, PATTERN, SET, SET_DEST, SET_SRC, XVECEXP, and XVECLEN.
Referenced by mt_set_memflags().
| static void mt_setup_incoming_varargs | ( | CUMULATIVE_ARGS * | cum, | |
| enum machine_mode mode | ATTRIBUTE_UNUSED, | |||
| tree type | ATTRIBUTE_UNUSED, | |||
| int * | pretend_size, | |||
| int | no_rtl | |||
| ) | [static] |
Definition at line 828 of file mt.c.
References ARG_POINTER_REGNUM, emit_move_insn(), FIRST_ARG_REGNUM, GEN_INT, gen_rtx_MEM(), gen_rtx_PLUS, gen_rtx_REG(), GET_MODE_SIZE, MT_NUM_ARG_REGS, Pmode, regs, and UNITS_PER_WORD.
| void mt_split_words | ( | enum machine_mode | nmode, | |
| enum machine_mode | omode, | |||
| rtx * | operands | |||
| ) |
Definition at line 1486 of file mt.c.
References const0_rtx, gcc_unreachable, GEN_INT, gen_rtx_REG(), gen_rtx_SUBREG(), GET_CODE, GET_MODE_SIZE, HARD_REGNO_NREGS, IS_PSEUDO_P, MEM, operand_subword(), r, REG, REGNO, sl, split_double(), SUBREG_BYTE, SUBREG_REG, true_regnum(), UNITS_PER_WORD, and XEXP.
| int reg_or_0_operand | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
| int single_const_operand | ( | rtx | op, | |
| enum machine_mode mode | ATTRIBUTE_UNUSED | |||
| ) |
| int uns_arith_operand | ( | rtx | op, | |
| enum machine_mode | mode | |||
| ) |
Definition at line 707 of file mt.c.
References GET_CODE, register_operand(), and SMALL_INT_UNSIGNED.
Initial value:
{
{ "interrupt", 0, 0, false, false, false, mt_handle_interrupt_attribute },
{ NULL, 0, 0, false, false, false, NULL }
}
| struct rtx_def* mt_compare_op0 |
| struct rtx_def* mt_compare_op1 |
| enum processor_type mt_cpu |
int mt_flag_delayed_branch [static] |
label_info* mt_labels [static] |
const char* mt_nop_reasons = "" [static] |
Definition at line 110 of file mt.c.
Referenced by mt_asm_output_opcode(), and mt_final_prescan_insn().
int mt_nops_required = 0 [static] |
Definition at line 109 of file mt.c.
Referenced by mt_asm_output_opcode(), and mt_final_prescan_insn().
| struct rtx_def* mt_ucmpsi3_libcall |
| struct gcc_target targetm = TARGET_INITIALIZER |
1.5.6