diff options
| author | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-10-25 03:19:59 -0400 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-10-25 03:19:59 -0400 |
| commit | bdf4e9482360a3ddc1619efbd5d1c928ede8c3fa (patch) | |
| tree | b02319e809c5b8abfca85409a11472775e27f597 /arch/arm/lib | |
| parent | 06afb1a087d49ae0f676b2e5b9ffe5f4b3aba355 (diff) | |
| parent | eb0474544bc16a9dab53b26abd846e86ba814eb1 (diff) | |
Merge branch 'misc' into for-linus
Conflicts:
arch/arm/mach-integrator/integrator_ap.c
Diffstat (limited to 'arch/arm/lib')
| -rw-r--r-- | arch/arm/lib/backtrace.S | 6 | ||||
| -rw-r--r-- | arch/arm/lib/div64.S | 8 |
2 files changed, 8 insertions, 6 deletions
diff --git a/arch/arm/lib/backtrace.S b/arch/arm/lib/backtrace.S index a673297b0cf1..cd07b5814c23 100644 --- a/arch/arm/lib/backtrace.S +++ b/arch/arm/lib/backtrace.S | |||
| @@ -22,15 +22,10 @@ | |||
| 22 | #define mask r7 | 22 | #define mask r7 |
| 23 | #define offset r8 | 23 | #define offset r8 |
| 24 | 24 | ||
| 25 | ENTRY(__backtrace) | ||
| 26 | mov r1, #0x10 | ||
| 27 | mov r0, fp | ||
| 28 | |||
| 29 | ENTRY(c_backtrace) | 25 | ENTRY(c_backtrace) |
| 30 | 26 | ||
| 31 | #if !defined(CONFIG_FRAME_POINTER) || !defined(CONFIG_PRINTK) | 27 | #if !defined(CONFIG_FRAME_POINTER) || !defined(CONFIG_PRINTK) |
| 32 | mov pc, lr | 28 | mov pc, lr |
| 33 | ENDPROC(__backtrace) | ||
| 34 | ENDPROC(c_backtrace) | 29 | ENDPROC(c_backtrace) |
| 35 | #else | 30 | #else |
| 36 | stmfd sp!, {r4 - r8, lr} @ Save an extra register so we have a location... | 31 | stmfd sp!, {r4 - r8, lr} @ Save an extra register so we have a location... |
| @@ -107,7 +102,6 @@ for_each_frame: tst frame, mask @ Check for address exceptions | |||
| 107 | mov r1, frame | 102 | mov r1, frame |
| 108 | bl printk | 103 | bl printk |
| 109 | no_frame: ldmfd sp!, {r4 - r8, pc} | 104 | no_frame: ldmfd sp!, {r4 - r8, pc} |
| 110 | ENDPROC(__backtrace) | ||
| 111 | ENDPROC(c_backtrace) | 105 | ENDPROC(c_backtrace) |
| 112 | 106 | ||
| 113 | .pushsection __ex_table,"a" | 107 | .pushsection __ex_table,"a" |
diff --git a/arch/arm/lib/div64.S b/arch/arm/lib/div64.S index faa7748142da..e55c4842c290 100644 --- a/arch/arm/lib/div64.S +++ b/arch/arm/lib/div64.S | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | */ | 13 | */ |
| 14 | 14 | ||
| 15 | #include <linux/linkage.h> | 15 | #include <linux/linkage.h> |
| 16 | #include <asm/unwind.h> | ||
| 16 | 17 | ||
| 17 | #ifdef __ARMEB__ | 18 | #ifdef __ARMEB__ |
| 18 | #define xh r0 | 19 | #define xh r0 |
| @@ -44,6 +45,7 @@ | |||
| 44 | */ | 45 | */ |
| 45 | 46 | ||
| 46 | ENTRY(__do_div64) | 47 | ENTRY(__do_div64) |
| 48 | UNWIND(.fnstart) | ||
| 47 | 49 | ||
| 48 | @ Test for easy paths first. | 50 | @ Test for easy paths first. |
| 49 | subs ip, r4, #1 | 51 | subs ip, r4, #1 |
| @@ -189,7 +191,12 @@ ENTRY(__do_div64) | |||
| 189 | moveq yh, xh | 191 | moveq yh, xh |
| 190 | moveq xh, #0 | 192 | moveq xh, #0 |
| 191 | moveq pc, lr | 193 | moveq pc, lr |
| 194 | UNWIND(.fnend) | ||
| 192 | 195 | ||
| 196 | UNWIND(.fnstart) | ||
| 197 | UNWIND(.pad #4) | ||
| 198 | UNWIND(.save {lr}) | ||
| 199 | Ldiv0_64: | ||
| 193 | @ Division by 0: | 200 | @ Division by 0: |
| 194 | str lr, [sp, #-8]! | 201 | str lr, [sp, #-8]! |
| 195 | bl __div0 | 202 | bl __div0 |
| @@ -200,4 +207,5 @@ ENTRY(__do_div64) | |||
| 200 | mov xh, #0 | 207 | mov xh, #0 |
| 201 | ldr pc, [sp], #8 | 208 | ldr pc, [sp], #8 |
| 202 | 209 | ||
| 210 | UNWIND(.fnend) | ||
| 203 | ENDPROC(__do_div64) | 211 | ENDPROC(__do_div64) |
