svn commit: trunk/uClibc/libc/string/bfin

vapier at uclibc.org vapier at uclibc.org
Tue Jun 27 03:35:44 UTC 2006


Author: vapier
Date: 2006-06-26 20:35:42 -0700 (Mon, 26 Jun 2006)
New Revision: 15526

Log:
blackfin needs NOPs after the loop end when the last statement in the loop is an if/jump

Modified:
   trunk/uClibc/libc/string/bfin/memchr.S
   trunk/uClibc/libc/string/bfin/strcmp.S


Changeset:
Modified: trunk/uClibc/libc/string/bfin/memchr.S
===================================================================
--- trunk/uClibc/libc/string/bfin/memchr.S	2006-06-26 23:59:17 UTC (rev 15525)
+++ trunk/uClibc/libc/string/bfin/memchr.S	2006-06-27 03:35:42 UTC (rev 15526)
@@ -37,8 +37,8 @@
 	R3 = B[P0++](Z);
 	CC = R3 == R1;
 	IF CC JUMP found;
+byte_loop_e:
 	NOP;
-byte_loop_e:
 
 failed:
 	R0=0;

Modified: trunk/uClibc/libc/string/bfin/strcmp.S
===================================================================
--- trunk/uClibc/libc/string/bfin/strcmp.S	2006-06-26 23:59:17 UTC (rev 15525)
+++ trunk/uClibc/libc/string/bfin/strcmp.S	2006-06-27 03:35:42 UTC (rev 15526)
@@ -65,6 +65,7 @@
 	cc |= az;	// true if either is zero
 	if cc jump zero4;	// leave if a zero somewhere
 endloop:
+	NOP;
 	cc = r1 == r2;
 
  // loop exits
@@ -103,6 +104,7 @@
 	cc &= an;
 	if !cc jump exitloop1;
 endloop1:
+	NOP;
 	r2 = B[p2++] (Z);
 
 exitloop1: // here means we found a zero or a difference.




More information about the uClibc-cvs mailing list