View | Details | Return to bug 68662
Collapse All | Expand All

(-)gcc/config/rs6000/rs6000.c.jj (-10 / +5 lines)
Lines 4560-4567 rs6000_option_override_internal (bool gl Link Here
4560
      if (TARGET_LONG_DOUBLE_128 && !TARGET_IEEEQUAD)
4560
      if (TARGET_LONG_DOUBLE_128 && !TARGET_IEEEQUAD)
4561
	REAL_MODE_FORMAT (TFmode) = &ibm_extended_format;
4561
	REAL_MODE_FORMAT (TFmode) = &ibm_extended_format;
4562
4562
4563
      if (TARGET_TOC)
4563
      ASM_GENERATE_INTERNAL_LABEL (toc_label_name, "LCTOC", 1);
4564
	ASM_GENERATE_INTERNAL_LABEL (toc_label_name, "LCTOC", 1);
4565
4564
4566
      /* We can only guarantee the availability of DI pseudo-ops when
4565
      /* We can only guarantee the availability of DI pseudo-ops when
4567
	 assembling for 64-bit targets.  */
4566
	 assembling for 64-bit targets.  */
Lines 23983-23989 rs6000_emit_load_toc_table (int fromprol Link Here
23983
      ASM_GENERATE_INTERNAL_LABEL (buf, "L", CODE_LABEL_NUMBER (lab));
23982
      ASM_GENERATE_INTERNAL_LABEL (buf, "L", CODE_LABEL_NUMBER (lab));
23984
      lab = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf));
23983
      lab = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf));
23985
      if (flag_pic == 2)
23984
      if (flag_pic == 2)
23986
	got = gen_rtx_SYMBOL_REF (Pmode, toc_label_name);
23985
	got = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (toc_label_name));
23987
      else
23986
      else
23988
	got = rs6000_got_sym ();
23987
	got = rs6000_got_sym ();
23989
      tmp1 = tmp2 = dest;
23988
      tmp1 = tmp2 = dest;
Lines 24027-24033 rs6000_emit_load_toc_table (int fromprol Link Here
24027
	{
24026
	{
24028
	  rtx tocsym, lab;
24027
	  rtx tocsym, lab;
24029
24028
24030
	  tocsym = gen_rtx_SYMBOL_REF (Pmode, toc_label_name);
24029
	  tocsym = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (toc_label_name));
24031
	  lab = gen_label_rtx ();
24030
	  lab = gen_label_rtx ();
24032
	  emit_insn (gen_load_toc_v4_PIC_1b (tocsym, lab));
24031
	  emit_insn (gen_load_toc_v4_PIC_1b (tocsym, lab));
24033
	  emit_move_insn (dest, gen_rtx_REG (Pmode, LR_REGNO));
24032
	  emit_move_insn (dest, gen_rtx_REG (Pmode, LR_REGNO));
Lines 24040-24049 rs6000_emit_load_toc_table (int fromprol Link Here
24040
  else if (TARGET_ELF && !TARGET_AIX && flag_pic == 0 && TARGET_MINIMAL_TOC)
24039
  else if (TARGET_ELF && !TARGET_AIX && flag_pic == 0 && TARGET_MINIMAL_TOC)
24041
    {
24040
    {
24042
      /* This is for AIX code running in non-PIC ELF32.  */
24041
      /* This is for AIX code running in non-PIC ELF32.  */
24043
      char buf[30];
24042
      rtx realsym = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (toc_label_name));
24044
      rtx realsym;
24045
      ASM_GENERATE_INTERNAL_LABEL (buf, "LCTOC", 1);
24046
      realsym = gen_rtx_SYMBOL_REF (Pmode, ggc_strdup (buf));
24047
24043
24048
      emit_insn (gen_elf_high (dest, realsym));
24044
      emit_insn (gen_elf_high (dest, realsym));
24049
      emit_insn (gen_elf_low (dest, dest, realsym));
24045
      emit_insn (gen_elf_low (dest, dest, realsym));
Lines 31726-31734 rs6000_elf_declare_function_name (FILE * Link Here
31726
31722
31727
      (*targetm.asm_out.internal_label) (file, "LCL", rs6000_pic_labelno);
31723
      (*targetm.asm_out.internal_label) (file, "LCL", rs6000_pic_labelno);
31728
31724
31729
      ASM_GENERATE_INTERNAL_LABEL (buf, "LCTOC", 1);
31730
      fprintf (file, "\t.long ");
31725
      fprintf (file, "\t.long ");
31731
      assemble_name (file, buf);
31726
      assemble_name (file, toc_label_name);
31732
      putc ('-', file);
31727
      putc ('-', file);
31733
      ASM_GENERATE_INTERNAL_LABEL (buf, "LCF", rs6000_pic_labelno);
31728
      ASM_GENERATE_INTERNAL_LABEL (buf, "LCF", rs6000_pic_labelno);
31734
      assemble_name (file, buf);
31729
      assemble_name (file, buf);

Return to bug 68662