summaryrefslogtreecommitdiff
path: root/gcc/config/arm/arm.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/arm/arm.c')
-rw-r--r--gcc/config/arm/arm.c20
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;