From 6b9ce2b4eb49e3c930730c3721323349e2136b1a Mon Sep 17 00:00:00 2001 From: Richard Earnshaw Date: Tue, 3 Mar 2020 16:02:24 +0000 Subject: libgcc: arm: convert thumb1 code to unified syntax Unified syntax has been the official syntax for thumb1 assembly for over 10 years now. It's time we made preparations for that becoming the default in the assembler. But before we can start doing that we really need to clean up some laggards from the olden days. Libgcc support for thumb1 is one such example. This patch converts all of the legacy (disjoint) syntax that I could find over to unified code. The identification was done by using a trick version of gas that defaulted to unified mode which then faults if legacy syntax is encountered. The code produced was then compared against the old code to check for differences. One such difference does exist, but that is because in unified syntax 'movs rd, rn' is encoded as 'lsls rd, rn, #0', rather than 'adds rd, rn, #0'; but that is a deliberate change that was introduced because the lsls encoding more closely reflects the behaviour of 'movs' in arm state (where only some of the condition flags are modified). * config/arm/bpabi-v6m.S (aeabi_lcmp): Convert thumb1 code to unified syntax. (aeabi_ulcmp, aeabi_ldivmod, aeabi_uldivmod): Likewise. (aeabi_frsub, aeabi_cfcmpeq, aeabi_fcmpeq): Likewise. (aeabi_fcmp, aeabi_drsub, aeabi_cdrcmple): Likewise. (aeabi_cdcmpeq, aeabi_dcmpeq, aeabi_dcmp): Likewise. * config/arm/lib1funcs.S (Lend_fde): Convert thumb1 code to unified syntax. (divsi3, modsi3): Likewise. (clzdi2, ctzsi2): Likewise. * config/arm/libunwind.S (restore_core_regs): Convert thumb1 code to unified syntax. (UNWIND_WRAPPER): Likewise. --- libgcc/ChangeLog | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'libgcc/ChangeLog') diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 99e999bb257..c113897150b 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,19 @@ +2020-03-03 Richard Earnshaw + + * config/arm/bpabi-v6m.S (aeabi_lcmp): Convert thumb1 code to unified + syntax. + (aeabi_ulcmp, aeabi_ldivmod, aeabi_uldivmod): Likewise. + (aeabi_frsub, aeabi_cfcmpeq, aeabi_fcmpeq): Likewise. + (aeabi_fcmp, aeabi_drsub, aeabi_cdrcmple): Likewise. + (aeabi_cdcmpeq, aeabi_dcmpeq, aeabi_dcmp): Likewise. + * config/arm/lib1funcs.S (Lend_fde): Convert thumb1 code to unified + syntax. + (divsi3, modsi3): Likewise. + (clzdi2, ctzsi2): Likewise. + * config/arm/libunwind.S (restore_core_regs): Convert thumb1 code to + unified syntax. + (UNWIND_WRAPPER): Likewise. + 2020-03-02 Martin Liska * libgcov-interface.c: Remove duplicate -- cgit v1.2.3