diff options
Diffstat (limited to 'arch/arm/lib')
44 files changed, 105 insertions, 23 deletions
diff --git a/arch/arm/lib/ashldi3.S b/arch/arm/lib/ashldi3.S index 55e57a1c2e6d..1154d924080b 100644 --- a/arch/arm/lib/ashldi3.S +++ b/arch/arm/lib/ashldi3.S  | |||
| @@ -47,3 +47,5 @@ ENTRY(__aeabi_llsl) | |||
| 47 | mov al, al, lsl r2 | 47 | mov al, al, lsl r2 | 
| 48 | mov pc, lr | 48 | mov pc, lr | 
| 49 | 49 | ||
| 50 | ENDPROC(__ashldi3) | ||
| 51 | ENDPROC(__aeabi_llsl) | ||
diff --git a/arch/arm/lib/ashrdi3.S b/arch/arm/lib/ashrdi3.S index 0b31398f89b2..9f8b35572f8c 100644 --- a/arch/arm/lib/ashrdi3.S +++ b/arch/arm/lib/ashrdi3.S  | |||
| @@ -47,3 +47,5 @@ ENTRY(__aeabi_lasr) | |||
| 47 | mov ah, ah, asr r2 | 47 | mov ah, ah, asr r2 | 
| 48 | mov pc, lr | 48 | mov pc, lr | 
| 49 | 49 | ||
| 50 | ENDPROC(__ashrdi3) | ||
| 51 | ENDPROC(__aeabi_lasr) | ||
diff --git a/arch/arm/lib/backtrace.S b/arch/arm/lib/backtrace.S index 84dc890d2bf3..b0951d0e8b2c 100644 --- a/arch/arm/lib/backtrace.S +++ b/arch/arm/lib/backtrace.S  | |||
| @@ -30,6 +30,8 @@ ENTRY(c_backtrace) | |||
| 30 | 30 | ||
| 31 | #if !defined(CONFIG_FRAME_POINTER) || !defined(CONFIG_PRINTK) | 31 | #if !defined(CONFIG_FRAME_POINTER) || !defined(CONFIG_PRINTK) | 
| 32 | mov pc, lr | 32 | mov pc, lr | 
| 33 | ENDPROC(__backtrace) | ||
| 34 | ENDPROC(c_backtrace) | ||
| 33 | #else | 35 | #else | 
| 34 | stmfd sp!, {r4 - r8, lr} @ Save an extra register so we have a location... | 36 | stmfd sp!, {r4 - r8, lr} @ Save an extra register so we have a location... | 
| 35 | movs frame, r0 @ if frame pointer is zero | 37 | movs frame, r0 @ if frame pointer is zero | 
| @@ -103,6 +105,8 @@ for_each_frame: tst frame, mask @ Check for address exceptions | |||
| 103 | mov r1, frame | 105 | mov r1, frame | 
| 104 | bl printk | 106 | bl printk | 
| 105 | no_frame: ldmfd sp!, {r4 - r8, pc} | 107 | no_frame: ldmfd sp!, {r4 - r8, pc} | 
| 108 | ENDPROC(__backtrace) | ||
| 109 | ENDPROC(c_backtrace) | ||
| 106 | 110 | ||
| 107 | .section __ex_table,"a" | 111 | .section __ex_table,"a" | 
| 108 | .align 3 | 112 | .align 3 | 
diff --git a/arch/arm/lib/changebit.S b/arch/arm/lib/changebit.S index 389567c24090..80f3115cbee2 100644 --- a/arch/arm/lib/changebit.S +++ b/arch/arm/lib/changebit.S  | |||
| @@ -19,3 +19,5 @@ ENTRY(_change_bit_be) | |||
| 19 | eor r0, r0, #0x18 @ big endian byte ordering | 19 | eor r0, r0, #0x18 @ big endian byte ordering | 
| 20 | ENTRY(_change_bit_le) | 20 | ENTRY(_change_bit_le) | 
| 21 | bitop eor | 21 | bitop eor | 
| 22 | ENDPROC(_change_bit_be) | ||
| 23 | ENDPROC(_change_bit_le) | ||
diff --git a/arch/arm/lib/clear_user.S b/arch/arm/lib/clear_user.S index ecb28dcdaf7b..4d6bc71231f3 100644 --- a/arch/arm/lib/clear_user.S +++ b/arch/arm/lib/clear_user.S  | |||
| @@ -41,9 +41,10 @@ USER( strplt r2, [r0], #4) | |||
| 41 | USER( strnebt r2, [r0], #1) | 41 | USER( strnebt r2, [r0], #1) | 
| 42 | USER( strnebt r2, [r0], #1) | 42 | USER( strnebt r2, [r0], #1) | 
| 43 | tst r1, #1 @ x1 x0 x1 x0 x1 x0 x1 | 43 | tst r1, #1 @ x1 x0 x1 x0 x1 x0 x1 | 
| 44 | USER( strnebt r2, [r0], #1) | 44 | USER( strnebt r2, [r0]) | 
| 45 | mov r0, #0 | 45 | mov r0, #0 | 
| 46 | ldmfd sp!, {r1, pc} | 46 | ldmfd sp!, {r1, pc} | 
| 47 | ENDPROC(__clear_user) | ||
| 47 | 48 | ||
| 48 | .section .fixup,"ax" | 49 | .section .fixup,"ax" | 
| 49 | .align 0 | 50 | .align 0 | 
diff --git a/arch/arm/lib/clearbit.S b/arch/arm/lib/clearbit.S index 347516533025..1a63e43a1df0 100644 --- a/arch/arm/lib/clearbit.S +++ b/arch/arm/lib/clearbit.S  | |||
| @@ -20,3 +20,5 @@ ENTRY(_clear_bit_be) | |||
| 20 | eor r0, r0, #0x18 @ big endian byte ordering | 20 | eor r0, r0, #0x18 @ big endian byte ordering | 
| 21 | ENTRY(_clear_bit_le) | 21 | ENTRY(_clear_bit_le) | 
| 22 | bitop bic | 22 | bitop bic | 
| 23 | ENDPROC(_clear_bit_be) | ||
| 24 | ENDPROC(_clear_bit_le) | ||
diff --git a/arch/arm/lib/copy_from_user.S b/arch/arm/lib/copy_from_user.S index 6b7363ce749c..56799a165cc4 100644 --- a/arch/arm/lib/copy_from_user.S +++ b/arch/arm/lib/copy_from_user.S  | |||
| @@ -87,6 +87,8 @@ ENTRY(__copy_from_user) | |||
| 87 | 87 | ||
| 88 | #include "copy_template.S" | 88 | #include "copy_template.S" | 
| 89 | 89 | ||
| 90 | ENDPROC(__copy_from_user) | ||
| 91 | |||
| 90 | .section .fixup,"ax" | 92 | .section .fixup,"ax" | 
| 91 | .align 0 | 93 | .align 0 | 
| 92 | copy_abort_preamble | 94 | copy_abort_preamble | 
diff --git a/arch/arm/lib/copy_page.S b/arch/arm/lib/copy_page.S index 666c99cc0744..6ae04db1ca4f 100644 --- a/arch/arm/lib/copy_page.S +++ b/arch/arm/lib/copy_page.S  | |||
| @@ -44,3 +44,4 @@ ENTRY(copy_page) | |||
| 44 | PLD( ldmeqia r1!, {r3, r4, ip, lr} ) | 44 | PLD( ldmeqia r1!, {r3, r4, ip, lr} ) | 
| 45 | PLD( beq 2b ) | 45 | PLD( beq 2b ) | 
| 46 | ldmfd sp!, {r4, pc} @ 3 | 46 | ldmfd sp!, {r4, pc} @ 3 | 
| 47 | ENDPROC(copy_page) | ||
diff --git a/arch/arm/lib/copy_to_user.S b/arch/arm/lib/copy_to_user.S index 5224d94688d9..22f968bbdffd 100644 --- a/arch/arm/lib/copy_to_user.S +++ b/arch/arm/lib/copy_to_user.S  | |||
| @@ -90,6 +90,8 @@ ENTRY(__copy_to_user) | |||
| 90 | 90 | ||
| 91 | #include "copy_template.S" | 91 | #include "copy_template.S" | 
| 92 | 92 | ||
| 93 | ENDPROC(__copy_to_user) | ||
| 94 | |||
| 93 | .section .fixup,"ax" | 95 | .section .fixup,"ax" | 
| 94 | .align 0 | 96 | .align 0 | 
| 95 | copy_abort_preamble | 97 | copy_abort_preamble | 
diff --git a/arch/arm/lib/csumipv6.S b/arch/arm/lib/csumipv6.S index 9621469beec1..3ac6ef01bc43 100644 --- a/arch/arm/lib/csumipv6.S +++ b/arch/arm/lib/csumipv6.S  | |||
| @@ -29,4 +29,5 @@ ENTRY(__csum_ipv6_magic) | |||
| 29 | adcs r0, r0, r2 | 29 | adcs r0, r0, r2 | 
| 30 | adcs r0, r0, #0 | 30 | adcs r0, r0, #0 | 
| 31 | ldmfd sp!, {pc} | 31 | ldmfd sp!, {pc} | 
| 32 | ENDPROC(__csum_ipv6_magic) | ||
| 32 | 33 | ||
diff --git a/arch/arm/lib/csumpartial.S b/arch/arm/lib/csumpartial.S index a78dae5a7b28..31d3cb34740d 100644 --- a/arch/arm/lib/csumpartial.S +++ b/arch/arm/lib/csumpartial.S  | |||
| @@ -139,3 +139,4 @@ ENTRY(csum_partial) | |||
| 139 | tst len, #0x1c | 139 | tst len, #0x1c | 
| 140 | bne 4b | 140 | bne 4b | 
| 141 | b .Lless4 | 141 | b .Lless4 | 
| 142 | ENDPROC(csum_partial) | ||
diff --git a/arch/arm/lib/csumpartialcopy.S b/arch/arm/lib/csumpartialcopy.S index 21effe0dbf97..d03fc71fc88c 100644 --- a/arch/arm/lib/csumpartialcopy.S +++ b/arch/arm/lib/csumpartialcopy.S  | |||
| @@ -18,13 +18,11 @@ | |||
| 18 | */ | 18 | */ | 
| 19 | 19 | ||
| 20 | .macro save_regs | 20 | .macro save_regs | 
| 21 | mov ip, sp | 21 | stmfd sp!, {r1, r4 - r8, lr} | 
| 22 | stmfd sp!, {r1, r4 - r8, fp, ip, lr, pc} | ||
| 23 | sub fp, ip, #4 | ||
| 24 | .endm | 22 | .endm | 
| 25 | 23 | ||
| 26 | .macro load_regs | 24 | .macro load_regs | 
| 27 | ldmfd sp, {r1, r4 - r8, fp, sp, pc} | 25 | ldmfd sp!, {r1, r4 - r8, pc} | 
| 28 | .endm | 26 | .endm | 
| 29 | 27 | ||
| 30 | .macro load1b, reg1 | 28 | .macro load1b, reg1 | 
| @@ -50,5 +48,6 @@ | |||
| 50 | .endm | 48 | .endm | 
| 51 | 49 | ||
| 52 | #define FN_ENTRY ENTRY(csum_partial_copy_nocheck) | 50 | #define FN_ENTRY ENTRY(csum_partial_copy_nocheck) | 
| 51 | #define FN_EXIT ENDPROC(csum_partial_copy_nocheck) | ||
| 53 | 52 | ||
| 54 | #include "csumpartialcopygeneric.S" | 53 | #include "csumpartialcopygeneric.S" | 
diff --git a/arch/arm/lib/csumpartialcopygeneric.S b/arch/arm/lib/csumpartialcopygeneric.S index c50e8f5285d1..d620a5f22a09 100644 --- a/arch/arm/lib/csumpartialcopygeneric.S +++ b/arch/arm/lib/csumpartialcopygeneric.S  | |||
| @@ -329,3 +329,4 @@ FN_ENTRY | |||
| 329 | adcs sum, sum, r4, push #24 | 329 | adcs sum, sum, r4, push #24 | 
| 330 | mov r5, r4, get_byte_1 | 330 | mov r5, r4, get_byte_1 | 
| 331 | b .Lexit | 331 | b .Lexit | 
| 332 | FN_EXIT | ||
diff --git a/arch/arm/lib/csumpartialcopyuser.S b/arch/arm/lib/csumpartialcopyuser.S index c3b93e22ea25..14677fb4b0c4 100644 --- a/arch/arm/lib/csumpartialcopyuser.S +++ b/arch/arm/lib/csumpartialcopyuser.S  | |||
| @@ -18,13 +18,11 @@ | |||
| 18 | .text | 18 | .text | 
| 19 | 19 | ||
| 20 | .macro save_regs | 20 | .macro save_regs | 
| 21 | mov ip, sp | 21 | stmfd sp!, {r1, r2, r4 - r8, lr} | 
| 22 | stmfd sp!, {r1 - r2, r4 - r8, fp, ip, lr, pc} | ||
| 23 | sub fp, ip, #4 | ||
| 24 | .endm | 22 | .endm | 
| 25 | 23 | ||
| 26 | .macro load_regs | 24 | .macro load_regs | 
| 27 | ldmfd sp, {r1, r2, r4-r8, fp, sp, pc} | 25 | ldmfd sp!, {r1, r2, r4 - r8, pc} | 
| 28 | .endm | 26 | .endm | 
| 29 | 27 | ||
| 30 | .macro load1b, reg1 | 28 | .macro load1b, reg1 | 
| @@ -82,6 +80,7 @@ | |||
| 82 | */ | 80 | */ | 
| 83 | 81 | ||
| 84 | #define FN_ENTRY ENTRY(csum_partial_copy_from_user) | 82 | #define FN_ENTRY ENTRY(csum_partial_copy_from_user) | 
| 83 | #define FN_EXIT ENDPROC(csum_partial_copy_from_user) | ||
| 85 | 84 | ||
| 86 | #include "csumpartialcopygeneric.S" | 85 | #include "csumpartialcopygeneric.S" | 
| 87 | 86 | ||
diff --git a/arch/arm/lib/delay.S b/arch/arm/lib/delay.S index 930a70259220..8d6a8762ab88 100644 --- a/arch/arm/lib/delay.S +++ b/arch/arm/lib/delay.S  | |||
| @@ -60,3 +60,6 @@ ENTRY(__delay) | |||
| 60 | #endif | 60 | #endif | 
| 61 | bhi __delay | 61 | bhi __delay | 
| 62 | mov pc, lr | 62 | mov pc, lr | 
| 63 | ENDPROC(__udelay) | ||
| 64 | ENDPROC(__const_udelay) | ||
| 65 | ENDPROC(__delay) | ||
diff --git a/arch/arm/lib/div64.S b/arch/arm/lib/div64.S index 58eef6607629..1425e789ba86 100644 --- a/arch/arm/lib/div64.S +++ b/arch/arm/lib/div64.S  | |||
| @@ -198,3 +198,4 @@ ENTRY(__do_div64) | |||
| 198 | mov xh, #0 | 198 | mov xh, #0 | 
| 199 | ldr pc, [sp], #8 | 199 | ldr pc, [sp], #8 | 
| 200 | 200 | ||
| 201 | ENDPROC(__do_div64) | ||
diff --git a/arch/arm/lib/findbit.S b/arch/arm/lib/findbit.S index a5ca0248aa4e..8c4defc4f3c4 100644 --- a/arch/arm/lib/findbit.S +++ b/arch/arm/lib/findbit.S  | |||
| @@ -33,6 +33,7 @@ ENTRY(_find_first_zero_bit_le) | |||
| 33 | blo 1b | 33 | blo 1b | 
| 34 | 3: mov r0, r1 @ no free bits | 34 | 3: mov r0, r1 @ no free bits | 
| 35 | mov pc, lr | 35 | mov pc, lr | 
| 36 | ENDPROC(_find_first_zero_bit_le) | ||
| 36 | 37 | ||
| 37 | /* | 38 | /* | 
| 38 | * Purpose : Find next 'zero' bit | 39 | * Purpose : Find next 'zero' bit | 
| @@ -50,6 +51,7 @@ ENTRY(_find_next_zero_bit_le) | |||
| 50 | orr r2, r2, #7 @ if zero, then no bits here | 51 | orr r2, r2, #7 @ if zero, then no bits here | 
| 51 | add r2, r2, #1 @ align bit pointer | 52 | add r2, r2, #1 @ align bit pointer | 
| 52 | b 2b @ loop for next bit | 53 | b 2b @ loop for next bit | 
| 54 | ENDPROC(_find_next_zero_bit_le) | ||
| 53 | 55 | ||
| 54 | /* | 56 | /* | 
| 55 | * Purpose : Find a 'one' bit | 57 | * Purpose : Find a 'one' bit | 
| @@ -67,6 +69,7 @@ ENTRY(_find_first_bit_le) | |||
| 67 | blo 1b | 69 | blo 1b | 
| 68 | 3: mov r0, r1 @ no free bits | 70 | 3: mov r0, r1 @ no free bits | 
| 69 | mov pc, lr | 71 | mov pc, lr | 
| 72 | ENDPROC(_find_first_bit_le) | ||
| 70 | 73 | ||
| 71 | /* | 74 | /* | 
| 72 | * Purpose : Find next 'one' bit | 75 | * Purpose : Find next 'one' bit | 
| @@ -83,6 +86,7 @@ ENTRY(_find_next_bit_le) | |||
| 83 | orr r2, r2, #7 @ if zero, then no bits here | 86 | orr r2, r2, #7 @ if zero, then no bits here | 
| 84 | add r2, r2, #1 @ align bit pointer | 87 | add r2, r2, #1 @ align bit pointer | 
| 85 | b 2b @ loop for next bit | 88 | b 2b @ loop for next bit | 
| 89 | ENDPROC(_find_next_bit_le) | ||
| 86 | 90 | ||
| 87 | #ifdef __ARMEB__ | 91 | #ifdef __ARMEB__ | 
| 88 | 92 | ||
| @@ -99,6 +103,7 @@ ENTRY(_find_first_zero_bit_be) | |||
| 99 | blo 1b | 103 | blo 1b | 
| 100 | 3: mov r0, r1 @ no free bits | 104 | 3: mov r0, r1 @ no free bits | 
| 101 | mov pc, lr | 105 | mov pc, lr | 
| 106 | ENDPROC(_find_first_zero_bit_be) | ||
| 102 | 107 | ||
| 103 | ENTRY(_find_next_zero_bit_be) | 108 | ENTRY(_find_next_zero_bit_be) | 
| 104 | teq r1, #0 | 109 | teq r1, #0 | 
| @@ -113,6 +118,7 @@ ENTRY(_find_next_zero_bit_be) | |||
| 113 | orr r2, r2, #7 @ if zero, then no bits here | 118 | orr r2, r2, #7 @ if zero, then no bits here | 
| 114 | add r2, r2, #1 @ align bit pointer | 119 | add r2, r2, #1 @ align bit pointer | 
| 115 | b 2b @ loop for next bit | 120 | b 2b @ loop for next bit | 
| 121 | ENDPROC(_find_next_zero_bit_be) | ||
| 116 | 122 | ||
| 117 | ENTRY(_find_first_bit_be) | 123 | ENTRY(_find_first_bit_be) | 
| 118 | teq r1, #0 | 124 | teq r1, #0 | 
| @@ -127,6 +133,7 @@ ENTRY(_find_first_bit_be) | |||
| 127 | blo 1b | 133 | blo 1b | 
| 128 | 3: mov r0, r1 @ no free bits | 134 | 3: mov r0, r1 @ no free bits | 
| 129 | mov pc, lr | 135 | mov pc, lr | 
| 136 | ENDPROC(_find_first_bit_be) | ||
| 130 | 137 | ||
| 131 | ENTRY(_find_next_bit_be) | 138 | ENTRY(_find_next_bit_be) | 
| 132 | teq r1, #0 | 139 | teq r1, #0 | 
| @@ -140,6 +147,7 @@ ENTRY(_find_next_bit_be) | |||
| 140 | orr r2, r2, #7 @ if zero, then no bits here | 147 | orr r2, r2, #7 @ if zero, then no bits here | 
| 141 | add r2, r2, #1 @ align bit pointer | 148 | add r2, r2, #1 @ align bit pointer | 
| 142 | b 2b @ loop for next bit | 149 | b 2b @ loop for next bit | 
| 150 | ENDPROC(_find_next_bit_be) | ||
| 143 | 151 | ||
| 144 | #endif | 152 | #endif | 
| 145 | 153 | ||
diff --git a/arch/arm/lib/getuser.S b/arch/arm/lib/getuser.S index 2034d4dbe6ad..6763088b7607 100644 --- a/arch/arm/lib/getuser.S +++ b/arch/arm/lib/getuser.S  | |||
| @@ -26,16 +26,16 @@ | |||
| 26 | * Note that ADDR_LIMIT is either 0 or 0xc0000000. | 26 | * Note that ADDR_LIMIT is either 0 or 0xc0000000. | 
| 27 | * Note also that it is intended that __get_user_bad is not global. | 27 | * Note also that it is intended that __get_user_bad is not global. | 
| 28 | */ | 28 | */ | 
| 29 | #include <linux/linkage.h> | ||
| 29 | #include <asm/errno.h> | 30 | #include <asm/errno.h> | 
| 30 | 31 | ||
| 31 | .global __get_user_1 | 32 | ENTRY(__get_user_1) | 
| 32 | __get_user_1: | ||
| 33 | 1: ldrbt r2, [r0] | 33 | 1: ldrbt r2, [r0] | 
| 34 | mov r0, #0 | 34 | mov r0, #0 | 
| 35 | mov pc, lr | 35 | mov pc, lr | 
| 36 | ENDPROC(__get_user_1) | ||
| 36 | 37 | ||
| 37 | .global __get_user_2 | 38 | ENTRY(__get_user_2) | 
| 38 | __get_user_2: | ||
| 39 | 2: ldrbt r2, [r0], #1 | 39 | 2: ldrbt r2, [r0], #1 | 
| 40 | 3: ldrbt r3, [r0] | 40 | 3: ldrbt r3, [r0] | 
| 41 | #ifndef __ARMEB__ | 41 | #ifndef __ARMEB__ | 
| @@ -45,17 +45,19 @@ __get_user_2: | |||
| 45 | #endif | 45 | #endif | 
| 46 | mov r0, #0 | 46 | mov r0, #0 | 
| 47 | mov pc, lr | 47 | mov pc, lr | 
| 48 | ENDPROC(__get_user_2) | ||
| 48 | 49 | ||
| 49 | .global __get_user_4 | 50 | ENTRY(__get_user_4) | 
| 50 | __get_user_4: | ||
| 51 | 4: ldrt r2, [r0] | 51 | 4: ldrt r2, [r0] | 
| 52 | mov r0, #0 | 52 | mov r0, #0 | 
| 53 | mov pc, lr | 53 | mov pc, lr | 
| 54 | ENDPROC(__get_user_4) | ||
| 54 | 55 | ||
| 55 | __get_user_bad: | 56 | __get_user_bad: | 
| 56 | mov r2, #0 | 57 | mov r2, #0 | 
| 57 | mov r0, #-EFAULT | 58 | mov r0, #-EFAULT | 
| 58 | mov pc, lr | 59 | mov pc, lr | 
| 60 | ENDPROC(__get_user_bad) | ||
| 59 | 61 | ||
| 60 | .section __ex_table, "a" | 62 | .section __ex_table, "a" | 
| 61 | .long 1b, __get_user_bad | 63 | .long 1b, __get_user_bad | 
diff --git a/arch/arm/lib/io-readsb.S b/arch/arm/lib/io-readsb.S index fb966ad0276f..9f4238987fe9 100644 --- a/arch/arm/lib/io-readsb.S +++ b/arch/arm/lib/io-readsb.S  | |||
| @@ -120,3 +120,4 @@ ENTRY(__raw_readsb) | |||
| 120 | strgtb r3, [r1] | 120 | strgtb r3, [r1] | 
| 121 | 121 | ||
| 122 | ldmfd sp!, {r4 - r6, pc} | 122 | ldmfd sp!, {r4 - r6, pc} | 
| 123 | ENDPROC(__raw_readsb) | ||
diff --git a/arch/arm/lib/io-readsl.S b/arch/arm/lib/io-readsl.S index 75a9121cb23f..5fb97e7f9f4b 100644 --- a/arch/arm/lib/io-readsl.S +++ b/arch/arm/lib/io-readsl.S  | |||
| @@ -76,3 +76,4 @@ ENTRY(__raw_readsl) | |||
| 76 | 8: mov r3, ip, get_byte_0 | 76 | 8: mov r3, ip, get_byte_0 | 
| 77 | strb r3, [r1, #0] | 77 | strb r3, [r1, #0] | 
| 78 | mov pc, lr | 78 | mov pc, lr | 
| 79 | ENDPROC(__raw_readsl) | ||
diff --git a/arch/arm/lib/io-readsw-armv4.S b/arch/arm/lib/io-readsw-armv4.S index 4db1c5f0b219..1f393d42593d 100644 --- a/arch/arm/lib/io-readsw-armv4.S +++ b/arch/arm/lib/io-readsw-armv4.S  | |||
| @@ -128,3 +128,4 @@ ENTRY(__raw_readsw) | |||
| 128 | _BE_ONLY_( movne ip, ip, lsr #24 ) | 128 | _BE_ONLY_( movne ip, ip, lsr #24 ) | 
| 129 | strneb ip, [r1] | 129 | strneb ip, [r1] | 
| 130 | ldmfd sp!, {r4, pc} | 130 | ldmfd sp!, {r4, pc} | 
| 131 | ENDPROC(__raw_readsw) | ||
diff --git a/arch/arm/lib/io-writesb.S b/arch/arm/lib/io-writesb.S index 7eba2b6cc69f..68b92f4acaeb 100644 --- a/arch/arm/lib/io-writesb.S +++ b/arch/arm/lib/io-writesb.S  | |||
| @@ -91,3 +91,4 @@ ENTRY(__raw_writesb) | |||
| 91 | strgtb r3, [r0] | 91 | strgtb r3, [r0] | 
| 92 | 92 | ||
| 93 | ldmfd sp!, {r4, r5, pc} | 93 | ldmfd sp!, {r4, r5, pc} | 
| 94 | ENDPROC(__raw_writesb) | ||
diff --git a/arch/arm/lib/io-writesl.S b/arch/arm/lib/io-writesl.S index f8f14dd227ca..8d3b7813725c 100644 --- a/arch/arm/lib/io-writesl.S +++ b/arch/arm/lib/io-writesl.S  | |||
| @@ -64,3 +64,4 @@ ENTRY(__raw_writesl) | |||
| 64 | str ip, [r0] | 64 | str ip, [r0] | 
| 65 | bne 6b | 65 | bne 6b | 
| 66 | mov pc, lr | 66 | mov pc, lr | 
| 67 | ENDPROC(__raw_writesl) | ||
diff --git a/arch/arm/lib/io-writesw-armv4.S b/arch/arm/lib/io-writesw-armv4.S index c8e85bd653b7..d6585612c86b 100644 --- a/arch/arm/lib/io-writesw-armv4.S +++ b/arch/arm/lib/io-writesw-armv4.S  | |||
| @@ -94,3 +94,4 @@ ENTRY(__raw_writesw) | |||
| 94 | 3: movne ip, r3, lsr #8 | 94 | 3: movne ip, r3, lsr #8 | 
| 95 | strneh ip, [r0] | 95 | strneh ip, [r0] | 
| 96 | mov pc, lr | 96 | mov pc, lr | 
| 97 | ENDPROC(__raw_writesw) | ||
diff --git a/arch/arm/lib/lib1funcs.S b/arch/arm/lib/lib1funcs.S index 4e492f4b3f0e..67964bcfc854 100644 --- a/arch/arm/lib/lib1funcs.S +++ b/arch/arm/lib/lib1funcs.S  | |||
| @@ -230,6 +230,8 @@ ENTRY(__aeabi_uidiv) | |||
| 230 | mov r0, r0, lsr r2 | 230 | mov r0, r0, lsr r2 | 
| 231 | mov pc, lr | 231 | mov pc, lr | 
| 232 | 232 | ||
| 233 | ENDPROC(__udivsi3) | ||
| 234 | ENDPROC(__aeabi_uidiv) | ||
| 233 | 235 | ||
| 234 | ENTRY(__umodsi3) | 236 | ENTRY(__umodsi3) | 
| 235 | 237 | ||
| @@ -245,6 +247,7 @@ ENTRY(__umodsi3) | |||
| 245 | 247 | ||
| 246 | mov pc, lr | 248 | mov pc, lr | 
| 247 | 249 | ||
| 250 | ENDPROC(__umodsi3) | ||
| 248 | 251 | ||
| 249 | ENTRY(__divsi3) | 252 | ENTRY(__divsi3) | 
| 250 | ENTRY(__aeabi_idiv) | 253 | ENTRY(__aeabi_idiv) | 
| @@ -284,6 +287,8 @@ ENTRY(__aeabi_idiv) | |||
| 284 | rsbmi r0, r0, #0 | 287 | rsbmi r0, r0, #0 | 
| 285 | mov pc, lr | 288 | mov pc, lr | 
| 286 | 289 | ||
| 290 | ENDPROC(__divsi3) | ||
| 291 | ENDPROC(__aeabi_idiv) | ||
| 287 | 292 | ||
| 288 | ENTRY(__modsi3) | 293 | ENTRY(__modsi3) | 
| 289 | 294 | ||
| @@ -305,6 +310,8 @@ ENTRY(__modsi3) | |||
| 305 | rsbmi r0, r0, #0 | 310 | rsbmi r0, r0, #0 | 
| 306 | mov pc, lr | 311 | mov pc, lr | 
| 307 | 312 | ||
| 313 | ENDPROC(__modsi3) | ||
| 314 | |||
| 308 | #ifdef CONFIG_AEABI | 315 | #ifdef CONFIG_AEABI | 
| 309 | 316 | ||
| 310 | ENTRY(__aeabi_uidivmod) | 317 | ENTRY(__aeabi_uidivmod) | 
| @@ -316,6 +323,8 @@ ENTRY(__aeabi_uidivmod) | |||
| 316 | sub r1, r1, r3 | 323 | sub r1, r1, r3 | 
| 317 | mov pc, lr | 324 | mov pc, lr | 
| 318 | 325 | ||
| 326 | ENDPROC(__aeabi_uidivmod) | ||
| 327 | |||
| 319 | ENTRY(__aeabi_idivmod) | 328 | ENTRY(__aeabi_idivmod) | 
| 320 | 329 | ||
| 321 | stmfd sp!, {r0, r1, ip, lr} | 330 | stmfd sp!, {r0, r1, ip, lr} | 
| @@ -325,6 +334,8 @@ ENTRY(__aeabi_idivmod) | |||
| 325 | sub r1, r1, r3 | 334 | sub r1, r1, r3 | 
| 326 | mov pc, lr | 335 | mov pc, lr | 
| 327 | 336 | ||
| 337 | ENDPROC(__aeabi_idivmod) | ||
| 338 | |||
| 328 | #endif | 339 | #endif | 
| 329 | 340 | ||
| 330 | Ldiv0: | 341 | Ldiv0: | 
diff --git a/arch/arm/lib/lshrdi3.S b/arch/arm/lib/lshrdi3.S index a86dbdd59cc4..99ea338bf87c 100644 --- a/arch/arm/lib/lshrdi3.S +++ b/arch/arm/lib/lshrdi3.S  | |||
| @@ -47,3 +47,5 @@ ENTRY(__aeabi_llsr) | |||
| 47 | mov ah, ah, lsr r2 | 47 | mov ah, ah, lsr r2 | 
| 48 | mov pc, lr | 48 | mov pc, lr | 
| 49 | 49 | ||
| 50 | ENDPROC(__lshrdi3) | ||
| 51 | ENDPROC(__aeabi_llsr) | ||
diff --git a/arch/arm/lib/memchr.S b/arch/arm/lib/memchr.S index e7ab1ea8ebaa..1da86991d700 100644 --- a/arch/arm/lib/memchr.S +++ b/arch/arm/lib/memchr.S  | |||
| @@ -23,3 +23,4 @@ ENTRY(memchr) | |||
| 23 | sub r0, r0, #1 | 23 | sub r0, r0, #1 | 
| 24 | 2: movne r0, #0 | 24 | 2: movne r0, #0 | 
| 25 | mov pc, lr | 25 | mov pc, lr | 
| 26 | ENDPROC(memchr) | ||
diff --git a/arch/arm/lib/memcpy.S b/arch/arm/lib/memcpy.S index 7e71d6708a8d..e0d002641d3f 100644 --- a/arch/arm/lib/memcpy.S +++ b/arch/arm/lib/memcpy.S  | |||
| @@ -57,3 +57,4 @@ ENTRY(memcpy) | |||
| 57 | 57 | ||
| 58 | #include "copy_template.S" | 58 | #include "copy_template.S" | 
| 59 | 59 | ||
| 60 | ENDPROC(memcpy) | ||
diff --git a/arch/arm/lib/memmove.S b/arch/arm/lib/memmove.S index 2e301b7bd8f1..12549187088c 100644 --- a/arch/arm/lib/memmove.S +++ b/arch/arm/lib/memmove.S  | |||
| @@ -196,3 +196,4 @@ ENTRY(memmove) | |||
| 196 | 196 | ||
| 197 | 18: backward_copy_shift push=24 pull=8 | 197 | 18: backward_copy_shift push=24 pull=8 | 
| 198 | 198 | ||
| 199 | ENDPROC(memmove) | ||
diff --git a/arch/arm/lib/memset.S b/arch/arm/lib/memset.S index b477d4ac88ef..761eefa76243 100644 --- a/arch/arm/lib/memset.S +++ b/arch/arm/lib/memset.S  | |||
| @@ -124,3 +124,4 @@ ENTRY(memset) | |||
| 124 | tst r2, #1 | 124 | tst r2, #1 | 
| 125 | strneb r1, [r0], #1 | 125 | strneb r1, [r0], #1 | 
| 126 | mov pc, lr | 126 | mov pc, lr | 
| 127 | ENDPROC(memset) | ||
diff --git a/arch/arm/lib/memzero.S b/arch/arm/lib/memzero.S index b8f79d80ee9b..3fbdef5f802a 100644 --- a/arch/arm/lib/memzero.S +++ b/arch/arm/lib/memzero.S  | |||
| @@ -122,3 +122,4 @@ ENTRY(__memzero) | |||
| 122 | tst r1, #1 @ 1 a byte left over | 122 | tst r1, #1 @ 1 a byte left over | 
| 123 | strneb r2, [r0], #1 @ 1 | 123 | strneb r2, [r0], #1 @ 1 | 
| 124 | mov pc, lr @ 1 | 124 | mov pc, lr @ 1 | 
| 125 | ENDPROC(__memzero) | ||
diff --git a/arch/arm/lib/muldi3.S b/arch/arm/lib/muldi3.S index d89c60615794..36c91b4957e2 100644 --- a/arch/arm/lib/muldi3.S +++ b/arch/arm/lib/muldi3.S  | |||
| @@ -43,3 +43,5 @@ ENTRY(__aeabi_lmul) | |||
| 43 | adc xh, xh, ip, lsr #16 | 43 | adc xh, xh, ip, lsr #16 | 
| 44 | mov pc, lr | 44 | mov pc, lr | 
| 45 | 45 | ||
| 46 | ENDPROC(__muldi3) | ||
| 47 | ENDPROC(__aeabi_lmul) | ||
diff --git a/arch/arm/lib/putuser.S b/arch/arm/lib/putuser.S index 08ec7dffa52e..864f3c1c4f18 100644 --- a/arch/arm/lib/putuser.S +++ b/arch/arm/lib/putuser.S  | |||
| @@ -26,16 +26,16 @@ | |||
| 26 | * Note that ADDR_LIMIT is either 0 or 0xc0000000 | 26 | * Note that ADDR_LIMIT is either 0 or 0xc0000000 | 
| 27 | * Note also that it is intended that __put_user_bad is not global. | 27 | * Note also that it is intended that __put_user_bad is not global. | 
| 28 | */ | 28 | */ | 
| 29 | #include <linux/linkage.h> | ||
| 29 | #include <asm/errno.h> | 30 | #include <asm/errno.h> | 
| 30 | 31 | ||
| 31 | .global __put_user_1 | 32 | ENTRY(__put_user_1) | 
| 32 | __put_user_1: | ||
| 33 | 1: strbt r2, [r0] | 33 | 1: strbt r2, [r0] | 
| 34 | mov r0, #0 | 34 | mov r0, #0 | 
| 35 | mov pc, lr | 35 | mov pc, lr | 
| 36 | ENDPROC(__put_user_1) | ||
| 36 | 37 | ||
| 37 | .global __put_user_2 | 38 | ENTRY(__put_user_2) | 
| 38 | __put_user_2: | ||
| 39 | mov ip, r2, lsr #8 | 39 | mov ip, r2, lsr #8 | 
| 40 | #ifndef __ARMEB__ | 40 | #ifndef __ARMEB__ | 
| 41 | 2: strbt r2, [r0], #1 | 41 | 2: strbt r2, [r0], #1 | 
| @@ -46,23 +46,25 @@ __put_user_2: | |||
| 46 | #endif | 46 | #endif | 
| 47 | mov r0, #0 | 47 | mov r0, #0 | 
| 48 | mov pc, lr | 48 | mov pc, lr | 
| 49 | ENDPROC(__put_user_2) | ||
| 49 | 50 | ||
| 50 | .global __put_user_4 | 51 | ENTRY(__put_user_4) | 
| 51 | __put_user_4: | ||
| 52 | 4: strt r2, [r0] | 52 | 4: strt r2, [r0] | 
| 53 | mov r0, #0 | 53 | mov r0, #0 | 
| 54 | mov pc, lr | 54 | mov pc, lr | 
| 55 | ENDPROC(__put_user_4) | ||
| 55 | 56 | ||
| 56 | .global __put_user_8 | 57 | ENTRY(__put_user_8) | 
| 57 | __put_user_8: | ||
| 58 | 5: strt r2, [r0], #4 | 58 | 5: strt r2, [r0], #4 | 
| 59 | 6: strt r3, [r0] | 59 | 6: strt r3, [r0] | 
| 60 | mov r0, #0 | 60 | mov r0, #0 | 
| 61 | mov pc, lr | 61 | mov pc, lr | 
| 62 | ENDPROC(__put_user_8) | ||
| 62 | 63 | ||
| 63 | __put_user_bad: | 64 | __put_user_bad: | 
| 64 | mov r0, #-EFAULT | 65 | mov r0, #-EFAULT | 
| 65 | mov pc, lr | 66 | mov pc, lr | 
| 67 | ENDPROC(__put_user_bad) | ||
| 66 | 68 | ||
| 67 | .section __ex_table, "a" | 69 | .section __ex_table, "a" | 
| 68 | .long 1b, __put_user_bad | 70 | .long 1b, __put_user_bad | 
diff --git a/arch/arm/lib/setbit.S b/arch/arm/lib/setbit.S index 83bc23d5b037..1dd7176c4b2b 100644 --- a/arch/arm/lib/setbit.S +++ b/arch/arm/lib/setbit.S  | |||
| @@ -20,3 +20,5 @@ ENTRY(_set_bit_be) | |||
| 20 | eor r0, r0, #0x18 @ big endian byte ordering | 20 | eor r0, r0, #0x18 @ big endian byte ordering | 
| 21 | ENTRY(_set_bit_le) | 21 | ENTRY(_set_bit_le) | 
| 22 | bitop orr | 22 | bitop orr | 
| 23 | ENDPROC(_set_bit_be) | ||
| 24 | ENDPROC(_set_bit_le) | ||
diff --git a/arch/arm/lib/sha1.S b/arch/arm/lib/sha1.S index 67c2bf4774b7..a16fb208c841 100644 --- a/arch/arm/lib/sha1.S +++ b/arch/arm/lib/sha1.S  | |||
| @@ -185,6 +185,8 @@ ENTRY(sha_transform) | |||
| 185 | 185 | ||
| 186 | ldmfd sp!, {r4 - r8, pc} | 186 | ldmfd sp!, {r4 - r8, pc} | 
| 187 | 187 | ||
| 188 | ENDPROC(sha_transform) | ||
| 189 | |||
| 188 | .L_sha_K: | 190 | .L_sha_K: | 
| 189 | .word 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6 | 191 | .word 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6 | 
| 190 | 192 | ||
| @@ -204,3 +206,4 @@ ENTRY(sha_init) | |||
| 204 | stmia r0, {r1, r2, r3, ip, lr} | 206 | stmia r0, {r1, r2, r3, ip, lr} | 
| 205 | ldr pc, [sp], #4 | 207 | ldr pc, [sp], #4 | 
| 206 | 208 | ||
| 209 | ENDPROC(sha_init) | ||
diff --git a/arch/arm/lib/strchr.S b/arch/arm/lib/strchr.S index 9f18d6fdee6a..d8f2a1c1aea4 100644 --- a/arch/arm/lib/strchr.S +++ b/arch/arm/lib/strchr.S  | |||
| @@ -24,3 +24,4 @@ ENTRY(strchr) | |||
| 24 | movne r0, #0 | 24 | movne r0, #0 | 
| 25 | subeq r0, r0, #1 | 25 | subeq r0, r0, #1 | 
| 26 | mov pc, lr | 26 | mov pc, lr | 
| 27 | ENDPROC(strchr) | ||
diff --git a/arch/arm/lib/strncpy_from_user.S b/arch/arm/lib/strncpy_from_user.S index 36e3741a3772..330373c26dd9 100644 --- a/arch/arm/lib/strncpy_from_user.S +++ b/arch/arm/lib/strncpy_from_user.S  | |||
| @@ -31,6 +31,7 @@ USER( ldrplbt r3, [r1], #1) | |||
| 31 | sub r1, r1, #1 @ take NUL character out of count | 31 | sub r1, r1, #1 @ take NUL character out of count | 
| 32 | 2: sub r0, r1, ip | 32 | 2: sub r0, r1, ip | 
| 33 | mov pc, lr | 33 | mov pc, lr | 
| 34 | ENDPROC(__strncpy_from_user) | ||
| 34 | 35 | ||
| 35 | .section .fixup,"ax" | 36 | .section .fixup,"ax" | 
| 36 | .align 0 | 37 | .align 0 | 
diff --git a/arch/arm/lib/strnlen_user.S b/arch/arm/lib/strnlen_user.S index 18d8fa4f925a..90bb9d020836 100644 --- a/arch/arm/lib/strnlen_user.S +++ b/arch/arm/lib/strnlen_user.S  | |||
| @@ -31,6 +31,7 @@ USER( ldrbt r3, [r0], #1) | |||
| 31 | add r0, r0, #1 | 31 | add r0, r0, #1 | 
| 32 | 2: sub r0, r0, r2 | 32 | 2: sub r0, r0, r2 | 
| 33 | mov pc, lr | 33 | mov pc, lr | 
| 34 | ENDPROC(__strnlen_user) | ||
| 34 | 35 | ||
| 35 | .section .fixup,"ax" | 36 | .section .fixup,"ax" | 
| 36 | .align 0 | 37 | .align 0 | 
diff --git a/arch/arm/lib/strrchr.S b/arch/arm/lib/strrchr.S index 538df220aa48..302f20cd2423 100644 --- a/arch/arm/lib/strrchr.S +++ b/arch/arm/lib/strrchr.S  | |||
| @@ -23,3 +23,4 @@ ENTRY(strrchr) | |||
| 23 | bne 1b | 23 | bne 1b | 
| 24 | mov r0, r3 | 24 | mov r0, r3 | 
| 25 | mov pc, lr | 25 | mov pc, lr | 
| 26 | ENDPROC(strrchr) | ||
diff --git a/arch/arm/lib/testchangebit.S b/arch/arm/lib/testchangebit.S index b25dcd2be53e..5c98dc567f0f 100644 --- a/arch/arm/lib/testchangebit.S +++ b/arch/arm/lib/testchangebit.S  | |||
| @@ -16,3 +16,5 @@ ENTRY(_test_and_change_bit_be) | |||
| 16 | eor r0, r0, #0x18 @ big endian byte ordering | 16 | eor r0, r0, #0x18 @ big endian byte ordering | 
| 17 | ENTRY(_test_and_change_bit_le) | 17 | ENTRY(_test_and_change_bit_le) | 
| 18 | testop eor, strb | 18 | testop eor, strb | 
| 19 | ENDPROC(_test_and_change_bit_be) | ||
| 20 | ENDPROC(_test_and_change_bit_le) | ||
diff --git a/arch/arm/lib/testclearbit.S b/arch/arm/lib/testclearbit.S index 2dcc4b16b68e..543d7094d18e 100644 --- a/arch/arm/lib/testclearbit.S +++ b/arch/arm/lib/testclearbit.S  | |||
| @@ -16,3 +16,5 @@ ENTRY(_test_and_clear_bit_be) | |||
| 16 | eor r0, r0, #0x18 @ big endian byte ordering | 16 | eor r0, r0, #0x18 @ big endian byte ordering | 
| 17 | ENTRY(_test_and_clear_bit_le) | 17 | ENTRY(_test_and_clear_bit_le) | 
| 18 | testop bicne, strneb | 18 | testop bicne, strneb | 
| 19 | ENDPROC(_test_and_clear_bit_be) | ||
| 20 | ENDPROC(_test_and_clear_bit_le) | ||
diff --git a/arch/arm/lib/testsetbit.S b/arch/arm/lib/testsetbit.S index 9011c969761a..0b3f390401ce 100644 --- a/arch/arm/lib/testsetbit.S +++ b/arch/arm/lib/testsetbit.S  | |||
| @@ -16,3 +16,5 @@ ENTRY(_test_and_set_bit_be) | |||
| 16 | eor r0, r0, #0x18 @ big endian byte ordering | 16 | eor r0, r0, #0x18 @ big endian byte ordering | 
| 17 | ENTRY(_test_and_set_bit_le) | 17 | ENTRY(_test_and_set_bit_le) | 
| 18 | testop orreq, streqb | 18 | testop orreq, streqb | 
| 19 | ENDPROC(_test_and_set_bit_be) | ||
| 20 | ENDPROC(_test_and_set_bit_le) | ||
diff --git a/arch/arm/lib/uaccess.S b/arch/arm/lib/uaccess.S index b48bd6d5fd83..ffdd27498cee 100644 --- a/arch/arm/lib/uaccess.S +++ b/arch/arm/lib/uaccess.S  | |||
| @@ -277,6 +277,7 @@ USER( strgebt r3, [r0], #1) @ May fault | |||
| 277 | ldrgtb r3, [r1], #0 | 277 | ldrgtb r3, [r1], #0 | 
| 278 | USER( strgtbt r3, [r0], #1) @ May fault | 278 | USER( strgtbt r3, [r0], #1) @ May fault | 
| 279 | b .Lc2u_finished | 279 | b .Lc2u_finished | 
| 280 | ENDPROC(__copy_to_user) | ||
| 280 | 281 | ||
| 281 | .section .fixup,"ax" | 282 | .section .fixup,"ax" | 
| 282 | .align 0 | 283 | .align 0 | 
| @@ -542,6 +543,7 @@ USER( ldrgebt r3, [r1], #1) @ May fault | |||
| 542 | USER( ldrgtbt r3, [r1], #1) @ May fault | 543 | USER( ldrgtbt r3, [r1], #1) @ May fault | 
| 543 | strgtb r3, [r0], #1 | 544 | strgtb r3, [r0], #1 | 
| 544 | b .Lcfu_finished | 545 | b .Lcfu_finished | 
| 546 | ENDPROC(__copy_from_user) | ||
| 545 | 547 | ||
| 546 | .section .fixup,"ax" | 548 | .section .fixup,"ax" | 
| 547 | .align 0 | 549 | .align 0 | 
diff --git a/arch/arm/lib/ucmpdi2.S b/arch/arm/lib/ucmpdi2.S index f76de07ac182..f0df6a91db04 100644 --- a/arch/arm/lib/ucmpdi2.S +++ b/arch/arm/lib/ucmpdi2.S  | |||
| @@ -33,6 +33,8 @@ ENTRY(__ucmpdi2) | |||
| 33 | movhi r0, #2 | 33 | movhi r0, #2 | 
| 34 | mov pc, lr | 34 | mov pc, lr | 
| 35 | 35 | ||
| 36 | ENDPROC(__ucmpdi2) | ||
| 37 | |||
| 36 | #ifdef CONFIG_AEABI | 38 | #ifdef CONFIG_AEABI | 
| 37 | 39 | ||
| 38 | ENTRY(__aeabi_ulcmp) | 40 | ENTRY(__aeabi_ulcmp) | 
| @@ -44,5 +46,7 @@ ENTRY(__aeabi_ulcmp) | |||
| 44 | movhi r0, #1 | 46 | movhi r0, #1 | 
| 45 | mov pc, lr | 47 | mov pc, lr | 
| 46 | 48 | ||
| 49 | ENDPROC(__aeabi_ulcmp) | ||
| 50 | |||
| 47 | #endif | 51 | #endif | 
| 48 | 52 | ||
