diff options
Diffstat (limited to 'sysdeps/arm/add_n.S')
-rw-r--r-- | sysdeps/arm/add_n.S | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/sysdeps/arm/add_n.S b/sysdeps/arm/add_n.S index aacc5c1e6f..e8e744c3c0 100644 --- a/sysdeps/arm/add_n.S +++ b/sysdeps/arm/add_n.S @@ -1,5 +1,5 @@ /* mpn_add_n -- add (or subtract) bignums. - Copyright (C) 2013-2016 Free Software Foundation, Inc. + Copyright (C) 2013-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -52,40 +52,31 @@ ENTRY (FUNC) add lr, r1, r3, lsl #2 /* compute end src1 */ beq 1f - sfi_breg r1, \ - ldr r4, [\B], #4 /* do one to make count even */ - sfi_breg r2, \ - ldr r5, [\B], #4 + ldr r4, [r1], #4 /* do one to make count even */ + ldr r5, [r2], #4 OPC r4, r4, r5 teq r1, lr /* end of count? (preserve carry) */ - sfi_breg r0, \ - str r4, [\B], #4 + str r4, [r0], #4 beq 9f 1: tst r3, #2 /* count & 2 == 2? */ beq 2f - sfi_breg r1, \ - ldm \B!, { r4, r5 } /* do two to make count 0 mod 4 */ - sfi_breg r2, \ - ldm \B!, { r6, r7 } + ldm r1!, { r4, r5 } /* do two to make count 0 mod 4 */ + ldm r2!, { r6, r7 } OPC r4, r4, r6 OPC r5, r5, r7 teq r1, lr /* end of count? */ - sfi_breg r0, \ - stm \B!, { r4, r5 } + stm r0!, { r4, r5 } beq 9f 2: - sfi_breg r1, \ - ldm \B!, { r3, r5, r7, r10 } /* do four each loop */ - sfi_breg r2, \ - ldm \B!, { r4, r6, r8, ip } + ldm r1!, { r3, r5, r7, r10 } /* do four each loop */ + ldm r2!, { r4, r6, r8, ip } OPC r3, r3, r4 OPC r5, r5, r6 OPC r7, r7, r8 OPC r10, r10, ip teq r1, lr - sfi_breg r0, \ - stm \B!, { r3, r5, r7, r10 } + stm r0!, { r3, r5, r7, r10 } bne 2b 9: |