arc.md (doloop_begin_i): Remove extra alignment; use (.&-4) idiom.
authorJoern Rennecke <joern.rennecke@embecosm.com>
Thu, 14 Nov 2013 18:53:25 +0000 (18:53 +0000)
committerJoern Rennecke <amylaar@gcc.gnu.org>
Thu, 14 Nov 2013 18:53:25 +0000 (18:53 +0000)
* config/arc/arc.md (doloop_begin_i): Remove extra alignment;
use (.&-4) idiom.

From-SVN: r204810

gcc/ChangeLog
gcc/config/arc/arc.md

index 5b80c66..e9ae5c9 100644 (file)
@@ -1,3 +1,8 @@
+2013-11-14  Joern Rennecke  <joern.rennecke@embecosm.com>
+
+       * config/arc/arc.md (doloop_begin_i): Remove extra alignment;
+       use (.&-4) idiom.
+
 2013-11-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
 
        * config/rs6000/sysv4le.h (LINUX64_DEFAULT_ABI_ELFv2): Define.
index baf3478..64b4162 100644 (file)
     {
       /* ??? Can do better for when a scratch register
         is known.  But that would require extra testing.  */
-      arc_clear_unalign ();
-      return ".p2align 2\;push_s r0\;add r0,pcl,%4-.+2\;sr r0,[2]; LP_START\;add r0,pcl,.L__GCC__LP%1-.+2\;sr r0,[3]; LP_END\;pop_s r0";
+      return "push_s r0\;add r0,pcl,%4-(.&-4)\;sr r0,[2]; LP_START\;add r0,pcl,.L__GCC__LP%1-(.&-4)\;sr r0,[3]; LP_END\;pop_s r0";
     }
   /* Check if the loop end is in range to be set by the lp instruction.  */
   size = INTVAL (operands[3]) < 2 ? 0 : 2048;