#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 "flags.h"#include "tree.h"#include "expr.h"#include "except.h"#include "function.h"#include "toplev.h"#include "recog.h"#include "reload.h"#include "tm_p.h"#include "debug.h"#include "output.h"#include "target.h"#include "target-def.h"#include "ggc.h"#include "optabs.h"#include "gt-cris.h"

Go to the source code of this file.
| #define ASSERT_PLT_UNSPEC | ( | x | ) |
| #define LOSE_AND_RETURN | ( | msgid, | |||
| x | ) |
Value:
do \ { \ cris_operand_lossage (msgid, x); \ return; \ } while (0)
| #define TARGET_ASM_CAN_OUTPUT_MI_THUNK default_can_output_mi_thunk_no_vcall |
| #define TARGET_DEFAULT_TARGET_FLAGS (TARGET_DEFAULT | CRIS_SUBTARGET_DEFAULT) |
| #define TARGET_SETUP_INCOMING_VARARGS cris_setup_incoming_varargs |
| enum cris_retinsn_type |
| static int cris_address_cost | ( | rtx | x | ) | [static] |
Definition at line 2080 of file cris.c.
References BASE_OR_AUTOINCR_P, BIAP_INDEX_P, CONST_OK_FOR_LETTER_P, CONSTANT_P, cris_got_symbol, flag_pic, GET_CODE, INTVAL, MEM, PLUS, REG_P, and XEXP.
| static int cris_arg_partial_bytes | ( | CUMULATIVE_ARGS * | ca, | |
| enum machine_mode | mode, | |||
| tree | type, | |||
| bool named | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 3422 of file cris.c.
References gcc_target::calls, CRIS_FUNCTION_ARG_SIZE, CRIS_MAX_ARGS_IN_REGS, gcc_target::calls::must_pass_in_stack, CUMULATIVE_ARGS::regs, and UNITS_PER_WORD.
| static int cris_arg_partial_bytes | ( | CUMULATIVE_ARGS * | , | |
| enum | machine_mode, | |||
| tree | , | |||
| bool | ||||
| ) | [static] |
Definition at line 3314 of file cris.c.
References assemble_name(), cris_pic_sympart_only, current_function_uses_pic_offset_table, flag_pic, fprintf(), in_code, internal_error(), PIC_OFFSET_TABLE_REGNUM, and reg_names.
| static void cris_asm_output_mi_thunk | ( | FILE * | stream, | |
| tree thunkdecl | ATTRIBUTE_UNUSED, | |||
| HOST_WIDE_INT | delta, | |||
| HOST_WIDE_INT vcall_offset | ATTRIBUTE_UNUSED, | |||
| tree | funcdecl | |||
| ) | [static] |
Definition at line 2214 of file cris.c.
References ADDITIVE_SIZE_MODIFIER, assemble_name(), CRIS_FIRST_ARG_REG, CRIS_PLT_PCOFFSET_SUFFIX, DECL_RTL, flag_pic, fprintf(), HOST_WIDE_INT_PRINT_DEC, reg_names, gcc_target::strip_name_encoding, XEXP, and XSTR.
| static void cris_asm_output_mi_thunk | ( | FILE * | , | |
| tree | , | |||
| HOST_WIDE_INT | , | |||
| HOST_WIDE_INT | , | |||
| tree | ||||
| ) | [static] |
Definition at line 3292 of file cris.c.
References assemble_name(), current_function_uses_pic_offset_table, flag_pic, gcc_assert, GET_CODE, in_code, output_operand_lossage(), str, gcc_target::strip_name_encoding, and XSTR.
| int cris_cfun_uses_pic_table | ( | void | ) |
Definition at line 386 of file cris.c.
References call_used_regs, cris_cpu_version, fixed_regs, flag_pic, PIC_OFFSET_TABLE_REGNUM, reg_names, and TARGET_HAS_MUL_INSNS.
Definition at line 3048 of file cris.c.
References adjust_address_nv, CRIS_ASSERT, emit_insn(), gen_rtx_EXPR_LIST, gen_rtx_PARALLEL, gen_rtx_REG(), gen_rtx_SEQUENCE, gen_rtx_SET, GET_CODE, i, insn, INTVAL, nregs, PATTERN, PLUS, plus_constant, REG_FRAME_RELATED_EXPR, REG_NOTES, REG_P, replace_equiv_address(), rtvec_alloc(), RTVEC_ELT, RTX_FRAME_RELATED_P, vec, XEXP, and XVECEXP.
Referenced by cris_expand_prologue().
Definition at line 2768 of file cris.c.
References alloc_EXPR_LIST(), cris_expand_return(), cris_gen_movem_load(), cris_reg_saved_in_regsave_area(), cris_return_address_on_stack(), CRIS_SRP_REGNUM, CRIS_STACKADJ_REG, current_function_calls_eh_return, current_function_outgoing_args_size, current_function_pretend_args_size, current_function_uses_pic_offset_table, emit_insn(), emit_move_insn(), FIRST_PSEUDO_REGISTER, frame_pointer_needed, frame_pointer_rtx, gen_addsi3(), GEN_INT, gen_rtx_MEM(), gen_rtx_POST_INC, gen_rtx_raw_REG, gen_rtx_SET, get_frame_alias_set(), get_frame_size(), get_insns(), insn, mem, NULL_RTX, PATTERN, pic_offset_table_rtx, plus_constant, pop_topmost_sequence(), push_topmost_sequence(), REG_INC, REG_NOTES, reg_used_between_p(), set_mem_alias_set(), side_effects_p(), size, stack_pointer_rtx, TARGET_ALIGN_BY_32, TARGET_PROLOGUE_EPILOGUE, and TARGET_STACK_ALIGN.
Definition at line 3176 of file cris.c.
References add_optab, CONSTANT_ADDRESS_P, CRIS_ASSERT, cris_got_symbol, cris_gotrel_symbol, cris_pic_symbol_type_of(), current_function_uses_pic_offset_table, emit_move_insn(), expand_binop(), fatal_insn, force_reg(), gcc_assert, gen_reg_rtx(), gen_rtvec(), gen_rtx_CONST, gen_rtx_MEM(), gen_rtx_UNSPEC, GET_CODE, internal_error(), mem, MEM_NOTRAP_P, MEM_P, new_alias_set(), no_new_pseudos, OPTAB_LIB_WIDEN, pic_offset_table_rtx, Pmode, replace_equiv_address(), rm, set_mem_alias_set(), TARGET_AVOID_GOTPLT, and XEXP.
Definition at line 2487 of file cris.c.
References cfun, const0_rtx, CRIS_ASSERT, CRIS_CPU_SVINTO, cris_cpu_version, cris_emit_movem_store(), CRIS_FIRST_ARG_REG, CRIS_MAX_ARGS_IN_REGS, cris_max_stackframe, cris_reg_saved_in_regsave_area(), cris_return_address_on_stack(), CRIS_SRP_REGNUM, current_function_outgoing_args_size, current_function_pretend_args_size, current_function_uses_pic_offset_table, emit_insn(), emit_move_insn(), FIRST_PSEUDO_REGISTER, frame_pointer_needed, frame_pointer_rtx, GEN_INT, gen_rtvec(), gen_rtx_MEM(), gen_rtx_raw_REG, gen_rtx_SET, gen_rtx_UNSPEC, gen_rtx_USE, get_frame_alias_set(), get_frame_size(), get_insns(), get_varargs_alias_set(), insn, mem, NULL_RTX, pic_offset_table_rtx, plus_constant, pop_topmost_sequence(), push_topmost_sequence(), reg_used_between_p(), RTX_FRAME_RELATED_P, set_mem_alias_set(), size, stack_pointer_rtx, TARGET_ALIGN_BY_32, TARGET_PROLOGUE_EPILOGUE, TARGET_SIDE_EFFECT_PREFIXES, TARGET_STACK_ALIGN, and warning.
Definition at line 1602 of file cris.c.
References cfun, CRIS_ASSERT, CRIS_RETINSN_JUMP, CRIS_RETINSN_RET, emit_jump_insn(), and gen_rtx_RETURN.
Referenced by cris_expand_epilogue().
| int cris_fatal | ( | char * | arg | ) |
Definition at line 2254 of file cris.c.
References default_file_start(), gcc_target::file_start_app_off, gcc_target::file_start_file_directive, flag_print_asm_name, TARGET_ELF, and TARGET_PDEBUG.
Definition at line 2997 of file cris.c.
References adjust_address_nv, CRIS_ASSERT, gen_movsi(), gen_rtx_PARALLEL, gen_rtx_REG(), gen_rtx_SET, GET_CODE, i, INTVAL, nregs, plus_constant, REG_P, replace_equiv_address(), rtvec_alloc(), RTVEC_ELT, srcreg, vec, and XEXP.
Referenced by cris_expand_epilogue().
Definition at line 2266 of file cris.c.
References sdiv_optab, set_optab_libfunc(), smod_optab, smul_optab, udiv_optab, and umod_optab.
| static struct machine_function * cris_init_machine_status | ( | void | ) | [static, read] |
| int cris_initial_elimination_offset | ( | int | fromreg, | |
| int | toreg | |||
| ) |
Definition at line 1186 of file cris.c.
References abort, ARG_POINTER_REGNUM, cfun, cris_initial_frame_pointer_offset(), cris_return_address_on_stack(), CRIS_SRP_REGNUM, FRAME_POINTER_REGNUM, gcc_unreachable, regs_ever_live, and STACK_POINTER_REGNUM.
| static int cris_initial_frame_pointer_offset | ( | void | ) | [static] |
Definition at line 1145 of file cris.c.
References cris_reg_saved_in_regsave_area(), current_function_outgoing_args_size, current_function_uses_pic_offset_table, FIRST_PSEUDO_REGISTER, get_frame_size(), get_insns(), NULL_RTX, pic_offset_table_rtx, pop_topmost_sequence(), push_topmost_sequence(), reg_used_between_p(), TARGET_ALIGN_BY_32, and TARGET_STACK_ALIGN.
| int cris_legitimate_pic_operand | ( | rtx | x | ) |
Definition at line 3437 of file cris.c.
References build_string(), CLEAR_HARD_REG_SET, HARD_REG_SET, NULL, NULL_TREE, reg_names, SET_HARD_REG_BIT, strchr, strlen(), TREE_CHAIN, tree_cons, tree_overlaps_hard_reg_set(), TREE_PURPOSE, TREE_STRING_POINTER, TREE_VALUE, and val.
Definition at line 1303 of file cris.c.
References cc0_rtx, CC_STATUS_INIT, COMPARE, const0_rtx, const1_rtx, cris_reg_overlap_mentioned_p(), gen_rtx_MINUS, GET_CODE, GET_MODE, GET_MODE_CLASS, GET_MODE_SIZE, internal_error(), MEM, MINUS, MODE_FLOAT, modified_in_p(), pc_rtx, PLUS, REG_P, replace_equiv_address(), SET, SET_DEST, SET_SRC, TARGET_CCINIT, UNITS_PER_WORD, XEXP, and XVECEXP.
| const char* cris_op_str | ( | rtx | x | ) |
Definition at line 2875 of file cris.c.
References abort, gcc_target::asm_out, assemble_name(), ASSERT_PLT_UNSPEC, gcc_target::asm_out::close_paren, CONST, cris_got_symbol, cris_gotless_symbol(), cris_output_addr_const(), cris_pic_sympart_only, current_function_uses_pic_offset_table, fatal_insn, flag_pic, fprintf(), GET_CODE, internal_error(), INTVAL, LOSE_AND_RETURN, MINUS, NOTE_INSN_DELETED_LABEL, NOTE_LINE_NUMBER, gcc_target::asm_out::open_paren, output_addr_const(), output_operand_lossage(), PIC_OFFSET_TABLE_REGNUM, PLUS, reg_names, SIGN_EXTEND, simplify_subtraction(), str, STRIP_NAME_ENCODING, TARGET_AVOID_GOTPLT, XEXP, XSTR, and XVECEXP.
Referenced by cris_output_addr_const(), cris_print_index(), cris_print_operand(), and cris_print_operand_address().
Definition at line 3331 of file cris.c.
References CONST, CRIS_ASSERT, CRIS_GOTPLT_SUFFIX, flag_pic, fprintf(), gcc_unreachable, GET_CODE, output_addr_const(), XINT, and XVECEXP.
Definition at line 2098 of file cris.c.
References atoi(), CRIS_CPU_ETRAX4, cris_cpu_str, CRIS_CPU_SVINTO, cris_cpu_version, cris_init_machine_status(), cris_max_stackframe, cris_max_stackframe_str, cris_tune_str, DBX_DEBUG, DWARF2_DEBUG, DWARF_DEBUG, error(), flag_no_function_cse, flag_pic, init_machine_status, internal_error(), strcmp(), TARGET_ELF, TARGET_ETRAX4_ADD, target_flags, TARGET_LINUX, TARGET_MASK_ALIGN_BY_32, TARGET_MASK_CONST_ALIGN, TARGET_MASK_DATA_ALIGN, TARGET_MASK_ETRAX4_ADD, TARGET_MASK_STACK_ALIGN, TARGET_MASK_SVINTO, TARGET_SVINTO, warning, and write_symbols.
| static bool cris_pass_by_reference | ( | CUMULATIVE_ARGS *ca | ATTRIBUTE_UNUSED, | |
| enum machine_mode | mode, | |||
| tree | type, | |||
| bool named | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 3412 of file cris.c.
References gcc_target::calls, CRIS_FUNCTION_ARG_SIZE, and gcc_target::calls::must_pass_in_stack.
| static bool cris_pass_by_reference | ( | CUMULATIVE_ARGS * | , | |
| enum | machine_mode, | |||
| tree | , | |||
| bool | ||||
| ) | [static] |
| enum cris_pic_symbol_type cris_pic_symbol_type_of | ( | rtx | x | ) |
Definition at line 1983 of file cris.c.
References CONST, cris_got_symbol, cris_got_symbol_needing_fixup, cris_gotrel_symbol, cris_invalid_pic_symbol, cris_no_symbol, fatal_insn, gcc_assert, gcc_unreachable, GET_CODE, MINUS, PLUS, SYMBOL_REF_LOCAL_P, t1, t2, and XEXP.
Referenced by cris_expand_pic_call_address(), and cris_valid_pic_const().
Definition at line 498 of file cris.c.
References CONSTANT_P, cris_operand_lossage(), cris_output_addr_const(), fprintf(), GET_CODE, GET_MODE, INTVAL, MEM, putc(), reg_names, REG_P, REGNO, SIGN_EXTEND, and XEXP.
Definition at line 654 of file cris.c.
References addr(), adjust_address, BITS_PER_UNIT, CONST, CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW, CONST_OK_FOR_LETTER_P, CONSTANT_P, cris_op_str(), cris_output_addr_const(), cris_output_insn_is_bound, cris_print_base(), cris_print_index(), cris_print_operand(), CRIS_SRP_REGNUM, dbr_sequence_length(), exact_log2, flag_pic, fprintf(), fputs(), gen_rtx_POST_INC, GET_CODE, GET_MODE, GET_MODE_BITSIZE, HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT_PRINT_DEC, HOST_WIDE_INT_PRINT_HEX, i, internal_error(), INTVAL, LOSE_AND_RETURN, MEM, operand_subword(), optimize_size, output_addr_const(), output_address(), PIC_OFFSET_TABLE_REGNUM, PLUS, putc(), r, REAL_VALUE_FROM_CONST_DOUBLE, REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TYPE, REG, reg_names, REG_P, REGNO, SET_DEST, SET_SRC, SIGN_EXTEND, size, STACK_POINTER_REGNUM, TARGET_MUL_BUG, XEXP, XVECEXP, and XVECLEN.
Definition at line 1059 of file cris.c.
References BASE_OR_AUTOINCR_P, BASE_P, CONSTANT_ADDRESS_P, cris_output_addr_const(), cris_print_base(), cris_print_index(), GET_CODE, LOSE_AND_RETURN, MEM, PLUS, putc(), x1, x2, and XEXP.
| static int cris_reg_saved_in_regsave_area | ( | unsigned int | regno, | |
| bool | got_really_used | |||
| ) | [static] |
Definition at line 580 of file cris.c.
References call_used_regs, CRIS_SRP_REGNUM, current_function_calls_eh_return, EH_RETURN_DATA_REGNO, flag_pic, frame_pointer_needed, FRAME_POINTER_REGNUM, PIC_OFFSET_TABLE_REGNUM, and regs_ever_live.
Referenced by cris_expand_epilogue(), cris_expand_prologue(), cris_initial_frame_pointer_offset(), and cris_simple_epilogue().
| bool cris_reload_address_legitimized | ( | rtx | x, | |
| enum machine_mode mode | ATTRIBUTE_UNUSED, | |||
| int opnum | ATTRIBUTE_UNUSED, | |||
| int | itype, | |||
| int ind_levels | ATTRIBUTE_UNUSED | |||
| ) |
Definition at line 1219 of file cris.c.
References CRIS_LAST_GENERAL_REGISTER, gcc_assert, GENERAL_REGS, GET_CODE, GET_MODE, MEM, NULL, NULL_RTX, PLUS, push_reload(), REG_P, REGNO, SIGN_EXTEND, and XEXP.
Definition at line 1109 of file cris.c.
References cfun, gen_rtx_MEM(), NULL_RTX, plus_constant, Pmode, and virtual_incoming_args_rtx.
Definition at line 1125 of file cris.c.
References cfun, CRIS_SRP_REGNUM, and regs_ever_live.
Referenced by cris_expand_epilogue(), cris_expand_prologue(), cris_initial_elimination_offset(), and cris_return_address_on_stack_for_return().
Definition at line 1135 of file cris.c.
References cfun, CRIS_RETINSN_RET, and cris_return_address_on_stack().
Definition at line 1624 of file cris.c.
References AND, CONST, CONST0_RTX, CONST_OK_FOR_LETTER_P, COSTS_N_INSNS, DIV, exact_log2, GET_CODE, GET_MODE, GET_MODE_NUNITS, HOST_WIDE_INT, INTVAL, MOD, rtx_cost(), SIGN_EXTEND, TARGET_HAS_MUL_INSNS, val, and XEXP.
| static void cris_setup_incoming_varargs | ( | CUMULATIVE_ARGS * | ca, | |
| enum machine_mode mode | ATTRIBUTE_UNUSED, | |||
| tree type | ATTRIBUTE_UNUSED, | |||
| int * | pretend_arg_size, | |||
| int | second_time | |||
| ) | [static] |
Definition at line 3389 of file cris.c.
References asm_out_file, cfun, CRIS_MAX_ARGS_IN_REGS, fprintf(), CUMULATIVE_ARGS::regs, and TARGET_PDEBUG.
| static void cris_setup_incoming_varargs | ( | CUMULATIVE_ARGS * | , | |
| enum | machine_mode, | |||
| tree | type, | |||
| int * | , | |||
| int | ||||
| ) | [static] |
| int cris_side_effect_mode_ok | ( | enum rtx_code | code, | |
| rtx * | ops, | |||
| int | lreg, | |||
| int | rreg, | |||
| int | rval, | |||
| int | multop, | |||
| int | other_op | |||
| ) |
Definition at line 1798 of file cris.c.
References BASE_OR_AUTOINCR_P, BASE_P, CONSTANT_P, frame_pointer_rtx, GET_CODE, GET_MODE, GET_MODE_SIZE, internal_error(), INTVAL, MEM, mult, PLUS, REGNO, rtx_equal_p(), SIGN_EXTEND, TARGET_SIDE_EFFECT_PREFIXES, UNITS_PER_WORD, and XEXP.
Definition at line 1563 of file cris.c.
References call_used_regs, cris_reg_saved_in_regsave_area(), current_function_args_size, current_function_calls_eh_return, current_function_epilogue_delay_list, current_function_outgoing_args_size, current_function_pretend_args_size, current_function_uses_pic_offset_table, flag_pic, frame_pointer_needed, get_frame_size(), get_insns(), NULL, NULL_RTX, PIC_OFFSET_TABLE_REGNUM, pic_offset_table_rtx, pop_topmost_sequence(), push_topmost_sequence(), reg_used_between_p(), regs_ever_live, reload_completed, STACK_POINTER_REGNUM, and TARGET_PROLOGUE_EPILOGUE.
Definition at line 2296 of file cris.c.
References addr(), alloc_EXPR_LIST(), change_address(), CONST0_RTX, const0_rtx, CRIS_ASSERT, dest, emit_insn(), end_sequence(), fatal_insn, gen_rtx_SET, GET_CODE, get_insns(), GET_MODE, insn, internal_error(), mem, MEM, mode, NULL, operand_subword(), plus_constant, refers_to_regno_p(), REG, REG_INC, REG_NOTES, REGNO, side_effects_p(), split_double(), src, start_sequence(), TRUE, UNITS_PER_WORD, val, words, and XEXP.
| static rtx cris_struct_value_rtx | ( | tree fntype | ATTRIBUTE_UNUSED, | |
| int incoming | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 3380 of file cris.c.
References CRIS_STRUCT_VALUE_REGNUM, gen_rtx_REG(), and Pmode.
Definition at line 1927 of file cris.c.
References default_elf_asm_named_section(), default_no_named_section(), and TARGET_ELF.
Definition at line 1939 of file cris.c.
References CONST, cris_no_symbol, cris_pic_symbol_type_of(), flag_pic, gcc_assert, gcc_unreachable, GET_CODE, PLUS, XEXP, and XINT.
Referenced by cris_legitimate_pic_operand().
| struct machine_function GTY | ( | () | ) | [read, write] |
| static int saved_regs_mentioned | ( | rtx | x | ) | [static] |
Definition at line 605 of file cris.c.
References call_used_regs, GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, i, REG, REGNO, RTX_CODE, saved_regs_mentioned(), SUBREG_REG, XEXP, and XVECLEN.
| int cris_cpu_version = CRIS_DEFAULT_CPU_VERSION |
| int cris_max_stackframe = 0 |
char cris_output_insn_is_bound = 0 [static] |
| struct gcc_target targetm = TARGET_INITIALIZER |
1.5.6