OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [config/] [i386/] [netware.h] - Blame information for rev 825

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 38 julius
/* Core target definitions for GCC for Intel 80x86 running Netware.
2
   and using dwarf for the debugging format.
3
   Copyright (C) 1993, 1994, 2004, 2007 Free Software Foundation, Inc.
4
 
5
   Written by David V. Henkel-Wallace (gumby@cygnus.com)
6
 
7
This file is part of GCC.
8
 
9
GCC is free software; you can redistribute it and/or modify
10
it under the terms of the GNU General Public License as published by
11
the Free Software Foundation; either version 3, or (at your option)
12
any later version.
13
 
14
GCC is distributed in the hope that it will be useful,
15
but WITHOUT ANY WARRANTY; without even the implied warranty of
16
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
GNU General Public License for more details.
18
 
19
You should have received a copy of the GNU General Public License
20
along with GCC; see the file COPYING3.  If not see
21
<http://www.gnu.org/licenses/>.  */
22
 
23
#define TARGET_VERSION fprintf (stderr, " (x86 NetWare)");
24
 
25
#undef  CPP_SPEC
26
#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
27
 
28
#undef  LIB_SPEC
29
#define LIB_SPEC ""
30
 
31
/* Kinda useless, but what the hell */
32
#undef  LINK_SPEC
33
#define LINK_SPEC "%{h*} %{V} %{v:%{!V:-V}} \
34
                   %{b} \
35
                   %{Qy:} %{!Qn:-Qy}"
36
 
37
#undef  STARTFILE_SPEC
38
#define STARTFILE_SPEC ""
39
 
40
#undef  ENDFILE_SPEC
41
#define ENDFILE_SPEC ""
42
 
43
#undef  RELATIVE_PREFIX_NOT_LINKDIR
44
#undef  LIBGCC_SPEC
45
 
46
#define TARGET_OS_CPP_BUILTINS()                                        \
47
  do                                                                    \
48
    {                                                                   \
49
        builtin_define_std ("IAPX386");                                 \
50
        builtin_define ("_M_IX86=300");                                 \
51
        builtin_define ("__netware__");                                 \
52
        builtin_assert ("system=netware");                              \
53
        builtin_define ("__ELF__");                                     \
54
        builtin_define ("__cdecl=__attribute__((__cdecl__))");          \
55
        builtin_define ("__stdcall=__attribute__((__stdcall__))");      \
56
        builtin_define ("__fastcall=__attribute__((__fastcall__))");    \
57
        if (!flag_iso)                                                  \
58
          {                                                             \
59
            builtin_define ("_cdecl=__attribute__((__cdecl__))");       \
60
            builtin_define ("_stdcall=__attribute__((__stdcall__))");   \
61
            builtin_define ("_fastcall=__attribute__((__fastcall__))"); \
62
          }                                                             \
63
    }                                                                   \
64
  while (0)
65
 
66
#undef TARGET_CPU_DEFAULT
67
#define TARGET_CPU_DEFAULT TARGET_CPU_DEFAULT_pentium4
68
 
69
/* By default, target has a 80387, uses IEEE compatible arithmetic,
70
   returns float values in the 387, and uses MSVC bit field layout. */
71
#undef TARGET_SUBTARGET_DEFAULT
72
#define TARGET_SUBTARGET_DEFAULT (MASK_80387 | MASK_IEEE_FP | \
73
        MASK_FLOAT_RETURNS | MASK_ALIGN_DOUBLE | MASK_MS_BITFIELD_LAYOUT)
74
 
75
#undef MATH_LIBRARY
76
#define MATH_LIBRARY ""
77
 
78
/* Align doubles and long-longs in structures on qword boundaries.  */
79
#undef BIGGEST_FIELD_ALIGNMENT
80
#define BIGGEST_FIELD_ALIGNMENT 64
81
 
82
#undef DEFAULT_PCC_STRUCT_RETURN
83
#define DEFAULT_PCC_STRUCT_RETURN 0
84
 
85
/* Implicit arguments pointing to aggregate return values are to be
86
   removed by the caller.  */
87
#undef KEEP_AGGREGATE_RETURN_POINTER
88
#define KEEP_AGGREGATE_RETURN_POINTER 1
89
 
90
#undef DBX_REGISTER_NUMBER
91
#define DBX_REGISTER_NUMBER(n) (svr4_dbx_register_map[n])
92
 
93
/* Enable parsing of #pragma pack(push,<n>) and #pragma pack(pop).  */
94
#define HANDLE_PRAGMA_PACK_PUSH_POP
95
 
96
/* Default structure packing is 1-byte. */
97
#define TARGET_DEFAULT_PACK_STRUCT 1
98
 
99
#undef WCHAR_TYPE
100
#define WCHAR_TYPE "short unsigned int"
101
 
102
#undef WCHAR_TYPE_SIZE
103
#define WCHAR_TYPE_SIZE 16
104
 
105
#undef WINT_TYPE
106
#define WINT_TYPE "int"
107
 
108
/* A C statement (sans semicolon) to output to the stdio stream
109
   FILE the assembler definition of uninitialized global DECL named
110
   NAME whose size is SIZE bytes and alignment is ALIGN bytes.
111
   Try to use asm_output_aligned_bss to implement this macro.  */
112
 
113
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
114
  asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
115
 
116
/* Handle special EH pointer encodings.  Absolute, pc-relative, and
117
   indirect are handled automatically.  */
118
#define ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX(FILE, ENCODING, SIZE, ADDR, DONE) \
119
  do {                                                                  \
120
    if ((SIZE) == 4 && ((ENCODING) & 0x70) == DW_EH_PE_datarel)         \
121
      {                                                                 \
122
        fputs (ASM_LONG, FILE);                 \
123
        assemble_name (FILE, XSTR (ADDR, 0));                           \
124
        fputs (((ENCODING) & DW_EH_PE_indirect ? "@GOT" : "@GOTOFF"), FILE); \
125
        goto DONE;                                                      \
126
      }                                                                 \
127
  } while (0)
128
 
129
/* there is no TLS support in NLMs/on NetWare */
130
#undef HAVE_AS_TLS
131
 
132
#define HAS_INIT_SECTION
133
#undef  INIT_SECTION_ASM_OP
134
 
135
#define CTOR_LISTS_DEFINED_EXTERNALLY
136
 
137
#undef  READONLY_DATA_SECTION_ASM_OP
138
#define READONLY_DATA_SECTION_ASM_OP    ".section\t.rodata"
139
 
140
/* Define this macro if references to a symbol must be treated
141
   differently depending on something about the variable or
142
   function named by the symbol (such as what section it is in).
143
 
144
   On i386 running NetWare, modify the assembler name with an underscore (_)
145
   prefix and a suffix consisting of an atsign (@) followed by a string of
146
   digits that represents the number of bytes of arguments passed to the
147
   function, if it has the attribute STDCALL. Alternatively, if it has the
148
   REGPARM attribute, prefix it with an underscore (_), a digit representing
149
   the number of registers used, and an atsign (@). */
150
void i386_nlm_encode_section_info (tree, rtx, int);
151
const char *i386_nlm_strip_name_encoding (const char *);
152
#undef TARGET_ENCODE_SECTION_INFO
153
#define TARGET_ENCODE_SECTION_INFO  i386_nlm_encode_section_info
154
#undef  TARGET_STRIP_NAME_ENCODING
155
#define TARGET_STRIP_NAME_ENCODING  i386_nlm_strip_name_encoding

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.