aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-02-26 18:01:08 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1994-02-26 18:01:08 -0500
commit0b9ccabc3c5e637a794516c9b06bb492c56c77f7 (patch)
tree8c6bd4e320dda4647cc526fe59a4ddd70193f19f
parent4fe73cc129e2b244d4ae113844518028ff7df440 (diff)
downloadgcc-0b9ccabc3c5e637a794516c9b06bb492c56c77f7.zip
gcc-0b9ccabc3c5e637a794516c9b06bb492c56c77f7.tar.gz
gcc-0b9ccabc3c5e637a794516c9b06bb492c56c77f7.tar.bz2
(MASK_NO_SUM_IN_TOC, TARGET_NO_SUM_IN_TOC): New macros.
(MASK_MINIMAL_TOC): Change bit value. (TARGET_SWITCHES): Add -mno-sum-in-toc; use -mfull-toc instead of -mnormal-toc, other minor changes. From-SVN: r6634
-rw-r--r--gcc/config/rs6000/rs6000.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index aaf8f1c..dd5fb2b 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -89,6 +89,10 @@ extern int target_flags;
TOC overflows. */
#define MASK_NO_FP_IN_TOC 0x40
+/* Disable placing symbol+offset constants in the TOC; can be turned on when
+ the TOC overflows. */
+#define MASK_NO_SUM_IN_TOC 0x80
+
/* Output only one TOC entry per module. Normally linking fails if
there are more than 16K unique variables/constants in an executable. With
this option, linking fails only if there are more than 16K modules, or
@@ -96,7 +100,7 @@ extern int target_flags;
This is at the cost of having 2 extra loads and one extra store per
function, and one less allocatable register. */
-#define MASK_MINIMAL_TOC 0x80
+#define MASK_MINIMAL_TOC 0x100
#define TARGET_POWER (target_flags & MASK_POWER)
#define TARGET_POWER2 (target_flags & MASK_POWER2)
@@ -105,6 +109,7 @@ extern int target_flags;
#define TARGET_POWERPC64 (target_flags & MASK_POWERPC64)
#define TARGET_NEW_MNEMONICS (target_flags & MASK_NEW_MNEMONICS)
#define TARGET_NO_FP_IN_TOC (target_flags & MASK_NO_FP_IN_TOC)
+#define TARGET_NO_SUM_IN_TOC (target_flags & MASK_NO_SUM_IN_TOC)
#define TARGET_MINIMAL_TOC (target_flags & MASK_MINIMAL_TOC)
/* Run-time compilation parameters selecting different hardware subsets.
@@ -128,10 +133,14 @@ extern int target_flags;
{"no-powerpc64", -MASK_POWERPC64}, \
{"new-mnemonics", MASK_NEW_MNEMONICS}, \
{"old-mnemonics", -MASK_NEW_MNEMONICS}, \
- {"normal-toc", - (MASK_NO_FP_IN_TOC | MASK_MINIMAL_TOC)}, \
+ {"full-toc", - (MASK_NO_FP_IN_TOC | MASK_NO_SUM_IN_TOC \
+ | MASK_MINIMAL_TOC)}, \
{"fp-in-toc", - MASK_NO_FP_IN_TOC}, \
{"no-fp-in-toc", MASK_NO_FP_IN_TOC}, \
+ {"sum-in-toc", - MASK_NO_SUM_IN_TOC}, \
+ {"no-sum-in-toc", MASK_NO_SUM_IN_TOC}, \
{"minimal-toc", MASK_MINIMAL_TOC}, \
+ {"minimal-toc", - (MASK_NO_FP_IN_TOC | MASK_NO_SUM_IN_TOC)}, \
{"no-minimal-toc", - MASK_MINIMAL_TOC}, \
{"", TARGET_DEFAULT}}