[MIPS] Remove TARGET_ASM_FUNCTION_RODATA_SECTION
Since 'Remove obsolete IRIX 6.5 support' [1] we only use gp-relative jump-tables for PIC code. We can fall back to default behaviour for asm_function_rodata_section. [1] https://gcc.gnu.org/ml/libstdc++/2012-03/msg00067.html 2018-06-04 Dragan Mladjenovic <dragan.mladjenovic@rt-rk.com> gcc/ * config/mips/mips.c (mips_function_rodata_section, TARGET_ASM_FUNCTION_RODATA_SECTION): Removed.
This commit is contained in:
parent
5aae6fd9f4
commit
304ec0d1d9
@ -9306,42 +9306,6 @@ mips_select_rtx_section (machine_mode mode, rtx x,
|
|||||||
return default_elf_select_rtx_section (mode, x, align);
|
return default_elf_select_rtx_section (mode, x, align);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Implement TARGET_ASM_FUNCTION_RODATA_SECTION.
|
|
||||||
|
|
||||||
The complication here is that, with the combination TARGET_ABICALLS
|
|
||||||
&& !TARGET_ABSOLUTE_ABICALLS && !TARGET_GPWORD, jump tables will use
|
|
||||||
absolute addresses, and should therefore not be included in the
|
|
||||||
read-only part of a DSO. Handle such cases by selecting a normal
|
|
||||||
data section instead of a read-only one. The logic apes that in
|
|
||||||
default_function_rodata_section. */
|
|
||||||
|
|
||||||
static section *
|
|
||||||
mips_function_rodata_section (tree decl, bool)
|
|
||||||
{
|
|
||||||
if (!TARGET_ABICALLS || TARGET_ABSOLUTE_ABICALLS || TARGET_GPWORD)
|
|
||||||
return default_function_rodata_section (decl, false);
|
|
||||||
|
|
||||||
if (decl && DECL_SECTION_NAME (decl))
|
|
||||||
{
|
|
||||||
const char *name = DECL_SECTION_NAME (decl);
|
|
||||||
if (DECL_COMDAT_GROUP (decl) && startswith (name, ".gnu.linkonce.t."))
|
|
||||||
{
|
|
||||||
char *rname = ASTRDUP (name);
|
|
||||||
rname[14] = 'd';
|
|
||||||
return get_section (rname, SECTION_LINKONCE | SECTION_WRITE, decl);
|
|
||||||
}
|
|
||||||
else if (flag_function_sections
|
|
||||||
&& flag_data_sections
|
|
||||||
&& startswith (name, ".text."))
|
|
||||||
{
|
|
||||||
char *rname = ASTRDUP (name);
|
|
||||||
memcpy (rname + 1, "data", 4);
|
|
||||||
return get_section (rname, SECTION_WRITE, decl);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return data_section;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Implement TARGET_IN_SMALL_DATA_P. */
|
/* Implement TARGET_IN_SMALL_DATA_P. */
|
||||||
|
|
||||||
static bool
|
static bool
|
||||||
@ -22606,8 +22570,6 @@ mips_asm_file_end (void)
|
|||||||
#define TARGET_ASM_FUNCTION_EPILOGUE mips_output_function_epilogue
|
#define TARGET_ASM_FUNCTION_EPILOGUE mips_output_function_epilogue
|
||||||
#undef TARGET_ASM_SELECT_RTX_SECTION
|
#undef TARGET_ASM_SELECT_RTX_SECTION
|
||||||
#define TARGET_ASM_SELECT_RTX_SECTION mips_select_rtx_section
|
#define TARGET_ASM_SELECT_RTX_SECTION mips_select_rtx_section
|
||||||
#undef TARGET_ASM_FUNCTION_RODATA_SECTION
|
|
||||||
#define TARGET_ASM_FUNCTION_RODATA_SECTION mips_function_rodata_section
|
|
||||||
|
|
||||||
#undef TARGET_SCHED_INIT
|
#undef TARGET_SCHED_INIT
|
||||||
#define TARGET_SCHED_INIT mips_sched_init
|
#define TARGET_SCHED_INIT mips_sched_init
|
||||||
|
Loading…
Reference in New Issue
Block a user