aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/gcn/gcn.c
diff options
context:
space:
mode:
authorAndrew Stubbs <ams@codesourcery.com>2020-03-31 17:46:17 +0100
committerAndrew Stubbs <ams@codesourcery.com>2020-06-22 11:07:52 +0100
commitd32495261a8a9d35379180d8ad0bca693f06b104 (patch)
tree1a587352abd566f5e8a615b1ff63faca499f0799 /gcc/config/gcn/gcn.c
parentc154b8bc56831e4d9d421c52c8fcf95c570255ad (diff)
downloadgcc-d32495261a8a9d35379180d8ad0bca693f06b104.zip
gcc-d32495261a8a9d35379180d8ad0bca693f06b104.tar.gz
gcc-d32495261a8a9d35379180d8ad0bca693f06b104.tar.bz2
amdgcn: Pass vector parameters in memory
gcc/ChangeLog: * config/gcn/gcn.c (gcn_function_arg): Disallow vector arguments. (gcn_return_in_memory): Return vectors in memory.
Diffstat (limited to 'gcc/config/gcn/gcn.c')
-rw-r--r--gcc/config/gcn/gcn.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/config/gcn/gcn.c b/gcc/config/gcn/gcn.c
index b6ff0bb..5693b75 100644
--- a/gcc/config/gcn/gcn.c
+++ b/gcc/config/gcn/gcn.c
@@ -2291,6 +2291,10 @@ gcn_function_arg (cumulative_args_t cum_v, const function_arg_info &arg)
if (targetm.calls.must_pass_in_stack (arg))
return 0;
+ /* Vector parameters are not supported yet. */
+ if (VECTOR_MODE_P (arg.mode))
+ return 0;
+
int reg_num = FIRST_PARM_REG + cum->num;
int num_regs = num_arg_regs (arg);
if (num_regs > 0)
@@ -2478,6 +2482,10 @@ gcn_return_in_memory (const_tree type, const_tree ARG_UNUSED (fntype))
if (AGGREGATE_TYPE_P (type))
return true;
+ /* Vector return values are not supported yet. */
+ if (VECTOR_TYPE_P (type))
+ return true;
+
if (mode == BLKmode)
return true;