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]>
