This is the mail archive of the gcc@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]

Re: Modifying ARM code generator for elimination of 8bit writes - need help


On Wed, Jul 19, 2006 at 01:24:59PM +0200, Rask Ingemann Lambertsen wrote:
> 
> The function named emit_move_insn() ought to do the trick here, but
> is perhaps a bit heavyweight for this purpose. Anyway, try this patch
> (untested), which should plug this particular hole:

There was an unbalanced parantheses. Here's an updated patch:

Index: gcc/config/arm/arm.c
===================================================================
--- gcc/config/arm/arm.c	(revision 115021)
+++ gcc/config/arm/arm.c	(working copy)
@@ -709,12 +709,15 @@
   TLS_LE32
 };
 
-/* Emit an insn that's a simple single-set.  Both the operands must be known
-   to be valid.  */
+/* Emit an insn that's a simple single-set if Y isn't a general operand.
+   Both the operands must be known to be valid.  */
 inline static rtx
 emit_set_insn (rtx x, rtx y)
 {
-  return emit_insn (gen_rtx_SET (VOIDmode, x, y));
+  if (general_operand (y, GET_MODE (x)))
+    return emit_move_insn (x, y);
+  else
+    return emit_insn (gen_rtx_SET (VOIDmode, x, y));
 }
 
 /* Return the number of bits set in VALUE.  */

-- 
Rask Ingemann Lambertsen


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