* lib/target-supports.exp (check_effective_target_mips64): New
procedure.
* gcc.dg/lower-subreg-1.c: Require !mips64.
* gcc.dg/sibcall-3.c (ATTR): New macro.
(recurser_void1, recurser_void2): Use it.
* gcc.dg/sibcall-4.c: As for gcc.dg/sibcall-3.c.
* gcc.dg/tree-ssa/ssa-fre-3.c: Require !mips64.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128626
138bc75d-0d04-0410-961f-
82ee72b054a4
+2007-09-20 Richard Sandiford <rsandifo@nildram.co.uk>
+
+ * lib/target-supports.exp (check_effective_target_mips64): New
+ procedure.
+ * gcc.dg/lower-subreg-1.c: Require !mips64.
+ * gcc.dg/sibcall-3.c (ATTR): New macro.
+ (recurser_void1, recurser_void2): Use it.
+ * gcc.dg/sibcall-4.c: As for gcc.dg/sibcall-3.c.
+ * gcc.dg/tree-ssa/ssa-fre-3.c: Require !mips64.
+
2007-09-20 Tobias Schlüter <tobi@gcc.gnu.org>
* gfortran.dg/g77/19981216-0.f: Remove dg-warning annotation.
-/* { dg-do compile } */
+/* { dg-do compile { target { ! mips64 } } } */
/* { dg-options "-O -fdump-rtl-subreg" } */
/* { dg-require-effective-target ilp32 } */
extern void abort (void);
extern void exit (int);
-static void recurser_void1 (int);
-static void recurser_void2 (int);
+/* Sibcalls are not supported in MIPS16 mode, which has direct calls but
+ not direct jumps. */
+#ifdef __mips
+#define ATTR __attribute__((nomips16))
+#else
+#define ATTR
+#endif
+
+static ATTR void recurser_void1 (int);
+static ATTR void recurser_void2 (int);
extern void track (int);
int main ()
reasonably sure is to make them have the same contents (regarding the
n tests). */
-static void __attribute__((noinline))
+static void __attribute__((noinline)) ATTR
recurser_void1 (int n)
{
if (n == 0 || n == 7 || n == 8)
recurser_void2 (n + 1);
}
-static void __attribute__((noinline))
+static void __attribute__((noinline)) ATTR
recurser_void2 (int n)
{
if (n == 0 || n == 7 || n == 8)
extern void abort (void);
extern void exit (int);
-static void recurser_void1 (void);
-static void recurser_void2 (void);
+/* Sibcalls are not supported in MIPS16 mode, which has direct calls but
+ not direct jumps. */
+#ifdef __mips
+#define ATTR __attribute__((nomips16))
+#else
+#define ATTR
+#endif
+
+static ATTR void recurser_void1 (void);
+static ATTR void recurser_void2 (void);
extern void track (void);
int n = 0;
reasonably sure is to make them have the same contents (regarding the
n tests). */
-static void __attribute__((noinline))
+static void __attribute__((noinline)) ATTR
recurser_void1 (void)
{
if (n == 0 || n == 7 || n == 8)
recurser_void2 ();
}
-static void __attribute__((noinline))
+static void __attribute__((noinline)) ATTR
recurser_void2 (void)
{
if (n == 0 || n == 7 || n == 8)
-/* { dg-do compile } */
+/* This test requires:
+
+ TRULY_NOOP_TRUNCATION (sizeof (int) * CHAR_BIT,
+ sizeof (long long) * CHAR_BIT)
+
+ When the condition is true, we distribute "(int) (a + b)" as
+ "(int) a + (int) b", otherwise we keep the original. */
+/* { dg-do compile { target { ! mips64 } } } */
/* { dg-options "-O -fwrapv -fdump-tree-fre-details" } */
/* From PR14844. */
} "-mpaired-single"]
}
+# Return true if the target is a 64-bit MIPS target.
+
+proc check_effective_target_mips64 { } {
+ return [check_no_compiler_messages mips64 assembly {
+ #ifndef __mips64
+ #error FOO
+ #endif
+ }]
+}
+
# Return 1 if the current multilib does not generate PIC by default.
proc check_effective_target_nonpic { } {