Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: C12832 EthernetInterface LM75B MMA7660 MQTT mbed-rtos mbed
Fork of IBMIoTClientEthernetExample by
Diff: EthernetInterface/lwip-sys/arch/memcpy.c
- Revision:
- 9:58eb378727d9
- Parent:
- 8:80d49dd91542
- Child:
- 10:0b5e0dfee08e
--- a/EthernetInterface/lwip-sys/arch/memcpy.c Wed Oct 01 13:27:35 2014 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/* Copyright (C) 2013 - Adam Green (https://github.com/adamgreen)
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
-#if defined(TOOLCHAIN_GCC) && defined(__thumb2__)
-
-#include <stdio.h>
-
-
-/* This is a hand written Thumb-2 assembly language version of the
- standard C memcpy() function that can be used by the lwIP networking
- stack to improve its performance. It copies 4 bytes at a time and
- unrolls the loop to perform 4 of these copies per loop iteration.
-*/
-__attribute__((naked)) void thumb2_memcpy(void* pDest, const void* pSource, size_t length)
-{
- __asm (
- ".syntax unified\n"
- ".thumb\n"
-
- // Copy 16 bytes at a time first.
- " lsrs r3, r2, #4\n"
- " beq.n 2$\n"
- "1$: ldr r12, [r1], #4\n"
- " str r12, [r0], #4\n"
- " ldr r12, [r1], #4\n"
- " str r12, [r0], #4\n"
- " ldr r12, [r1], #4\n"
- " str r12, [r0], #4\n"
- " ldr r12, [r1], #4\n"
- " str r12, [r0], #4\n"
- " subs r3, #1\n"
- " bne 1$\n"
-
- // Copy byte by byte for what is left.
- "2$:\n"
- " ands r3, r2, #0xf\n"
- " beq.n 4$\n"
- "3$: ldrb r12, [r1], #1\n"
- " strb r12, [r0], #1\n"
- " subs r3, #1\n"
- " bne 3$\n"
-
- // Return to caller.
- "4$: bx lr\n"
- );
-}
-
-#endif
