Blackfin arch: add proper ENDPROC()

add proper ENDPROC() to close out assembly functions
so size/type is set properly in the final ELF image

Signed-off-by: Mike Frysinger <michael.frysinger@analog.com>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
This commit is contained in:
Mike Frysinger 2007-06-11 15:31:30 +08:00 committed by Bryan Wu
parent 52a078120c
commit 51be24c351
21 changed files with 72 additions and 8 deletions

View File

@ -58,10 +58,12 @@ ENTRY(_ret_from_fork)
RESTORE_ALL_SYS RESTORE_ALL_SYS
p0 = reti; p0 = reti;
jump (p0); jump (p0);
ENDPROC(_ret_from_fork)
ENTRY(_sys_fork) ENTRY(_sys_fork)
r0 = -EINVAL; r0 = -EINVAL;
rts; rts;
ENDPROC(_sys_fork)
ENTRY(_sys_vfork) ENTRY(_sys_vfork)
r0 = sp; r0 = sp;
@ -72,6 +74,7 @@ ENTRY(_sys_vfork)
SP += 12; SP += 12;
rets = [sp++]; rets = [sp++];
rts; rts;
ENDPROC(_sys_vfork)
ENTRY(_sys_clone) ENTRY(_sys_clone)
r0 = sp; r0 = sp;
@ -82,6 +85,7 @@ ENTRY(_sys_clone)
SP += 12; SP += 12;
rets = [sp++]; rets = [sp++];
rts; rts;
ENDPROC(_sys_clone)
ENTRY(_sys_rt_sigreturn) ENTRY(_sys_rt_sigreturn)
r0 = sp; r0 = sp;
@ -92,3 +96,4 @@ ENTRY(_sys_rt_sigreturn)
SP += 12; SP += 12;
rets = [sp++]; rets = [sp++];
rts; rts;
ENDPROC(_sys_rt_sigreturn)

View File

@ -44,6 +44,7 @@
*/ */
.global ___divsi3; .global ___divsi3;
.type ___divsi3, STT_FUNC;
#ifdef CONFIG_ARITHMETIC_OPS_L1 #ifdef CONFIG_ARITHMETIC_OPS_L1
.section .l1.text .section .l1.text
@ -214,3 +215,5 @@ ___divsi3 :
.Lret_zero: .Lret_zero:
R0 = 0; R0 = 0;
RTS; RTS;
.size ___divsi3, .-___divsi3

View File

@ -46,7 +46,7 @@ ENTRY(_insl)
.Llong_loop_e: NOP; .Llong_loop_e: NOP;
sti R3; sti R3;
RTS; RTS;
ENDPROC(_insl)
ENTRY(_insw) ENTRY(_insw)
P0 = R0; /* P0 = port */ P0 = R0; /* P0 = port */
@ -61,6 +61,7 @@ ENTRY(_insw)
.Lword_loop_e: NOP; .Lword_loop_e: NOP;
sti R3; sti R3;
RTS; RTS;
ENDPROC(_insw)
ENTRY(_insb) ENTRY(_insb)
P0 = R0; /* P0 = port */ P0 = R0; /* P0 = port */
@ -75,3 +76,4 @@ ENTRY(_insb)
.Lbyte_loop_e: NOP; .Lbyte_loop_e: NOP;
sti R3; sti R3;
RTS; RTS;
ENDPROC(_insb)

View File

@ -67,4 +67,4 @@ ENTRY(_memchr)
R0 += -1; R0 += -1;
RTS; RTS;
.size _memchr,.-_memchr ENDPROC(_memchr)

View File

@ -107,4 +107,4 @@ ENTRY(_memcmp)
P3 = I1; P3 = I1;
RTS; RTS;
.size _memcmp,.-_memcmp ENDPROC(_memcmp)

View File

@ -140,3 +140,5 @@ ENTRY(_memcpy)
B[P0--] = R1; B[P0--] = R1;
RTS; RTS;
ENDPROC(_memcpy)

View File

@ -100,4 +100,4 @@ ENTRY(_memmove)
P3 = I1; P3 = I1;
RTS; RTS;
.size _memmove,.-_memmove ENDPROC(_memmove)

View File

@ -106,4 +106,4 @@ ENTRY(_memset)
B[P0++] = R1; B[P0++] = R1;
JUMP .Laligned; JUMP .Laligned;
.size _memset,.-_memset ENDPROC(_memset)

View File

@ -77,3 +77,5 @@ ___modsi3:
R0 = 0; R0 = 0;
.LRETURN_R0: .LRETURN_R0:
RTS; RTS;
.size ___modsi3, .-___modsi3

View File

@ -40,6 +40,7 @@ ENTRY(_outsl)
.Llong_loop_s: R0 = [P1++]; .Llong_loop_s: R0 = [P1++];
.Llong_loop_e: [P0] = R0; .Llong_loop_e: [P0] = R0;
RTS; RTS;
ENDPROC(_outsl)
ENTRY(_outsw) ENTRY(_outsw)
P0 = R0; /* P0 = port */ P0 = R0; /* P0 = port */
@ -50,6 +51,7 @@ ENTRY(_outsw)
.Lword_loop_s: R0 = W[P1++]; .Lword_loop_s: R0 = W[P1++];
.Lword_loop_e: W[P0] = R0; .Lword_loop_e: W[P0] = R0;
RTS; RTS;
ENDPROC(_outsw)
ENTRY(_outsb) ENTRY(_outsb)
P0 = R0; /* P0 = port */ P0 = R0; /* P0 = port */
@ -60,3 +62,4 @@ ENTRY(_outsb)
.Lbyte_loop_s: R0 = B[P1++]; .Lbyte_loop_s: R0 = B[P1++];
.Lbyte_loop_e: B[P0] = R0; .Lbyte_loop_e: B[P0] = R0;
RTS; RTS;
ENDPROC(_outsb)

View File

@ -28,3 +28,5 @@ ___smulsi3_highpart:
R0 = R0 + R1; R0 = R0 + R1;
RTS; RTS;
.size ___smulsi3_highpart, .-___smulsi3_highpart

View File

@ -296,3 +296,5 @@ ENTRY(___udivsi3)
R1 = R0 - R3; R1 = R0 - R3;
IF CC R0 = R1; IF CC R0 = R1;
RTS; RTS;
ENDPROC(___udivsi3)

View File

@ -34,7 +34,9 @@
#endif #endif
.extern ___udivsi3; .extern ___udivsi3;
.type ___udivsi3, STT_FUNC;
.globl ___umodsi3 .globl ___umodsi3
.type ___umodsi3, STT_FUNC;
___umodsi3: ___umodsi3:
CC=R0==0; CC=R0==0;
@ -64,3 +66,5 @@ ___umodsi3:
R0 = 0; R0 = 0;
.LRETURN_R0: .LRETURN_R0:
RTS; RTS;
.size ___umodsi3, .-___umodsi3

View File

@ -21,3 +21,5 @@ ___umulsi3_highpart:
R1 = PACK(R1.l,R0.h); R1 = PACK(R1.l,R0.h);
R0 = R1 + R2; R0 = R1 + R2;
RTS; RTS;
.size ___umulsi3_highpart, .-___umulsi3_highpart

View File

@ -70,6 +70,7 @@ ENTRY(_cache_invalidate)
.Lno_dcache_b: .Lno_dcache_b:
R7 = [SP++]; R7 = [SP++];
RTS; RTS;
ENDPROC(_cache_invalidate)
/* Invalidate the Entire Instruction cache by /* Invalidate the Entire Instruction cache by
* disabling IMC bit * disabling IMC bit
@ -106,6 +107,8 @@ ENTRY(_invalidate_entire_icache)
( R7:5) = [SP++]; ( R7:5) = [SP++];
RTS; RTS;
ENDPROC(_invalidate_entire_icache)
ENDPROC(_icache_invalidate)
/* /*
* blackfin_cache_flush_range(start, end) * blackfin_cache_flush_range(start, end)
@ -129,6 +132,7 @@ ENTRY(_blackfin_icache_flush_range)
IFLUSH [P0]; IFLUSH [P0];
SSYNC; SSYNC;
RTS; RTS;
ENDPROC(_blackfin_icache_flush_range)
/* /*
* blackfin_icache_dcache_flush_range(start, end) * blackfin_icache_dcache_flush_range(start, end)
@ -155,6 +159,7 @@ ENTRY(_blackfin_icache_dcache_flush_range)
FLUSH [P0]; FLUSH [P0];
SSYNC; SSYNC;
RTS; RTS;
ENDPROC(_blackfin_icache_dcache_flush_range)
/* Throw away all D-cached data in specified region without any obligation to /* Throw away all D-cached data in specified region without any obligation to
* write them back. However, we must clean the D-cached entries around the * write them back. However, we must clean the D-cached entries around the
@ -183,6 +188,7 @@ ENTRY(_blackfin_dcache_invalidate_range)
FLUSHINV[P0]; FLUSHINV[P0];
SSYNC; SSYNC;
RTS; RTS;
ENDPROC(_blackfin_dcache_invalidate_range)
/* Invalidate the Entire Data cache by /* Invalidate the Entire Data cache by
* clearing DMC[1:0] bits * clearing DMC[1:0] bits
@ -221,6 +227,8 @@ ENTRY(_dcache_invalidate)
( R7:6) = [SP++]; ( R7:6) = [SP++];
RTS; RTS;
ENDPROC(_dcache_invalidate)
ENDPROC(_invalidate_entire_dcache)
ENTRY(_blackfin_dcache_flush_range) ENTRY(_blackfin_dcache_flush_range)
R2 = -L1_CACHE_BYTES; R2 = -L1_CACHE_BYTES;
@ -241,6 +249,7 @@ ENTRY(_blackfin_dcache_flush_range)
FLUSH[P0]; FLUSH[P0];
SSYNC; SSYNC;
RTS; RTS;
ENDPROC(_blackfin_dcache_flush_range)
ENTRY(_blackfin_dflush_page) ENTRY(_blackfin_dflush_page)
P1 = 1 << (PAGE_SHIFT - L1_CACHE_SHIFT); P1 = 1 << (PAGE_SHIFT - L1_CACHE_SHIFT);
@ -251,3 +260,4 @@ ENTRY(_blackfin_dflush_page)
.Lfl1: FLUSH [P0++]; .Lfl1: FLUSH [P0++];
SSYNC; SSYNC;
RTS; RTS;
ENDPROC(_blackfin_dflush_page)

View File

@ -86,6 +86,8 @@ ENTRY(_bfin_icache_init)
SSYNC; SSYNC;
STI R2; STI R2;
RTS; RTS;
ENDPROC(_bfin_icache_init)
#endif #endif
#if defined(CONFIG_BLKFIN_DCACHE) #if defined(CONFIG_BLKFIN_DCACHE)
@ -134,4 +136,6 @@ ENTRY(_bfin_dcache_init)
SSYNC; SSYNC;
STI R2; STI R2;
RTS; RTS;
ENDPROC(_bfin_dcache_init)
#endif #endif

View File

@ -42,8 +42,6 @@
.align 2 .align 2
.global __cplb_hdr;
.type __cplb_hdr, STT_FUNC;
ENTRY(__cplb_hdr) ENTRY(__cplb_hdr)
R2 = SEQSTAT; R2 = SEQSTAT;
@ -128,3 +126,5 @@ ENTRY(__cplb_hdr)
call _panic_cplb_error; call _panic_cplb_error;
SP += 12; SP += 12;
JUMP _handle_bad_cplb; JUMP _handle_bad_cplb;
ENDPROC(__cplb_hdr)

View File

@ -592,6 +592,7 @@ ENTRY(_cplb_mgr)
( R7:4,P5:3 ) = [SP++]; ( R7:4,P5:3 ) = [SP++];
R0 = CPLB_RELOADED; R0 = CPLB_RELOADED;
RTS; RTS;
ENDPROC(_cplb_mgr)
.data .data
.align 4; .align 4;

View File

@ -103,6 +103,7 @@ ENTRY(_ex_dcplb)
if !cc jump _return_from_exception; if !cc jump _return_from_exception;
/* fall through */ /* fall through */
#endif #endif
ENDPROC(_ex_dcplb)
ENTRY(_ex_icplb) ENTRY(_ex_icplb)
(R7:6,P5:4) = [sp++]; (R7:6,P5:4) = [sp++];
@ -113,6 +114,7 @@ ENTRY(_ex_icplb)
RESTORE_ALL_SYS RESTORE_ALL_SYS
SP = RETN; SP = RETN;
rtx; rtx;
ENDPROC(_ex_icplb)
ENTRY(_ex_spinlock) ENTRY(_ex_spinlock)
/* Transform this into a syscall - twiddle the syscall vector. */ /* Transform this into a syscall - twiddle the syscall vector. */
@ -123,6 +125,7 @@ ENTRY(_ex_spinlock)
[p5] = r7; [p5] = r7;
csync; csync;
/* Fall through. */ /* Fall through. */
ENDPROC(_ex_spinlock)
ENTRY(_ex_syscall) ENTRY(_ex_syscall)
DEBUG_START_HWTRACE DEBUG_START_HWTRACE
@ -131,6 +134,7 @@ ENTRY(_ex_syscall)
raise 15; /* invoked by TRAP #0, for sys call */ raise 15; /* invoked by TRAP #0, for sys call */
sp = retn; sp = retn;
rtx rtx
ENDPROC(_ex_syscall)
ENTRY(_spinlock_bh) ENTRY(_spinlock_bh)
SAVE_ALL_SYS SAVE_ALL_SYS
@ -150,12 +154,14 @@ ENTRY(_spinlock_bh)
[SP + PT_R0] = R0; [SP + PT_R0] = R0;
RESTORE_ALL_SYS RESTORE_ALL_SYS
rti; rti;
ENDPROC(_spinlock_bh)
ENTRY(_ex_soft_bp) ENTRY(_ex_soft_bp)
r7 = retx; r7 = retx;
r7 += -2; r7 += -2;
retx = r7; retx = r7;
jump.s _ex_trap_c; jump.s _ex_trap_c;
ENDPROC(_ex_soft_bp)
ENTRY(_ex_single_step) ENTRY(_ex_single_step)
r7 = retx; r7 = retx;
@ -191,6 +197,7 @@ _return_from_exception:
ASTAT = [sp++]; ASTAT = [sp++];
sp = retn; sp = retn;
rtx; rtx;
ENDPROC(_ex_soft_bp)
ENTRY(_handle_bad_cplb) ENTRY(_handle_bad_cplb)
/* To get here, we just tried and failed to change a CPLB /* To get here, we just tried and failed to change a CPLB
@ -250,6 +257,7 @@ ENTRY(_ex_trap_c)
SP = RETN; SP = RETN;
raise 5; raise 5;
rtx; rtx;
ENDPROC(_ex_trap_c)
ENTRY(_exception_to_level5) ENTRY(_exception_to_level5)
SAVE_ALL_SYS SAVE_ALL_SYS
@ -314,6 +322,7 @@ ENTRY(_exception_to_level5)
call _ret_from_exception; call _ret_from_exception;
RESTORE_ALL_SYS RESTORE_ALL_SYS
rti; rti;
ENDPROC(_exception_to_level5)
ENTRY(_trap) /* Exception: 4th entry into system event table(supervisor mode)*/ ENTRY(_trap) /* Exception: 4th entry into system event table(supervisor mode)*/
/* Since the kernel stack can be anywhere, it's not guaranteed to be /* Since the kernel stack can be anywhere, it's not guaranteed to be
@ -342,6 +351,7 @@ ENTRY(_trap) /* Exception: 4th entry into system event table(supervisor mode)*/
r7 = -ENOSYS; /* signextending enough */ r7 = -ENOSYS; /* signextending enough */
[sp + PT_R0] = r7; /* return value from system call */ [sp + PT_R0] = r7; /* return value from system call */
jump .Lsyscall_really_exit; jump .Lsyscall_really_exit;
ENDPROC(_trap)
ENTRY(_kernel_execve) ENTRY(_kernel_execve)
link SIZEOF_PTREGS; link SIZEOF_PTREGS;
@ -396,6 +406,7 @@ ENTRY(_kernel_execve)
1: 1:
unlink; unlink;
rts; rts;
ENDPROC(_kernel_execve)
ENTRY(_system_call) ENTRY(_system_call)
/* Store IPEND */ /* Store IPEND */
@ -503,6 +514,7 @@ ENTRY(_system_call)
r5 = [sp + PT_RESERVED]; r5 = [sp + PT_RESERVED];
rets = r5; rets = r5;
rts; rts;
ENDPROC(_system_call)
_sys_trace: _sys_trace:
call _syscall_trace; call _syscall_trace;
@ -531,6 +543,7 @@ _sys_trace:
call _syscall_trace; call _syscall_trace;
jump .Lresume_userspace; jump .Lresume_userspace;
ENDPROC(_sys_trace)
ENTRY(_resume) ENTRY(_resume)
/* /*
@ -580,6 +593,7 @@ _new_old_task:
* in "new" task. * in "new" task.
*/ */
rts; rts;
ENDPROC(_resume)
ENTRY(_ret_from_exception) ENTRY(_ret_from_exception)
p2.l = lo(IPEND); p2.l = lo(IPEND);
@ -638,6 +652,7 @@ ENTRY(_ret_from_exception)
syscfg = r0; syscfg = r0;
5: 5:
rts; rts;
ENDPROC(_ret_from_exception)
ENTRY(_return_from_int) ENTRY(_return_from_int)
/* If someone else already raised IRQ 15, do nothing. */ /* If someone else already raised IRQ 15, do nothing. */
@ -680,6 +695,7 @@ ENTRY(_return_from_int)
rti; rti;
2: 2:
rts; rts;
ENDPROC(_return_from_int)
ENTRY(_lower_to_irq14) ENTRY(_lower_to_irq14)
#if defined(ANOMALY_05000281) #if defined(ANOMALY_05000281)
@ -745,6 +761,7 @@ _schedule_and_signal:
1: 1:
RESTORE_CONTEXT RESTORE_CONTEXT
rti; rti;
ENDPROC(_lower_to_irq14)
/* Make sure when we start, that the circular buffer is initialized properly /* Make sure when we start, that the circular buffer is initialized properly
* R0 and P0 are call clobbered, so we can use them here. * R0 and P0 are call clobbered, so we can use them here.
@ -758,6 +775,7 @@ ENTRY(_init_exception_buff)
p0.l = _out_ptr_excause; p0.l = _out_ptr_excause;
[p0] = r0; [p0] = r0;
rts; rts;
ENDPROC(_init_exception_buff)
/* /*
* Put these in the kernel data section - that should always be covered by * Put these in the kernel data section - that should always be covered by

View File

@ -66,6 +66,7 @@ ENTRY(_evt_emulation)
SP += 12; SP += 12;
/* - GDB stub fills this in by itself (if defined) */ /* - GDB stub fills this in by itself (if defined) */
rte; rte;
ENDPROC(_evt_emulation)
#endif #endif
/* Common interrupt entry code. First we do CLI, then push /* Common interrupt entry code. First we do CLI, then push
@ -251,3 +252,4 @@ ENTRY(_evt_system_call)
#endif #endif
call _system_call; call _system_call;
jump .Lcommon_restore_context; jump .Lcommon_restore_context;
ENDPROC(_evt_system_call)

View File

@ -155,6 +155,7 @@ ENTRY(_cache_grab_lock)
( R7:0,P5:0 ) = [SP++]; ( R7:0,P5:0 ) = [SP++];
RTS; RTS;
ENDPROC(_cache_grab_lock)
/* After the execution of critical code, the code is now locked into /* After the execution of critical code, the code is now locked into
* the cache way. Now we need to set ILOC. * the cache way. Now we need to set ILOC.
@ -186,6 +187,7 @@ ENTRY(_cache_lock)
( R7:0,P5:0 ) = [SP++]; ( R7:0,P5:0 ) = [SP++];
RTS; RTS;
ENDPROC(_cache_lock)
#endif /* BLKFIN_CACHE_LOCK */ #endif /* BLKFIN_CACHE_LOCK */
@ -193,7 +195,6 @@ ENTRY(_cache_lock)
*/ */
ENTRY(_read_iloc) ENTRY(_read_iloc)
P1.H = (IMEM_CONTROL >> 16); P1.H = (IMEM_CONTROL >> 16);
P1.L = (IMEM_CONTROL & 0xFFFF); P1.L = (IMEM_CONTROL & 0xFFFF);
R1 = 0xF; R1 = 0xF;
@ -202,3 +203,4 @@ ENTRY(_read_iloc)
R0 = R0 & R1; R0 = R0 & R1;
RTS; RTS;
ENDPROC(_read_iloc)