diff options
-rw-r--r-- | gcc/ChangeLog | 15 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000-cpus.def | 13 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 11 | ||||
-rw-r--r-- | libobjc/ChangeLog | 8 | ||||
-rw-r--r-- | libobjc/encoding.c | 26 |
5 files changed, 65 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6e87fadae85..6e44c8af097 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,18 @@ +2012-10-19 Michael Meissner <meissner@linux.vnet.ibm.com> + Dominique Dhumieres <dominiq@lps.ens.fr> + + * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Don't assume + OPTION_MASK_STRICT_ALIGN is defined. + (MASK_STRICT_ALIGN): If OPTION_MASK_STRICT_ALIGN is not defined, + define this to 0 for the 3 ports that use it. + + * config/rs6000/rs6000.c (OPTION_MASK_STRICT_ALIGN): Don't do + check for ports not having -mstrict-align here, move test to + rs6000-cpus.def. + (MASK_STRICT_ALIGN): Likewise. + (rs6000_debug_reg_global): Print out correct target flag words if + -mdebug=reg. + 2012-10-19 Marek Polacek <polacek@redhat.com> PR middle-end/54945 diff --git a/gcc/config/rs6000/rs6000-cpus.def b/gcc/config/rs6000/rs6000-cpus.def index fd43146495d..a0aadf1cf3e 100644 --- a/gcc/config/rs6000/rs6000-cpus.def +++ b/gcc/config/rs6000/rs6000-cpus.def @@ -46,6 +46,17 @@ #define POWERPC_7400_MASK (OPTION_MASK_PPC_GFXOPT | OPTION_MASK_ALTIVEC) +/* Deal with ports that do not have -mstrict-align. */ +#ifdef OPTION_MASK_STRICT_ALIGN +#define OPTION_MASK_STRICT_ALIGN_OPTIONAL OPTION_MASK_STRICT_ALIGN +#else +#define OPTION_MASK_STRICT_ALIGN 0 +#define OPTION_MASK_STRICT_ALIGN_OPTIONAL 0 +#ifndef MASK_STRICT_ALIGN +#define MASK_STRICT_ALIGN 0 +#endif +#endif + /* Mask of all options to set the default isa flags based on -mcpu=<xxx>. */ #define POWERPC_MASKS (OPTION_MASK_ALTIVEC \ | OPTION_MASK_CMPB \ @@ -64,7 +75,7 @@ | OPTION_MASK_PPC_GPOPT \ | OPTION_MASK_RECIP_PRECISION \ | OPTION_MASK_SOFT_FLOAT \ - | OPTION_MASK_STRICT_ALIGN \ + | OPTION_MASK_STRICT_ALIGN_OPTIONAL \ | OPTION_MASK_VSX) #endif diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 81dc6f32daa..02309d5001c 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -1121,10 +1121,6 @@ static const struct attribute_spec rs6000_attribute_table[] = { NULL, 0, 0, false, false, false, NULL, false } }; -#ifndef OPTION_MASK_STRICT_ALIGN -#define OPTION_MASK_STRICT_ALIGN 0 -#define MASK_STRICT_ALIGN 0 -#endif #ifndef TARGET_PROFILE_KERNEL #define TARGET_PROFILE_KERNEL 0 #endif @@ -1805,10 +1801,11 @@ rs6000_debug_reg_global (void) fprintf (stderr, DEBUG_FMT_S, "tune", "<none>"); cl_target_option_save (&cl_opts, &global_options); - rs6000_print_isa_options (stderr, 0, "target_flags", target_flags); + rs6000_print_isa_options (stderr, 0, "rs6000_isa_flags", + rs6000_isa_flags); - rs6000_print_isa_options (stderr, 0, "target_flags_explicit", - target_flags_explicit); + rs6000_print_isa_options (stderr, 0, "rs6000_isa_flags_explicit", + rs6000_isa_flags_explicit); rs6000_print_builtin_options (stderr, 0, "rs6000_builtin_mask", rs6000_builtin_mask); diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog index 9bccceaab89..53ceee35fcc 100644 --- a/libobjc/ChangeLog +++ b/libobjc/ChangeLog @@ -1,3 +1,11 @@ +2012-10-19 Michael Meissner <meissner@linux.vnet.ibm.com> + + * encoding.c (TARGET_VSX): Provide definitions based on the + current compilation options, and not based off the target options + structure. + (TARGET_ALTIVEC): Likewise. + (TARGET_64BIT): Likewise. + 2012-09-14 David Edelsohn <dje.gcc@gmail.com> * configure: Regenerated. diff --git a/libobjc/encoding.c b/libobjc/encoding.c index bd8b67e0e8b..7e33e738bb9 100644 --- a/libobjc/encoding.c +++ b/libobjc/encoding.c @@ -112,6 +112,32 @@ static int __attribute__ ((__unused__)) not_target_flags = 0; #undef ALTIVEC_VECTOR_MODE #define ALTIVEC_VECTOR_MODE(MODE) (0) +/* Replace TARGET_VSX, TARGET_ALTIVEC, and TARGET_64BIT with constants based on + the current switches, rather than looking in the options structure. */ +#ifdef _ARCH_PPC +#undef TARGET_VSX +#undef TARGET_ALTIVEC +#undef TARGET_64BIT + +#ifdef __VSX__ +#define TARGET_VSX 1 +#else +#define TARGET_VSX 0 +#endif + +#ifdef __ALTIVEC__ +#define TARGET_ALTIVEC 1 +#else +#define TARGET_ALTIVEC 0 +#endif + +#ifdef _ARCH_PPC64 +#define TARGET_64BIT 1 +#else +#define TARGET_64BIT 0 +#endif +#endif + /* Furthermore, some (powerpc) targets also use TARGET_ALIGN_NATURAL in their alignment macros. Currently[4.5/6], rs6000.h points this to a static variable, initialized by target overrides. This is reset |