diff options
author | Mike Frysinger <michael.frysinger@analog.com> | 2007-06-11 03:31:30 -0400 |
---|---|---|
committer | Bryan Wu <bryan.wu@analog.com> | 2007-06-11 03:31:30 -0400 |
commit | 51be24c351bc9ee4937121100adb098eeb1effdd (patch) | |
tree | b766c400cab7c51bfc7672cfbc3402bc83be5fb3 /arch/blackfin/mach-common/entry.S | |
parent | 52a078120c33b06a9abb721357adaafc3b55b7c1 (diff) |
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>
Diffstat (limited to 'arch/blackfin/mach-common/entry.S')
-rw-r--r-- | arch/blackfin/mach-common/entry.S | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S index 7d0368772cda..40045b1386ad 100644 --- a/arch/blackfin/mach-common/entry.S +++ b/arch/blackfin/mach-common/entry.S | |||
@@ -103,6 +103,7 @@ ENTRY(_ex_dcplb) | |||
103 | if !cc jump _return_from_exception; | 103 | if !cc jump _return_from_exception; |
104 | /* fall through */ | 104 | /* fall through */ |
105 | #endif | 105 | #endif |
106 | ENDPROC(_ex_dcplb) | ||
106 | 107 | ||
107 | ENTRY(_ex_icplb) | 108 | ENTRY(_ex_icplb) |
108 | (R7:6,P5:4) = [sp++]; | 109 | (R7:6,P5:4) = [sp++]; |
@@ -113,6 +114,7 @@ ENTRY(_ex_icplb) | |||
113 | RESTORE_ALL_SYS | 114 | RESTORE_ALL_SYS |
114 | SP = RETN; | 115 | SP = RETN; |
115 | rtx; | 116 | rtx; |
117 | ENDPROC(_ex_icplb) | ||
116 | 118 | ||
117 | ENTRY(_ex_spinlock) | 119 | ENTRY(_ex_spinlock) |
118 | /* Transform this into a syscall - twiddle the syscall vector. */ | 120 | /* Transform this into a syscall - twiddle the syscall vector. */ |
@@ -123,6 +125,7 @@ ENTRY(_ex_spinlock) | |||
123 | [p5] = r7; | 125 | [p5] = r7; |
124 | csync; | 126 | csync; |
125 | /* Fall through. */ | 127 | /* Fall through. */ |
128 | ENDPROC(_ex_spinlock) | ||
126 | 129 | ||
127 | ENTRY(_ex_syscall) | 130 | ENTRY(_ex_syscall) |
128 | DEBUG_START_HWTRACE | 131 | DEBUG_START_HWTRACE |
@@ -131,6 +134,7 @@ ENTRY(_ex_syscall) | |||
131 | raise 15; /* invoked by TRAP #0, for sys call */ | 134 | raise 15; /* invoked by TRAP #0, for sys call */ |
132 | sp = retn; | 135 | sp = retn; |
133 | rtx | 136 | rtx |
137 | ENDPROC(_ex_syscall) | ||
134 | 138 | ||
135 | ENTRY(_spinlock_bh) | 139 | ENTRY(_spinlock_bh) |
136 | SAVE_ALL_SYS | 140 | SAVE_ALL_SYS |
@@ -150,12 +154,14 @@ ENTRY(_spinlock_bh) | |||
150 | [SP + PT_R0] = R0; | 154 | [SP + PT_R0] = R0; |
151 | RESTORE_ALL_SYS | 155 | RESTORE_ALL_SYS |
152 | rti; | 156 | rti; |
157 | ENDPROC(_spinlock_bh) | ||
153 | 158 | ||
154 | ENTRY(_ex_soft_bp) | 159 | ENTRY(_ex_soft_bp) |
155 | r7 = retx; | 160 | r7 = retx; |
156 | r7 += -2; | 161 | r7 += -2; |
157 | retx = r7; | 162 | retx = r7; |
158 | jump.s _ex_trap_c; | 163 | jump.s _ex_trap_c; |
164 | ENDPROC(_ex_soft_bp) | ||
159 | 165 | ||
160 | ENTRY(_ex_single_step) | 166 | ENTRY(_ex_single_step) |
161 | r7 = retx; | 167 | r7 = retx; |
@@ -191,6 +197,7 @@ _return_from_exception: | |||
191 | ASTAT = [sp++]; | 197 | ASTAT = [sp++]; |
192 | sp = retn; | 198 | sp = retn; |
193 | rtx; | 199 | rtx; |
200 | ENDPROC(_ex_soft_bp) | ||
194 | 201 | ||
195 | ENTRY(_handle_bad_cplb) | 202 | ENTRY(_handle_bad_cplb) |
196 | /* To get here, we just tried and failed to change a CPLB | 203 | /* To get here, we just tried and failed to change a CPLB |
@@ -250,6 +257,7 @@ ENTRY(_ex_trap_c) | |||
250 | SP = RETN; | 257 | SP = RETN; |
251 | raise 5; | 258 | raise 5; |
252 | rtx; | 259 | rtx; |
260 | ENDPROC(_ex_trap_c) | ||
253 | 261 | ||
254 | ENTRY(_exception_to_level5) | 262 | ENTRY(_exception_to_level5) |
255 | SAVE_ALL_SYS | 263 | SAVE_ALL_SYS |
@@ -314,6 +322,7 @@ ENTRY(_exception_to_level5) | |||
314 | call _ret_from_exception; | 322 | call _ret_from_exception; |
315 | RESTORE_ALL_SYS | 323 | RESTORE_ALL_SYS |
316 | rti; | 324 | rti; |
325 | ENDPROC(_exception_to_level5) | ||
317 | 326 | ||
318 | ENTRY(_trap) /* Exception: 4th entry into system event table(supervisor mode)*/ | 327 | ENTRY(_trap) /* Exception: 4th entry into system event table(supervisor mode)*/ |
319 | /* Since the kernel stack can be anywhere, it's not guaranteed to be | 328 | /* 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)*/ | |||
342 | r7 = -ENOSYS; /* signextending enough */ | 351 | r7 = -ENOSYS; /* signextending enough */ |
343 | [sp + PT_R0] = r7; /* return value from system call */ | 352 | [sp + PT_R0] = r7; /* return value from system call */ |
344 | jump .Lsyscall_really_exit; | 353 | jump .Lsyscall_really_exit; |
354 | ENDPROC(_trap) | ||
345 | 355 | ||
346 | ENTRY(_kernel_execve) | 356 | ENTRY(_kernel_execve) |
347 | link SIZEOF_PTREGS; | 357 | link SIZEOF_PTREGS; |
@@ -396,6 +406,7 @@ ENTRY(_kernel_execve) | |||
396 | 1: | 406 | 1: |
397 | unlink; | 407 | unlink; |
398 | rts; | 408 | rts; |
409 | ENDPROC(_kernel_execve) | ||
399 | 410 | ||
400 | ENTRY(_system_call) | 411 | ENTRY(_system_call) |
401 | /* Store IPEND */ | 412 | /* Store IPEND */ |
@@ -503,6 +514,7 @@ ENTRY(_system_call) | |||
503 | r5 = [sp + PT_RESERVED]; | 514 | r5 = [sp + PT_RESERVED]; |
504 | rets = r5; | 515 | rets = r5; |
505 | rts; | 516 | rts; |
517 | ENDPROC(_system_call) | ||
506 | 518 | ||
507 | _sys_trace: | 519 | _sys_trace: |
508 | call _syscall_trace; | 520 | call _syscall_trace; |
@@ -531,6 +543,7 @@ _sys_trace: | |||
531 | 543 | ||
532 | call _syscall_trace; | 544 | call _syscall_trace; |
533 | jump .Lresume_userspace; | 545 | jump .Lresume_userspace; |
546 | ENDPROC(_sys_trace) | ||
534 | 547 | ||
535 | ENTRY(_resume) | 548 | ENTRY(_resume) |
536 | /* | 549 | /* |
@@ -580,6 +593,7 @@ _new_old_task: | |||
580 | * in "new" task. | 593 | * in "new" task. |
581 | */ | 594 | */ |
582 | rts; | 595 | rts; |
596 | ENDPROC(_resume) | ||
583 | 597 | ||
584 | ENTRY(_ret_from_exception) | 598 | ENTRY(_ret_from_exception) |
585 | p2.l = lo(IPEND); | 599 | p2.l = lo(IPEND); |
@@ -638,6 +652,7 @@ ENTRY(_ret_from_exception) | |||
638 | syscfg = r0; | 652 | syscfg = r0; |
639 | 5: | 653 | 5: |
640 | rts; | 654 | rts; |
655 | ENDPROC(_ret_from_exception) | ||
641 | 656 | ||
642 | ENTRY(_return_from_int) | 657 | ENTRY(_return_from_int) |
643 | /* If someone else already raised IRQ 15, do nothing. */ | 658 | /* If someone else already raised IRQ 15, do nothing. */ |
@@ -680,6 +695,7 @@ ENTRY(_return_from_int) | |||
680 | rti; | 695 | rti; |
681 | 2: | 696 | 2: |
682 | rts; | 697 | rts; |
698 | ENDPROC(_return_from_int) | ||
683 | 699 | ||
684 | ENTRY(_lower_to_irq14) | 700 | ENTRY(_lower_to_irq14) |
685 | #if defined(ANOMALY_05000281) | 701 | #if defined(ANOMALY_05000281) |
@@ -745,6 +761,7 @@ _schedule_and_signal: | |||
745 | 1: | 761 | 1: |
746 | RESTORE_CONTEXT | 762 | RESTORE_CONTEXT |
747 | rti; | 763 | rti; |
764 | ENDPROC(_lower_to_irq14) | ||
748 | 765 | ||
749 | /* Make sure when we start, that the circular buffer is initialized properly | 766 | /* Make sure when we start, that the circular buffer is initialized properly |
750 | * R0 and P0 are call clobbered, so we can use them here. | 767 | * R0 and P0 are call clobbered, so we can use them here. |
@@ -758,6 +775,7 @@ ENTRY(_init_exception_buff) | |||
758 | p0.l = _out_ptr_excause; | 775 | p0.l = _out_ptr_excause; |
759 | [p0] = r0; | 776 | [p0] = r0; |
760 | rts; | 777 | rts; |
778 | ENDPROC(_init_exception_buff) | ||
761 | 779 | ||
762 | /* | 780 | /* |
763 | * Put these in the kernel data section - that should always be covered by | 781 | * Put these in the kernel data section - that should always be covered by |