Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/common/lib/libc/arch/arm/string Add .cfi ops if EABI.



details:   https://anonhg.NetBSD.org/src/rev/121a4a78e49a
branches:  trunk
changeset: 789424:121a4a78e49a
user:      matt <matt%NetBSD.org@localhost>
date:      Mon Aug 19 00:36:29 2013 +0000

description:
Add .cfi ops if EABI.
Thumbify.

diffstat:

 common/lib/libc/arch/arm/string/strcat_arm.S |  25 +++++++++++++++++++------
 1 files changed, 19 insertions(+), 6 deletions(-)

diffs (43 lines):

diff -r 1d5e39b8cf2d -r 121a4a78e49a common/lib/libc/arch/arm/string/strcat_arm.S
--- a/common/lib/libc/arch/arm/string/strcat_arm.S      Mon Aug 19 00:35:06 2013 +0000
+++ b/common/lib/libc/arch/arm/string/strcat_arm.S      Mon Aug 19 00:36:29 2013 +0000
@@ -33,20 +33,33 @@
  * Implementation of strcat using strlen/strcpy.
  */
 ENTRY(strcat)
-       str     lr, [sp, #-8]!          /* save return address */
-       push    {r4, r5}                /* save registers */
+#ifdef __ARM_EABI__
+       .fnstart
+       .cfi_startproc
+#endif
+       push    {r3-r5, lr}             /* save registers */
+#ifdef __ARM_EABI__
+       .save   {r3-r5, lr}
+       .cfi_def_cfa_offset 16
+       .cfi_offset 14, -4
+       .cfi_offset 5, -8
+       .cfi_offset 4, -12
+       .cfi_offset 3, -16
+#endif
 
        mov     r4, r0                  /* save dst */
        mov     r5, r1                  /* save append */
 
        bl      PLT_SYM(strlen)         /* find length of dst */
 
-       add     r0, r0, r4              /* add to dst pointer */
+       adds    r0, r0, r4              /* add to dst pointer */
        mov     r1, r5                  /* fetch append */
        bl      PLT_SYM(strcpy)         /* append string */
 
        mov     r0, r4                  /* restore dst as return value */
-       pop     {r4, r5}                /* restore registers */
-       ldr     lr, [sp], #8            /* restore return address */
-       RET
+       pop     {r3-r5, pc}             /* restore registers */
+#ifdef __ARM_EABI__
+       .cfi_endproc
+       .fnend
+#endif
 END(strcat)



Home | Main Index | Thread Index | Old Index