summaryrefslogtreecommitdiff
path: root/firmware/asm/arm/memset.S
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/asm/arm/memset.S')
-rw-r--r--firmware/asm/arm/memset.S26
1 files changed, 13 insertions, 13 deletions
diff --git a/firmware/asm/arm/memset.S b/firmware/asm/arm/memset.S
index 64cd95cc9e..d727f2a5ec 100644
--- a/firmware/asm/arm/memset.S
+++ b/firmware/asm/arm/memset.S
@@ -34,8 +34,8 @@
341: cmp r2, #4 @ 1 do we have enough 341: cmp r2, #4 @ 1 do we have enough
35 blt 5f @ 1 bytes to align with? 35 blt 5f @ 1 bytes to align with?
36 cmp r3, #2 @ 1 36 cmp r3, #2 @ 1
37 strgtb r1, [r0, #-1]! @ 1 37 strbgt r1, [r0, #-1]! @ 1
38 strgeb r1, [r0, #-1]! @ 1 38 strbge r1, [r0, #-1]! @ 1
39 strb r1, [r0, #-1]! @ 1 39 strb r1, [r0, #-1]! @ 1
40 sub r2, r2, r3 @ 1 r2 = r2 - r3 40 sub r2, r2, r3 @ 1 r2 = r2 - r3
41 b 2f 41 b 2f
@@ -65,24 +65,24 @@ memset:
65 mov lr, r1 65 mov lr, r1
66 66
673: subs r2, r2, #64 673: subs r2, r2, #64
68 stmgedb r0!, {r1, r3, ip, lr} @ 64 bytes at a time. 68 stmdbge r0!, {r1, r3, ip, lr} @ 64 bytes at a time.
69 stmgedb r0!, {r1, r3, ip, lr} 69 stmdbge r0!, {r1, r3, ip, lr}
70 stmgedb r0!, {r1, r3, ip, lr} 70 stmdbge r0!, {r1, r3, ip, lr}
71 stmgedb r0!, {r1, r3, ip, lr} 71 stmdbge r0!, {r1, r3, ip, lr}
72 bgt 3b 72 bgt 3b
73 ldrpc cond=eq @ Now <64 bytes to go. 73 ldrpc cond=eq @ Now <64 bytes to go.
74/* 74/*
75 * No need to correct the count; we're only testing bits from now on 75 * No need to correct the count; we're only testing bits from now on
76 */ 76 */
77 tst r2, #32 77 tst r2, #32
78 stmnedb r0!, {r1, r3, ip, lr} 78 stmdbne r0!, {r1, r3, ip, lr}
79 stmnedb r0!, {r1, r3, ip, lr} 79 stmdbne r0!, {r1, r3, ip, lr}
80 tst r2, #16 80 tst r2, #16
81 stmnedb r0!, {r1, r3, ip, lr} 81 stmdbne r0!, {r1, r3, ip, lr}
82 ldr lr, [sp], #4 82 ldr lr, [sp], #4
83 83
845: tst r2, #8 845: tst r2, #8
85 stmnedb r0!, {r1, r3} 85 stmdbne r0!, {r1, r3}
86 tst r2, #4 86 tst r2, #4
87 strne r1, [r0, #-4]! 87 strne r1, [r0, #-4]!
88/* 88/*
@@ -90,10 +90,10 @@ memset:
90 * may have an unaligned pointer as well. 90 * may have an unaligned pointer as well.
91 */ 91 */
926: tst r2, #2 926: tst r2, #2
93 strneb r1, [r0, #-1]! 93 strbne r1, [r0, #-1]!
94 strneb r1, [r0, #-1]! 94 strbne r1, [r0, #-1]!
95 tst r2, #1 95 tst r2, #1
96 strneb r1, [r0, #-1]! 96 strbne r1, [r0, #-1]!
97 bx lr 97 bx lr
98.end: 98.end:
99 .size memset,.end-memset 99 .size memset,.end-memset