summaryrefslogtreecommitdiff
path: root/gcc/config/i386/midipix.h
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2015-07-18 16:39:36 -0400
committermidipix <writeonce@midipix.org>2015-07-18 16:39:36 -0400
commit7a5252e170f6e2c6c1d483fe7f2ba56e98b1f8a2 (patch)
tree6366afc8ae9639a8fe936bd05edc3602fd489bd9 /gcc/config/i386/midipix.h
parent49e286b1a48614877b448f7638d5d348a7dba9f5 (diff)
downloadcbb-gcc-4.6.4-7a5252e170f6e2c6c1d483fe7f2ba56e98b1f8a2.tar.bz2
cbb-gcc-4.6.4-7a5252e170f6e2c6c1d483fe7f2ba56e98b1f8a2.tar.xz
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.
Diffstat (limited to 'gcc/config/i386/midipix.h')
-rw-r--r--gcc/config/i386/midipix.h33
1 files changed, 32 insertions, 1 deletions
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
+