aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/pdp11/pdp11.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/pdp11/pdp11.c')
-rw-r--r--gcc/config/pdp11/pdp11.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/config/pdp11/pdp11.c b/gcc/config/pdp11/pdp11.c
index 5629718..2812e95 100644
--- a/gcc/config/pdp11/pdp11.c
+++ b/gcc/config/pdp11/pdp11.c
@@ -145,6 +145,7 @@ decode_pdp11_d (const struct real_format *fmt ATTRIBUTE_UNUSED,
/* rtx cc0_reg_rtx; - no longer needed? */
static bool pdp11_handle_option (size_t, const char *, int);
+static void pdp11_option_optimization (int, int);
static rtx find_addr_reg (rtx);
static const char *singlemove_string (rtx *);
static bool pdp11_assemble_integer (rtx, unsigned int, int);
@@ -182,6 +183,8 @@ static void pdp11_trampoline_init (rtx, tree, rtx);
(MASK_FPU | MASK_45 | MASK_ABSHI_BUILTIN | TARGET_UNIX_ASM_DEFAULT)
#undef TARGET_HANDLE_OPTION
#define TARGET_HANDLE_OPTION pdp11_handle_option
+#undef TARGET_OPTION_OPTIMIZATION
+#define TARGET_OPTION_OPTIMIZATION pdp11_option_optimization
#undef TARGET_RTX_COSTS
#define TARGET_RTX_COSTS pdp11_rtx_costs
@@ -218,6 +221,21 @@ pdp11_handle_option (size_t code, const char *arg ATTRIBUTE_UNUSED,
}
}
+/* Implement TARGET_OPTION_OPTIMIZATION. */
+
+static void
+pdp11_option_optimization (int level, int size ATTRIBUTE_UNUSED)
+{
+ flag_finite_math_only = 0;
+ flag_trapping_math = 0;
+ flag_signaling_nans = 0;
+ if (level >= 3)
+ {
+ flag_omit_frame_pointer = 1;
+ /* flag_unroll_loops = 1; */
+ }
+}
+
/* Nonzero if OP is a valid second operand for an arithmetic insn. */
int