From ae15736e2d7c411ecedba356c112ae7a134fc62c Mon Sep 17 00:00:00 2001
From: Joern Rennecke <amylaar@spamcop.net>
Date: Mon, 8 Nov 2010 19:44:42 +0000
Subject: [PATCH] =?UTF-8?q?re=20PR=20target/44757=20(lm32.md:=20In=20funct?=
 =?UTF-8?q?ion=20=E2=80=98gen=5Fashlsi3=E2=80=99:unused=20variable=20?=
 =?UTF-8?q?=E2=80=98one=E2=80=99)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

2010-11-08  Joern Rennecke  <amylaar@spamcop.net>
	    Richard Henderson <rth@redhat.com>

	PR target/44757
	* config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
	lm32_legitimate_constant_p.
	* config/lm32/lm32.md (ashlsi3): Remove unused variable.
	* config/lm32/lm32.c (gen_int_relational): Make new block for
	LE / LT / LEU / LTU case.  Declare variables at start of block.
	(lm32_block_move_inline): Use XALLOCAVEC.

Co-Authored-By: Richard Henderson <rth@redhat.com>

From-SVN: r166451
---
 gcc/ChangeLog           |  8 ++++++++
 gcc/config/lm32/lm32.c  | 22 +++++++++++++---------
 gcc/config/lm32/lm32.h  |  2 +-
 gcc/config/lm32/lm32.md |  1 -
 4 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9dafa80cd3b2..49378ae057dc 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -39,6 +39,14 @@
 	(bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
 	(frv_read_argument): Use expand_normal.
 
+	PR target/44757 
+	* config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
+	lm32_legitimate_constant_p.
+	* config/lm32/lm32.md (ashlsi3): Remove unused variable.
+	* config/lm32/lm32.c (gen_int_relational): Make new block for
+	LE / LT / LEU / LTU case.  Declare variables at start of block.
+	(lm32_block_move_inline): Use XALLOCAVEC.
+
 2010-11-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
 	* config/i386/i386.c (ix86_function_arg_boundary): Fix warning
diff --git a/gcc/config/lm32/lm32.c b/gcc/config/lm32/lm32.c
index 18a4b4403cd5..ef09377626dd 100644
--- a/gcc/config/lm32/lm32.c
+++ b/gcc/config/lm32/lm32.c
@@ -191,18 +191,22 @@ gen_int_relational (enum rtx_code code,
     case LT:
     case LEU:
     case LTU:
-      code = swap_condition (code);
-      rtx temp = cmp0;
-      cmp0 = cmp1;
-      cmp1 = temp;
-      break;
+      {
+	rtx temp;
+
+	code = swap_condition (code);
+	temp = cmp0;
+	cmp0 = cmp1;
+	cmp1 = temp;
+	break;
+      }
     default:
       break;
     }
 
   if (branch_p)
     {
-      rtx insn;
+      rtx insn, cond, label;
 
       /* Operands must be in registers.  */
       if (!register_operand (cmp0, mode))
@@ -211,8 +215,8 @@ gen_int_relational (enum rtx_code code,
 	cmp1 = force_reg (mode, cmp1);
 
       /* Generate conditional branch instruction.  */
-      rtx cond = gen_rtx_fmt_ee (code, mode, cmp0, cmp1);
-      rtx label = gen_rtx_LABEL_REF (VOIDmode, destination);
+      cond = gen_rtx_fmt_ee (code, mode, cmp0, cmp1);
+      label = gen_rtx_LABEL_REF (VOIDmode, destination);
       insn = gen_rtx_SET (VOIDmode, pc_rtx,
 			  gen_rtx_IF_THEN_ELSE (VOIDmode,
 						cond, label, pc_rtx));
@@ -841,7 +845,7 @@ lm32_block_move_inline (rtx dest, rtx src, HOST_WIDE_INT length,
   delta = bits / BITS_PER_UNIT;
 
   /* Allocate a buffer for the temporary registers.  */
-  regs = alloca (sizeof (rtx) * length / delta);
+  regs = XALLOCAVEC (rtx, length / delta);
 
   /* Load as many BITS-sized chunks as possible.  */
   for (offset = 0, i = 0; offset + delta <= length; offset += delta, i++)
diff --git a/gcc/config/lm32/lm32.h b/gcc/config/lm32/lm32.h
index c87c3bb705a2..1c10f16c812d 100644
--- a/gcc/config/lm32/lm32.h
+++ b/gcc/config/lm32/lm32.h
@@ -350,7 +350,7 @@ enum reg_class
 #define REG_OK_FOR_BASE_P(X) NONSTRICT_REG_OK_FOR_BASE_P(X)
 #endif
 
-#define LEGITIMATE_CONSTANT_P(X) lm32_legitimate_constant_p
+#define LEGITIMATE_CONSTANT_P(X) lm32_legitimate_constant_p (X)
 
 /*-------------------------*/
 /* Condition Code Status.  */
diff --git a/gcc/config/lm32/lm32.md b/gcc/config/lm32/lm32.md
index 6d4305380c0b..72c0d843c0b2 100644
--- a/gcc/config/lm32/lm32.md
+++ b/gcc/config/lm32/lm32.md
@@ -824,7 +824,6 @@
         {
           int i;
           int shifts = INTVAL (operands[2]);
-          rtx one = GEN_INT (1);
           
           if (shifts == 0)
             emit_move_insn (operands[0], operands[1]);
-- 
GitLab