In ARM asm code, ensure that every ENTRY(foo) has a matching END(foo).

The EABI unwind info requires a .fnend for every .fnstart, and newer
binutils will complain about seeing two .fnstart in a row.  This change
allows newer tools to compile our code.

Reported by:	bapt
Reviewed by:	imp
This commit is contained in:
Ian Lepore 2014-08-31 17:21:51 +00:00
parent 93844d3203
commit f2e71517e0
22 changed files with 36 additions and 1 deletions

View File

@ -38,6 +38,7 @@ ENTRY(__aeabi_read_tp)
mrc p15, 0, r0, c13, c0, 3
#endif
RET
END(__aeabi_read_tp)
#ifdef ARM_TP_ADDRESS
.Larm_tp_address:

View File

@ -7,3 +7,4 @@ ENTRY(_ctx_start)
mov r0, r5
bl _C_LABEL(ctx_done)
bl _C_LABEL(abort)
END(_ctx_start)

View File

@ -89,6 +89,7 @@ ENTRY(_setjmp)
mov r0, #0x00000000
RET
END(_setjmp)
.L_setjmp_magic:
.word _JB_MAGIC__SETJMP
@ -140,3 +141,4 @@ botch:
#else
b .
#endif
END(_longjmp)

View File

@ -43,3 +43,4 @@ ENTRY(alloca)
sub sp, sp, r0 /* Adjust the stack pointer */
mov r0, sp /* r0 = base of new space */
RET
END(alloca)

View File

@ -29,6 +29,7 @@ ENTRY(__umodsi3)
add sp, sp, #4 /* unalign stack */
mov r0, r1
ldmfd sp!, {pc}
END(__umodsi3)
ENTRY(__modsi3)
stmfd sp!, {lr}
@ -48,6 +49,7 @@ ENTRY(__modsi3)
mvn r0, #0
#endif
RET
END(__modsi3)
ENTRY(__udivsi3)
.L_udivide: /* r0 = r0 / r1; r1 = r0 % r1 */
@ -70,6 +72,7 @@ ENTRY(__udivsi3)
mov r0, r1
mov r1, #0
RET
END(__udivsi3)
ENTRY(__divsi3)
.L_divide: /* r0 = r0 / r1; r1 = r0 % r1 */
@ -385,3 +388,4 @@ ENTRY(__divsi3)
addhs r3, r3, r2
mov r0, r3
RET
END(__divsi3)

View File

@ -101,7 +101,7 @@ ENTRY(setjmp)
.Lfpu_present:
.word PIC_SYM(_libc_arm_fpu_present, GOTOFF)
#endif /* __ARM_EABI__ */
END(setjmp)
.weak _C_LABEL(longjmp)
.set _C_LABEL(longjmp), _C_LABEL(__longjmp)
@ -150,3 +150,4 @@ ENTRY(__longjmp)
bl PIC_SYM(_C_LABEL(longjmperror), PLT)
bl PIC_SYM(_C_LABEL(abort), PLT)
b . - 8 /* Cannot get here */
END(__longjmp)

View File

@ -51,6 +51,7 @@ ENTRY(sigsetjmp)
teq r1, #0
beq PIC_SYM(_C_LABEL(_setjmp), PLT)
b PIC_SYM(_C_LABEL(setjmp), PLT)
END(sigsetjmp)
.L_setjmp_magic:
.word _JB_MAGIC__SETJMP
@ -64,3 +65,4 @@ ENTRY(siglongjmp)
teq r2, r3 /* magic correct? */
beq PIC_SYM(_C_LABEL(_longjmp), PLT)
b PIC_SYM(_C_LABEL(longjmp), PLT)
END(siglongjmp)

View File

@ -80,3 +80,4 @@ ENTRY(ffs)
rsbne r0, r0, #32
RET
#endif
END(ffs)

View File

@ -178,3 +178,4 @@ ENTRY(memcmp)
sub r0, r3, r2 /* r0 = b1#5 - b2#5 */
RET
#endif
END(memcmp)

View File

@ -330,3 +330,4 @@ ENTRY(memcpy)
.Lmemcpy_srcul3l4:
sub r1, r1, #1
b .Lmemcpy_l4
END(memcpy)

View File

@ -1781,3 +1781,4 @@ ENTRY(memcpy)
strb r1, [r0, #0x0b]
bx lr
#endif /* !_STANDALONE */
END(memcpy)

View File

@ -580,3 +580,8 @@ ENTRY(bcopy)
.Lmemmove_bsrcul1l4:
add r1, r1, #1
b .Lmemmove_bl4
#ifndef _BCOPY
END(memmove)
#else
END(bcopy)
#endif

View File

@ -234,3 +234,8 @@ ENTRY(memset)
strgeb r3, [ip], #0x01 /* Set another byte */
strgtb r3, [ip] /* and a third */
RET /* Exit */
#ifdef _BZERO
END(bzero)
#else
END(memset)
#endif

View File

@ -41,3 +41,4 @@ ENTRY(strcmp)
beq 1b
sub r0, r2, r3
RET
END(strcmp)

View File

@ -76,3 +76,4 @@ ENTRY(strlen)
.Lexit:
mov r0, r1
RET
END(strlen)

View File

@ -52,3 +52,4 @@ ENTRY(strncmp)
beq 1b
sub r0, r2, r3
RET
END(strncmp)

View File

@ -52,3 +52,4 @@ ENTRY(vfork)
sub r1, r1, #1 /* r1 == 0xffffffff if parent, 0 if child */
and r0, r0, r1 /* r0 == 0 if child, else unchanged */
mov r15, r2
END(vfork)

View File

@ -98,3 +98,4 @@ ENTRY(_brk)
.word PIC_SYM(_C_LABEL(minbrk), GOT)
.Lcurbrk:
.word PIC_SYM(CURBRK, GOT)
END(_brk)

View File

@ -46,3 +46,4 @@ ASENTRY(CERROR)
mvn r0, #0x00000000
mvn r1, #0x00000000
ldmfd sp!, {r4, pc}
END(CERROR)

View File

@ -48,3 +48,4 @@ ENTRY(_pipe)
str r1, [r2, #0x0004]
mov r0, #0x00000000
RET
END(_pipe)

View File

@ -46,3 +46,4 @@ ENTRY(ptrace)
SYSTRAP(ptrace)
bcs PIC_SYM(CERROR, PLT)
RET
END(ptrace)

View File

@ -86,3 +86,4 @@ ENTRY(_sbrk)
#endif
.Lcurbrk:
.word PIC_SYM(CURBRK, GOT)
END(_sbrk)