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

--- Comment #10 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by H.J. Lu <[email protected]>:

https://gcc.gnu.org/g:fecf542e1db9bbe874bbfed94bbd8b1c7151972e

commit r16-7709-gfecf542e1db9bbe874bbfed94bbd8b1c7151972e
Author: H.J. Lu <[email protected]>
Date:   Thu Jan 1 07:14:57 2026 +0800

    Add default_promote_function_mode_sign_extend

    TARGET_PROMOTE_PROTOTYPES is an optimization, not an ABI requirement.
    TARGET_PROMOTE_FUNCTION_MODE should be used for ABI requirement.  Like
    xtensa, mcore ABI requires sign extension of signed 8/16-bit integer
    arguments to 32 bits and zero extension of unsigned integer 8/16-bit
    arguments to 32 bits:

    1. Rename xtensa_promote_function_mode to
    default_promote_function_mode_sign_extend to sign-extend signed 8/16-bit
    integer arguments to 32 bits and zero-extend of unsigned 8/16-bit
    integer arguments to 32 bits.
    2. Replace xtensa_promote_function_mode with
    default_promote_function_mode_sign_extend.
    3. Remove TARGET_PROMOTE_PROTOTYPES for mcore and define
    TARGET_PROMOTE_FUNCTION_MODE with
    default_promote_function_mode_sign_extend to properly extend 8/16-bit
    arguments to 32 bits.

    Targets with the same ABI requirement should define
    TARGET_PROMOTE_FUNCTION_MODE with
    default_promote_function_mode_sign_extend.

    gcc/

            PR target/119979
            PR target/120888
            * targhooks.cc (default_promote_function_mode_sign_extend): New.
            * targhooks.h (default_promote_function_mode_sign_extend):
            Likewise.
            * config/mcore/mcore.cc (TARGET_PROMOTE_FUNCTION_MODE): Use
            default_promote_function_mode_sign_extend.
            (TARGET_PROMOTE_PROTOTYPES): Removed.
            * config/xtensa/xtensa.cc (xtensa_promote_function_mode): Removed.
            (TARGET_PROMOTE_FUNCTION_MODE): Use
            default_promote_function_mode_sign_extend.

    gcc/testsuite/

            PR target/119979
            PR target/120888
            * gcc.target/xtensa/pr120888-1.c: Removed to ...
            * gcc.dg/zero-extend.c: This.  Enable for mcore and xtensa.
            * gcc.target/xtensa/pr120888-2.c: Removed to ...
            * gcc.dg/sign-extend.c: This.  Enable for mcore and xtensa.

    Signed-off-by: H.J. Lu <[email protected]>

Reply via email to