summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorciceron <ciceron@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-16 22:12:39 +0000
committerciceron <ciceron@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-16 22:12:39 +0000
commitbbb1a791317eccd866842cb4e79b2986ca3c4619 (patch)
treeb2c13d76c1164cfd46f6afa92bb2a8df1ac6ff08 /gcc
parent33643032d70f56c4e00028da8185bcac4023e646 (diff)
downloadgcc-bbb1a791317eccd866842cb4e79b2986ca3c4619.tar.gz
* config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix handling
68HC12 pre/post inc/dec side effects. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61410 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/m68hc11/m68hc11.c16
2 files changed, 19 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 93446796999..2cbeff1fcf7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2003-01-16 Stephane Carrez <stcarrez@nerim.fr>
+ * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix handling
+ 68HC12 pre/post inc/dec side effects.
+
+2003-01-16 Stephane Carrez <stcarrez@nerim.fr>
+
* config/m68hc11/m68hc11.h (MASK_M6812): Define.
Thu Jan 16 21:50:25 2003 J"orn Rennecke <amylaar@onetel.net.uk>
diff --git a/gcc/config/m68hc11/m68hc11.c b/gcc/config/m68hc11/m68hc11.c
index e7626a23305..a45b4cac4f3 100644
--- a/gcc/config/m68hc11/m68hc11.c
+++ b/gcc/config/m68hc11/m68hc11.c
@@ -4341,7 +4341,13 @@ m68hc11_check_z_replacement (insn, info)
info->z_died = 1;
info->need_save_z = 0;
}
- else
+ else if (TARGET_M6812 && side_effects_p (src))
+ {
+ info->last = 0;
+ info->must_restore_reg = 0;
+ return 0;
+ }
+ else
{
info->save_before_last = 1;
}
@@ -4418,7 +4424,13 @@ m68hc11_check_z_replacement (insn, info)
info->z_died = 1;
info->need_save_z = 0;
}
- else
+ else if (TARGET_M6812 && side_effects_p (src))
+ {
+ info->last = 0;
+ info->must_restore_reg = 0;
+ return 0;
+ }
+ else
{
info->save_before_last = 1;
}