diff options
author | Gregory Nutt <gnutt@nuttx.org> | 2015-01-29 06:36:53 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@nuttx.org> | 2015-01-29 06:36:53 -0600 |
commit | a5925b1adc04b34e10ef332875770997ac312998 (patch) | |
tree | f81cbe09b782a2cc38aaed2b636df713d16d736d /nuttx | |
parent | ede54f3eb5e95c150eca6aa26292953589116600 (diff) | |
download | px4-nuttx-a5925b1adc04b34e10ef332875770997ac312998.tar.gz px4-nuttx-a5925b1adc04b34e10ef332875770997ac312998.tar.bz2 px4-nuttx-a5925b1adc04b34e10ef332875770997ac312998.zip |
ARM assembly language memcpy.S was not returning a value in R0 it is required to do. From David Sidrane
Diffstat (limited to 'nuttx')
-rw-r--r-- | nuttx/arch/arm/src/armv7-a/arm_memcpy.S | 15 | ||||
-rw-r--r-- | nuttx/arch/arm/src/armv7-m/up_memcpy.S | 15 |
2 files changed, 30 insertions, 0 deletions
diff --git a/nuttx/arch/arm/src/armv7-a/arm_memcpy.S b/nuttx/arch/arm/src/armv7-a/arm_memcpy.S index 84da4942b..713359d09 100644 --- a/nuttx/arch/arm/src/armv7-a/arm_memcpy.S +++ b/nuttx/arch/arm/src/armv7-a/arm_memcpy.S @@ -143,11 +143,26 @@ MEM_LongCopyTable: * Input Parameters: * r0 = destination, r1 = source, r2 = length * + * Returned Value: + * r0 = destination r1-r3 burned + * ************************************************************************************/ + .align 4 .thumb_func + memcpy: push {r14} + push {r0} + bl _do_memcpy + pop {r0} + pop {pc} + + .align 4 + + .thumb_func +_do_memcpy: + push {r14} /* This allows the inner workings to "assume" a minimum amount of bytes */ /* Quickly check for very short copies */ diff --git a/nuttx/arch/arm/src/armv7-m/up_memcpy.S b/nuttx/arch/arm/src/armv7-m/up_memcpy.S index ea267f78f..84877b040 100644 --- a/nuttx/arch/arm/src/armv7-m/up_memcpy.S +++ b/nuttx/arch/arm/src/armv7-m/up_memcpy.S @@ -142,11 +142,26 @@ MEM_LongCopyTable: * Input Parameters: * r0 = destination, r1 = source, r2 = length * + * Returned Value: + * r0 = destination r1-r3 burned + * ************************************************************************************/ + .align 4 .thumb_func + memcpy: push {r14} + push {r0} + bl _do_memcpy + pop {r0} + pop {pc} + + .align 4 + + .thumb_func +_do_memcpy: + push {r14} /* This allows the inner workings to "assume" a minimum amount of bytes */ /* Quickly check for very short copies */ |