diff options
author | Paul Brook <pbrook@gcc.gnu.org> | 2006-08-10 16:31:40 +0000 |
---|---|---|
committer | Paul Brook <pbrook@gcc.gnu.org> | 2006-08-10 16:31:40 +0000 |
commit | 9a1a473756a215d445473ffa9cd74d6bce177480 (patch) | |
tree | 39201ad1ce41700f59f0cee9ec14ce27d5607dd4 /gcc | |
parent | 4a93bc5db26653be6292c343c079f7f640743e1c (diff) | |
download | gcc-9a1a473756a215d445473ffa9cd74d6bce177480.zip gcc-9a1a473756a215d445473ffa9cd74d6bce177480.tar.gz gcc-9a1a473756a215d445473ffa9cd74d6bce177480.tar.bz2 |
final.c (final_scan_insn): Clear current_insn_predicate before outputting inline asm.
2006-08-10 Paul Brook <paul@codesourcery.com>
gcc/
* final.c (final_scan_insn): Clear current_insn_predicate before
outputting inline asm.
gcc/testsuite/
* gcc.target/arm/cond-asm.c: New test.
From-SVN: r116064
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/final.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 23 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/arm/cond-asm.c | 13 |
4 files changed, 36 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ddd2e67..5d6f9d5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-08-10 Paul Brook <paul@codesourcery.com> + + * final.c (final_scan_insn): Clear current_insn_predicate before + outputting inline asm. + 2006-08-10 Dorit Nuzman <dorit@il.ibm.com> PR tree-optimization/26197 diff --git a/gcc/final.c b/gcc/final.c index 13f724a..80b3913 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -1953,6 +1953,10 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED, int insn_code_number; const char *template; +#ifdef HAVE_conditional_execution + /* Reset this early so it is correct for ASM statements. */ + current_insn_predicate = NULL_RTX; +#endif /* An INSN, JUMP_INSN or CALL_INSN. First check for special kinds that recog doesn't recognize. */ @@ -2388,8 +2392,6 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED, #ifdef HAVE_conditional_execution if (GET_CODE (PATTERN (insn)) == COND_EXEC) current_insn_predicate = COND_EXEC_TEST (PATTERN (insn)); - else - current_insn_predicate = NULL_RTX; #endif #ifdef HAVE_cc0 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 55c187c..f08c34c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,19 +1,24 @@ +2006-08-10 Paul Brook <paul@codesourcery.com> + + * gcc.target/arm/cond-asm.c: New test. + 2006-08-10 Dorit Nuzman <dorit@il.ibm.com> PR tree-optimization/26197 * g++.dg/vect/param-max-aliased-pr26197.cc: New test. - * g++.dg/vect/vect.exp: Compile the new testxs with --param max-aliased-vops=0. + * g++.dg/vect/vect.exp: Compile the new tests with + --param max-aliased-vops=0. 2006-08-09 Lee Millward <lee.millward@codesourcery.com> - PR c++/28637 - * g++.dg/template/void3.C: New test. + PR c++/28637 + * g++.dg/template/void3.C: New test. - PR c++/28638 - * g++.dg/template/void4.C: New test. + PR c++/28638 + * g++.dg/template/void4.C: New test. -` PR c++/28640 - * g++.dg/template/void5.C: New test. + PR c++/28640 + * g++.dg/template/void5.C: New test. 2006-08-07 Danny Smith <dannysmith@users.sourceforge.net> @@ -23,9 +28,9 @@ 2006-08-07 Victor Kaplansky <victork@il.ibm.com> PR tree-optimizations/26969 - * gcc.dg/vect/vect.exp: Compile tests prefixed with + * gcc.dg/vect/vect.exp: Compile tests prefixed with "unswitch-loops" with -funswitch-loops. - * gcc.dg/vect/unswitch-loops-pr26969.c: New test. + * gcc.dg/vect/unswitch-loops-pr26969.c: New test. 2006-08-07 Eric Botcazou <ebotcazou@libertysurf.fr> diff --git a/gcc/testsuite/gcc.target/arm/cond-asm.c b/gcc/testsuite/gcc.target/arm/cond-asm.c new file mode 100644 index 0000000..450bd9d --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/cond-asm.c @@ -0,0 +1,13 @@ +/* Check that %? in inline asm expands to nothing. */ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ +/* { dg-require-effective-target arm32 } */ +int b; +int foo(int a) +{ + if (a) + b = 42; + asm ("test%?me":"=r"(a):"0"(a)); + return a; +} +/* { dg-final { scan-assembler "testme" } } */ |