⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mips.c

📁 linux下编程用 编译软件
💻 C
📖 第 1 页 / 共 5 页
字号:
   libgcc routine.  */#define SOFT_FP_COSTS COSTS_N_INSNS (256), /* fp_add */       \                      COSTS_N_INSNS (256), /* fp_mult_sf */   \                      COSTS_N_INSNS (256), /* fp_mult_df */   \                      COSTS_N_INSNS (256), /* fp_div_sf */    \                      COSTS_N_INSNS (256)  /* fp_div_df */static struct mips_rtx_cost_data const mips_rtx_cost_data[PROCESSOR_MAX] =  {    { /* R3000 */      COSTS_N_INSNS (2),            /* fp_add */      COSTS_N_INSNS (4),            /* fp_mult_sf */      COSTS_N_INSNS (5),            /* fp_mult_df */      COSTS_N_INSNS (12),           /* fp_div_sf */      COSTS_N_INSNS (19),           /* fp_div_df */      COSTS_N_INSNS (12),           /* int_mult_si */      COSTS_N_INSNS (12),           /* int_mult_di */      COSTS_N_INSNS (35),           /* int_div_si */      COSTS_N_INSNS (35),           /* int_div_di */                       1,           /* branch_cost */                       4            /* memory_latency */    },    { /* 4KC */      SOFT_FP_COSTS,      COSTS_N_INSNS (6),            /* int_mult_si */      COSTS_N_INSNS (6),            /* int_mult_di */      COSTS_N_INSNS (36),           /* int_div_si */      COSTS_N_INSNS (36),           /* int_div_di */                       1,           /* branch_cost */                       4            /* memory_latency */    },    { /* 4KP */      SOFT_FP_COSTS,      COSTS_N_INSNS (36),           /* int_mult_si */      COSTS_N_INSNS (36),           /* int_mult_di */      COSTS_N_INSNS (37),           /* int_div_si */      COSTS_N_INSNS (37),           /* int_div_di */                       1,           /* branch_cost */                       4            /* memory_latency */    },    { /* 5KC */      SOFT_FP_COSTS,      COSTS_N_INSNS (4),            /* int_mult_si */      COSTS_N_INSNS (11),           /* int_mult_di */      COSTS_N_INSNS (36),           /* int_div_si */      COSTS_N_INSNS (68),           /* int_div_di */                       1,           /* branch_cost */                       4            /* memory_latency */    },    { /* 5KF */      COSTS_N_INSNS (4),            /* fp_add */      COSTS_N_INSNS (4),            /* fp_mult_sf */      COSTS_N_INSNS (5),            /* fp_mult_df */      COSTS_N_INSNS (17),           /* fp_div_sf */      COSTS_N_INSNS (32),           /* fp_div_df */      COSTS_N_INSNS (4),            /* int_mult_si */      COSTS_N_INSNS (11),           /* int_mult_di */      COSTS_N_INSNS (36),           /* int_div_si */      COSTS_N_INSNS (68),           /* int_div_di */                       1,           /* branch_cost */                       4            /* memory_latency */    },    { /* 20KC */      DEFAULT_COSTS    },    { /* 24k */      COSTS_N_INSNS (8),            /* fp_add */      COSTS_N_INSNS (8),            /* fp_mult_sf */      COSTS_N_INSNS (10),           /* fp_mult_df */      COSTS_N_INSNS (34),           /* fp_div_sf */      COSTS_N_INSNS (64),           /* fp_div_df */      COSTS_N_INSNS (5),            /* int_mult_si */      COSTS_N_INSNS (5),            /* int_mult_di */      COSTS_N_INSNS (41),           /* int_div_si */      COSTS_N_INSNS (41),           /* int_div_di */                       1,           /* branch_cost */                       4            /* memory_latency */    },    { /* 24kx */      COSTS_N_INSNS (4),            /* fp_add */      COSTS_N_INSNS (4),            /* fp_mult_sf */      COSTS_N_INSNS (5),            /* fp_mult_df */      COSTS_N_INSNS (17),           /* fp_div_sf */      COSTS_N_INSNS (32),           /* fp_div_df */      COSTS_N_INSNS (5),            /* int_mult_si */      COSTS_N_INSNS (5),            /* int_mult_di */      COSTS_N_INSNS (41),           /* int_div_si */      COSTS_N_INSNS (41),           /* int_div_di */                       1,           /* branch_cost */                       4            /* memory_latency */    },    { /* M4k */      DEFAULT_COSTS    },    { /* R3900 */      COSTS_N_INSNS (2),            /* fp_add */      COSTS_N_INSNS (4),            /* fp_mult_sf */      COSTS_N_INSNS (5),            /* fp_mult_df */      COSTS_N_INSNS (12),           /* fp_div_sf */      COSTS_N_INSNS (19),           /* fp_div_df */      COSTS_N_INSNS (2),            /* int_mult_si */      COSTS_N_INSNS (2),            /* int_mult_di */      COSTS_N_INSNS (35),           /* int_div_si */      COSTS_N_INSNS (35),           /* int_div_di */                       1,           /* branch_cost */                       4            /* memory_latency */    },    { /* R6000 */      COSTS_N_INSNS (3),            /* fp_add */      COSTS_N_INSNS (5),            /* fp_mult_sf */      COSTS_N_INSNS (6),            /* fp_mult_df */      COSTS_N_INSNS (15),           /* fp_div_sf */      COSTS_N_INSNS (16),           /* fp_div_df */      COSTS_N_INSNS (17),           /* int_mult_si */      COSTS_N_INSNS (17),           /* int_mult_di */      COSTS_N_INSNS (38),           /* int_div_si */      COSTS_N_INSNS (38),           /* int_div_di */                       2,           /* branch_cost */                       6            /* memory_latency */    },    { /* R4000 */       COSTS_N_INSNS (6),           /* fp_add */       COSTS_N_INSNS (7),           /* fp_mult_sf */       COSTS_N_INSNS (8),           /* fp_mult_df */       COSTS_N_INSNS (23),          /* fp_div_sf */       COSTS_N_INSNS (36),          /* fp_div_df */       COSTS_N_INSNS (10),          /* int_mult_si */       COSTS_N_INSNS (10),          /* int_mult_di */       COSTS_N_INSNS (69),          /* int_div_si */       COSTS_N_INSNS (69),          /* int_div_di */                        2,          /* branch_cost */                        6           /* memory_latency */    },    { /* R4100 */      DEFAULT_COSTS    },    { /* R4111 */      DEFAULT_COSTS    },    { /* R4120 */      DEFAULT_COSTS    },    { /* R4130 */      /* The only costs that appear to be updated here are	 integer multiplication.  */      SOFT_FP_COSTS,      COSTS_N_INSNS (4),            /* int_mult_si */      COSTS_N_INSNS (6),            /* int_mult_di */      COSTS_N_INSNS (69),           /* int_div_si */      COSTS_N_INSNS (69),           /* int_div_di */                       1,           /* branch_cost */                       4            /* memory_latency */    },    { /* R4300 */      DEFAULT_COSTS    },    { /* R4600 */      DEFAULT_COSTS    },    { /* R4650 */      DEFAULT_COSTS    },    { /* R5000 */      COSTS_N_INSNS (6),            /* fp_add */      COSTS_N_INSNS (4),            /* fp_mult_sf */      COSTS_N_INSNS (5),            /* fp_mult_df */      COSTS_N_INSNS (23),           /* fp_div_sf */      COSTS_N_INSNS (36),           /* fp_div_df */      COSTS_N_INSNS (5),            /* int_mult_si */      COSTS_N_INSNS (5),            /* int_mult_di */      COSTS_N_INSNS (36),           /* int_div_si */      COSTS_N_INSNS (36),           /* int_div_di */                       1,           /* branch_cost */                       4            /* memory_latency */    },    { /* R5400 */      COSTS_N_INSNS (6),            /* fp_add */      COSTS_N_INSNS (5),            /* fp_mult_sf */      COSTS_N_INSNS (6),            /* fp_mult_df */      COSTS_N_INSNS (30),           /* fp_div_sf */      COSTS_N_INSNS (59),           /* fp_div_df */      COSTS_N_INSNS (3),            /* int_mult_si */      COSTS_N_INSNS (4),            /* int_mult_di */      COSTS_N_INSNS (42),           /* int_div_si */      COSTS_N_INSNS (74),           /* int_div_di */                       1,           /* branch_cost */                       4            /* memory_latency */    },    { /* R5500 */      COSTS_N_INSNS (6),            /* fp_add */      COSTS_N_INSNS (5),            /* fp_mult_sf */      COSTS_N_INSNS (6),            /* fp_mult_df */      COSTS_N_INSNS (30),           /* fp_div_sf */      COSTS_N_INSNS (59),           /* fp_div_df */      COSTS_N_INSNS (5),            /* int_mult_si */      COSTS_N_INSNS (9),            /* int_mult_di */      COSTS_N_INSNS (42),           /* int_div_si */      COSTS_N_INSNS (74),           /* int_div_di */                       1,           /* branch_cost */                       4            /* memory_latency */    },    { /* R7000 */      /* The only costs that are changed here are	 integer multiplication.  */      COSTS_N_INSNS (6),            /* fp_add */      COSTS_N_INSNS (7),            /* fp_mult_sf */      COSTS_N_INSNS (8),            /* fp_mult_df */      COSTS_N_INSNS (23),           /* fp_div_sf */      COSTS_N_INSNS (36),           /* fp_div_df */      COSTS_N_INSNS (5),            /* int_mult_si */      COSTS_N_INSNS (9),            /* int_mult_di */      COSTS_N_INSNS (69),           /* int_div_si */      COSTS_N_INSNS (69),           /* int_div_di */                       1,           /* branch_cost */                       4            /* memory_latency */    },    { /* R8000 */      DEFAULT_COSTS    },    { /* R9000 */      /* The only costs that are changed here are	 integer multiplication.  */      COSTS_N_INSNS (6),            /* fp_add */      COSTS_N_INSNS (7),            /* fp_mult_sf */      COSTS_N_INSNS (8),            /* fp_mult_df */      COSTS_N_INSNS (23),           /* fp_div_sf */      COSTS_N_INSNS (36),           /* fp_div_df */      COSTS_N_INSNS (3),            /* int_mult_si */      COSTS_N_INSNS (8),            /* int_mult_di */      COSTS_N_INSNS (69),           /* int_div_si */      COSTS_N_INSNS (69),           /* int_div_di */                       1,           /* branch_cost */                       4            /* memory_latency */    },    { /* SB1 */      COSTS_N_INSNS (4),            /* fp_add */      COSTS_N_INSNS (4),            /* fp_mult_sf */      COSTS_N_INSNS (4),            /* fp_mult_df */      COSTS_N_INSNS (24),           /* fp_div_sf */      COSTS_N_INSNS (32),           /* fp_div_df */      COSTS_N_INSNS (3),            /* int_mult_si */      COSTS_N_INSNS (4),            /* int_mult_di */      COSTS_N_INSNS (36),           /* int_div_si */      COSTS_N_INSNS (68),           /* int_div_di */                       1,           /* branch_cost */                       4            /* memory_latency */    },    { /* SR71000 */      DEFAULT_COSTS    },  };/* Nonzero if -march should decide the default value of MASK_SOFT_FLOAT.  */#ifndef MIPS_MARCH_CONTROLS_SOFT_FLOAT#define MIPS_MARCH_CONTROLS_SOFT_FLOAT 0#endif/* Initialize the GCC target structure.  */#undef TARGET_ASM_ALIGNED_HI_OP#define TARGET_ASM_ALIGNED_HI_OP "\t.half\t"#undef TARGET_ASM_ALIGNED_SI_OP#define TARGET_ASM_ALIGNED_SI_OP "\t.word\t"#undef TARGET_ASM_ALIGNED_DI_OP#define TARGET_ASM_ALIGNED_DI_OP "\t.dword\t"#undef TARGET_ASM_FUNCTION_PROLOGUE#define TARGET_ASM_FUNCTION_PROLOGUE mips_output_function_prologue#undef TARGET_ASM_FUNCTION_EPILOGUE#define TARGET_ASM_FUNCTION_EPILOGUE mips_output_function_epilogue#undef TARGET_ASM_SELECT_RTX_SECTION#define TARGET_ASM_SELECT_RTX_SECTION mips_select_rtx_section#undef TARGET_ASM_FUNCTION_RODATA_SECTION#define TARGET_ASM_FUNCTION_RODATA_SECTION mips_function_rodata_section#undef TARGET_SCHED_REORDER#define TARGET_SCHED_REORDER mips_sched_reorder#undef TARGET_SCHED_VARIABLE_ISSUE#define TARGET_SCHED_VARIABLE_ISSUE mips_variable_issue#undef TARGET_SCHED_ADJUST_COST#define TARGET_SCHED_ADJUST_COST mips_adjust_cost#undef TARGET_SCHED_ISSUE_RATE#define TARGET_SCHED_ISSUE_RATE mips_issue_rate#undef TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD#define TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD \  mips_multipass_dfa_lookahead#undef TARGET_DEFAULT_TARGET_FLAGS#define TARGET_DEFAULT_TARGET_FLAGS		\  (TARGET_DEFAULT				\   | TARGET_CPU_DEFAULT				\   | TARGET_ENDIAN_DEFAULT			\   | TARGET_FP_EXCEPTIONS_DEFAULT		\   | MASK_CHECK_ZERO_DIV			\   | MASK_FUSED_MADD)#undef TARGET_HANDLE_OPTION#define TARGET_HANDLE_OPTION mips_handle_option#undef TARGET_FUNCTION_OK_FOR_SIBCALL#define TARGET_FUNCTION_OK_FOR_SIBCALL mips_function_ok_for_sibcall#undef TARGET_VALID_POINTER_MODE#define TARGET_VALID_POINTER_MODE mips_valid_pointer_mode#undef TARGET_RTX_COSTS#define TARGET_RTX_COSTS mips_rtx_costs#undef TARGET_ADDRESS_COST#define TARGET_ADDRESS_COST mips_address_cost#undef TARGET_IN_SMALL_DATA_P#define TARGET_IN_SMALL_DATA_P mips_in_small_data_p#undef TARGET_MACHINE_DEPENDENT_REORG#define TARGET_MACHINE_DEPENDENT_REORG mips_reorg#undef TARGET_ASM_FILE_START#undef TARGET_ASM_FILE_END#define TARGET_ASM_FILE_START mips_file_start#define TARGET_ASM_FILE_END mips_file_end#undef TARGET_ASM_FILE_START_FILE_DIRECTIVE#define TARGET_ASM_FILE_START_FILE_DIRECTIVE true#undef TARGET_INIT_LIBFUNCS#define TARGET_INIT_LIBFUNCS mips_init_libfuncs#undef TARGET_BUILD_BUILTIN_VA_LIST#define TARGET_BUILD_BUILTIN_VA_LIST mips_build_builtin_va_list#undef TARGET_GIMPLIFY_VA_ARG_EXPR#define TARGET_GIMPLIFY_VA_ARG_EXPR mips_gimplify_va_arg_expr#undef TARGET_PROMOTE_FUNCTION_ARGS#define TARGET_PROMOTE_FUNCTION_ARGS hook_bool_tree_true#undef TARGET_PROMOTE_FUNCTION_RETURN#define TARGET_PROMOTE_FUNCTION_RETURN hook_bool_tree_true#undef TARGET_PROMOTE_PROTOTYPES#define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_true#undef TARGET_RETURN_IN_MEMORY#define TARGET_RETURN_IN_MEMORY mips_return_in_memory#undef TARGET_RETURN_IN_MSB#define TARGET_RETURN_IN_MSB mips_return_in_msb#undef TARGET_ASM_OUTPUT_MI_THUNK#define TARGET_ASM_OUTPUT_MI_THUNK mips_output_mi_thunk#undef TARGET_ASM_CAN_OUTPUT_MI_THUNK#define TARGET_ASM_CAN_OUTPUT_MI_THUNK hook_bool_tree_hwi_hwi_tree_true#undef TARGET_SETUP_INCOMING_VARARGS#define TARGET_SETUP_INCOMING_VARARGS mips_setup_incoming_varargs#undef TARGET_STRICT_ARGUMENT_NAMING#define TARGET_STRICT_ARGUMENT_NAMING mips_strict_argument_naming#undef TARGET_MUST_PASS_IN_STACK#define TARGET_MUST_PASS_IN_STACK must_pass_in_stack_var_size#undef TARGET_PASS_BY_REFERENCE#define TARGET_PASS_BY_REFERENCE mips_pass_by_reference#undef TARGET_CALLEE_COPIES#define TARGET_CALLEE_COPIES mips_callee_copies#undef TARGET_ARG_PARTIAL_BYTES#define TARGET_ARG_PARTIAL_BYTES mips_arg_partial_bytes#undef TARGET_VECTOR_MODE_SUPPORTED_P#define TARGET_VECTOR_MODE_SUPPORTED_P mips_vector_mode_supported_p#undef TARGET_INIT_BUILTINS#define TARGET_INIT_BUILTINS mips_init_builtins#undef TARGET_EXPAND_BUILTIN#define TARGET_EXPAND_BUILTIN mips_expand_builtin#undef TARGET_HAVE_TLS#define TARGET_HAVE_TLS HAVE_AS_TLS#undef TARGET_CANNOT_FORCE_CONST_MEM#define TARGET_CANNOT_FORCE_CONST_MEM mips_cannot_force_const_mem#undef TARGET_ENCODE_SECTION_INFO#define TARGET_ENCODE_SECTION_INFO mips_encode_section_info#undef TARGET_ATTRIBUTE_TABLE#define TARGET_ATTRIBUTE_TABLE mips_attribute_tablestruct gcc_target targetm = TARGET_INITIALIZER;/* Classify symbol X, which must be a SYMBOL_REF or a LABEL_REF.  */static enum mips_symbol_typemips_classify_symbol (rtx x){  if (GET_CODE (x) == LABEL_REF)    {      if (TARGET_MIPS16)	return SYMBOL_CONSTANT_POOL;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -