aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorg-Johann Lay <avr@gjlay.de>2012-04-24 15:21:29 +0000
committerGeorg-Johann Lay <gjl@gcc.gnu.org>2012-04-24 15:21:29 +0000
commit59d9ade4aed3ea43d50dddd3bdc5fae06d3d40d7 (patch)
treee7cad6c122b3a54a49086f0af038c1fa8aa3f075
parent929eeacd4cb79f4fdea7d79ec7ad14da8e266d10 (diff)
downloadgcc-59d9ade4aed3ea43d50dddd3bdc5fae06d3d40d7.zip
gcc-59d9ade4aed3ea43d50dddd3bdc5fae06d3d40d7.tar.gz
gcc-59d9ade4aed3ea43d50dddd3bdc5fae06d3d40d7.tar.bz2
re PR target/53065 (ICE replace_reg_with_saved_mem, at caller-save.c:1125)
PR target/53065 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define. From-SVN: r186768
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/avr/avr.h5
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 27a67a5..9d55ef0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2012-04-24 Georg-Johann Lay <avr@gjlay.de>
+
+ PR target/53065
+ * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.
+
2012-04-24 Richard Guenther <rguenther@suse.de>
PR tree-optimization/53085
diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h
index bd5241c..591e21d 100644
--- a/gcc/config/avr/avr.h
+++ b/gcc/config/avr/avr.h
@@ -394,6 +394,11 @@ enum reg_class {
#define REGNO_OK_FOR_INDEX_P(NUM) 0
+#define HARD_REGNO_CALL_PART_CLOBBERED(REGNO, MODE) \
+ (((REGNO) < 18 && (REGNO) + GET_MODE_SIZE (MODE) > 18) \
+ || ((REGNO) < REG_Y && (REGNO) + GET_MODE_SIZE (MODE) > REG_Y) \
+ || ((REGNO) < REG_Z && (REGNO) + GET_MODE_SIZE (MODE) > REG_Z))
+
#define TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P hook_bool_mode_true
#define STACK_PUSH_CODE POST_DEC