summaryrefslogtreecommitdiff
path: root/gcc/config/pdp11/pdp11.c
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-04 07:44:33 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2005-04-04 07:44:33 +0000
commit0a04a0322b8755ae29cef226d23f2fe470c43af5 (patch)
tree75ecd626acd03323c27d662f064484348860982c /gcc/config/pdp11/pdp11.c
parent98fc7ffa300b1dc33a609033b0fad285fb35373d (diff)
downloadgcc-0a04a0322b8755ae29cef226d23f2fe470c43af5.tar.gz
* config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
(TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45) (TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32) (TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE) (TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT) (TARGET_UNIX_ASM): Delete. (TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45. * config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM. * config/pdp11/pdp11.c (pdp11_handle_option): New function. (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults. * config/pdp11/pdp11.opt: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97525 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/pdp11/pdp11.c')
-rw-r--r--gcc/config/pdp11/pdp11.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/config/pdp11/pdp11.c b/gcc/config/pdp11/pdp11.c
index b0f6e3de391..9f37d589912 100644
--- a/gcc/config/pdp11/pdp11.c
+++ b/gcc/config/pdp11/pdp11.c
@@ -138,6 +138,7 @@ decode_pdp11_d (const struct real_format *fmt ATTRIBUTE_UNUSED,
/* This is where the condition code register lives. */
/* rtx cc0_reg_rtx; - no longer needed? */
+static bool pdp11_handle_option (size_t, const char *, int);
static rtx find_addr_reg (rtx);
static const char *singlemove_string (rtx *);
static bool pdp11_assemble_integer (rtx, unsigned int, int);
@@ -166,6 +167,12 @@ static bool pdp11_return_in_memory (tree, tree);
#undef TARGET_ASM_CLOSE_PAREN
#define TARGET_ASM_CLOSE_PAREN "]"
+#undef TARGET_DEFAULT_TARGET_FLAGS
+#define TARGET_DEFAULT_TARGET_FLAGS \
+ (MASK_FPU | MASK_45 | MASK_ABSHI_BUILTIN | TARGET_UNIX_ASM_DEFAULT)
+#undef TARGET_HANDLE_OPTION
+#define TARGET_HANDLE_OPTION pdp11_handle_option
+
#undef TARGET_RTX_COSTS
#define TARGET_RTX_COSTS pdp11_rtx_costs
@@ -174,6 +181,23 @@ static bool pdp11_return_in_memory (tree, tree);
struct gcc_target targetm = TARGET_INITIALIZER;
+/* Implement TARGET_HANDLE_OPTION. */
+
+static bool
+pdp11_handle_option (size_t code, const char *arg ATTRIBUTE_UNUSED,
+ int value ATTRIBUTE_UNUSED)
+{
+ switch (code)
+ {
+ case OPT_m10:
+ target_flags &= ~(MASK_40 | MASK_45);
+ return true;
+
+ default:
+ return true;
+ }
+}
+
/* Nonzero if OP is a valid second operand for an arithmetic insn. */
int