diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2013-07-16 07:48:53 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2013-07-16 07:48:53 +0000 |
commit | 6041792ec6b89f5e9eae79d8addbb0f706f9addd (patch) | |
tree | 05a286d63fb8d9fddb81195e6ff80a2f6ad8b2be /newlib/libc/machine/microblaze/strlen.c | |
parent | f6ddaa2a292bc9e4d5190a413c0b4c1fa7c81374 (diff) | |
download | cygnal-6041792ec6b89f5e9eae79d8addbb0f706f9addd.tar.gz cygnal-6041792ec6b89f5e9eae79d8addbb0f706f9addd.tar.bz2 cygnal-6041792ec6b89f5e9eae79d8addbb0f706f9addd.zip |
* configure.host: Change to microblaze*.
* libc/include/machine/ieeefp.h: Add __MICROBLAZEEL__.
* libc/machine/microblaze/mb_endian.h: New file.
* newlib/libc/machine/microblaze/strcmp.c: Add little endian support.
* newlib/libc/machine/microblaze/strcpy.c: Likewise.
* newlib/libc/machine/microblaze/strlen.c: Likewise.
* configure.in: Change to microblaze*.
* configure: Regenerate.
* microblaze/xilinx.ld: Remove OUTPUT_FORMAT.
Diffstat (limited to 'newlib/libc/machine/microblaze/strlen.c')
-rw-r--r-- | newlib/libc/machine/microblaze/strlen.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/newlib/libc/machine/microblaze/strlen.c b/newlib/libc/machine/microblaze/strlen.c index 82eede86e..51387cd9c 100644 --- a/newlib/libc/machine/microblaze/strlen.c +++ b/newlib/libc/machine/microblaze/strlen.c @@ -120,13 +120,16 @@ _DEFUN (strlen, (str), #else +#include "mb_endian.h" + asm volatile (" \n\ or r9, r0, r0 /* Index register */ \n\ check_alignment: \n\ andi r3, r5, 3 \n\ bnei r3, align_arg \n\ -len_loop: \n\ - lw r3, r5, r9 \n\ +len_loop: \n" + LOAD4BYTES("r3", "r5", "r9") +" \n\ pcmpbf r4, r3, r0 \n\ bnei r4, end_len \n\ brid len_loop \n\ |