From 7a5252e170f6e2c6c1d483fe7f2ba56e98b1f8a2 Mon Sep 17 00:00:00 2001 From: midipix Date: Sat, 18 Jul 2015 16:39:36 -0400 Subject: initial implementation of GOT entries and initial support of PE visibility for the midipix targets. signed-off by Z. Gilboa; see copying.midipix (9cd0746c) for additional information. --- gcc/config/i386/midipix.h | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'gcc/config/i386/midipix.h') diff --git a/gcc/config/i386/midipix.h b/gcc/config/i386/midipix.h index 3502ba618..2354cf2ce 100644 --- a/gcc/config/i386/midipix.h +++ b/gcc/config/i386/midipix.h @@ -68,6 +68,8 @@ ? MS_ABI \ : SYSV_ABI +#undef SYMBOL_REF_DLLIMPORT_P +#define SYMBOL_REF_DLLIMPORT_P midipix_symbol_ref_dllimport_p #undef MULTIPLE_SYMBOL_SPACES #define MULTIPLE_SYMBOL_SPACES (1) @@ -161,6 +163,21 @@ #undef RODATA_SECTION_NAME #define RODATA_SECTION_NAME ".rdata,\"r\"" +#undef GOT_SECTION_NAME +#define GOT_SECTION_NAME ".got" + +#undef PROTECTED_SECTION_NAME +#define PROTECTED_SECTION_NAME GOT_SECTION_NAME + +#undef HIDDEN_SECTION_NAME +#define HIDDEN_SECTION_NAME ".hidden" + +#undef INTERNAL_SECTION_NAME +#define INTERNAL_SECTION_NAME ".intern" + +#undef GOT_SECTION_ATTR +#define GOT_SECTION_ATTR ",\"r\"" + #undef GAS_PE_ASM_SET_OP #define GAS_PE_ASM_SET_OP "\t.set\t" @@ -205,6 +222,9 @@ #undef ASM_OUTPUT_DWARF_OFFSET #define ASM_OUTPUT_DWARF_OFFSET midipix_asm_output_dwarf_offset +#undef ASM_OUTPUT_GOT_ENTRY +#define ASM_OUTPUT_GOT_ENTRY midipix_asm_output_got_entry + /* assembler labels */ #undef USER_LABEL_PREFIX #define USER_LABEL_PREFIX (TARGET_NT64 ? "" : "_") @@ -260,7 +280,7 @@ #define ASM_OUTPUT_ALIGNED_BSS asm_output_aligned_bss #undef ASM_OUTPUT_ALIGNED_DECL_COMMON -#define ASM_OUTPUT_ALIGNED_DECL_COMMON i386_pe_asm_output_aligned_decl_common +#define ASM_OUTPUT_ALIGNED_DECL_COMMON midipix_i386_pe_asm_output_aligned_decl_common #undef TARGET_ASM_UNIQUE_SECTION #define TARGET_ASM_UNIQUE_SECTION i386_pe_unique_section @@ -348,6 +368,7 @@ extern void midipix_asm_output_external (FILE * asmout, tree decl, const char * extern void midipix_asm_output_def_from_decls (FILE * asmout, tree decl, tree target); extern void midipix_asm_output_external_libcall (FILE * asmout, rtx fn); +extern void midipix_asm_output_got_entry (FILE * asmout, const char * name, tree decl, section * sect); extern void midipix_asm_declare_object_name (FILE * asmout, const char * name, tree decl); extern void midipix_i386_pe_start_function (FILE * asmout, const char * name, tree decl); extern void midipix_i386_pe_end_function (FILE * asmout, const char * name, tree decl); @@ -366,6 +387,14 @@ extern section * midipix_i386_pe_function_section( bool startup, bool exit); +extern void midipix_i386_pe_asm_output_aligned_decl_common( + FILE * stream, + tree decl, + const char * name, + HOST_WIDE_INT size, + HOST_WIDE_INT align); + +extern int midipix_symbol_ref_dllimport_p(rtx symbol); /* inlined functions */ static inline void midipix_extra_os_cpp_builtins(void) @@ -379,6 +408,7 @@ static inline void midipix_extra_os_cpp_builtins(void) static inline void midipix_target_os_cpp_builtins(void) { builtin_define_std("__PE__"); + builtin_define_std("__PE_VISIBILITY__"); builtin_define_std("__midipix__"); midipix_extra_os_cpp_builtins(); } @@ -389,3 +419,4 @@ static inline int midipix_i386_pe_reloc_rw_mask (void) } #endif + -- cgit v1.2.3