+2019-05-15 David Edelsohn <dje.gcc@gmail.com>
+
+ Backport from mainline
+ 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
+ * xcoffout.h (xcoff_private_rodata_section_name): Declare.
+ * xcoffout.c (xcoff_private_rodata_section_name): Define.
+ * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
+ read_only_private_data_section using coff_private_rodata_section_name.
+ (rs6000_xcoff_file_start): Generate coff_private_rodata_section_name.
+
+ 2018-12-04 David Edelsohn <dje.gcc@gmail.com>
+ 2018-12-13 David Edelsohn <dje.gcc@gmail.com>
+ PR target/61976
+ * config/rs6000/rs6000.c (rs6000_function_arg): Don't pass aggregates
+ in FPRs on AIX. Ensure type is non-NULL.
+ (rs6000_arg_partial_bytes): Same.
+
2019-05-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
* config/arm/t-rtems: Replace -march=armv7-m multilibs with
if (elt_mode == TDmode && (cum->fregno % 2) == 1)
cum->fregno++;
- if (USE_FP_FOR_ARG_P (cum, elt_mode))
+ if (USE_FP_FOR_ARG_P (cum, elt_mode)
+ && !(TARGET_AIX && !TARGET_ELF
+ && type != NULL && AGGREGATE_TYPE_P (type)))
{
rtx rvec[GP_ARG_NUM_REG + AGGR_ARG_NUM_REG + 1];
rtx r, off;
align_words = rs6000_parm_start (mode, type, cum->words);
- if (USE_FP_FOR_ARG_P (cum, elt_mode))
+ if (USE_FP_FOR_ARG_P (cum, elt_mode)
+ && !(TARGET_AIX && !TARGET_ELF
+ && type != NULL && AGGREGATE_TYPE_P (type)))
{
unsigned long n_fpreg = (GET_MODE_SIZE (elt_mode) + 7) >> 3;
rs6000_xcoff_output_readwrite_section_asm_op,
&xcoff_private_data_section_name);
+ read_only_private_data_section
+ = get_unnamed_section (0, rs6000_xcoff_output_readonly_section_asm_op,
+ &xcoff_private_rodata_section_name);
+
tls_data_section
= get_unnamed_section (SECTION_TLS,
rs6000_xcoff_output_tls_section_asm_op,
rs6000_xcoff_output_tls_section_asm_op,
&xcoff_private_data_section_name);
- read_only_private_data_section
- = get_unnamed_section (0, rs6000_xcoff_output_readonly_section_asm_op,
- &xcoff_private_data_section_name);
-
toc_section
= get_unnamed_section (0, rs6000_xcoff_output_toc_section_asm_op, NULL);
main_input_filename, ".bss_");
rs6000_gen_section_name (&xcoff_private_data_section_name,
main_input_filename, ".rw_");
+ rs6000_gen_section_name (&xcoff_private_rodata_section_name,
+ main_input_filename, ".rop_");
rs6000_gen_section_name (&xcoff_read_only_section_name,
main_input_filename, ".ro_");
rs6000_gen_section_name (&xcoff_tls_data_section_name,