This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[committed] PR 51931: force non-MIPS16ness for long-branch tests
- From: Richard Sandiford <rdsandiford at googlemail dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Sun, 22 Jan 2012 10:33:25 +0000
- Subject: [committed] PR 51931: force non-MIPS16ness for long-branch tests
The MIPS16 port has never handled long branches properly; see PR 51931
for the details. It isn't easy to xfail MIPS16-specific problems at
the dejagnu level because of -mflip-mips16, so the patch below forces
a nomips16 attribute instead.
Tested on mips64-linux-gnu and applied.
Richard
gcc/testsuite/
PR target/51931
* gcc.c-torture/compile/20001226-1.c: Add nomips16 attribute.
* g++.dg/opt/longbranch1.C: Likewise.
Index: gcc/testsuite/gcc.c-torture/compile/20001226-1.c
===================================================================
--- gcc/testsuite/gcc.c-torture/compile/20001226-1.c 2012-01-21 11:06:35.000000000 +0000
+++ gcc/testsuite/gcc.c-torture/compile/20001226-1.c 2012-01-21 11:24:26.000000000 +0000
@@ -21,6 +21,10 @@ #define C256(x,y) C64(x,y) C64(x,y+4) C6
#define C1024(x,y) C256(x,y) C256(x+16,y) C256(x+32,y) C256(x+48,y)
#define C4096(x,y) C1024(x,y) C1024(x,y+16) C1024(x,y+32) C1024(x,y+48)
+#ifdef __mips
+/* See PR 51931. */
+__attribute__((nomips16))
+#endif
unsigned foo(int x[64], int y[64])
{
C4096(x,y);
Index: gcc/testsuite/g++.dg/opt/longbranch1.C
===================================================================
--- gcc/testsuite/g++.dg/opt/longbranch1.C 2012-01-21 11:24:44.000000000 +0000
+++ gcc/testsuite/g++.dg/opt/longbranch1.C 2012-01-21 11:24:48.000000000 +0000
@@ -26,6 +26,10 @@ #define verymuchcode \
muchcode; muchcode; muchcode; muchcode; muchcode; muchcode; \
muchcode; muchcode; muchcode; muchcode; muchcode; muchcode
+#ifdef __mips
+/* See PR 51931. */
+__attribute__((nomips16))
+#endif
int
main (int argc, char **argv)
{