diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2015-10-25 14:21:01 +0100 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2015-10-25 14:21:01 +0100 |
commit | 911633831fedbcc99d9a3d3d08ec20361cb12d57 (patch) | |
tree | 8354fa77587e9d3eed444153d1088e274f3531de | |
parent | f2f5814e592e9c99c321e9983fb8f82949bcc9ea (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr68084.c | 16 |
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" } } */ |