# HG changeset patch # User jlarmour # Date 983298296 0 # Node ID 70a4cc6d69d296bae38f0d03ad5d6f07c2945a1c # Parent e2d866e32dac9e8e3e8199a211572671ec565ac0 2001-02-27 Chris Morrow * src/vectors.S (hal_zero_bss): Oops, allow for bss being multiple of block size. And add delay slot. diff --git a/packages/hal/mips/arch/current/ChangeLog b/packages/hal/mips/arch/current/ChangeLog --- a/packages/hal/mips/arch/current/ChangeLog +++ b/packages/hal/mips/arch/current/ChangeLog @@ -1,3 +1,8 @@ +2001-02-27 Chris Morrow + + * src/vectors.S (hal_zero_bss): Oops, allow for bss being multiple + of block size. And add delay slot. + 2001-02-26 Chris Morrow * src/vectors.S (hal_zero_bss): Implemented in assembler for speed. diff --git a/packages/hal/mips/arch/current/src/vectors.S b/packages/hal/mips/arch/current/src/vectors.S --- a/packages/hal/mips/arch/current/src/vectors.S +++ b/packages/hal/mips/arch/current/src/vectors.S @@ -803,12 +803,18 @@ 2: STORE_OP zero,(mips_regsi bne a3,a0,2b # to next store nop + # If length is a multiple of block size then we + # are done and need to skip the byte loop + beq a1,a0,3f + nop + # finish 1 byte at a time 1: sb zero,0(a0) # zero memory addiu a0,a0,1 # next addr bne a0,a1,1b # to next store nop - jr ra +3: jr ra + nop FUNC_END(hal_zero_bss)