aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaochen Gui <guihaoc@gcc.gnu.org>2021-06-04 11:04:31 +0800
committerHaochen Gui <guihaoc@gcc.gnu.org>2021-06-04 11:40:24 +0800
commita3f6bd7891495a0ed65f7da7a55d36c730328692 (patch)
tree139d9d777958c5c6ee669d5bc798a1f4cd293640
parent440c8a0a91b7ea1603e3e1eaae64fc0e12f0c4f1 (diff)
downloadgcc-a3f6bd7891495a0ed65f7da7a55d36c730328692.zip
gcc-a3f6bd7891495a0ed65f7da7a55d36c730328692.tar.gz
gcc-a3f6bd7891495a0ed65f7da7a55d36c730328692.tar.bz2
rs6000: Expand PROMOTE_MODE marco in rs6000_promote_function_mode
This patch prepares for the patch which disables mode promotion of pseudos on rs6000. gcc/ChangeLog: * config/rs6000/rs6000-call.c (rs6000_promote_function_mode): Replace PROMOTE_MODE marco with its content.
-rw-r--r--gcc/config/rs6000/rs6000-call.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000/rs6000-call.c
index f271b0a..b4e13af 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;
}