summaryrefslogtreecommitdiffstats
path: root/gcc/config/arm/pe.h
diff options
context:
space:
mode:
authorrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>2000-04-08 14:29:53 +0000
committerrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>2000-04-08 14:29:53 +0000
commitcffb2a26c44c682185b6bb405d48fcbe1fbc0b37 (patch)
treeafad7b23cc154d59312c2bb26dc3d4b1e0f165a1 /gcc/config/arm/pe.h
parent2442bd9e6db67134b6566e2ebd982645f111b396 (diff)
downloadppe42-gcc-cffb2a26c44c682185b6bb405d48fcbe1fbc0b37.tar.gz
ppe42-gcc-cffb2a26c44c682185b6bb405d48fcbe1fbc0b37.zip
Merge changes from merged-arm-thumb-backend-branch onto trunk.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33028 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm/pe.h')
-rw-r--r--gcc/config/arm/pe.h55
1 files changed, 22 insertions, 33 deletions
diff --git a/gcc/config/arm/pe.h b/gcc/config/arm/pe.h
index dfa5d4d08b4..d950abd32d1 100644
--- a/gcc/config/arm/pe.h
+++ b/gcc/config/arm/pe.h
@@ -19,6 +19,9 @@ along with GNU CC; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+/* Enable PE specific code. */
+#define ARM_PE 1
+
#define ARM_PE_FLAG_CHAR '@'
/* Ensure that @x. will be stripped from the function name. */
@@ -42,11 +45,9 @@ Boston, MA 02111-1307, USA. */
say __declspec__, and passing args to it. The problem with that approach
is that args are not accumulated: each new appearance would clobber any
existing args. */
-#undef CPP_PREDEFINES
-#define CPP_PREDEFINES "\
--Darm -D__pe__ -Acpu(arm) -Amachine(arm) \
--D__declspec(x)=__attribute__((x)) \
-"
+#undef SUBTARGET_CPP_SPEC
+#define SUBTARGET_CPP_SPEC "-D__pe__ -D__declspec(x)=__attribute__((x))"
+
/* Experimental addition for pr 7885.
Ignore dllimport for functions. */
@@ -88,13 +89,6 @@ Boston, MA 02111-1307, USA. */
1,1,1,1,0,0,0,0, \
1,1,1 \
}
-
-/* This is to better conform to the ARM PCS.
- Richard Earnshaw hasn't put this into FSF sources yet so it's here. */
-#undef RETURN_IN_MEMORY
-#define RETURN_IN_MEMORY(TYPE) \
- ((TYPE_MODE ((TYPE)) == BLKmode && ! TYPE_NO_FORCE_BLK (TYPE)) \
- || (AGGREGATE_TYPE_P ((TYPE)) && arm_pe_return_in_memory ((TYPE))))
/* A C expression whose value is nonzero if IDENTIFIER with arguments ARGS
is a valid machine specific attribute for DECL.
@@ -121,13 +115,7 @@ Boston, MA 02111-1307, USA. */
to handle vtables - the first pass won't do anything because
DECL_CONTEXT (DECL) will be 0 so arm_dll{ex,im}port_p will return 0.
It's also used to handle dllimport override semantics. */
-#if 0
-#define REDO_SECTION_INFO_P(DECL) \
-((DECL_MACHINE_ATTRIBUTES (DECL) != NULL_TREE) \
- || (TREE_CODE (DECL) == VAR_DECL && DECL_VIRTUAL_P (DECL)))
-#else
#define REDO_SECTION_INFO_P(DECL) 1
-#endif
/* Define this macro if in some cases global symbols from one translation
unit may not be bound to undefined symbols in another translation unit
@@ -180,24 +168,25 @@ Boston, MA 02111-1307, USA. */
/* Output a reference to a label. */
#undef ASM_OUTPUT_LABELREF
#define ASM_OUTPUT_LABELREF(STREAM, NAME) \
- fprintf (STREAM, "%s%s", USER_LABEL_PREFIX, arm_strip_name_encoding (NAME))
+ asm_fprintf (STREAM, "%U%s", arm_strip_name_encoding (NAME))
/* Output a function definition label. */
#undef ASM_DECLARE_FUNCTION_NAME
-#define ASM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \
- do \
- { \
- if (arm_dllexport_name_p (NAME)) \
- { \
- drectve_section (); \
- fprintf (STREAM, "\t.ascii \" -export:%s\"\n",\
- arm_strip_name_encoding (NAME)); \
- function_section (DECL); \
- } \
- if (TARGET_POKE_FUNCTION_NAME) \
- arm_poke_function_name ((STREAM), (NAME)); \
- ASM_OUTPUT_LABEL ((STREAM), (NAME)); \
- } \
+#define ASM_DECLARE_FUNCTION_NAME(STREAM, NAME, DECL) \
+ do \
+ { \
+ if (arm_dllexport_name_p (NAME)) \
+ { \
+ drectve_section (); \
+ fprintf (STREAM, "\t.ascii \" -export:%s\"\n", \
+ arm_strip_name_encoding (NAME)); \
+ function_section (DECL); \
+ } \
+ ARM_DECLARE_FUNCTION_NAME (STREAM, NAME, DECL); \
+ if (TARGET_THUMB) \
+ fprintf (STREAM, "\t.code 16\n"); \
+ ASM_OUTPUT_LABEL (STREAM, NAME); \
+ } \
while (0)
/* Output a common block. */
OpenPOWER on IntegriCloud