aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@gcc.gnu.org>2004-09-18 06:43:09 +0000
committerKaz Kojima <kkojima@gcc.gnu.org>2004-09-18 06:43:09 +0000
commitf4966f8cab51097ed966c792f117a23d13405fd0 (patch)
tree30b6c7dda00cf029097157cbad6fbaca16b1d4c4 /gcc
parenta396f8ae242ddd9993230025093b5f768647d194 (diff)
downloadgcc-f4966f8cab51097ed966c792f117a23d13405fd0.zip
gcc-f4966f8cab51097ed966c792f117a23d13405fd0.tar.gz
gcc-f4966f8cab51097ed966c792f117a23d13405fd0.tar.bz2
linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
* config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove. * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use DW_EH_PE_sdata* for data. (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise. From-SVN: r87696
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/sh/linux.h7
-rw-r--r--gcc/config/sh/sh.h10
3 files changed, 12 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1e3efe3..06a6e53 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2004-09-18 Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove.
+ * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
+ DW_EH_PE_sdata* for data.
+ (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
+
2004-09-17 Geoffrey Keating <geoffk@apple.com>
* tree-inline.c (copy_tree_r): Don't duplicate constants, they're
diff --git a/gcc/config/sh/linux.h b/gcc/config/sh/linux.h
index 1142b12..8724854 100644
--- a/gcc/config/sh/linux.h
+++ b/gcc/config/sh/linux.h
@@ -41,13 +41,6 @@ Boston, MA 02111-1307, USA. */
#undef DWARF2_UNWIND_INFO
#define DWARF2_UNWIND_INFO 1
-/* ??? Current SH linux linker has a problem for DW_EH_PE_textrel. */
-#undef ASM_PREFERRED_EH_DATA_FORMAT
-#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)
-
#undef SUBTARGET_CPP_SPEC
#define SUBTARGET_CPP_SPEC "\
%{posix:-D_POSIX_SOURCE} \
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index 61fd9ca..8184e81 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -3521,19 +3521,19 @@ extern int rtx_equal_function_value_matters;
#define EH_RETURN_STACKADJ_RTX gen_rtx_REG (Pmode, EH_RETURN_STACKADJ_REGNO)
/* We have to distinguish between code and data, so that we apply
- datalabel where and only where appropriate. Use textrel for code. */
+ datalabel where and only where appropriate. Use sdataN for data. */
#define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \
((flag_pic && (GLOBAL) ? DW_EH_PE_indirect : 0) \
- | ((CODE) ? DW_EH_PE_textrel : flag_pic ? DW_EH_PE_pcrel : DW_EH_PE_absptr))
+ | (flag_pic ? DW_EH_PE_pcrel : DW_EH_PE_absptr) \
+ | ((CODE) ? 0 : (TARGET_SHMEDIA64 ? DW_EH_PE_sdata8 : DW_EH_PE_sdata4)))
/* Handle special EH pointer encodings. Absolute, pc-relative, and
indirect are handled automatically. */
#define ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX(FILE, ENCODING, SIZE, ADDR, DONE) \
do { \
- if (((ENCODING) & 0x70) == DW_EH_PE_textrel) \
+ if (((ENCODING) & 0xf) != DW_EH_PE_sdata4 \
+ && ((ENCODING) & 0xf) != DW_EH_PE_sdata8) \
{ \
- encoding &= ~DW_EH_PE_textrel; \
- encoding |= flag_pic ? DW_EH_PE_pcrel : DW_EH_PE_absptr; \
if (GET_CODE (ADDR) != SYMBOL_REF) \
abort (); \
SYMBOL_REF_FLAGS (ADDR) |= SYMBOL_FLAG_FUNCTION; \