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