Add .cfi ops if EABI.

Thumbify.
This commit is contained in:
matt 2013-08-19 00:36:29 +00:00
parent dcdd476662
commit 4640cf4296
1 changed files with 19 additions and 6 deletions

View File

@ -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)