aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/alpha/osf.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@gcc.gnu.org>2001-06-05 18:57:49 -0700
committerRichard Henderson <rth@gcc.gnu.org>2001-06-05 18:57:49 -0700
commit099c8b17ace8e7a35a53993bf8cf211b955d29a8 (patch)
tree7d58db2a4f6ec00eb20b149b79bc6fbe2e8c5a80 /gcc/config/alpha/osf.h
parentc51f6c6bd5a4177ee5dcb0afbfe9b27e4fda6478 (diff)
downloadgcc-099c8b17ace8e7a35a53993bf8cf211b955d29a8.zip
gcc-099c8b17ace8e7a35a53993bf8cf211b955d29a8.tar.gz
gcc-099c8b17ace8e7a35a53993bf8cf211b955d29a8.tar.bz2
dwarf2.h (DW_EH_PE_aligned): New.
* dwarf2.h (DW_EH_PE_aligned): New. * dwarf2asm.c (eh_data_format_name): Name it. (dw2_asm_output_encoded_addr_rtx): Align for it. * dwarf2out.c (output_call_frame_info): Handle it for personality routine and LSDA pointers. * unwind-pe.h (DW_EH_PE_aligned): New. (base_of_encoded_value): Handle it. (read_encoded_value_with_base): Likewise. * unwind-dw2-fde.c (base_from_object): Likewise. (get_cie_encoding): Likewise. * config/alpha/elf.h: Remove ecoff commentary. * config/alpha/osf.h (ASM_PREFERRED_EH_DATA_FORMAT): New. From-SVN: r42926
Diffstat (limited to 'gcc/config/alpha/osf.h')
-rw-r--r--gcc/config/alpha/osf.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/config/alpha/osf.h b/gcc/config/alpha/osf.h
index 1d1109b..b6e80d0 100644
--- a/gcc/config/alpha/osf.h
+++ b/gcc/config/alpha/osf.h
@@ -153,3 +153,17 @@ __enable_execute_stack (addr) \
#define HAS_INIT_SECTION
#define LD_INIT_SWITCH "-init"
#define LD_FINI_SWITCH "-fini"
+
+/* 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.
+
+ We really ought to be using the SREL32 relocations that ECOFF has,
+ but no version of the native assembler supports creating such things,
+ and Compaq has no plans to rectify this. Worse, the dynamic loader
+ cannot handle unaligned relocations, so we have to make sure that
+ things get padded appropriately. */
+#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \
+ (TARGET_GAS \
+ ? (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4) \
+ : DW_EH_PE_aligned)