I checked in your patch along with my patches into the trunk. [gcc] 2012-10-19 Michael Meissner <meiss...@linux.vnet.ibm.com> Dominique Dhumieres <domi...@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. [libobjc] 2012-10-19 Michael Meissner <meiss...@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. Index: gcc/config/rs6000/rs6000.c =================================================================== --- gcc/config/rs6000/rs6000.c (revision 192622) +++ gcc/config/rs6000/rs6000.c (working copy) @@ -1121,10 +1121,6 @@ static const struct attribute_spec rs600 { 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); Index: gcc/config/rs6000/rs6000-cpus.def =================================================================== --- gcc/config/rs6000/rs6000-cpus.def (revision 192622) +++ gcc/config/rs6000/rs6000-cpus.def (working copy) @@ -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 Index: libobjc/encoding.c =================================================================== --- libobjc/encoding.c (revision 192622) +++ libobjc/encoding.c (working copy) @@ -112,6 +112,32 @@ static int __attribute__ ((__unused__)) #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 Index: libobjc/ChangeLog =================================================================== --- libobjc/ChangeLog (revision 192622) +++ libobjc/ChangeLog (working copy) @@ -1,3 +1,11 @@ +2012-10-19 Michael Meissner <meiss...@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....@gmail.com> * configure: Regenerated. -- Michael Meissner, IBM 5 Technology Place Drive, M/S 2757, Westford, MA 01886-3141, USA meiss...@linux.vnet.ibm.com fax +1 (978) 399-6899