aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoffrey Keating <geoffk@redhat.com>2001-05-14 03:40:04 +0000
committerGeoffrey Keating <geoffk@gcc.gnu.org>2001-05-14 03:40:04 +0000
commite44713f730a808084ead53f7d833bce8acf7eec5 (patch)
tree3a213ddd12c942b9c9c6224a65e74efde7984e05
parent3fe68d0af3a9ad980b7989620028a4288e4d0a5c (diff)
downloadgcc-e44713f730a808084ead53f7d833bce8acf7eec5.zip
gcc-e44713f730a808084ead53f7d833bce8acf7eec5.tar.gz
gcc-e44713f730a808084ead53f7d833bce8acf7eec5.tar.bz2
rs6000.h (EXCEPTION_SECTION): Move to...
* config/rs6000/rs6000.h (EXCEPTION_SECTION): Move to... * config/rs6000/aix.h (EXCEPTION_SECTION): ... here. * config/rs6000/sysv4.h (CONST_SECTION_ASM_OP): Delete. (ASM_PREFERRED_EH_DATA_FORMAT): Define. (EXCEPTION_SECTION): Define. From-SVN: r42058
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/rs6000/aix.h6
-rw-r--r--gcc/config/rs6000/rs6000.h6
-rw-r--r--gcc/config/rs6000/sysv4.h17
4 files changed, 24 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 205893e..a6929b4 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2001-05-13 Geoff Keating <geoffk@redhat.com>
+
+ * config/rs6000/rs6000.h (EXCEPTION_SECTION): Move to...
+ * config/rs6000/aix.h (EXCEPTION_SECTION): ... here.
+ * config/rs6000/sysv4.h (CONST_SECTION_ASM_OP): Delete.
+ (ASM_PREFERRED_EH_DATA_FORMAT): Define.
+ (EXCEPTION_SECTION): Define.
+
2001-05-13 Zack Weinberg <zackw@stanford.edu>
* libgcc2.c, libgcc2.h: Restore __eprintf. Label as used for
diff --git a/gcc/config/rs6000/aix.h b/gcc/config/rs6000/aix.h
index 82c8744..4b0d28a 100644
--- a/gcc/config/rs6000/aix.h
+++ b/gcc/config/rs6000/aix.h
@@ -594,6 +594,12 @@ toc_section () \
putc ('\n', ASM_OUT_FILE); \
} while (0)
+/* Define the name of the section to use for the exception tables.
+ TODO: test and see if we can use read_only_data_section, if so,
+ remove this. */
+
+#define EXCEPTION_SECTION data_section
+
/* __throw will restore its own return address to be the same as the
return address of the function that the throw is being made to.
This is unfortunate, because we want to check the original
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index fe48c0a..39c79c1 100644
--- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h
@@ -2318,12 +2318,6 @@ extern int rs6000_compare_fp_p;
#define TARGET_MEM_FUNCTIONS
-/* Define the name of the section to use for the exception tables.
- TODO: test and see if we can use read_only_data_section, if so,
- remove this. */
-
-#define EXCEPTION_SECTION data_section
-
/* Flag to say the TOC is initialized */
extern int toc_initialized;
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
index 6cf6379..64d4131 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -433,13 +433,6 @@ do { \
#define MINIMAL_TOC_SECTION_ASM_OP \
((TARGET_RELOCATABLE || flag_pic) ? "\t.section\t\".got2\",\"aw\"" : "\t.section\t\".got1\",\"aw\"")
-/* Put relocatable data in .data, not .rodata so initialized pointers can be updated. */
-/* Override elfos.h definition. */
-#undef CONST_SECTION_ASM_OP
-#define CONST_SECTION_ASM_OP \
- ((TARGET_RELOCATABLE || flag_pic) ? "\t.section\t\".data\"\t# .rodata" : "\t.section\t\".rodata\"")
-
-
#define SDATA_SECTION_ASM_OP "\t.section\t\".sdata\",\"aw\""
#define SDATA2_SECTION_ASM_OP "\t.section\t\".sdata2\",\"a\""
#define SBSS_SECTION_ASM_OP \
@@ -1602,3 +1595,13 @@ do { \
= init_one_libfunc (SQRTTF_LIBCALL); \
} \
} while (0)
+
+/* Select a format to encode pointers in exception handling data. CODE
+ is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is
+ true if the symbol may be affected by dynamic relocations. */
+#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \
+ (flag_pic \
+ ? (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4) \
+ : DW_EH_PE_absptr)
+
+#define EXCEPTION_SECTION readonly_data_section