mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-09 20:18:54 -04:00
Fix ppc4xx clear_bss() code
ppc4xx clear_bss() fails if BSS segment size is not divisible by 4 without remainder. This patch provides fix for this problem. Signed-off-by: Anatolij Gustschin <agust@denx.de>
This commit is contained in:
parent
85dc2a7f82
commit
42ed33ffe1
@ -1494,16 +1494,25 @@ clear_bss:
|
|||||||
lwz r4,GOT(_end)
|
lwz r4,GOT(_end)
|
||||||
|
|
||||||
cmplw 0, r3, r4
|
cmplw 0, r3, r4
|
||||||
beq 6f
|
beq 7f
|
||||||
|
|
||||||
li r0, 0
|
li r0, 0
|
||||||
5:
|
|
||||||
|
andi. r5, r4, 3
|
||||||
|
beq 6f
|
||||||
|
sub r4, r4, r5
|
||||||
|
mtctr r5
|
||||||
|
mr r5, r4
|
||||||
|
5: stb r0, 0(r5)
|
||||||
|
addi r5, r5, 1
|
||||||
|
bdnz 5b
|
||||||
|
6:
|
||||||
stw r0, 0(r3)
|
stw r0, 0(r3)
|
||||||
addi r3, r3, 4
|
addi r3, r3, 4
|
||||||
cmplw 0, r3, r4
|
cmplw 0, r3, r4
|
||||||
bne 5b
|
bne 6b
|
||||||
6:
|
|
||||||
|
|
||||||
|
7:
|
||||||
mr r3, r9 /* Init Data pointer */
|
mr r3, r9 /* Init Data pointer */
|
||||||
mr r4, r10 /* Destination Address */
|
mr r4, r10 /* Destination Address */
|
||||||
bl board_init_r
|
bl board_init_r
|
||||||
|
Loading…
x
Reference in New Issue
Block a user