This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH]: Fix a pre/post/inc/dec side effect on HC12
- From: Stephane Carrez <stcarrez at nerim dot fr>
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 16 Jan 2003 23:19:33 +0100
- Subject: [PATCH]: Fix a pre/post/inc/dec side effect on HC12
Hi!
This patch fixes a pre/post +/- side effect that can occur on 68HC12.
Committed on 3_3 and mainline.
Stephane
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.
Index: config/m68hc11/m68hc11.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m68hc11/m68hc11.c,v
retrieving revision 1.59
diff -u -p -r1.59 m68hc11.c
--- config/m68hc11/m68hc11.c 15 Jan 2003 23:30:40 -0000 1.59
+++ config/m68hc11/m68hc11.c 16 Jan 2003 22:11:33 -0000
@@ -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;
}