From d32495261a8a9d35379180d8ad0bca693f06b104 Mon Sep 17 00:00:00 2001 From: Andrew Stubbs Date: Tue, 31 Mar 2020 17:46:17 +0100 Subject: [PATCH] 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. --- gcc/config/gcn/gcn.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gcc/config/gcn/gcn.c b/gcc/config/gcn/gcn.c index b6ff0bbc2af..5693b75b672 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; -- 2.30.2