Hi,
The patch is preparatory for the patch2 - remove mode promotion for
pseudos.
The attachments are the patch diff and change log file.
Bootstrapped and tested on powerpc64le-linux and powerpc64-linux
(with both m32 and m64) with no regressions. Is this okay for trunk? Any
recommendations? Thanks a lot.
* config/rs6000/rs6000-call.c (rs6000_promote_function_mode):
Replace PROMOTE_MODE marco with its content.
diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000/rs6000-call.c
index f5676255387..dca139b2ecf 100644
--- a/gcc/config/rs6000/rs6000-call.c
+++ b/gcc/config/rs6000/rs6000-call.c
@@ -6646,7 +6646,9 @@ rs6000_promote_function_mode (const_tree type
ATTRIBUTE_UNUSED,
>------>------->------- int *punsignedp ATTRIBUTE_UNUSED,
>------>------->------- const_tree, int for_return ATTRIBUTE_UNUSED)
{
- PROMOTE_MODE (mode, *punsignedp, type);
+ if (GET_MODE_CLASS (mode) == MODE_INT
+ && GET_MODE_SIZE (mode) < (TARGET_32BIT ? 4 : 8))
+ mode = TARGET_32BIT ? SImode : DImode;
~
return mode;
}