diff options
Diffstat (limited to 'arch/arm/lib/backtrace.S')
| -rw-r--r-- | arch/arm/lib/backtrace.S | 20 | 
1 files changed, 10 insertions, 10 deletions
diff --git a/arch/arm/lib/backtrace.S b/arch/arm/lib/backtrace.S index cd07b5814c2..4102be617fc 100644 --- a/arch/arm/lib/backtrace.S +++ b/arch/arm/lib/backtrace.S @@ -80,14 +80,14 @@ for_each_frame:	tst	frame, mask		@ Check for address exceptions  		ldr	r1, [sv_pc, #-4]	@ if stmfd sp!, {args} exists,  		ldr	r3, .Ldsi+4 -		teq	r3, r1, lsr #10 +		teq	r3, r1, lsr #11  		ldreq	r0, [frame, #-8]	@ get sp  		subeq	r0, r0, #4		@ point at the last arg  		bleq	.Ldumpstm		@ dump saved registers  1004:		ldr	r1, [sv_pc, #0]		@ if stmfd sp!, {..., fp, ip, lr, pc}  		ldr	r3, .Ldsi		@ instruction exists, -		teq	r3, r1, lsr #10 +		teq	r3, r1, lsr #11  		subeq	r0, frame, #16  		bleq	.Ldumpstm		@ dump saved registers @@ -128,11 +128,11 @@ ENDPROC(c_backtrace)  		beq	2f  		add	r7, r7, #1  		teq	r7, #6 -		moveq	r7, #1 -		moveq	r1, #'\n' -		movne	r1, #' ' -		ldr	r3, [stack], #-4 -		mov	r2, reg +		moveq	r7, #0 +		adr	r3, .Lcr +		addne	r3, r3, #1		@ skip newline +		ldr	r2, [stack], #-4 +		mov	r1, reg  		adr	r0, .Lfp  		bl	printk  2:		subs	reg, reg, #1 @@ -142,11 +142,11 @@ ENDPROC(c_backtrace)  		blne	printk  		ldmfd	sp!, {instr, reg, stack, r7, pc} -.Lfp:		.asciz	"%cr%d:%08x" +.Lfp:		.asciz	" r%d:%08x%s"  .Lcr:		.asciz	"\n"  .Lbad:		.asciz	"Backtrace aborted due to bad frame pointer <%p>\n"  		.align -.Ldsi:		.word	0xe92dd800 >> 10	@ stmfd sp!, {... fp, ip, lr, pc} -		.word	0xe92d0000 >> 10	@ stmfd sp!, {} +.Ldsi:		.word	0xe92dd800 >> 11	@ stmfd sp!, {... fp, ip, lr, pc} +		.word	0xe92d0000 >> 11	@ stmfd sp!, {}  #endif  | 
