diff options
Diffstat (limited to 'gcc/config/arm/arm.c')
-rw-r--r-- | gcc/config/arm/arm.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index db27913b0d2..5bbe6acc909 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -140,6 +140,9 @@ static void arm_internal_label PARAMS ((FILE *, const char *, unsigned long)); static void arm_output_mi_thunk PARAMS ((FILE *, tree, HOST_WIDE_INT, HOST_WIDE_INT, tree)); +static int arm_rtx_costs_1 PARAMS ((rtx, enum rtx_code, + enum rtx_code)); +static bool arm_rtx_costs PARAMS ((rtx, int, int, int*)); #undef Hint #undef Mmode @@ -213,6 +216,9 @@ static void arm_output_mi_thunk PARAMS ((FILE *, tree, #undef TARGET_ASM_CAN_OUTPUT_MI_THUNK #define TARGET_ASM_CAN_OUTPUT_MI_THUNK default_can_output_mi_thunk_no_vcall +#undef TARGET_RTX_COSTS +#define TARGET_RTX_COSTS arm_rtx_costs + struct gcc_target targetm = TARGET_INITIALIZER; /* Obstack for minipool constant handling. */ @@ -2909,8 +2915,8 @@ thumb_legitimate_offset_p (mode, val) #define COSTS_N_INSNS(N) ((N) * 4 - 2) #endif -int -arm_rtx_costs (x, code, outer) +static inline int +arm_rtx_costs_1 (x, code, outer) rtx x; enum rtx_code code; enum rtx_code outer; @@ -3294,6 +3300,16 @@ arm_rtx_costs (x, code, outer) } } +static bool +arm_rtx_costs (x, code, outer_code, total) + rtx x; + int code, outer_code; + int *total; +{ + *total = arm_rtx_costs_1 (x, code, outer_code); + return true; +} + static int arm_adjust_cost (insn, link, dep, cost) rtx insn; |