summaryrefslogtreecommitdiffstats
path: root/arch/arm/lib/backtrace.S
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-02-04 07:40:19 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-02-04 07:40:19 +0000
commit33263fc5f9ac8e8cb2b22d06af3ce5ac1dd815e4 (patch)
tree2d1b86a40bef0958a68cf1a2eafbeb0667a70543 /arch/arm/lib/backtrace.S
parent216f5f51aa02f8b113aa620ebc14a9631a217a00 (diff)
Merge with Linux 2.3.32.
Diffstat (limited to 'arch/arm/lib/backtrace.S')
-rw-r--r--arch/arm/lib/backtrace.S22
1 files changed, 14 insertions, 8 deletions
diff --git a/arch/arm/lib/backtrace.S b/arch/arm/lib/backtrace.S
index fd85107c3..e871f2615 100644
--- a/arch/arm/lib/backtrace.S
+++ b/arch/arm/lib/backtrace.S
@@ -83,28 +83,34 @@ ENTRY(c_backtrace)
#define reg r5
#define stack r6
-.Ldumpstm: stmfd sp!, {instr, reg, stack, lr}
+.Ldumpstm: stmfd sp!, {instr, reg, stack, r7, lr}
mov stack, r0
mov instr, r1
mov reg, #9
-
+ mov r7, #0
1: mov r3, #1
tst instr, r3, lsl reg
beq 2f
+ add r7, r7, #1
+ teq r7, #4
+ moveq r7, #0
+ moveq r3, #'\n'
+ movne r3, #' '
ldr r2, [stack], #-4
mov r1, reg
adr r0, .Lfp
bl SYMBOL_NAME(printk)
2: subs reg, reg, #1
bpl 1b
-
+ teq r7, #0
+ adrne r0, .Lcr
+ blne SYMBOL_NAME(printk)
mov r0, stack
- LOADREGS(fd, sp!, {instr, reg, stack, pc})
+ LOADREGS(fd, sp!, {instr, reg, stack, r7, pc})
-.Lfe: .ascii "Function entered at [<%p>] from [<%p>]\n"
- .byte 0
-.Lfp: .ascii " r%d = %p\n"
- .byte 0
+.Lfe: .asciz "Function entered at [<%p>] from [<%p>]\n"
+.Lfp: .asciz " r%d = %08X%c"
+.Lcr: .asciz "\n"
.align
.Ldsi: .word 0x00e92dd8 >> 2
.word 0x00e92d00 >> 2