aboutsummaryrefslogtreecommitdiffstats
path: root/arch/xtensa/kernel/entry.S
diff options
context:
space:
mode:
authorChris Zankel <chris@zankel.net>2012-11-16 19:16:20 -0500
committerChris Zankel <chris@zankel.net>2012-12-19 00:10:20 -0500
commitd1538c4675f37d0eeb34bd38bec798b3b29a5a7e (patch)
tree4fa2d2c539825ad99f2f677cef686ea0051fbe9f /arch/xtensa/kernel/entry.S
parentc0226e34a4293dee0e7c5787e1ebfc5ee8b44b7c (diff)
xtensa: provide proper assembler function boundaries with ENDPROC()
Use ENDPROC() to mark the end of assembler functions. Signed-off-by: Chris Zankel <chris@zankel.net>
Diffstat (limited to 'arch/xtensa/kernel/entry.S')
-rw-r--r--arch/xtensa/kernel/entry.S30
1 files changed, 28 insertions, 2 deletions
diff --git a/arch/xtensa/kernel/entry.S b/arch/xtensa/kernel/entry.S
index 90bfc1dbc13d..41ad9cfe9a2a 100644
--- a/arch/xtensa/kernel/entry.S
+++ b/arch/xtensa/kernel/entry.S
@@ -219,6 +219,7 @@ _user_exception:
219 219
220 j common_exception 220 j common_exception
221 221
222ENDPROC(user_exception)
222 223
223/* 224/*
224 * First-level exit handler for kernel exceptions 225 * First-level exit handler for kernel exceptions
@@ -641,6 +642,8 @@ common_exception_exit:
641 l32i a1, a1, PT_AREG1 642 l32i a1, a1, PT_AREG1
642 rfde 643 rfde
643 644
645ENDPROC(kernel_exception)
646
644/* 647/*
645 * Debug exception handler. 648 * Debug exception handler.
646 * 649 *
@@ -701,6 +704,7 @@ ENTRY(debug_exception)
701 /* Debug exception while in exception mode. */ 704 /* Debug exception while in exception mode. */
7021: j 1b // FIXME!! 7051: j 1b // FIXME!!
703 706
707ENDPROC(debug_exception)
704 708
705/* 709/*
706 * We get here in case of an unrecoverable exception. 710 * We get here in case of an unrecoverable exception.
@@ -751,6 +755,7 @@ ENTRY(unrecoverable_exception)
751 755
7521: j 1b 7561: j 1b
753 757
758ENDPROC(unrecoverable_exception)
754 759
755/* -------------------------- FAST EXCEPTION HANDLERS ----------------------- */ 760/* -------------------------- FAST EXCEPTION HANDLERS ----------------------- */
756 761
@@ -929,6 +934,7 @@ ENTRY(fast_alloca)
929 l32i a2, a2, PT_AREG2 934 l32i a2, a2, PT_AREG2
930 rfe 935 rfe
931 936
937ENDPROC(fast_alloca)
932 938
933/* 939/*
934 * fast system calls. 940 * fast system calls.
@@ -966,6 +972,8 @@ ENTRY(fast_syscall_kernel)
966 972
967 j kernel_exception 973 j kernel_exception
968 974
975ENDPROC(fast_syscall_kernel)
976
969ENTRY(fast_syscall_user) 977ENTRY(fast_syscall_user)
970 978
971 /* Skip syscall. */ 979 /* Skip syscall. */
@@ -983,6 +991,8 @@ ENTRY(fast_syscall_user)
983 991
984 j user_exception 992 j user_exception
985 993
994ENDPROC(fast_syscall_user)
995
986ENTRY(fast_syscall_unrecoverable) 996ENTRY(fast_syscall_unrecoverable)
987 997
988 /* Restore all states. */ 998 /* Restore all states. */
@@ -995,7 +1005,7 @@ ENTRY(fast_syscall_unrecoverable)
995 movi a0, unrecoverable_exception 1005 movi a0, unrecoverable_exception
996 callx0 a0 1006 callx0 a0
997 1007
998 1008ENDPROC(fast_syscall_unrecoverable)
999 1009
1000/* 1010/*
1001 * sysxtensa syscall handler 1011 * sysxtensa syscall handler
@@ -1101,7 +1111,7 @@ CATCH
1101 movi a2, -EINVAL 1111 movi a2, -EINVAL
1102 rfe 1112 rfe
1103 1113
1104 1114ENDPROC(fast_syscall_xtensa)
1105 1115
1106 1116
1107/* fast_syscall_spill_registers. 1117/* fast_syscall_spill_registers.
@@ -1160,6 +1170,8 @@ ENTRY(fast_syscall_spill_registers)
1160 movi a2, 0 1170 movi a2, 0
1161 rfe 1171 rfe
1162 1172
1173ENDPROC(fast_syscall_spill_registers)
1174
1163/* Fixup handler. 1175/* Fixup handler.
1164 * 1176 *
1165 * We get here if the spill routine causes an exception, e.g. tlb miss. 1177 * We get here if the spill routine causes an exception, e.g. tlb miss.
@@ -1464,6 +1476,8 @@ ENTRY(_spill_registers)
1464 callx0 a0 # should not return 1476 callx0 a0 # should not return
14651: j 1b 14771: j 1b
1466 1478
1479ENDPROC(_spill_registers)
1480
1467#ifdef CONFIG_MMU 1481#ifdef CONFIG_MMU
1468/* 1482/*
1469 * We should never get here. Bail out! 1483 * We should never get here. Bail out!
@@ -1475,6 +1489,8 @@ ENTRY(fast_second_level_miss_double_kernel)
1475 callx0 a0 # should not return 1489 callx0 a0 # should not return
14761: j 1b 14901: j 1b
1477 1491
1492ENDPROC(fast_second_level_miss_double_kernel)
1493
1478/* First-level entry handler for user, kernel, and double 2nd-level 1494/* First-level entry handler for user, kernel, and double 2nd-level
1479 * TLB miss exceptions. Note that for now, user and kernel miss 1495 * TLB miss exceptions. Note that for now, user and kernel miss
1480 * exceptions share the same entry point and are handled identically. 1496 * exceptions share the same entry point and are handled identically.
@@ -1682,6 +1698,7 @@ ENTRY(fast_second_level_miss)
1682 j _kernel_exception 1698 j _kernel_exception
16831: j _user_exception 16991: j _user_exception
1684 1700
1701ENDPROC(fast_second_level_miss)
1685 1702
1686/* 1703/*
1687 * StoreProhibitedException 1704 * StoreProhibitedException
@@ -1777,6 +1794,9 @@ ENTRY(fast_store_prohibited)
1777 bbsi.l a2, PS_UM_BIT, 1f 1794 bbsi.l a2, PS_UM_BIT, 1f
1778 j _kernel_exception 1795 j _kernel_exception
17791: j _user_exception 17961: j _user_exception
1797
1798ENDPROC(fast_store_prohibited)
1799
1780#endif /* CONFIG_MMU */ 1800#endif /* CONFIG_MMU */
1781 1801
1782/* 1802/*
@@ -1787,6 +1807,7 @@ ENTRY(fast_store_prohibited)
1787 */ 1807 */
1788 1808
1789ENTRY(system_call) 1809ENTRY(system_call)
1810
1790 entry a1, 32 1811 entry a1, 32
1791 1812
1792 /* regs->syscall = regs->areg[2] */ 1813 /* regs->syscall = regs->areg[2] */
@@ -1831,6 +1852,8 @@ ENTRY(system_call)
1831 callx4 a4 1852 callx4 a4
1832 retw 1853 retw
1833 1854
1855ENDPROC(system_call)
1856
1834 1857
1835/* 1858/*
1836 * Task switch. 1859 * Task switch.
@@ -1899,6 +1922,7 @@ ENTRY(_switch_to)
1899 1922
1900 retw 1923 retw
1901 1924
1925ENDPROC(_switch_to)
1902 1926
1903ENTRY(ret_from_fork) 1927ENTRY(ret_from_fork)
1904 1928
@@ -1914,6 +1938,8 @@ ENTRY(ret_from_fork)
1914 1938
1915 j common_exception_return 1939 j common_exception_return
1916 1940
1941ENDPROC(ret_from_fork)
1942
1917/* 1943/*
1918 * Kernel thread creation helper 1944 * Kernel thread creation helper
1919 * On entry, set up by copy_thread: a2 = thread_fn, a3 = thread_fn arg 1945 * On entry, set up by copy_thread: a2 = thread_fn, a3 = thread_fn arg