Commit c2dba4ab by Aldy Hernandez Committed by Aldy Hernandez

sysv4.opt (mlittle): Handle.

	* config/rs6000/sysv4.opt (mlittle): Handle.

	* config/rs6000/rs6000.c (rs6000_handle_option): Set
	target_flags_explicit when appropriate.

From-SVN: r99675
parent 326a31e9
2005-05-11 Aldy Hernandez <aldyh@redhat.com>
* config/rs6000/sysv4.opt (mlittle): Handle.
* config/rs6000/rs6000.c (rs6000_handle_option): Set
target_flags_explicit when appropriate.
2005-05-13 J"orn Rennecke <joern.rennecke@st.com> 2005-05-13 J"orn Rennecke <joern.rennecke@st.com>
PR middle-end/20714: PR middle-end/20714:
......
...@@ -1553,18 +1553,25 @@ rs6000_handle_option (size_t code, const char *arg, int value) ...@@ -1553,18 +1553,25 @@ rs6000_handle_option (size_t code, const char *arg, int value)
case OPT_mno_power: case OPT_mno_power:
target_flags &= ~(MASK_POWER | MASK_POWER2 target_flags &= ~(MASK_POWER | MASK_POWER2
| MASK_MULTIPLE | MASK_STRING); | MASK_MULTIPLE | MASK_STRING);
target_flags_explicit |= (MASK_POWER | MASK_POWER2
| MASK_MULTIPLE | MASK_STRING);
break; break;
case OPT_mno_powerpc: case OPT_mno_powerpc:
target_flags &= ~(MASK_POWERPC | MASK_PPC_GPOPT target_flags &= ~(MASK_POWERPC | MASK_PPC_GPOPT
| MASK_PPC_GFXOPT | MASK_POWERPC64); | MASK_PPC_GFXOPT | MASK_POWERPC64);
target_flags_explicit |= (MASK_POWERPC | MASK_PPC_GPOPT
| MASK_PPC_GFXOPT | MASK_POWERPC64);
break; break;
case OPT_mfull_toc: case OPT_mfull_toc:
target_flags &= ~(MASK_MINIMAL_TOC | MASK_NO_FP_IN_TOC target_flags &= ~(MASK_MINIMAL_TOC | MASK_NO_FP_IN_TOC
| MASK_NO_SUM_IN_TOC); | MASK_NO_SUM_IN_TOC);
target_flags_explicit |= (MASK_MINIMAL_TOC | MASK_NO_FP_IN_TOC
| MASK_NO_SUM_IN_TOC);
#ifdef TARGET_USES_SYSV4_OPT #ifdef TARGET_USES_SYSV4_OPT
/* Note, V.4 no longer uses a normal TOC, so make -mfull-toc, be /* Note, V.4 no longer uses a normal TOC, so make -mfull-toc, be
just the same as -mminimal-toc. */ just the same as -mminimal-toc. */
target_flags |= MASK_MINIMAL_TOC; target_flags |= MASK_MINIMAL_TOC;
target_flags_explicit |= MASK_MINIMAL_TOC;
#endif #endif
break; break;
...@@ -1572,6 +1579,7 @@ rs6000_handle_option (size_t code, const char *arg, int value) ...@@ -1572,6 +1579,7 @@ rs6000_handle_option (size_t code, const char *arg, int value)
case OPT_mtoc: case OPT_mtoc:
/* Make -mtoc behave like -mminimal-toc. */ /* Make -mtoc behave like -mminimal-toc. */
target_flags |= MASK_MINIMAL_TOC; target_flags |= MASK_MINIMAL_TOC;
target_flags_explicit |= MASK_MINIMAL_TOC;
break; break;
#endif #endif
...@@ -1581,6 +1589,8 @@ rs6000_handle_option (size_t code, const char *arg, int value) ...@@ -1581,6 +1589,8 @@ rs6000_handle_option (size_t code, const char *arg, int value)
case OPT_m64: case OPT_m64:
#endif #endif
target_flags |= MASK_POWERPC64 | MASK_POWERPC | MASK_PPC_GFXOPT; target_flags |= MASK_POWERPC64 | MASK_POWERPC | MASK_PPC_GFXOPT;
target_flags_explicit |= MASK_POWERPC64 | MASK_POWERPC
| MASK_PPC_GFXOPT;
break; break;
#ifdef TARGET_USES_AIX64_OPT #ifdef TARGET_USES_AIX64_OPT
...@@ -1589,6 +1599,7 @@ rs6000_handle_option (size_t code, const char *arg, int value) ...@@ -1589,6 +1599,7 @@ rs6000_handle_option (size_t code, const char *arg, int value)
case OPT_m32: case OPT_m32:
#endif #endif
target_flags &= ~MASK_POWERPC64; target_flags &= ~MASK_POWERPC64;
target_flags_explicit |= MASK_POWERPC64;
break; break;
case OPT_minsert_sched_nops_: case OPT_minsert_sched_nops_:
...@@ -1598,25 +1609,34 @@ rs6000_handle_option (size_t code, const char *arg, int value) ...@@ -1598,25 +1609,34 @@ rs6000_handle_option (size_t code, const char *arg, int value)
case OPT_mminimal_toc: case OPT_mminimal_toc:
if (value == 1) if (value == 1)
{ {
target_flags &= ~MASK_NO_FP_IN_TOC; target_flags &= ~(MASK_NO_FP_IN_TOC | MASK_NO_SUM_IN_TOC);
target_flags &= ~MASK_NO_SUM_IN_TOC; target_flags_explicit |= (MASK_NO_FP_IN_TOC | MASK_NO_SUM_IN_TOC);
} }
break; break;
case OPT_mpower: case OPT_mpower:
if (value == 1) if (value == 1)
target_flags |= (MASK_MULTIPLE | MASK_STRING); {
target_flags |= (MASK_MULTIPLE | MASK_STRING);
target_flags_explicit |= (MASK_MULTIPLE | MASK_STRING);
}
break; break;
case OPT_mpower2: case OPT_mpower2:
if (value == 1) if (value == 1)
target_flags |= (MASK_POWER | MASK_MULTIPLE | MASK_STRING); {
target_flags |= (MASK_POWER | MASK_MULTIPLE | MASK_STRING);
target_flags_explicit |= (MASK_POWER | MASK_MULTIPLE | MASK_STRING);
}
break; break;
case OPT_mpowerpc_gpopt: case OPT_mpowerpc_gpopt:
case OPT_mpowerpc_gfxopt: case OPT_mpowerpc_gfxopt:
if (value == 1) if (value == 1)
target_flags |= MASK_POWERPC; {
target_flags |= MASK_POWERPC;
target_flags_explicit |= MASK_POWERPC;
}
break; break;
#if TARGET_ALTIVEC_VRSAVE != 0 #if TARGET_ALTIVEC_VRSAVE != 0
...@@ -1657,15 +1677,25 @@ rs6000_handle_option (size_t code, const char *arg, int value) ...@@ -1657,15 +1677,25 @@ rs6000_handle_option (size_t code, const char *arg, int value)
case OPT_mrelocatable: case OPT_mrelocatable:
if (value == 1) if (value == 1)
target_flags |= MASK_MINIMAL_TOC | MASK_NO_FP_IN_TOC; {
target_flags |= MASK_MINIMAL_TOC | MASK_NO_FP_IN_TOC;
target_flags_explicit |= MASK_MINIMAL_TOC | MASK_NO_FP_IN_TOC;
}
break; break;
case OPT_mrelocatable_lib: case OPT_mrelocatable_lib:
if (value == 1) if (value == 1)
target_flags |= MASK_RELOCATABLE | MASK_MINIMAL_TOC {
| MASK_NO_FP_IN_TOC; target_flags |= MASK_RELOCATABLE | MASK_MINIMAL_TOC
| MASK_NO_FP_IN_TOC;
target_flags_explicit |= MASK_RELOCATABLE | MASK_MINIMAL_TOC
| MASK_NO_FP_IN_TOC;
}
else else
target_flags &= ~MASK_RELOCATABLE; {
target_flags &= ~MASK_RELOCATABLE;
target_flags_explicit |= MASK_RELOCATABLE;
}
break; break;
#endif #endif
......
...@@ -53,10 +53,9 @@ mlittle-endian ...@@ -53,10 +53,9 @@ mlittle-endian
Target Report RejectNegative Mask(LITTLE_ENDIAN) Target Report RejectNegative Mask(LITTLE_ENDIAN)
Produce little endian code Produce little endian code
; FIXME: Need a way to specify an alias. mlittle
;mlittle Target Report RejectNegative Mask(LITTLE_ENDIAN) MaskExists
;Target Report RejectNegative Mask(LITTLE_ENDIAN) Produce little endian code
;Produce little endian code
mbig-endian mbig-endian
Target Report RejectNegative InverseMask(LITTLE_ENDIAN) Target Report RejectNegative InverseMask(LITTLE_ENDIAN)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment