diff options
Diffstat (limited to 'libc/string')
-rw-r--r-- | libc/string/sh/sh4/memcpy.S | 2 | ||||
-rw-r--r-- | libc/string/sh/sh4/memmove.c | 6 | ||||
-rw-r--r-- | libc/string/sh/sh4/memset.S | 2 |
3 files changed, 7 insertions, 3 deletions
diff --git a/libc/string/sh/sh4/memcpy.S b/libc/string/sh/sh4/memcpy.S index efdaf8bba..252ef36eb 100644 --- a/libc/string/sh/sh4/memcpy.S +++ b/libc/string/sh/sh4/memcpy.S @@ -21,7 +21,7 @@ #include <sysdep.h> #include <endian.h> -#ifdef __LITTLE_ENDIAN__ +#if defined (__LITTLE_ENDIAN__) && defined (__SH_FPU_ANY__) #define MEMCPY_USES_FPU /* Use paired single precision load or store mode for 64-bit tranfering. * FPSCR.SZ=1,FPSCR.SZ=0 is well defined on both SH4-200 and SH4-300. diff --git a/libc/string/sh/sh4/memmove.c b/libc/string/sh/sh4/memmove.c index 4d52db2ca..62fe8187d 100644 --- a/libc/string/sh/sh4/memmove.c +++ b/libc/string/sh/sh4/memmove.c @@ -7,8 +7,11 @@ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */ -#include <string.h> +#ifndef __SH_FPU_ANY__ +#include "../../generic/memmove.c" +#else +#include <string.h> #define FPSCR_SR (1 << 20) #define STORE_FPSCR(x) __asm__ volatile("sts fpscr, %0" : "=r"(x)) @@ -115,3 +118,4 @@ void *memmove(void *dest, const void *src, size_t len) } libc_hidden_def(memmove) +#endif /*__SH_FPU_ANY__ */ diff --git a/libc/string/sh/sh4/memset.S b/libc/string/sh/sh4/memset.S index 1a57cb969..83f874612 100644 --- a/libc/string/sh/sh4/memset.S +++ b/libc/string/sh/sh4/memset.S @@ -17,7 +17,7 @@ #include <sysdep.h> -#ifdef __LITTLE_ENDIAN__ +#if defined (__LITTLE_ENDIAN__) && defined (__SH_FPU_ANY__) #define MEMSET_USES_FPU /* Use paired single precision load or store mode for 64-bit tranfering. * FPSCR.SZ=1,FPSCR.SZ=0 is well defined on both SH4-200 and SH4-300. |