This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
powerpc64-linux obvious fixes
- From: Alan Modra <amodra at bigpond dot net dot au>
- To: gcc-patches at gcc dot gnu dot org
- Date: Tue, 27 Jan 2004 22:17:26 +1030
- Subject: powerpc64-linux obvious fixes
Some obvious fixes. CPP_SYSV_SPEC is no longer used anywhere.
MASK_PROFILE_KERNEL wasn't adjusted when MASK_MFCRF was added to rs6000.h.
* config/rs6000/rs6000.h: Correct target_flags free bits comment.
(PREDICATE_CODES): Remove duplicate.
* config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
(SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
(MASK_PROFILE_KERNEL): Adjust define.
Applied mainline. Regression tested powerpc64-linux. These should go
on the gcc-3.4 branch too. OK?
Index: gcc/config/rs6000/linux64.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/linux64.h,v
retrieving revision 1.55
diff -u -p -r1.55 linux64.h
--- gcc/config/rs6000/linux64.h 23 Jan 2004 17:32:11 -0000 1.55
+++ gcc/config/rs6000/linux64.h 27 Jan 2004 10:56:37 -0000
@@ -100,6 +100,11 @@
{ \
if (!RS6000_BI_ARCH_P) \
error (INVALID_32BIT, "32"); \
+ if (TARGET_PROFILE_KERNEL) \
+ { \
+ target_flags &= ~MASK_PROFILE_KERNEL; \
+ error (INVALID_32BIT, "profile-kernel"); \
+ } \
} \
} \
while (0)
@@ -186,7 +191,7 @@
#endif
-#define MASK_PROFILE_KERNEL 0x00080000
+#define MASK_PROFILE_KERNEL 0x00100000
/* Non-standard profiling for kernels, which just saves LR then calls
_mcount without worrying about arg saves. The idea is to change
@@ -281,10 +286,6 @@
/* Override svr4.h */
#undef MD_EXEC_PREFIX
#undef MD_STARTFILE_PREFIX
-
-/* Override sysv4.h */
-#undef CPP_SYSV_SPEC
-#define CPP_SYSV_SPEC ""
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() \
Index: gcc/config/rs6000/rs6000.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.h,v
retrieving revision 1.307
diff -u -p -r1.307 rs6000.h
--- gcc/config/rs6000/rs6000.h 18 Jan 2004 21:36:34 -0000 1.307
+++ gcc/config/rs6000/rs6000.h 27 Jan 2004 10:56:40 -0000
@@ -193,9 +193,9 @@ extern int target_flags;
/* Use single field mfcr instruction. */
#define MASK_MFCRF 0x00080000
-/* The only remaining free bits are 0x00700000. sysv4.h uses
- 0x00800000 -> 0x40000000, and 0x80000000 is not available
- because target_flags is signed. */
+/* The only remaining free bits are 0x00600000. linux64.h uses
+ 0x00100000, and sysv4.h uses 0x00800000 -> 0x40000000.
+ 0x80000000 is not available because target_flags is signed. */
#define TARGET_POWER (target_flags & MASK_POWER)
#define TARGET_POWER2 (target_flags & MASK_POWER2)
@@ -2653,7 +2653,6 @@ extern char rs6000_reg_names[][8]; /* re
{"reg_or_logical_cint_operand", {SUBREG, REG, CONST_INT, CONST_DOUBLE}}, \
{"got_operand", {SYMBOL_REF, CONST, LABEL_REF}}, \
{"got_no_const_operand", {SYMBOL_REF, LABEL_REF}}, \
- {"rs6000_tls_symbol_ref", {SYMBOL_REF}}, \
{"easy_fp_constant", {CONST_DOUBLE}}, \
{"easy_vector_constant", {CONST_VECTOR}}, \
{"easy_vector_constant_add_self", {CONST_VECTOR}}, \
--
Alan Modra
IBM OzLabs - Linux Technology Centre