https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100856

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Christophe Lyon <cl...@gcc.gnu.org>:

https://gcc.gnu.org/g:63f68535550f77998ad907ba3d3be05a4324fbe8

commit r12-3067-g63f68535550f77998ad907ba3d3be05a4324fbe8
Author: Christophe Lyon <christophe.l...@foss.st.com>
Date:   Thu Jul 15 12:57:18 2021 +0000

    arm: Fix multilib mapping for CDE extensions [PR100856]

    This is a followup to Srinath's recent patch: the newly added test is
    failing e.g. on arm-linux-gnueabihf without R/M profile multilibs.

    It is also failing on arm-eabi with R/M profile multilibs if the
    execution engine does not support v8.1-M instructions.

    The patch avoids this by adding check_effective_target_FUNC_multilib
    in target-supports.exp which effectively checks whether the target
    supports linking and execution, like what is already done for other
    ARM effective targets.  pr100856.c is updated to use it instead of
    arm_v8_1m_main_cde_mve_ok (which makes the testcase a bit of a
    duplicate with check_effective_target_FUNC_multilib).

    In addition, I noticed that requiring MVE does not seem necessary and
    this enables the test to pass even when targeting a CPU without MVE:
    since the test does not involve actual CDE instructions, it can pass
    on other architecture versions.  For instance, when requiring MVE, we
    have to use cortex-m55 under QEMU for the test to pass because the
    memset() that comes from v8.1-m.main+mve multilib uses LOB
    instructions (DLS) (memset is used during startup).  Keeping
    arm_v8_1m_main_cde_mve_ok would mean we would enable the test provided
    we have the right multilibs, causing a runtime error if the simulator
    does not support LOB instructions (e.g. when targeting cortex-m7).

    I do not update sourcebuild.texi since the CDE effective targets are
    already collectively documented.

    Finally, the patch fixes two typos in comments.

    2021-07-15  Christophe Lyon  <christophe.l...@foss.st.com>

            PR target/100856
            gcc/
            * config/arm/arm.opt: Fix typo.
            * config/arm/t-rmprofile: Fix typo.

            gcc/testsuite/
            * gcc.target/arm/acle/pr100856.c: Use arm_v8m_main_cde_multilib
            and arm_v8m_main_cde.
            * lib/target-supports.exp: Add
            check_effective_target_FUNC_multilib for ARM CDE.

Reply via email to