aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2015-10-25 14:21:01 +0100
committerUros Bizjak <uros@gcc.gnu.org>2015-10-25 14:21:01 +0100
commit911633831fedbcc99d9a3d3d08ec20361cb12d57 (patch)
tree8354fa77587e9d3eed444153d1088e274f3531de
parentf2f5814e592e9c99c321e9983fb8f82949bcc9ea (diff)
downloadgcc-911633831fedbcc99d9a3d3d08ec20361cb12d57.zip
gcc-911633831fedbcc99d9a3d3d08ec20361cb12d57.tar.gz
gcc-911633831fedbcc99d9a3d3d08ec20361cb12d57.tar.bz2
re PR target/68084 (Inverted conditions generated for x86 inline assembly "flag output constraints")
PR target/68084 * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code for =@ccae. testsuite/ChangeLog: PR target/68084 * gcc.target/i386/pr68084.c: New test. From-SVN: r229296
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/i386/i386.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/i386/pr68084.c16
4 files changed, 28 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4494d62..02f71b9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,10 +1,15 @@
+2015-10-25 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/68084
+ * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
+ for =@ccae.
+
2015-10-23 Jan Hubicka <hubicka@ucw.cz>
PR ipa/pr67600
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
instance offset with offset of outer type.
- * g++.dg/torture/pr67600.C: New testcase.
2015-10-23 Jan Hubicka <hubicka@ucw.cz>
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 6fd4a56..1bc6ef9 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -46934,7 +46934,7 @@ ix86_md_asm_adjust (vec<rtx> &outputs, vec<rtx> &/*inputs*/,
if (con[1] == 0)
mode = CCAmode, code = EQ;
else if (con[1] == 'e' && con[2] == 0)
- mode = CCCmode, code = EQ;
+ mode = CCCmode, code = NE;
break;
case 'b':
if (con[1] == 0)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ad895f0..03f7f00 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2015-10-25 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/68084
+ * gcc.target/i386/pr68084.c: New test.
+
2015-10-25 Andre Vehreschild <vehre@gmx.de>
PR fortran/66927
diff --git a/gcc/testsuite/gcc.target/i386/pr68084.c b/gcc/testsuite/gcc.target/i386/pr68084.c
new file mode 100644
index 0000000..d3fa3e6
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr68084.c
@@ -0,0 +1,16 @@
+/* { dg-do compile } */
+/* { dg-options "-O" } */
+
+int x;
+
+void foo (void)
+{
+ char r;
+
+ asm ("" : "=@ccae"(r));
+
+ if (!r)
+ x = 0;
+}
+
+/* { dg-final { scan-assembler "jnc" } } */