diff options
author | amodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-03-08 04:18:39 +0000 |
---|---|---|
committer | amodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-03-08 04:18:39 +0000 |
commit | 41a1086f628181e06f97fd82c38174bb05763863 (patch) | |
tree | b69e9c64f9dfb241b7db7c9b7fc0dc3890f2e01d | |
parent | b0f3cf7faa23733ccf4ba72294828fa178f1c906 (diff) | |
download | gcc-41a1086f628181e06f97fd82c38174bb05763863.tar.gz |
* config/rs6000/rs6000.c (rs6000_override_options): Don't override
-msoft-float by -mcpu. Consolidate similar code for MASK_MULTIPLE
and MASK_STRING.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@79094 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 21 |
2 files changed, 11 insertions, 16 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e41b0c98235..5fc25cf6f8d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-03-08 Alan Modra <amodra@bigpond.net.au> + + * config/rs6000/rs6000.c (rs6000_override_options): Don't override + -msoft-float by -mcpu. Consolidate similar code for MASK_MULTIPLE + and MASK_STRING. + 2004-03-07 Aldy Hernandez <aldyh@redhat.com> * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 569ad7d0251..f6dbf966aa8 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -715,11 +715,6 @@ rs6000_override_options (const char *default_cpu) const size_t ptt_size = ARRAY_SIZE (processor_target_table); - /* Save current -mmultiple/-mno-multiple status. */ - int multiple = TARGET_MULTIPLE; - /* Save current -mstring/-mno-string status. */ - int string = TARGET_STRING; - /* Some OSs don't support saving the high part of 64-bit registers on context switch. Other OSs don't support saving Altivec registers. On those OSs, we don't touch the MASK_POWERPC64 or MASK_ALTIVEC @@ -742,6 +737,10 @@ rs6000_override_options (const char *default_cpu) set_masks &= ~MASK_ALTIVEC; #endif + /* Don't override these by the processor default if given explicitly. */ + set_masks &= ~(target_flags_explicit + & (MASK_MULTIPLE | MASK_STRING | MASK_SOFT_FLOAT)); + /* Identify the processor type. */ rs6000_select[0].string = default_cpu; rs6000_cpu = TARGET_POWERPC64 ? PROCESSOR_DEFAULT64 : PROCESSOR_DEFAULT; @@ -777,17 +776,7 @@ rs6000_override_options (const char *default_cpu) /* If we are optimizing big endian systems for space, use the load/store multiple and string instructions. */ if (BYTES_BIG_ENDIAN && optimize_size) - target_flags |= MASK_MULTIPLE | MASK_STRING; - - /* If -mmultiple or -mno-multiple was explicitly used, don't - override with the processor default */ - if ((target_flags_explicit & MASK_MULTIPLE) != 0) - target_flags = (target_flags & ~MASK_MULTIPLE) | multiple; - - /* If -mstring or -mno-string was explicitly used, don't override - with the processor default. */ - if ((target_flags_explicit & MASK_STRING) != 0) - target_flags = (target_flags & ~MASK_STRING) | string; + target_flags |= ~target_flags_explicit & (MASK_MULTIPLE | MASK_STRING); /* Don't allow -mmultiple or -mstring on little endian systems unless the cpu is a 750, because the hardware doesn't support the |