diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2003-03-21 21:39:39 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@redhat.com> | 2003-03-21 21:39:39 +0000 |
commit | 8f9fb0000e345b16902311b2d265f83b329e69c5 (patch) | |
tree | 1c095c4ab887f251889e9fc001d38272d3bce5e0 /sysdeps/mips/mips64/memset.S | |
parent | 88b3f3ede294499cef1cb36cc6a5f4662d205e9d (diff) | |
download | glibc-8f9fb0000e345b16902311b2d265f83b329e69c5.tar glibc-8f9fb0000e345b16902311b2d265f83b329e69c5.tar.gz glibc-8f9fb0000e345b16902311b2d265f83b329e69c5.tar.bz2 glibc-8f9fb0000e345b16902311b2d265f83b329e69c5.zip |
* sysdeps/mips/mips64/memcpy.S: Fix porting bug that broke unaligned copying of 8-15 bytes. From Chris Demetriou <cgd@broadcom.com>. Fix label names. * sysdeps/mips/mips64/memset.S: Fix label names. Make similar change as to memcpy.S. * sysdeps/mips/memcpy.S: Formatting changes. * sysdeps/mips/memset.S: Likewise.
2003-03-21 Alexandre Oliva <aoliva@redhat.com>
* sysdeps/mips/mips64/memcpy.S: Fix porting bug that broke
unaligned copying of 8-15 bytes. From Chris Demetriou
<cgd@broadcom.com>. Fix label names.
* sysdeps/mips/mips64/memset.S: Fix label names. Make similar
change as to memcpy.S.
* sysdeps/mips/memcpy.S: Formatting changes.
* sysdeps/mips/memset.S: Likewise.
Diffstat (limited to 'sysdeps/mips/mips64/memset.S')
-rw-r--r-- | sysdeps/mips/mips64/memset.S | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/sysdeps/mips/mips64/memset.S b/sysdeps/mips/mips64/memset.S index 6a3b154bad..d6e1790fbe 100644 --- a/sysdeps/mips/mips64/memset.S +++ b/sysdeps/mips/mips64/memset.S @@ -36,8 +36,8 @@ ENTRY (memset) .set noreorder - slti t5, a2, 8 # Less than 8? - bne t5, zero, L(last8) + slti t5, a2, 16 # Less than 16? + bne t5, zero, L(last16) move v0, a0 # Setup exit value before too late beq a1, zero, L(ueven) # If zero pattern, no need to extend @@ -64,24 +64,24 @@ L(chkw): PTR_ADDU a3, a0 # a3 is last loop address +1 move a2, t4 # a2 is now # of bytes left after loop L(loopw): - PTR_ADDIU a0, 16 # Handle 2 words pr. iteration + PTR_ADDIU a0, 16 # Handle 2 dwords pr. iteration sd a1, -16(a0) bne a0, a3, L(loopw) sd a1, -8(a0) L(chkl): andi t4, a2, 0x8 # Check if there is at least a double - beq t4, zero, L(last8) # word remaining after the loop + beq t4, zero, L(last16) # word remaining after the loop PTR_SUBU a2, t4 sd a1, 0(a0) # Yes... PTR_ADDIU a0, 8 -L(last8): - blez a2, L(exit) # Handle last 8 bytes (if cnt>0) +L(last16): + blez a2, L(exit) # Handle last 16 bytes (if cnt>0) PTR_ADDU a3, a2, a0 # a3 is last address +1 -L(lst8l): +L(lst16l): PTR_ADDIU a0, 1 - bne a0, a3, L(lst8l) + bne a0, a3, L(lst16l) sb a1, -1(a0) L(exit): j ra # Bye, bye |