This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[nvptx] HImode complex args
- From: Nathan Sidwell <nathan at acm dot org>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 24 Aug 2015 08:50:16 -0400
- Subject: [nvptx] HImode complex args
- Authentication-results: sourceware.org; auth=none
My patch to walk_args_for_param to fix QImode complex args, didn't deal with
HImode ones. Those also had the same problem, but I'd not triaged the
testsuite enough to see at that point.
This patch reverts the change to nvptx_ptx_type_from_mode, instead moving the
call to arg_promotion into the path for both split and unsplit args.
This fixes the following testcases (in addition to the ones the earlier patch
fixed):
gcc.dg/compat/scalar-by-value-4
gcc.dg/compat/scalar-return-4
gcc.dg/compat/struct-by-value-12
nathan
Index: config/nvptx/nvptx.c
===================================================================
--- config/nvptx/nvptx.c (revision 227107)
+++ config/nvptx/nvptx.c (working copy)
@@ -405,17 +405,17 @@ walk_args_for_param (FILE *file, tree ar
mode = DFmode;
}
- mode = arg_promotion (mode);
}
+ mode = arg_promotion (mode);
while (count-- > 0)
{
i++;
if (write_copy)
fprintf (file, "\tld.param%s %%ar%d, [%%in_ar%d];\n",
- nvptx_ptx_type_from_mode (mode, true), i, i);
+ nvptx_ptx_type_from_mode (mode, false), i, i);
else
fprintf (file, "\t.reg%s %%ar%d;\n",
- nvptx_ptx_type_from_mode (mode, true), i);
+ nvptx_ptx_type_from_mode (mode, false), i);
}
}
}