diff options
author | DJ Delorie <dj@redhat.com> | 2009-09-24 16:40:36 -0400 |
---|---|---|
committer | DJ Delorie <dj@gcc.gnu.org> | 2009-09-24 16:40:36 -0400 |
commit | 18b802688624127aa26b3d75dd0ce41e06cbeee9 (patch) | |
tree | 34be4c7ed01776e2acc6a10a2efd50545d836eba | |
parent | 368908d82b2f308fd2d78c4ee286071f08efc902 (diff) | |
download | gcc-18b802688624127aa26b3d75dd0ce41e06cbeee9.tar.gz |
re PR target/41456 (unrecognized R constraint: R13)
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
-rw-r--r-- | gcc/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/config/m32c/m32c.c | 5 | ||||
-rw-r--r-- | gcc/config/m32c/m32c.h | 3 |
3 files changed, 19 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9fbcb517e32..3a8833d5a69 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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): diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c index a0689495aa0..4eeedb183e7 100644 --- a/gcc/config/m32c/m32c.c +++ b/gcc/config/m32c/m32c.c @@ -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) diff --git a/gcc/config/m32c/m32c.h b/gcc/config/m32c/m32c.h index 48e669b3da4..0f12158c0e4 100644 --- a/gcc/config/m32c/m32c.h +++ b/gcc/config/m32c/m32c.h @@ -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", \ |