rs6000.c (rs6000_override_options): Convert to tartet_flags_explicit.

* config/rs6000/rs6000.c (rs6000_override_options): Convert to
        tartet_flags_explicit.
        * config/rs6000/rs6000.h (MASK_MULTIPLE_SET, MASK_STRING_SET): Delete.
        Compact target_flags bits.
        (TARGET_MULTIPLE_SET, TARGET_STRING_SET): Delete.
        (TARGET_SWITCHES): Delete references to *_SET flags.

From-SVN: r60504
This commit is contained in:
David Edelsohn 2002-12-26 01:30:59 +00:00 committed by David Edelsohn
parent abd2dd6d22
commit b21fb038c9
3 changed files with 30 additions and 34 deletions

View File

@ -1,3 +1,12 @@
2002-12-25 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/rs6000.c (rs6000_override_options): Convert to
tartet_flags_explicit.
* config/rs6000/rs6000.h (MASK_MULTIPLE_SET, MASK_STRING_SET): Delete.
Compact target_flags bits.
(TARGET_MULTIPLE_SET, TARGET_STRING_SET): Delete.
(TARGET_SWITCHES): Delete references to *_SET flags.
Wed Dec 25 20:30:53 CET 2002 Jan Hubicka <jh@suse.cz>
* i386.md (memory attribute): Fix setcc attribute.

View File

@ -574,12 +574,12 @@ rs6000_override_options (default_cpu)
/* If -mmultiple or -mno-multiple was explicitly used, don't
override with the processor default */
if (TARGET_MULTIPLE_SET)
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_STRING_SET)
if ((target_flags_explicit & MASK_STRING) != 0)
target_flags = (target_flags & ~MASK_STRING) | string;
/* Don't allow -mmultiple or -mstring on little endian systems
@ -588,19 +588,19 @@ rs6000_override_options (default_cpu)
trap. The 750 does not cause an alignment trap (except when the
target is unaligned). */
if (! BYTES_BIG_ENDIAN && rs6000_cpu != PROCESSOR_PPC750)
if (!BYTES_BIG_ENDIAN && rs6000_cpu != PROCESSOR_PPC750)
{
if (TARGET_MULTIPLE)
{
target_flags &= ~MASK_MULTIPLE;
if (TARGET_MULTIPLE_SET)
if ((target_flags_explicit & MASK_MULTIPLE) != 0)
warning ("-mmultiple is not supported on little endian systems");
}
if (TARGET_STRING)
{
target_flags &= ~MASK_STRING;
if (TARGET_STRING_SET)
if ((target_flags_explicit & MASK_STRING) != 0)
warning ("-mstring is not supported on little endian systems");
}
}
@ -696,7 +696,7 @@ rs6000_override_options (default_cpu)
/* Set TARGET_AIX_STRUCT_RET last, after the ABI is determined.
If -maix-struct-return or -msvr4-struct-return was explicitly
used, don't override with the ABI default. */
if (!(target_flags & MASK_AIX_STRUCT_RET_SET))
if ((target_flags_explicit & MASK_AIX_STRUCT_RET) == 0)
{
if (DEFAULT_ABI == ABI_V4 && !DRAFT_V4_STRUCT_RET)
target_flags = (target_flags & ~MASK_AIX_STRUCT_RET);

View File

@ -162,30 +162,27 @@ extern int target_flags;
#define MASK_SOFT_FLOAT 0x00000800
/* Enable load/store multiple, even on PowerPC */
#define MASK_MULTIPLE 0x00001000
#define MASK_MULTIPLE_SET 0x00002000
#define MASK_MULTIPLE 0x00001000
/* Use string instructions for block moves */
#define MASK_STRING 0x00004000
#define MASK_STRING_SET 0x00008000
#define MASK_STRING 0x00002000
/* Disable update form of load/store */
#define MASK_NO_UPDATE 0x00010000
#define MASK_NO_UPDATE 0x00004000
/* Disable fused multiply/add operations */
#define MASK_NO_FUSED_MADD 0x00020000
#define MASK_NO_FUSED_MADD 0x00008000
/* Nonzero if we need to schedule the prolog and epilog. */
#define MASK_SCHED_PROLOG 0x00040000
#define MASK_SCHED_PROLOG 0x00010000
/* Use AltiVec instructions. */
#define MASK_ALTIVEC 0x00080000
#define MASK_ALTIVEC 0x00020000
/* Return small structures in memory (as the AIX ABI requires). */
#define MASK_AIX_STRUCT_RET 0x00100000
#define MASK_AIX_STRUCT_RET_SET 0x00200000
#define MASK_AIX_STRUCT_RET 0x00040000
/* The only remaining free bit is 0x00400000. sysv4.h uses
/* The only remaining free bits are 0x00780000. sysv4.h uses
0x00800000 -> 0x40000000, and 0x80000000 is not available
because target_flags is signed. */
@ -200,10 +197,8 @@ extern int target_flags;
#define TARGET_MINIMAL_TOC (target_flags & MASK_MINIMAL_TOC)
#define TARGET_64BIT (target_flags & MASK_64BIT)
#define TARGET_SOFT_FLOAT (target_flags & MASK_SOFT_FLOAT)
#define TARGET_MULTIPLE (target_flags & MASK_MULTIPLE)
#define TARGET_MULTIPLE_SET (target_flags & MASK_MULTIPLE_SET)
#define TARGET_MULTIPLE (target_flags & MASK_MULTIPLE)
#define TARGET_STRING (target_flags & MASK_STRING)
#define TARGET_STRING_SET (target_flags & MASK_STRING_SET)
#define TARGET_NO_UPDATE (target_flags & MASK_NO_UPDATE)
#define TARGET_NO_FUSED_MADD (target_flags & MASK_NO_FUSED_MADD)
#define TARGET_SCHED_PROLOG (target_flags & MASK_SCHED_PROLOG)
@ -293,18 +288,14 @@ extern int target_flags;
N_("Use hardware fp")}, \
{"soft-float", MASK_SOFT_FLOAT, \
N_("Do not use hardware fp")}, \
{"multiple", MASK_MULTIPLE | MASK_MULTIPLE_SET, \
{"multiple", MASK_MULTIPLE, \
N_("Generate load/store multiple instructions")}, \
{"no-multiple", - MASK_MULTIPLE, \
N_("Do not generate load/store multiple instructions")},\
{"no-multiple", MASK_MULTIPLE_SET, \
""}, \
{"string", MASK_STRING | MASK_STRING_SET, \
{"string", MASK_STRING, \
N_("Generate string instructions for block moves")},\
{"no-string", - MASK_STRING, \
N_("Do not generate string instructions for block moves")},\
{"no-string", MASK_STRING_SET, \
""}, \
{"update", - MASK_NO_UPDATE, \
N_("Generate load/store with update instructions")},\
{"no-update", MASK_NO_UPDATE, \
@ -321,17 +312,13 @@ extern int target_flags;
""}, \
{"no-sched-epilog", -MASK_SCHED_PROLOG, \
""}, \
{"aix-struct-return", MASK_AIX_STRUCT_RET | MASK_AIX_STRUCT_RET_SET, \
{"aix-struct-return", MASK_AIX_STRUCT_RET, \
N_("Return all structures in memory (AIX default)")},\
{"svr4-struct-return", - MASK_AIX_STRUCT_RET,\
{"svr4-struct-return", - MASK_AIX_STRUCT_RET, \
N_("Return small structures in registers (SVR4 default)")},\
{"svr4-struct-return",MASK_AIX_STRUCT_RET_SET,\
{"no-aix-struct-return", - MASK_AIX_STRUCT_RET, \
""},\
{"no-aix-struct-return", - MASK_AIX_STRUCT_RET,\
""},\
{"no-aix-struct-return", MASK_AIX_STRUCT_RET_SET,\
""},\
{"no-svr4-struct-return", MASK_AIX_STRUCT_RET | MASK_AIX_STRUCT_RET_SET,\
{"no-svr4-struct-return", MASK_AIX_STRUCT_RET, \
""},\
SUBTARGET_SWITCHES \
{"", TARGET_DEFAULT | MASK_SCHED_PROLOG, \