diff options
author | Jakub Jelinek <jakub@redhat.com> | 2010-04-06 13:04:58 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2010-04-06 13:04:58 +0200 |
commit | 7d11d36899d0baad252742081bffc067149e31ee (patch) | |
tree | 592df7b8df8d0babd6c5ef97277c81226ee2ebf1 /gcc | |
parent | eb12d0ae3e7b97cf3e8edbe72c5dd46513ea8dfd (diff) | |
download | gcc-7d11d36899d0baad252742081bffc067149e31ee.zip gcc-7d11d36899d0baad252742081bffc067149e31ee.tar.gz gcc-7d11d36899d0baad252742081bffc067149e31ee.tar.bz2 |
re PR target/43638 (Internal compiler error with inline asm)
PR target/43638
* config/i386/i386.c (print_operand): Remove 'e' and 'E' code
handling.
* gcc.target/i386/pr43638.c: New test.
From-SVN: r157987
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 9 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr43638.c | 9 |
4 files changed, 20 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f181b05..15fe7d7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-04-06 Jakub Jelinek <jakub@redhat.com> + + PR target/43638 + * config/i386/i386.c (print_operand): Remove 'e' and 'E' code + handling. + 2010-04-06 Richard Guenther <rguenther@suse.de> PR middle-end/43661 diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 39b1da4..cfd2270 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -11390,7 +11390,6 @@ get_some_local_dynamic_name (void) L,W,B,Q,S,T -- print the opcode suffix for specified size of operand. C -- print opcode suffix for set/cmov insn. c -- like C, but print reversed condition - E,e -- likewise, but for compare-and-branch fused insn. F,f -- likewise, but for floating-point. O -- if HAVE_AS_IX86_CMOV_SUN_SYNTAX, expand to "w.", "l." or "q.", otherwise nothing @@ -11795,14 +11794,6 @@ print_operand (FILE *file, rtx x, int code) put_condition_code (GET_CODE (x), GET_MODE (XEXP (x, 0)), 1, 1, file); return; - case 'E': - put_condition_code (GET_CODE (x), CCmode, 0, 0, file); - return; - - case 'e': - put_condition_code (GET_CODE (x), CCmode, 1, 0, file); - return; - case 'H': /* It doesn't actually matter what mode we use here, as we're only going to use this for printing. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9df8395..7ea5901 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-04-06 Jakub Jelinek <jakub@redhat.com> + + PR target/43638 + * gcc.target/i386/pr43638.c: New test. + 2010-04-06 Richard Guenther <rguenther@suse.de> PR middle-end/43661 diff --git a/gcc/testsuite/gcc.target/i386/pr43638.c b/gcc/testsuite/gcc.target/i386/pr43638.c new file mode 100644 index 0000000..9af06ae --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr43638.c @@ -0,0 +1,9 @@ +/* PR target/43638 */ +/* { dg-do compile } */ + +void +foo (void) +{ + int x; + __asm __volatile ("mov $0,%e0" : "=r" (x)); /* { dg-error "invalid operand code" } */ +} |