aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2out.c
diff options
context:
space:
mode:
authorStan Shebs <shebs@apple.com>2001-10-22 14:43:31 +0000
committerStan Shebs <shebs@gcc.gnu.org>2001-10-22 14:43:31 +0000
commit07c9d2eb2e9691d05219a18ecde9bc4a511d1a63 (patch)
tree6028234f9c01f45261eb56b926fa2cdb55368889 /gcc/dwarf2out.c
parentbbea0391f048d6564ce44f4a27b8987318f2ea75 (diff)
downloadgcc-07c9d2eb2e9691d05219a18ecde9bc4a511d1a63.zip
gcc-07c9d2eb2e9691d05219a18ecde9bc4a511d1a63.tar.gz
gcc-07c9d2eb2e9691d05219a18ecde9bc4a511d1a63.tar.bz2
target.h (struct gcc_target): Add asm_out.exception_section, asm_out.eh_frame_section.
* target.h (struct gcc_target): Add asm_out.exception_section, asm_out.eh_frame_section. * target-def.h (TARGET_ASM_EXCEPTION_SECTION): New macro. (TARGET_ASM_EH_FRAME_SECTION): New. (TARGET_INITIALIZER): Update. * output.h (default_exception_section): Declare. (default_eh_frame_section): Declare. * dwarf2out.c: Include target.h. (output_call_frame_info): Call target hook for eh frames. (default_eh_frame_section): New function. * except.c: Include target.h. (output_function_exception_table): Call target hook for exception section. * varasm.c (default_exception_section): Rename from exception_section, remove EXCEPTION_SECTION macro. * config/darwin.h (darwin_eh_frame_section): New function. (EXCEPTION_SECTION): Remove. (TARGET_ASM_EXCEPTION_SECTION): Define. * config/nextstep.h (EH_FRAME_SECTION_ASM_OP): Remove. (nextstep_exception_section): New function. (nextstep_eh_frame_section): New function. (TARGET_ASM_EXCEPTION_SECTION): Define. (TARGET_ASM_EH_FRAME_SECTION): Define. * config/pa/som.h (EXCEPTION_SECTION): Remove. (TARGET_ASM_EXCEPTION_SECTION): Define. * config/rs6000/sysv4.h, config/rs6000/xcoff.h (EXCEPTION_SECTION): Remove. (TARGET_ASM_EXCEPTION_SECTION): Define. * config/stormy16/stormy16.h: Remove comments referencing EXCEPTION_SECTION and EH_FRAME_SECTION_ASM_OP. * doc/tm.texi: Document TARGET_ASM_EXCEPTION_SECTION and TARGET_ASM_EH_FRAME_SECTION. From-SVN: r46409
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r--gcc/dwarf2out.c29
1 files changed, 17 insertions, 12 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 486c7a2..d98b3f2 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -59,6 +59,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "tm_p.h"
#include "diagnostic.h"
#include "debug.h"
+#include "target.h"
#ifdef DWARF2_DEBUGGING_INFO
static void dwarf2out_source_line PARAMS ((unsigned int, const char *));
@@ -1738,18 +1739,7 @@ output_call_frame_info (for_eh)
app_enable ();
if (for_eh)
- {
-#ifdef EH_FRAME_SECTION_NAME
- named_section_flags (EH_FRAME_SECTION_NAME, SECTION_WRITE);
-#else
- tree label = get_file_function_name ('F');
-
- data_section ();
- ASM_OUTPUT_ALIGN (asm_out_file, floor_log2 (PTR_SIZE));
- ASM_GLOBALIZE_LABEL (asm_out_file, IDENTIFIER_POINTER (label));
- ASM_OUTPUT_LABEL (asm_out_file, IDENTIFIER_POINTER (label));
-#endif
- }
+ (*targetm.asm_out.eh_frame_section) ();
else
named_section_flags (DEBUG_FRAME_SECTION, SECTION_DEBUG);
@@ -1978,6 +1968,21 @@ output_call_frame_info (for_eh)
app_disable ();
}
+void
+default_eh_frame_section ()
+{
+#ifdef EH_FRAME_SECTION_NAME
+ named_section_flags (EH_FRAME_SECTION_NAME, SECTION_WRITE);
+#else
+ tree label = get_file_function_name ('F');
+
+ data_section ();
+ ASM_OUTPUT_ALIGN (asm_out_file, floor_log2 (PTR_SIZE));
+ ASM_GLOBALIZE_LABEL (asm_out_file, IDENTIFIER_POINTER (label));
+ ASM_OUTPUT_LABEL (asm_out_file, IDENTIFIER_POINTER (label));
+#endif
+}
+
/* Output a marker (i.e. a label) for the beginning of a function, before
the prologue. */