diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/i386/i386.h | 14 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/asm-1.c | 9 |
4 files changed, 31 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index defdebb..b768b2d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-05-03 Alexandre Oliva <aoliva@redhat.com> + + PR target/16888 + * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names + for unavailable registers. + 2005-05-03 Kazu Hirata <kazu@cs.umass.edu> * tree-cfg.c (tree_forwarder_block_p): Fix a typo. diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 4ad8e2e..d65ce49 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -780,14 +780,14 @@ do { \ int i; \ for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) \ if (TEST_HARD_REG_BIT (reg_class_contents[(int)MMX_REGS], i)) \ - fixed_regs[i] = call_used_regs[i] = 1; \ + fixed_regs[i] = call_used_regs[i] = 1, reg_names[i] = ""; \ } \ if (! TARGET_SSE) \ { \ int i; \ for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) \ if (TEST_HARD_REG_BIT (reg_class_contents[(int)SSE_REGS], i)) \ - fixed_regs[i] = call_used_regs[i] = 1; \ + fixed_regs[i] = call_used_regs[i] = 1, reg_names[i] = ""; \ } \ if (! TARGET_80387 && ! TARGET_FLOAT_RETURNS_IN_80387) \ { \ @@ -796,7 +796,15 @@ do { \ COPY_HARD_REG_SET (x, reg_class_contents[(int)FLOAT_REGS]); \ for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) \ if (TEST_HARD_REG_BIT (x, i)) \ - fixed_regs[i] = call_used_regs[i] = 1; \ + fixed_regs[i] = call_used_regs[i] = 1, reg_names[i] = ""; \ + } \ + if (! TARGET_64BIT) \ + { \ + int i; \ + for (i = FIRST_REX_INT_REG; i <= LAST_REX_INT_REG; i++) \ + reg_names[i] = ""; \ + for (i = FIRST_REX_SSE_REG; i <= LAST_REX_SSE_REG; i++) \ + reg_names[i] = ""; \ } \ } while (0) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 41fd498..53428bf 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-05-03 Alexandre Oliva <aoliva@redhat.com> + + PR target/16888 + * gcc.target/i386/asm-1.c: New test. + 2005-05-03 Jakub Jelinek <jakub@redhat.com> PR rtl-optimization/21330 diff --git a/gcc/testsuite/gcc.target/i386/asm-1.c b/gcc/testsuite/gcc.target/i386/asm-1.c new file mode 100644 index 0000000..63e7af7 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/asm-1.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-options "-m32" } */ + +register unsigned int EAX asm ("r14"); /* { dg-error "register name" } */ + +void foo () +{ + EAX = 0; +} |