aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorIain Sandoe <iains@gcc.gnu.org>2011-11-22 10:19:19 +0000
committerIain Sandoe <iains@gcc.gnu.org>2011-11-22 10:19:19 +0000
commit50b0b78a7594143de9d927b2d4edff2065be317d (patch)
tree85b8f52e7ea0bebc7684ced5669af4e90f0ec345 /gcc/config
parent0b41ebef72631ec8cf5ffd16537d1274c3fd6800 (diff)
downloadgcc-50b0b78a7594143de9d927b2d4edff2065be317d.zip
gcc-50b0b78a7594143de9d927b2d4edff2065be317d.tar.gz
gcc-50b0b78a7594143de9d927b2d4edff2065be317d.tar.bz2
target.def (tm_clone_table_section): New hook.
gcc: * target.def (tm_clone_table_section): New hook. * doc/tm.texi.in (TARGET_ASM_TM_CLONE_TABLE_SECTION): Define. * doc/tm.texi: Regenerate. * varasm.c (dump_tm_clone_pairs): Use target tm_clone_table_section. * output.h (default_clone_table_section): New prototype. * config/darwin.h (TARGET_ASM_TM_CLONE_TABLE_SECTION): New. * config/darwin-protos.h (darwin_tm_clone_table_section): New prototype. * config/darwin.c (darwin_tm_clone_table_section): New. gcc/testsuite: * gcc.dg/tm/20100615.c: Adjust for Darwin tm_clone_table section name. From-SVN: r181613
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/darwin-protos.h1
-rw-r--r--gcc/config/darwin.c8
-rw-r--r--gcc/config/darwin.h4
3 files changed, 13 insertions, 0 deletions
diff --git a/gcc/config/darwin-protos.h b/gcc/config/darwin-protos.h
index 21092af..e022086 100644
--- a/gcc/config/darwin-protos.h
+++ b/gcc/config/darwin-protos.h
@@ -58,6 +58,7 @@ extern int machopic_reloc_rw_mask (void);
extern section *machopic_select_section (tree, int, unsigned HOST_WIDE_INT);
extern section *darwin_function_section (tree, enum node_frequency, bool, bool);
+extern section *darwin_tm_clone_table_section (void);
extern void darwin_function_switched_text_sections (FILE *, tree, bool);
extern void darwin_unique_section (tree decl, int reloc);
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index 7c33a53..b1038f4 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -1265,6 +1265,14 @@ darwin_mergeable_constant_section (tree exp,
return readonly_data_section;
}
+section *
+darwin_tm_clone_table_section (void)
+{
+ return get_named_section (NULL,
+ "__DATA,__tm_clone_table,regular,no_dead_strip",
+ 3);
+}
+
int
machopic_reloc_rw_mask (void)
{
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index 7ae7519..efff4c9 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -697,6 +697,10 @@ extern GTY(()) section * darwin_sections[NUM_DARWIN_SECTIONS];
#define TARGET_ASM_UNIQUE_SECTION darwin_unique_section
#undef TARGET_ASM_FUNCTION_RODATA_SECTION
#define TARGET_ASM_FUNCTION_RODATA_SECTION default_no_function_rodata_section
+
+#undef TARGET_ASM_TM_CLONE_TABLE_SECTION
+#define TARGET_ASM_TM_CLONE_TABLE_SECTION darwin_tm_clone_table_section
+
#undef TARGET_ASM_RELOC_RW_MASK
#define TARGET_ASM_RELOC_RW_MASK machopic_reloc_rw_mask