Hi Christophe,
On Thu, Jan 21, 2021, at 2:29 AM, Christophe Lyon wrote:
> On Sat, 16 Jan 2021 at 17:13, Daniel Engel wrote:
> >
> > Hi Christophe,
> >
> > On Fri, Jan 15, 2021, at 4:30 AM, Christophe Lyon wrote:
> > > On Fri, 15 Jan 2021 at 12:39, Dan
> > > --snip--
> > >
> > > If the test server farm is free at some point, would you mind running
> > > another set of regression tests on my v5 patch series?
> >
> > Sure. Given the number of sub-patches, can you send it to me as a
> > single patch file
> > (git format) that I can directly apply to
0.5 ulp
__aeabi_h2f 34+__shared_float 34 8
exact
__aeabi_f2h 84 23..34 0
<= 0.5 ulp
Copyright assignment is on file with the FSF.
Thanks,
Daniel Engel
[1] // Test program for size comparison
extern i
the CFI_* macros earlier in the file scope will increase their
scope for use in additional functions.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/lib1funcs.S:
(LLSYM): New macro prefix ".L" for strippable local symbols.
(CFI_START_FUNCTION, CFI_END_F
This will make it easier to isolate changes in subsequent patches.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/t-elf (LIB1ASMFUNCS): Split macros into logical groups.
---
libgcc/config/arm/t-elf | 66 +
1 file changed, 53
This will make it easier to isolate changes in subsequent patches.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/lib1funcs.S (__ctzsi2): Moved to ...
* config/arm/ctz2.S: New file.
---
libgcc/config/arm/ctz2.S | 86 +++
libgcc
This will make it easier to isolate changes in subsequent patches.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/lib1funcs.S (__clzsi2i, __clzdi2): Moved to ...
* config/arm/clz2.S: New file.
---
libgcc/config/arm/clz2.S | 145
age of ".force_thumb" and ".thumb_func" is now tightly coupled
throughout the "arm" subdirectory.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/lib1funcs.S: (THUMB_FUNC_START): Renamed to ...
(THUMB_FUNC_ENTRY): for consistency; also add
code comments for limitations and expecated usage.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
(__HAVE_FEATURE_IT, IT): New macros.
---
libgcc/config/arm/lib1funcs.S | 68 +++
1 file changed, 68 insertions(+)
diff --git a/libgcc/config/arm/lib1funcs.S b/l
The functional overlap between the single- and double-word functions
makes this implementation about 30% smaller than the C functions
if both functions are linked together in the same appliation.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/popcnt.S (__popcountsi
This will make it easier to isolate changes in subsequent patches.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/lib1funcs.S (__ashldi3, __ashrdi3, __lshldi3): Moved to ...
* config/arm/eabi/lshift.S: New file.
---
libgcc/config/arm/eabi/lshift.S | 123
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/lib1funcs.S (RETLDM, ARM_DIV_BODY, ARM_MOD_BODY,
_interwork_call_via_lr): Moved condition code after the flags
update specifier "s".
(ARM_FUNC_START, THUMB_LDIV0): Removed redundant ".synta
improves
Thumb performance without affecting ARM performance. Finally, this version
adds a new __OPTIMIZE_SIZE__ build option (binary search loop).
There is no change to the code for architectures with __ARM_FEATURE_CLZ.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/bits/clz2.S
These are 2-5 instructions smaller and just as fast. Branches are
minimized, which will allow easier adaptation to Thumb-2/ARM mode.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/eabi/lcmp.S (__aeabi_lcmp, __aeabi_ulcmp): Replaced;
add macro configuration to build
__ARM_FEATURE_CLZ have
always returned 32, so this change makes the return value consistent.
This change costs 2 extra instructions (branchless).
Likewise on architectures with __ARM_FEATURE_CLZ, __ctzdi2(0) now returns
64 instead of 31.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config
yright (C) 2018-2022 Free Software Foundation, Inc.
+ Contributed by Daniel Engel, Senva Inc (g...@danielengel.com)
-This file is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
This effectively merges support for all architecture variants into a
common function path with appropriate build conditions.
ARM performance is 1-2 instructions faster; Thumb-2 is about 50% faster.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/bpabi.S (__aeabi_lcmp
This implementation provides an efficient tail call to __clzdi2(), making the
functions rather smaller and faster than the C versions.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/bits/ctz2.S (__ffssi2, __ffsdi2): New functions.
* config/arm/t-elf (LIB1ASMFUNCS
This implementation provides an efficient tail call to __clzsi2(), making the
functions rather smaller and faster than the C versions.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/bits/clz2.S (__clrsbsi2, __clrsbdi2):
Added new functions.
* config/arm/t-elf
This will make it easier to isolate changes in subsequent patches.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/bpabi-v6m.S (__aeabi_lcmp, __aeabi_ulcmp): Moved to ...
* config/arm/eabi/lcmp.S: New file.
* config/arm/lib1funcs.S: #include eabi/lcmp.S
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/bpabi.c: Deleted unused file.
* config/arm/eabi/ldiv.S (__aeabi_ldivmod, __aeabi_uldivmod):
Replaced wrapper functions with a complete implementation.
* config/arm/t-bpabi (LIB2ADD_ST): Removed bpabi.c
The functional overlap between the single- and double-word functions makes
functions makes this implementation about half the size of the C functions
if both functions are linked in the same application.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/parity.S: New file for
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/eabi/idiv.S: New file for __udivsi3() and __divsi3().
* config/arm/lib1funcs.S: #include eabi/idiv.S (v6m only).
---
libgcc/config/arm/eabi/idiv.S | 299 ++
libgcc/config/arm/lib1funcs.S
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/eabi/lmul.S: New file for __muldi3(), __mulsidi3(), and
__umulsidi3().
* config/arm/lib1funcs.S: #eabi/lmul.S (v6m only).
* config/arm/t-elf: Add the new objects to LIB1ASMFUNCS.
---
libgcc/config/arm
This will make it easier to isolate changes in subsequent patches.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/bpabi-v6m.S (__aeabi_frsub): Moved to ...
* config/arm/eabi/fadd.S: New file.
* config/arm/lib1funcs.S: #include eabi/fadd.S (v6m only
OTE: It seems that the __aeabi_cfcmp*() routines formerly in bpabi-v6m.S
were not well tested, as they returned wrong results for the 'C' flag.
The replacement functions are fully tested.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/eabi/fcmp.S (__c
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/bpabi-v6m.S (__aeabi_ldivmod/ldivmod): Moved to ...
* config/arm/eabi/ldiv.S: New file.
* config/arm/lib1funcs.S: #include eabi/ldiv.S (v6m only).
---
libgcc/config/arm/bpabi-v6m.S | 81
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/bpabi-v6m.S (__aeabi_cfcmpeq, __aeabi_cfcmple,
__aeabi_cfrcmple, __aeabi_fcmpeq, __aeabi_fcmple, aeabi_fcmple,
__aeabi_fcmpgt, aeabi_fcmpge): Moved to ...
* config/arm/eabi/fcmp.S: New file
size is still less than half the size of soft-float.
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/eabi/fadd.S (__addsf3, __subsf3): Added new functions.
* config/arm/eabi/fneg.S (__negsf2): Added new file.
* config/arm/eabi/futil.S (__fp_normalize2
ir code path, so this
choice leads to a size reduction in programs that use both functions.)
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/t-softfp (softfp_float_modes): Added as "df".
---
libgcc/config/arm/t-softfp | 2 ++
1 file changed, 2 insertions(+)
d
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/eabi/fmul.S (__mulsf3): New file.
* config/arm/lib1funcs.S: #include eabi/fmul.S (v6m only).
* config/arm/t-elf (LIB1ASMFUNCS): Moved _mulsf3 to global scope
(this object was previously blocked on v6m
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/eabi/fdiv.S (__divsf3, __fp_divloopf): New file.
* config/arm/lib1funcs.S: #include eabi/fdiv.S (v6m only).
* config/arm/t-elf (LIB1ASMFUNCS): Added _divsf3 and _fp_divloopf.
---
libgcc/config/arm/eabi/fdiv.S
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/eabi/fcast.S (__aeabi_d2f, __aeabi_f2d): New file.
* config/arm/lib1funcs.S: #include eabi/fcast.S (v6m only).
* config/arm/t-elf (LIB1ASMFUNCS): Added _arm_d2f and _arm_f2d.
---
libgcc/config/arm/eabi/fcast.S
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/bpabi-lib.h (__floatdisf, __floatundisf):
Remove obsolete RENAME_LIBRARY directives.
* config/arm/eabi/ffloat.S (__aeabi_i2f, __aeabi_l2f, __aeabi_ui2f,
__aeabi_ul2f): New file.
* config/arm
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/bpabi-lib.h (muldi3): Removed duplicate.
(fixunssfsi) Removed obsolete RENAME_LIBRARY directive.
* config/arm/eabi/ffixed.S (__aeabi_f2iz, __aeabi_f2uiz,
__aeabi_f2lz, __aeabi_f2ulz): New file
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
* config/arm/eabi/fcast.S (__aeabi_h2f, __aeabi_f2h): Added functions.
* config/arm/fp16 (__gnu_f2h_ieee, __gnu_h2f_ieee,
__gnu_f2h_alternative,
__gnu_h2f_alternative): Disable build for v6m multilibs.
* config/arm/t
gcc/libgcc/ChangeLog:
2022-10-09 Daniel Engel
Makefile.in (MPURE_CODE): New macro defines __PURE_CODE__.
(gcc_compile): Appended MPURE_CODE.
lib1funcs.S (FUNC_START_SECTION): Set flags for __PURE_CODE__.
clz2.S (__clzsi2): Added -mpure-code compatible instructions
--snip--
On Wed, Jan 6, 2021, at 9:05 AM, Richard Earnshaw wrote:
>
> Thanks for working on this, Daniel.
>
> This is clearly stage1 material, so we've got time for a couple of
> iterations to sort things out.
I appreciate your feedback. I had been hoping that with no regressions
this might s
On Thu, Jan 7, 2021, at 4:56 AM, Richard Earnshaw wrote:
> On 07/01/2021 00:59, Daniel Engel wrote:
> > --snip--
> >
> > On Wed, Jan 6, 2021, at 9:05 AM, Richard Earnshaw wrote:
> >
> >>
> >> Thanks for working on this, Daniel.
> >>
> &g
On Sat, Jan 9, 2021, at 5:09 AM, Christophe Lyon wrote:
> On Sat, 9 Jan 2021 at 13:27, Daniel Engel wrote:
> >
> > On Thu, Jan 7, 2021, at 4:56 AM, Richard Earnshaw wrote:
> > > On 07/01/2021 00:59, Daniel Engel wrote:
> > > > --snip--
> > > >
On Sat, Jan 9, 2021, at 5:09 AM, Christophe Lyon wrote:
> On Sat, 9 Jan 2021 at 13:27, Daniel Engel wrote:
> >
> > -- snip --
> >
> > To reiterate what I said above, I intend to push forward and incorporate
> > your current recommendations plus any further feedbac
On Mon, Jan 11, 2021, at 7:39 AM, Richard Earnshaw wrote:
> On 11/01/2021 15:26, Richard Earnshaw wrote:
> > On 11/01/2021 11:10, g...@danielengel.com wrote:
> >> From: Daniel Engel
> >>
> >> gcc/libgcc/ChangeLog:
> >> 2021-01-07 Daniel Engel
On Mon, Jan 11, 2021, at 8:07 AM, Christophe Lyon wrote:
> On Sat, 9 Jan 2021 at 14:09, Christophe Lyon
> wrote:
> >
> > On Sat, 9 Jan 2021 at 13:27, Daniel Engel wrote:
> > >
> > > On Thu, Jan 7, 2021, at 4:56 AM, Richard Earnshaw wrote:
> > &
On Mon, Jan 11, 2021, at 7:21 AM, Richard Earnshaw wrote:
> Some initial comments.
>
> On 11/01/2021 11:10, g...@danielengel.com wrote:
> > From: Daniel Engel
> >
> > These definitions facilitate subsequent patches in this series.
> >
> > gcc/libgcc
directly descended
from lib1funcs.S. I just merged into !__ARM_FEATURE_CLZ. I think the
trivial functions still have to exist within libgcc, even if the
compiler doesn't call them.
> On 11/01/2021 11:10, g...@danielengel.com wrote:
> > From: Daniel Engel
> >
> > On architectures wi
the CFI_* macros earlier in the file scope will increase their
scope for use in additional functions.
gcc/libgcc/ChangeLog:
2021-01-14 Daniel Engel
* config/arm/lib1funcs.S:
(LLSYM): New macro prefix ".L" for strippable local symbols.
(CFI_START_FUNCTION, CFI_END_F
34 8
exact
__aeabi_d2f 56+__shared_float 54..58 8
<= 0.5 ulp
__aeabi_h2f 34+__shared_float 34 8
exact
__aeabi_f2h 84 23..34 0
<= 0.5 ul
age of ".force_thumb" and ".thumb_func" is now tightly coupled
throughout the "arm" subdirectory.
gcc/libgcc/ChangeLog:
2021-01-14 Daniel Engel
* config/arm/lib1funcs.S: (THUMB_FUNC_START): Renamed to ...
(THUMB_FUNC_ENTRY): for consistency; also add
gcc/libgcc/ChangeLog:
2021-01-14 Daniel Engel
* config/arm/lib1funcs.S (RETLDM, ARM_DIV_BODY, ARM_MOD_BODY,
_interwork_call_via_lr): Moved condition code after the flags
update specifier "s".
(ARM_FUNC_START, THUMB_LDIV0): Removed redundant ".synta
This will make it easier to isolate changes in subsequent patches.
gcc/libgcc/ChangeLog:
2021-01-14 Daniel Engel
* config/arm/t-elf (LIB1ASMFUNCS): Split macros into logical groups.
---
libgcc/config/arm/t-elf | 66 +
1 file changed, 53
code comments for limitations and expecated usage.
gcc/libgcc/ChangeLog:
2021-01-14 Daniel Engel
(__HAVE_FEATURE_IT, IT): New macros.
---
libgcc/config/arm/lib1funcs.S | 68 +++
1 file changed, 68 insertions(+)
diff --git a/libgcc/config/arm/lib1funcs.S b/l
This will make it easier to isolate changes in subsequent patches.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/lib1funcs.S (__clzsi2i, __clzdi2): Moved to ...
* config/arm/clz2.S: New file.
---
libgcc/config/arm/clz2.S | 145
This will make it easier to isolate changes in subsequent patches.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/lib1funcs.S (__ctzsi2): Moved to ...
* config/arm/ctz2.S: New file.
---
libgcc/config/arm/ctz2.S | 86 +++
libgcc
This will make it easier to isolate changes in subsequent patches.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/lib1funcs.S (__ashldi3, __ashrdi3, __lshldi3): Moved to ...
* config/arm/eabi/lshift.S: New file.
---
libgcc/config/arm/eabi/lshift.S | 123
improves
Thumb performance without affecting ARM performance. Finally, this version
adds a new __OPTIMIZE_SIZE__ build option (binary search loop).
There is no change to the code for architectures with __ARM_FEATURE_CLZ.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/bits/clz2.S
__ARM_FEATURE_CLZ have
always returned 32, so this change makes the return value consistent.
This change costs 2 extra instructions (branchless).
Likewise on architectures with __ARM_FEATURE_CLZ, __ctzdi2(0) now returns
64 instead of 31.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config
yright (C) 2018-2021 Free Software Foundation, Inc.
+ Contributed by Daniel Engel, Senva Inc (g...@danielengel.com)
-This file is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
This implementation provides an efficient tail call to __clzsi2(), making the
functions rather smaller and faster than the C versions.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/bits/clz2.S (__clrsbsi2, __clrsbdi2):
Added new functions.
* config/arm/t-elf
This implementation provides an efficient tail call to __clzdi2(), making the
functions rather smaller and faster than the C versions.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/bits/ctz2.S (__ffssi2, __ffsdi2): New functions.
* config/arm/t-elf (LIB1ASMFUNCS
The functional overlap between the single- and double-word functions makes
functions makes this implementation about half the size of the C functions
if both functions are linked in the same application.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/parity.S: New file for
The functional overlap between the single- and double-word functions
makes this implementation about 30% smaller than the C functions
if both functions are linked together in the same appliation.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/popcnt.S (__popcountsi
This will make it easier to isolate changes in subsequent patches.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/bpabi-v6m.S (__aeabi_lcmp, __aeabi_ulcmp): Moved to ...
* config/arm/eabi/lcmp.S: New file.
* config/arm/lib1funcs.S: #include eabi/lcmp.S
These are 2-5 instructions smaller and just as fast. Branches are
minimized, which will allow easier adaptation to Thumb-2/ARM mode.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/eabi/lcmp.S (__aeabi_lcmp, __aeabi_ulcmp): Replaced;
add macro configuration to build
This effectively merges support for all architecture variants into a
common function path with appropriate build conditions.
ARM performance is 1-2 instructions faster; Thumb-2 is about 50% faster.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/bpabi.S (__aeabi_lcmp
gcc/libgcc/ChangeLog:
2021-01-07 Daniel Engel
* config/arm/eabi/idiv.S: New file for __udivsi3() and __divsi3().
* config/arm/lib1funcs.S: #include eabi/idiv.S (v6m only).
---
libgcc/config/arm/eabi/idiv.S | 299 ++
libgcc/config/arm/lib1funcs.S
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/bpabi-v6m.S (__aeabi_ldivmod/ldivmod): Moved to ...
* config/arm/eabi/ldiv.S: New file.
* config/arm/lib1funcs.S: #include eabi/ldiv.S (v6m only).
---
libgcc/config/arm/bpabi-v6m.S | 81
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/bpabi.c: Deleted unused file.
* config/arm/eabi/ldiv.S (__aeabi_ldivmod, __aeabi_uldivmod):
Replaced wrapper functions with a complete implementation.
* config/arm/t-bpabi (LIB2ADD_ST): Removed bpabi.c
gcc/libgcc/ChangeLog:
2021-01-07 Daniel Engel
* config/arm/eabi/lmul.S: New file for __muldi3(), __mulsidi3(), and
__umulsidi3().
* config/arm/lib1funcs.S: #eabi/lmul.S (v6m only).
* config/arm/t-elf: Add the new objects to LIB1ASMFUNCS.
---
libgcc/config/arm
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/bpabi-v6m.S (__aeabi_cfcmpeq, __aeabi_cfcmple,
__aeabi_cfrcmple, __aeabi_fcmpeq, __aeabi_fcmple, aeabi_fcmple,
__aeabi_fcmpgt, aeabi_fcmpge): Moved to ...
* config/arm/eabi/fcmp.S: New file
OTE: It seems that the __aeabi_cfcmp*() routines formerly in bpabi-v6m.S
were not well tested, as they returned wrong results for the 'C' flag.
The replacement functions are fully tested.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/eabi/fcmp.S (__c
This will make it easier to isolate changes in subsequent patches.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/bpabi-v6m.S (__aeabi_frsub): Moved to ...
* config/arm/eabi/fadd.S: New file.
* config/arm/lib1funcs.S: #include eabi/fadd.S (v6m only
size is still less than half the size of soft-float.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/eabi/fadd.S (__addsf3, __subsf3): Added new functions.
* config/arm/eabi/fneg.S (__negsf2): Added new file.
* config/arm/eabi/futil.S (__fp_normalize2
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/eabi/fmul.S (__mulsf3): New file.
* config/arm/lib1funcs.S: #include eabi/fmul.S (v6m only).
* config/arm/t-elf (LIB1ASMFUNCS): Moved _mulsf3 to global scope
(this object was previously blocked on v6m
gcc/libgcc/ChangeLog:
2021-01-08 Daniel Engel
* config/arm/eabi/fdiv.S (__divsf3, __fp_divloopf): New file.
* config/arm/lib1funcs.S: #include eabi/fdiv.S (v6m only).
* config/arm/t-elf (LIB1ASMFUNCS): Added _divsf3 and _fp_divloopf.
---
libgcc/config/arm/eabi/fdiv.S
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/bpabi-lib.h (__floatdisf, __floatundisf):
Remove obsolete RENAME_LIBRARY directives.
* config/arm/eabi/ffloat.S (__aeabi_i2f, __aeabi_l2f, __aeabi_ui2f,
__aeabi_ul2f): New file.
* config/arm
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/eabi/fcast.S (__aeabi_d2f, __aeabi_f2d): New file.
* config/arm/lib1funcs.S: #include eabi/fcast.S (v6m only).
* config/arm/t-elf (LIB1ASMFUNCS): Added _arm_d2f and _arm_f2d.
---
libgcc/config/arm/eabi/fcast.S
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/bpabi-lib.h (muldi3): Removed duplicate.
(fixunssfsi) Removed obsolete RENAME_LIBRARY directive.
* config/arm/eabi/ffixed.S (__aeabi_f2iz, __aeabi_f2uiz,
__aeabi_f2lz, __aeabi_f2ulz): New file
ir code path, so this
choice leads to a size reduction in programs that use both functions.)
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/t-softfp (softfp_float_modes): Added as "df".
---
libgcc/config/arm/t-softfp | 2 ++
1 file changed, 2 insertions(+)
d
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/eabi/fcast.S (__aeabi_h2f, __aeabi_f2h): Added functions.
* config/arm/fp16 (__gnu_f2h_ieee, __gnu_h2f_ieee,
__gnu_f2h_alternative,
__gnu_h2f_alternative): Disable build for v6m multilibs.
* config/arm/t
Hi Christophe,
On Mon, Jan 11, 2021, at 8:39 AM, Christophe Lyon wrote:
> On Mon, 11 Jan 2021 at 17:18, Daniel Engel wrote:
> >
> > On Mon, Jan 11, 2021, at 8:07 AM, Christophe Lyon wrote:
> > > On Sat, 9 Jan 2021 at 14:09, Christophe Lyon
> > > wrote:
> &g
Hi Christophe,
On Fri, Jan 15, 2021, at 4:30 AM, Christophe Lyon wrote:
> On Fri, 15 Jan 2021 at 12:39, Daniel Engel wrote:
> >
> > Hi Christophe,
> >
> > On Mon, Jan 11, 2021, at 8:39 AM, Christophe Lyon wrote:
> > > On Mon, 11 Jan 2021 at 17:18, Daniel Engel
Hello,
Is there still any interest in merging this patch?
Thanks,
Daniel
On Mon, Oct 31, 2022, at 8:44 AM, Daniel Engel wrote:
> Hi Richard,
>
> I am re-submitting my libgcc patch from 2021:
>
> https://gcc.gnu.org/pipermail/gcc-patches/2021-January/563585.html
> h
56+__shared_float 54..58 8
<= 0.5 ulp
__aeabi_h2f 34+__shared_float 34 8
exact
__aeabi_f2h 84 23..34 0
<= 0.5 ulp
Copyright assignment is on file with the FSF.
Thanks,
the CFI_* macros earlier in the file scope will increase their
scope for use in additional functions.
gcc/libgcc/ChangeLog:
2021-01-14 Daniel Engel
* config/arm/lib1funcs.S:
(LLSYM): New macro prefix ".L" for strippable local symbols.
(CFI_START_FUNCTION, CFI_END_F
age of ".force_thumb" and ".thumb_func" is now tightly coupled
throughout the "arm" subdirectory.
gcc/libgcc/ChangeLog:
2021-01-14 Daniel Engel
* config/arm/lib1funcs.S: (THUMB_FUNC_START): Renamed to ...
(THUMB_FUNC_ENTRY): for consistency; also add
gcc/libgcc/ChangeLog:
2021-01-14 Daniel Engel
* config/arm/lib1funcs.S (RETLDM, ARM_DIV_BODY, ARM_MOD_BODY,
_interwork_call_via_lr): Moved condition code after the flags
update specifier "s".
(ARM_FUNC_START, THUMB_LDIV0): Removed redundant ".synta
This will make it easier to isolate changes in subsequent patches.
gcc/libgcc/ChangeLog:
2021-01-14 Daniel Engel
* config/arm/t-elf (LIB1ASMFUNCS): Split macros into logical groups.
---
libgcc/config/arm/t-elf | 66 +
1 file changed, 53
code comments for limitations and expecated usage.
gcc/libgcc/ChangeLog:
2021-01-14 Daniel Engel
(__HAVE_FEATURE_IT, IT): New macros.
---
libgcc/config/arm/lib1funcs.S | 68 +++
1 file changed, 68 insertions(+)
diff --git a/libgcc/config/arm/lib1funcs.S b/l
This will make it easier to isolate changes in subsequent patches.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/lib1funcs.S (__clzsi2i, __clzdi2): Moved to ...
* config/arm/clz2.S: New file.
---
libgcc/config/arm/clz2.S | 145
This will make it easier to isolate changes in subsequent patches.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/lib1funcs.S (__ctzsi2): Moved to ...
* config/arm/ctz2.S: New file.
---
libgcc/config/arm/ctz2.S | 86 +++
libgcc
This will make it easier to isolate changes in subsequent patches.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/lib1funcs.S (__ashldi3, __ashrdi3, __lshldi3): Moved to ...
* config/arm/eabi/lshift.S: New file.
---
libgcc/config/arm/eabi/lshift.S | 123
improves
Thumb performance without affecting ARM performance. Finally, this version
adds a new __OPTIMIZE_SIZE__ build option (binary search loop).
There is no change to the code for architectures with __ARM_FEATURE_CLZ.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/bits/clz2.S
__ARM_FEATURE_CLZ have
always returned 32, so this change makes the return value consistent.
This change costs 2 extra instructions (branchless).
Likewise on architectures with __ARM_FEATURE_CLZ, __ctzdi2(0) now returns
64 instead of 31.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config
yright (C) 2018-2021 Free Software Foundation, Inc.
+ Contributed by Daniel Engel, Senva Inc (g...@danielengel.com)
-This file is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
This implementation provides an efficient tail call to __clzsi2(), making the
functions rather smaller and faster than the C versions.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/bits/clz2.S (__clrsbsi2, __clrsbdi2):
Added new functions.
* config/arm/t-elf
This implementation provides an efficient tail call to __clzdi2(), making the
functions rather smaller and faster than the C versions.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/bits/ctz2.S (__ffssi2, __ffsdi2): New functions.
* config/arm/t-elf (LIB1ASMFUNCS
The functional overlap between the single- and double-word functions makes
functions makes this implementation about half the size of the C functions
if both functions are linked in the same application.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/parity.S: New file for
The functional overlap between the single- and double-word functions
makes this implementation about 30% smaller than the C functions
if both functions are linked together in the same appliation.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/popcnt.S (__popcountsi
This will make it easier to isolate changes in subsequent patches.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/bpabi-v6m.S (__aeabi_lcmp, __aeabi_ulcmp): Moved to ...
* config/arm/eabi/lcmp.S: New file.
* config/arm/lib1funcs.S: #include eabi/lcmp.S
These are 2-5 instructions smaller and just as fast. Branches are
minimized, which will allow easier adaptation to Thumb-2/ARM mode.
gcc/libgcc/ChangeLog:
2021-01-13 Daniel Engel
* config/arm/eabi/lcmp.S (__aeabi_lcmp, __aeabi_ulcmp): Replaced;
add macro configuration to build
1 - 100 of 117 matches
Mail list logo