This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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;
 		    }

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]