re PR target/10067 (GCC-3.2.2 outputs invalid asm on sparc64)
authorEric Botcazou <ebotcazou@libertysurf.fr>
Fri, 28 Mar 2003 09:10:43 +0000 (10:10 +0100)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Fri, 28 Mar 2003 09:10:43 +0000 (09:10 +0000)
PR target/10067
* config/sparc/sparc.md (jump pattern): Correct order
when issuing the annuling marker.

From-SVN: r64964

gcc/ChangeLog
gcc/config/sparc/sparc.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/ultrasp8.c [new file with mode: 0644]

index 8ebdc40140efc1ba19cf851975afe5dea51e2050..581d7588aff95beea960f9c2da263daa643b1e56 100644 (file)
@@ -1,3 +1,9 @@
+2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR target/10067
+       * config/sparc/sparc.md (jump pattern): Correct order
+       when issuing the annuling marker.
+
 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        PR c/8281
index aa3ebdb2c9a09bdf56548c307228c1bb9008d846..bc8c634ac18d49c18bdd7e2055f89d52c72660b5 100644 (file)
          == INSN_ADDRESSES (INSN_UID (insn))))
     return "b\t%l0%#";
   else
-    return TARGET_V9 ? "ba,pt%*\t%%xcc, %l0%(" : "b%*\t%l0%(";
+    return TARGET_V9 ? "ba%*,pt\t%%xcc, %l0%(" : "b%*\t%l0%(";
 }
   [(set_attr "type" "uncond_branch")])
 
index e34b6e11ea441351207baa5ea4f8dc9b927ab15a..5818881ca76466f32171446bb9fc760cac4dee65 100644 (file)
@@ -1,3 +1,7 @@
+2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * gcc.dg/ultrasp8.c: New test.
+
 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        * gcc.dg/ultrasp7.c: New test.
diff --git a/gcc/testsuite/gcc.dg/ultrasp8.c b/gcc/testsuite/gcc.dg/ultrasp8.c
new file mode 100644 (file)
index 0000000..9b0c8d9
--- /dev/null
@@ -0,0 +1,39 @@
+/* PR target/10067 */
+/* Originator: <dat94ali@ludat.lth.se> */
+/* { dg-do compile { target sparc-*-* } } */
+/* { dg-options "-O2 -m64 -mtune=supersparc" } */
+
+struct _reent;
+
+extern unsigned long __malloc_trim_threshold;
+extern unsigned long __malloc_top_pad;
+
+int _mallopt_r(struct _reent *reent_ptr, int param_number, int value)
+{
+  __malloc_lock(reent_ptr);
+
+  switch(param_number)
+  {
+    case -1:
+      __malloc_trim_threshold = value;
+      __malloc_unlock(reent_ptr);
+      return 1;
+
+    case -2:
+      __malloc_top_pad = value;
+      __malloc_unlock(reent_ptr);
+      return 1;
+
+    case -3:
+      __malloc_unlock(reent_ptr);
+      return 1;
+
+    case -4:
+      __malloc_unlock(reent_ptr);
+      return value == 0;
+
+    default:
+      __malloc_unlock(reent_ptr);
+      return 0;
+  }
+}