]> gcc.gnu.org Git - gcc.git/commitdiff
re PR target/46436 (m68hc11-elf --enable-werror-always build fails)
authorJoern Rennecke <amylaar@spamcop.net>
Fri, 19 Nov 2010 18:40:24 +0000 (18:40 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Fri, 19 Nov 2010 18:40:24 +0000 (18:40 +0000)
PR target/46436
* config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
to accomodate 32 bit HOST_WIDE_INT.
(m68hc11_emit_logical): Remove unused variable insn.
(m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
this_insn_uses_iy before use.

From-SVN: r166952

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

index 4d467a2341e453dc3a809567dd0b6ebf74f02f02..0aaa0527db10da5099976a351dc51ff272ea21af 100644 (file)
@@ -1,3 +1,12 @@
+2010-11-19  Joern Rennecke  <amylaar@spamcop.net>
+
+       PR target/46436
+       * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
+       to accomodate 32 bit HOST_WIDE_INT.
+       (m68hc11_emit_logical): Remove unused variable insn.
+       (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
+       this_insn_uses_iy before use.
+
 2010-11-19  Joseph Myers  <joseph@codesourcery.com>
 
        PR c/46547
index 6e11a080bb23e44211fa79ca6c5d147f062b9fb0..08cb0390b2193d544999e4466d12d037e2e6812b 100644 (file)
@@ -1999,7 +1999,7 @@ m68hc11_gen_highpart (enum machine_mode mode, rtx x)
        }
       else if (mode == SImode)
        {
-         return gen_int_mode (val >> 32, SImode);
+         return gen_int_mode ((val >> 16) >> 16, SImode);
        }
     }
   if (mode == QImode && D_REG_P (x))
@@ -2967,8 +2967,6 @@ m68hc11_emit_logical (enum machine_mode mode, enum rtx_code code, rtx *operands)
     }
   else if (operands[1] != 0 && operands[2] != 0)
     {
-      rtx insn;
-
       if (!H_REG_P (operands[0]) && operands[3])
        {
          emit_move_insn (operands[3], operands[1]);
@@ -2976,15 +2974,13 @@ m68hc11_emit_logical (enum machine_mode mode, enum rtx_code code, rtx *operands)
                                  operands[3],
                                  gen_rtx_fmt_ee (code, mode,
                                                  operands[3], operands[2])));
-         insn = emit_move_insn (operands[0], operands[3]);
+         emit_move_insn (operands[0], operands[3]);
        }
       else
        {
-         insn = emit_insn (gen_rtx_SET (mode,
-                                        operands[0],
-                                        gen_rtx_fmt_ee (code, mode,
-                                                        operands[0],
-                                                        operands[2])));
+         emit_insn (gen_rtx_SET (mode, operands[0],
+                                 gen_rtx_fmt_ee (code, mode,
+                                                 operands[0], operands[2])));
        }
     }
 
@@ -4657,6 +4653,10 @@ m68hc11_check_z_replacement (rtx insn, struct replace_info *info)
     }
   if (GET_CODE (body) == CLOBBER)
     {
+      rtx dst = XEXP (body, 0);
+
+      this_insn_uses_ix = reg_mentioned_p (ix_reg, dst);
+      this_insn_uses_iy = reg_mentioned_p (iy_reg, dst);
 
       /* IX and IY are used at the same time, we have to restore
          the value of the scratch register before this insn.  */
This page took 0.115894 seconds and 5 git commands to generate.