diff options
author | Roland McGrath <roland@hack.frob.com> | 2013-03-15 09:31:56 -0700 |
---|---|---|
committer | Roland McGrath <roland@hack.frob.com> | 2013-03-15 09:31:56 -0700 |
commit | a7ac752299cb61f3140ab76c6f0a4ed46f52df55 (patch) | |
tree | 52798d8cb03569a69f00b7950dfdbf226415ca09 /ports/sysdeps/arm/memset.S | |
parent | ef26eece6331a1f6d959818e37c438cc7ce68e53 (diff) | |
download | glibc-a7ac752299cb61f3140ab76c6f0a4ed46f52df55.zip glibc-a7ac752299cb61f3140ab76c6f0a4ed46f52df55.tar.gz glibc-a7ac752299cb61f3140ab76c6f0a4ed46f52df55.tar.bz2 |
ARM: sfi_breg assembler macro
Diffstat (limited to 'ports/sysdeps/arm/memset.S')
-rw-r--r-- | ports/sysdeps/arm/memset.S | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/ports/sysdeps/arm/memset.S b/ports/sysdeps/arm/memset.S index 5e055ad..a28cdc6 100644 --- a/ports/sysdeps/arm/memset.S +++ b/ports/sysdeps/arm/memset.S @@ -32,7 +32,8 @@ ENTRY(memset) 1: tst r3, #3 @ aligned yet? - strbne r1, [r3], #1 + sfi_breg r3, \ + strbne r1, [\B], #1 subne r2, r2, #1 bne 1b @@ -43,25 +44,33 @@ ENTRY(memset) 1: subs r2, r2, #8 - stmiacs r3!, {r1, ip} @ store up to 32 bytes per loop iteration + sfi_breg r3, \ + stmiacs \B!, {r1, ip} @ store up to 32 bytes per loop iteration subscs r2, r2, #8 - stmiacs r3!, {r1, ip} + sfi_breg r3, \ + stmiacs \B!, {r1, ip} subscs r2, r2, #8 - stmiacs r3!, {r1, ip} + sfi_breg r3, \ + stmiacs \B!, {r1, ip} subscs r2, r2, #8 - stmiacs r3!, {r1, ip} + sfi_breg r3, \ + stmiacs \B!, {r1, ip} bcs 1b and r2, r2, #7 2: subs r2, r2, #1 @ store up to 4 bytes per loop iteration - strbcs r1, [r3], #1 + sfi_breg r3, \ + strbcs r1, [\B], #1 subscs r2, r2, #1 - strbcs r1, [r3], #1 + sfi_breg r3, \ + strbcs r1, [\B], #1 subscs r2, r2, #1 - strbcs r1, [r3], #1 + sfi_breg r3, \ + strbcs r1, [\B], #1 subscs r2, r2, #1 - strbcs r1, [r3], #1 + sfi_breg r3, \ + strbcs r1, [\B], #1 bcs 2b DO_RET(lr) |