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;
 }

Reply via email to