From 2cd11105ecf340589c6d0061599841acdf985619 Mon Sep 17 00:00:00 2001 From: Anatoly Sokolov Date: Tue, 27 Mar 2007 21:53:51 +0400 Subject: [PATCH] avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack pointer regs. * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack pointer regs. * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__" regs to "__SP_L__" and "__SP_H__". From-SVN: r123263 --- gcc/ChangeLog | 7 +++++++ gcc/config/avr/avr.c | 4 ++++ gcc/config/avr/avr.h | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7600b6e05f1..05a207e8fae 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2006-03-27 Anatoly Sokolov + + * config/avr/avr.c (avr_hard_regno_mode_ok): Disallow QImode in stack + pointer regs. + * config/avr/avr.h (REGISTER_NAMES): Rename "__SPL__" and "__SPH__" + regs to "__SP_L__" and "__SP_H__". + 2007-03-27 Richard Guenther * tree-dfa.c (get_ref_base_and_extent): Replace bit_offset and diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index 436c570bdf6..652c4bb79e8 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -5610,6 +5610,10 @@ jump_over_one_insn_p (rtx insn, rtx dest) int avr_hard_regno_mode_ok (int regno, enum machine_mode mode) { + /* Disallow QImode in stack pointer regs. */ + if ((regno == REG_SP || regno == (REG_SP + 1)) && mode == QImode) + return 0; + /* The only thing that can go into registers r28:r29 is a Pmode. */ if (regno == REG_Y && mode == Pmode) return 1; diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h index fb003ce0b2c..1dba48dfe8e 100644 --- a/gcc/config/avr/avr.h +++ b/gcc/config/avr/avr.h @@ -624,7 +624,7 @@ sprintf (STRING, "*.%s%lu", PREFIX, (unsigned long)(NUM)) "r8","r9","r10","r11","r12","r13","r14","r15", \ "r16","r17","r18","r19","r20","r21","r22","r23", \ "r24","r25","r26","r27","r28","r29","r30","r31", \ - "__SPL__","__SPH__","argL","argH"} + "__SP_L__","__SP_H__","argL","argH"} #define FINAL_PRESCAN_INSN(insn, operand, nop) final_prescan_insn (insn, operand,nop) -- 2.30.2