m68hc11.c (m68hc11_check_z_replacement): Fix handling 68HC12 pre/post inc/dec side...
authorStephane Carrez <stcarrez@nerim.fr>
Thu, 16 Jan 2003 22:12:39 +0000 (23:12 +0100)
committerStephane Carrez <ciceron@gcc.gnu.org>
Thu, 16 Jan 2003 22:12:39 +0000 (23:12 +0100)
* config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix handling
68HC12 pre/post inc/dec side effects.

From-SVN: r61410

gcc/ChangeLog
gcc/config/m68hc11/m68hc11.c

index 93446796999b003c8143b1afd30cd8f126e110a8..2cbeff1fcf731b980143c3218397f05f84aa58cf 100644 (file)
@@ -1,3 +1,8 @@
+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.
index e7626a233051e8bdf18a3944aca74398170976bb..a45b4cac4f3c780115df5fdfafcb09657d6922a3 100644 (file)
@@ -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;
                    }