diff options
author | Nick Clifton <nickc@redhat.com> | 2011-10-18 11:35:17 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2011-10-18 11:35:17 +0000 |
commit | d6f6573a5ff9adbc16b76c5d91ba8f6ab401b822 (patch) | |
tree | 1af4a29cc88ab3ff3b012b42cb4cd8d774f13e7e /newlib/libc/machine/arm/arm_asm.h | |
parent | 53609fd238a7ba4e8e9b53378cef6087170add22 (diff) | |
download | cygnal-d6f6573a5ff9adbc16b76c5d91ba8f6ab401b822.tar.gz cygnal-d6f6573a5ff9adbc16b76c5d91ba8f6ab401b822.tar.bz2 cygnal-d6f6573a5ff9adbc16b76c5d91ba8f6ab401b822.zip |
* libc/machine/arm/Makefile.am (lib_a_SOURCES): Add memchr-stub.c,
memchr.S.
* libc/machine/arm/arm_asm.h: Add ifdef to allow it to be included
in .S files.
* libc/machine/arm/memchr-stub.c: New file - just selects what to
compile.
* libc/machine/arm/memchr.S: New file - ARMv6t2/v7 version.
* libc/machine/arm/Makefile.am (lib_a_SOURCES): Add strlen-armv7.S.
* libc/machine/arm/strlen-armv7.S: New file.
* libc/machine/arm/strlen.c: Add ifdef optimised code so it isn't
for v7 or 6t2.
* libc/machine/arm/Makefile.in: Regenerate.
Diffstat (limited to 'newlib/libc/machine/arm/arm_asm.h')
-rw-r--r-- | newlib/libc/machine/arm/arm_asm.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/newlib/libc/machine/arm/arm_asm.h b/newlib/libc/machine/arm/arm_asm.h index 2e0b1dd80..5a63a8d9e 100644 --- a/newlib/libc/machine/arm/arm_asm.h +++ b/newlib/libc/machine/arm/arm_asm.h @@ -62,7 +62,22 @@ /* Now some macros for common instruction sequences. */ +#ifdef __ASSEMBLER__ +.macro RETURN cond= +#if defined (_ISA_ARM_4T) || defined (_ISA_THUMB_1) + bx\cond lr +#else + mov\cond pc, lr +#endif +.endm + +.macro optpld base, offset=#0 +#if defined (_ISA_ARM_7) + pld [\base, \offset] +#endif +.endm +#else asm(".macro RETURN cond=\n\t" #if defined (_ISA_ARM_4T) || defined (_ISA_THUMB_1) "bx\\cond lr\n\t" @@ -78,5 +93,6 @@ asm(".macro optpld base, offset=#0\n\t" #endif ".endm" ); +#endif #endif /* ARM_ASM__H */ |