|
@@ -28,7 +28,7 @@ UNWIND( .fnstart )
|
|
|
1: orr r1, r1, r1, lsl #8
|
|
|
orr r1, r1, r1, lsl #16
|
|
|
mov r3, r1
|
|
|
- cmp r2, #16
|
|
|
+7: cmp r2, #16
|
|
|
blt 4f
|
|
|
|
|
|
#if ! CALGN(1)+0
|
|
@@ -41,7 +41,7 @@ UNWIND( .fnend )
|
|
|
UNWIND( .fnstart )
|
|
|
UNWIND( .save {r8, lr} )
|
|
|
mov r8, r1
|
|
|
- mov lr, r1
|
|
|
+ mov lr, r3
|
|
|
|
|
|
2: subs r2, r2, #64
|
|
|
stmgeia ip!, {r1, r3, r8, lr} @ 64 bytes at a time.
|
|
@@ -73,11 +73,11 @@ UNWIND( .fnend )
|
|
|
UNWIND( .fnstart )
|
|
|
UNWIND( .save {r4-r8, lr} )
|
|
|
mov r4, r1
|
|
|
- mov r5, r1
|
|
|
+ mov r5, r3
|
|
|
mov r6, r1
|
|
|
- mov r7, r1
|
|
|
+ mov r7, r3
|
|
|
mov r8, r1
|
|
|
- mov lr, r1
|
|
|
+ mov lr, r3
|
|
|
|
|
|
cmp r2, #96
|
|
|
tstgt ip, #31
|
|
@@ -114,7 +114,7 @@ UNWIND( .fnstart )
|
|
|
tst r2, #4
|
|
|
strne r1, [ip], #4
|
|
|
/*
|
|
|
- * When we get here, we've got less than 4 bytes to zero. We
|
|
|
+ * When we get here, we've got less than 4 bytes to set. We
|
|
|
* may have an unaligned pointer as well.
|
|
|
*/
|
|
|
5: tst r2, #2
|
|
@@ -135,3 +135,15 @@ UNWIND( .fnstart )
|
|
|
UNWIND( .fnend )
|
|
|
ENDPROC(memset)
|
|
|
ENDPROC(mmioset)
|
|
|
+
|
|
|
+ENTRY(__memset32)
|
|
|
+UNWIND( .fnstart )
|
|
|
+ mov r3, r1 @ copy r1 to r3 and fall into memset64
|
|
|
+UNWIND( .fnend )
|
|
|
+ENDPROC(__memset32)
|
|
|
+ENTRY(__memset64)
|
|
|
+UNWIND( .fnstart )
|
|
|
+ mov ip, r0 @ preserve r0 as return value
|
|
|
+ b 7b @ jump into the middle of memset
|
|
|
+UNWIND( .fnend )
|
|
|
+ENDPROC(__memset64)
|