Commit 1d6760a3 authored by Nicolas Pitre's avatar Nicolas Pitre Committed by Russell King
Browse files

[ARM] 3524/1: ARM EABI: more 64-bit aligned stack fixes



Patch from Nicolas Pitre

Assembly code that calls C code must ensure the C code sees a 64-bit
aligned stack pointer.

Signed-off-by: default avatarNicolas Pitre <nico@cam.org>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 2ceec0c8
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -122,7 +122,7 @@ ENTRY(c_backtrace)
#define reg   r5
#define stack r6

.Ldumpstm:	stmfd	sp!, {instr, reg, stack, r7, lr}
.Ldumpstm:	stmfd	sp!, {instr, reg, stack, r7, r8, lr}
		mov	stack, r0
		mov	instr, r1
		mov	reg, #9
@@ -145,7 +145,7 @@ ENTRY(c_backtrace)
		adrne	r0, .Lcr
		blne	printk
		mov	r0, stack
		LOADREGS(fd, sp!, {instr, reg, stack, r7, pc})
		LOADREGS(fd, sp!, {instr, reg, stack, r7, r8, pc})

.Lfp:		.asciz	" r%d = %08X%c"
.Lcr:		.asciz	"\n"
+2 −2
Original line number Diff line number Diff line
@@ -189,12 +189,12 @@ ENTRY(__do_div64)
	moveq	pc, lr

	@ Division by 0:
	str	lr, [sp, #-4]!
	str	lr, [sp, #-8]!
	bl	__div0

	@ as wrong as it could be...
	mov	yl, #0
	mov	yh, #0
	mov	xh, #0
	ldr	pc, [sp], #4
	ldr	pc, [sp], #8