* config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
authorciceron <ciceron@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 2 Mar 2004 20:44:38 +0000 (20:44 +0000)
committerciceron <ciceron@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 2 Mar 2004 20:44:38 +0000 (20:44 +0000)
comparing with Z register.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78779 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 31cafc8..af21040 100644 (file)
@@ -1,3 +1,8 @@
+2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
+
+       * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
+       comparing with Z register.
+
 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
 
        * cfgloop.h (struct loop_desc): Removed.
index e5bca2e..a0e83c3 100644 (file)
@@ -4169,8 +4169,10 @@ m68hc11_check_z_replacement (rtx insn, struct replace_info *info)
        {
          if ((GET_CODE (src) == REG && REGNO (src) == HARD_Z_REGNUM)
              || (GET_CODE (src) == COMPARE &&
-                 (rtx_equal_p (XEXP (src, 0), z_reg)
-                  || rtx_equal_p (XEXP (src, 1), z_reg))))
+                 ((rtx_equal_p (XEXP (src, 0), z_reg)
+                    && H_REG_P (XEXP (src, 1)))
+                  || (rtx_equal_p (XEXP (src, 1), z_reg)
+                       && H_REG_P (XEXP (src, 0))))))
            {
              if (insn == info->first)
                {