From 911633831fedbcc99d9a3d3d08ec20361cb12d57 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Sun, 25 Oct 2015 14:21:01 +0100 Subject: [PATCH] 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 --- gcc/ChangeLog | 7 ++++++- gcc/config/i386/i386.c | 2 +- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.target/i386/pr68084.c | 16 ++++++++++++++++ 4 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gcc.target/i386/pr68084.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4494d624f32..02f71b941b0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,10 +1,15 @@ +2015-10-25 Uros Bizjak + + PR target/68084 + * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code + for =@ccae. + 2015-10-23 Jan Hubicka 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 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 6fd4a564f1c..1bc6ef9caf9 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -46934,7 +46934,7 @@ ix86_md_asm_adjust (vec &outputs, vec &/*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 ad895f038a6..03f7f00e149 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-10-25 Uros Bizjak + + PR target/68084 + * gcc.target/i386/pr68084.c: New test. + 2015-10-25 Andre Vehreschild 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 00000000000..d3fa3e61253 --- /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" } } */ -- 2.30.2