aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephane Carrez <stcarrez@nerim.fr>2003-01-16 23:12:39 +0100
committerStephane Carrez <ciceron@gcc.gnu.org>2003-01-16 23:12:39 +0100
commit200097cc9a3d0355c61c8630a03e991563f91104 (patch)
treeb2c13d76c1164cfd46f6afa92bb2a8df1ac6ff08
parentcc23546e32749f51209852efb21fdce77e30ce8b (diff)
downloadgcc-200097cc9a3d0355c61c8630a03e991563f91104.zip
gcc-200097cc9a3d0355c61c8630a03e991563f91104.tar.gz
gcc-200097cc9a3d0355c61c8630a03e991563f91104.tar.bz2
m68hc11.c (m68hc11_check_z_replacement): Fix handling 68HC12 pre/post inc/dec side effects.
* config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix handling 68HC12 pre/post inc/dec side effects. From-SVN: r61410
-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 9344679..2cbeff1 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 e7626a2..a45b4ca 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;
}