Commit 8a61d227 by Michael Meissner

Let user choice of -mmultiple always override processor default.

From-SVN: r9228
parent 70e1449a
...@@ -154,6 +154,8 @@ rs6000_override_options () ...@@ -154,6 +154,8 @@ rs6000_override_options ()
int ptt_size = sizeof (processor_target_table) / sizeof (struct ptt); int ptt_size = sizeof (processor_target_table) / sizeof (struct ptt);
int multiple = TARGET_MULTIPLE; /* save current -mmultiple/-mno-multiple status */
profile_block_flag = 0; profile_block_flag = 0;
/* Identify the processor type */ /* Identify the processor type */
...@@ -177,6 +179,11 @@ rs6000_override_options () ...@@ -177,6 +179,11 @@ rs6000_override_options ()
rs6000_cpu = PROCESSOR_DEFAULT; rs6000_cpu = PROCESSOR_DEFAULT;
} }
} }
/* If -mmultiple or -mno-multiple was explicitly used, don't
override with the processor default */
if (TARGET_MULTIPLE_SET)
target_flags = (target_flags & ~MASK_MULTIPLE) | multiple;
} }
/* Return non-zero if this function is known to have a null epilogue. */ /* Return non-zero if this function is known to have a null epilogue. */
......
...@@ -155,6 +155,7 @@ extern int target_flags; ...@@ -155,6 +155,7 @@ extern int target_flags;
/* Enable load/store multiple, even on powerpc */ /* Enable load/store multiple, even on powerpc */
#define MASK_MULTIPLE 0x1000 #define MASK_MULTIPLE 0x1000
#define MASK_MULTIPLE_SET 0x2000
#define TARGET_POWER (target_flags & MASK_POWER) #define TARGET_POWER (target_flags & MASK_POWER)
#define TARGET_POWER2 (target_flags & MASK_POWER2) #define TARGET_POWER2 (target_flags & MASK_POWER2)
...@@ -169,6 +170,7 @@ extern int target_flags; ...@@ -169,6 +170,7 @@ extern int target_flags;
#define TARGET_64BIT (target_flags & MASK_64BIT) #define TARGET_64BIT (target_flags & MASK_64BIT)
#define TARGET_SOFT_FLOAT (target_flags & MASK_SOFT_FLOAT) #define TARGET_SOFT_FLOAT (target_flags & MASK_SOFT_FLOAT)
#define TARGET_MULTIPLE (target_flags & MASK_MULTIPLE) #define TARGET_MULTIPLE (target_flags & MASK_MULTIPLE)
#define TARGET_MULTIPLE_SET (target_flags & MASK_MULTIPLE_SET)
#define TARGET_HARD_FLOAT (! TARGET_SOFT_FLOAT) #define TARGET_HARD_FLOAT (! TARGET_SOFT_FLOAT)
...@@ -210,8 +212,9 @@ extern int target_flags; ...@@ -210,8 +212,9 @@ extern int target_flags;
{"no-minimal-toc", - MASK_MINIMAL_TOC}, \ {"no-minimal-toc", - MASK_MINIMAL_TOC}, \
{"hard-float", - MASK_SOFT_FLOAT}, \ {"hard-float", - MASK_SOFT_FLOAT}, \
{"soft-float", MASK_SOFT_FLOAT}, \ {"soft-float", MASK_SOFT_FLOAT}, \
{"multiple", MASK_MULTIPLE}, \ {"multiple", MASK_MULTIPLE | MASK_MULTIPLE_SET}, \
{"no-multiple", - MASK_MULTIPLE}, \ {"no-multiple", - MASK_MULTIPLE}, \
{"no-multiple", MASK_MULTIPLE_SET}, \
SUBTARGET_SWITCHES \ SUBTARGET_SWITCHES \
{"", TARGET_DEFAULT}} {"", TARGET_DEFAULT}}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment