On Thu, Feb 26, 2026 at 1:40 AM H.J. Lu <[email protected]> wrote: > > 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.
OK. Thanks, Richard. > 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. > > > -- > H.J.
