re PR target/41456 (unrecognized R constraint: R13)
authorDJ Delorie <dj@redhat.com>
Thu, 24 Sep 2009 20:40:36 +0000 (16:40 -0400)
committerDJ Delorie <dj@gcc.gnu.org>
Thu, 24 Sep 2009 20:40:36 +0000 (16:40 -0400)
PR target/41456
* config/m32c/m32c.h (REG_CLASS_CONTENTS): Add R13.
(reg_class): Likewise.
(REG_CLASS_NAMES): Likewise.
* config/m32c/m32c.c (m32c_reg_class_from_constraint): Likewise.

* config/m32c/m32c.c (m32c_override_options): Disable -fivopts for
M32C.

From-SVN: r152144

gcc/ChangeLog
gcc/config/m32c/m32c.c
gcc/config/m32c/m32c.h

index 9fbcb51..3a8833d 100644 (file)
@@ -1,3 +1,14 @@
+2009-09-24  DJ Delorie  <dj@redhat.com>
+
+       PR target/41456
+       * config/m32c/m32c.h (REG_CLASS_CONTENTS): Add R13.
+       (reg_class): Likewise.
+       (REG_CLASS_NAMES): Likewise.
+       * config/m32c/m32c.c (m32c_reg_class_from_constraint): Likewise.
+       
+       * config/m32c/m32c.c (m32c_override_options): Disable -fivopts for
+       M32C.
+
 2009-09-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
 
        * config/rs6000/predicates.md (indexed_or_indirect_operand):
index a068949..4eeedb1 100644 (file)
@@ -422,6 +422,9 @@ m32c_override_options (void)
     }
   else
     target_memregs = 16;
+
+  if (TARGET_A24)
+    flag_ivopts = 0;
 }
 
 /* Defining data structures for per-function information */
@@ -638,6 +641,8 @@ m32c_reg_class_from_constraint (char c ATTRIBUTE_UNUSED, const char *s)
     return R3_REGS;
   if (memcmp (s, "R02", 3) == 0)
     return R02_REGS;
+  if (memcmp (s, "R13", 3) == 0)
+    return R13_REGS;
   if (memcmp (s, "R03", 3) == 0)
     return R03_REGS;
   if (memcmp (s, "Rdi", 3) == 0)
index 48e669b..0f12158 100644 (file)
@@ -277,6 +277,7 @@ machine_function;
   { 0x00000002 }, /* R2  - r2 */\
   { 0x00000008 }, /* R3  - r3 */\
   { 0x00000003 }, /* R02 - r0r2 */\
+  { 0x0000000c }, /* R13 - r1r3 */\
   { 0x00000005 }, /* HL  - r0 r1 */\
   { 0x00000005 }, /* QI  - r0 r1 */\
   { 0x0000000a }, /* R23 - r2 r3 */\
@@ -316,6 +317,7 @@ enum reg_class
   R2_REGS,
   R3_REGS,
   R02_REGS,
+  R13_REGS,
   HL_REGS,
   QI_REGS,
   R23_REGS,
@@ -357,6 +359,7 @@ enum reg_class
 "R2_REGS", \
 "R3_REGS", \
 "R02_REGS", \
+"R13_REGS", \
 "HL_REGS", \
 "QI_REGS", \
 "R23_REGS", \