From 957211c3f698ecfd5c674d50146f7bca4ac59d58 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Mon, 8 Mar 2004 04:18:39 +0000 Subject: [PATCH] rs6000.c (rs6000_override_options): Don't override -msoft-float by -mcpu. * config/rs6000/rs6000.c (rs6000_override_options): Don't override -msoft-float by -mcpu. Consolidate similar code for MASK_MULTIPLE and MASK_STRING. From-SVN: r79094 --- gcc/ChangeLog | 6 ++++++ gcc/config/rs6000/rs6000.c | 21 +++++---------------- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e41b0c9..5fc25cf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-03-08 Alan Modra + + * 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 * 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 569ad7d..f6dbf96 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 -- 2.7.4