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

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [include/] [coff/] [symconst.h] - Blame information for rev 300

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

Line No. Rev Author Line
1 17 khays
/* Declarations of constants for internal format of MIPS ECOFF symbols.
2
   Originally contributed by MIPS Computer Systems and Third Eye Software.
3
   Changes contributed by Cygnus Support are in the public domain.
4
 
5
   This file is just aggregated with the files that make up the GNU
6
   release; it is not considered part of GAS, GDB, or other GNU
7
   programs.  */
8
 
9
/*
10
 * |-----------------------------------------------------------|
11
 * | Copyright (c) 1992, 1991, 1990 MIPS Computer Systems, Inc.|
12
 * | MIPS Computer Systems, Inc. grants reproduction and use   |
13
 * | rights to all parties, PROVIDED that this comment is      |
14
 * | maintained in the copy.                                   |
15
 * |-----------------------------------------------------------|
16
 */
17
 
18
/* (C) Copyright 1984 by Third Eye Software, Inc.
19
 *
20
 * Third Eye Software, Inc. grants reproduction and use rights to
21
 * all parties, PROVIDED that this comment is maintained in the copy.
22
 *
23
 * Third Eye makes no claims about the applicability of this
24
 * symbol table to a particular use.
25
 */
26
 
27
/* glevels for field in FDR */
28
#define GLEVEL_0        2
29
#define GLEVEL_1        1
30
#define GLEVEL_2        0        /* for upward compat reasons. */
31
#define GLEVEL_3        3
32
 
33
/* magic number fo symheader */
34
#define magicSym        0x7009
35
/* The Alpha uses this value instead, for some reason.  */
36
#define magicSym2       0x1992
37
 
38
/* Language codes */
39
#define langC           0        
40
#define langPascal      1
41
#define langFortran     2
42
#define langAssembler   3       /* one Assembley inst might map to many mach */
43
#define langMachine     4
44
#define langNil         5
45
#define langAda         6
46
#define langPl1         7
47
#define langCobol       8
48
#define langStdc        9       /* FIXME: Collides with SGI langCplusplus */
49
#define langCplusplus   9       /* FIXME: Collides with langStdc */
50
#define langCplusplusV2 10      /* SGI addition */
51
#define langMax         11      /* maximum allowed 32 -- 5 bits */
52
 
53
/* The following are value definitions for the fields in the SYMR */
54
 
55
/*
56
 * Storage Classes
57
 */
58
 
59
#define scNil           0
60
#define scText          1       /* text symbol */
61
#define scData          2       /* initialized data symbol */
62
#define scBss           3       /* un-initialized data symbol */
63
#define scRegister      4       /* value of symbol is register number */
64
#define scAbs           5       /* value of symbol is absolute */
65
#define scUndefined     6       /* who knows? */
66
#define scCdbLocal      7       /* variable's value is IN se->va.?? */
67
#define scBits          8       /* this is a bit field */
68
#define scCdbSystem     9       /* variable's value is IN CDB's address space */
69
#define scDbx           9       /* overlap dbx internal use */
70
#define scRegImage      10      /* register value saved on stack */
71
#define scInfo          11      /* symbol contains debugger information */
72
#define scUserStruct    12      /* address in struct user for current process */
73
#define scSData         13      /* load time only small data */
74
#define scSBss          14      /* load time only small common */
75
#define scRData         15      /* load time only read only data */
76
#define scVar           16      /* Var parameter (fortran,pascal) */
77
#define scCommon        17      /* common variable */
78
#define scSCommon       18      /* small common */
79
#define scVarRegister   19      /* Var parameter in a register */
80
#define scVariant       20      /* Variant record */
81
#define scSUndefined    21      /* small undefined(external) data */
82
#define scInit          22      /* .init section symbol */
83
#define scBasedVar      23      /* Fortran or PL/1 ptr based var */ 
84
#define scXData         24      /* exception handling data */
85
#define scPData         25      /* Procedure section */
86
#define scFini          26      /* .fini section */
87
#define scRConst        27      /* .rconst section */
88
#define scMax           32
89
 
90
 
91
/*
92
 *   Symbol Types
93
 */
94
 
95
#define stNil           0        /* Nuthin' special */
96
#define stGlobal        1       /* external symbol */
97
#define stStatic        2       /* static */
98
#define stParam         3       /* procedure argument */
99
#define stLocal         4       /* local variable */
100
#define stLabel         5       /* label */
101
#define stProc          6       /*     "      "  Procedure */
102
#define stBlock         7       /* beginnning of block */
103
#define stEnd           8       /* end (of anything) */
104
#define stMember        9       /* member (of anything  - struct/union/enum */
105
#define stTypedef       10      /* type definition */
106
#define stFile          11      /* file name */
107
#define stRegReloc      12      /* register relocation */
108
#define stForward       13      /* forwarding address */
109
#define stStaticProc    14      /* load time only static procs */
110
#define stConstant      15      /* const */
111
#define stStaParam      16      /* Fortran static parameters */
112
    /* These new symbol types have been recently added to SGI machines. */
113
#define stStruct        26      /* Beginning of block defining a struct type */
114
#define stUnion         27      /* Beginning of block defining a union type */
115
#define stEnum          28      /* Beginning of block defining an enum type */
116
#define stIndirect      34      /* Indirect type specification */
117
    /* Pseudo-symbols - internal to debugger */
118
#define stStr           60      /* string */
119
#define stNumber        61      /* pure number (ie. 4 NOR 2+2) */
120
#define stExpr          62      /* 2+2 vs. 4 */
121
#define stType          63      /* post-coersion SER */
122
#define stMax           64
123
 
124
/* definitions for fields in TIR */
125
 
126
/* type qualifiers for ti.tq0 -> ti.(itqMax-1) */
127
#define tqNil   0        /* bt is what you see */
128
#define tqPtr   1       /* pointer */
129
#define tqProc  2       /* procedure */
130
#define tqArray 3       /* duh */
131
#define tqFar   4       /* longer addressing - 8086/8 land */
132
#define tqVol   5       /* volatile */
133
#define tqConst 6       /* const */
134
#define tqMax   8
135
 
136
/* basic types as seen in ti.bt */
137
#define btNil           0        /* undefined (also, enum members) */
138
#define btAdr           1       /* address - integer same size as pointer */
139
#define btChar          2       /* character */
140
#define btUChar         3       /* unsigned character */
141
#define btShort         4       /* short */
142
#define btUShort        5       /* unsigned short */
143
#define btInt           6       /* int */
144
#define btUInt          7       /* unsigned int */
145
#define btLong          8       /* long */
146
#define btULong         9       /* unsigned long */
147
#define btFloat         10      /* float (real) */
148
#define btDouble        11      /* Double (real) */
149
#define btStruct        12      /* Structure (Record) */
150
#define btUnion         13      /* Union (variant) */
151
#define btEnum          14      /* Enumerated */
152
#define btTypedef       15      /* defined via a typedef, isymRef points */
153
#define btRange         16      /* subrange of int */
154
#define btSet           17      /* pascal sets */
155
#define btComplex       18      /* fortran complex */
156
#define btDComplex      19      /* fortran double complex */
157
#define btIndirect      20      /* forward or unnamed typedef */
158
#define btFixedDec      21      /* Fixed Decimal */
159
#define btFloatDec      22      /* Float Decimal */
160
#define btString        23      /* Varying Length Character String */
161
#define btBit           24      /* Aligned Bit String */
162
#define btPicture       25      /* Picture */
163
#define btVoid          26      /* void */
164
#define btLongLong      27      /* long long */
165
#define btULongLong     28      /* unsigned long long */
166
#define btLong64        30      /* long (64-bit) */
167
#define btULong64       31      /* unsigned long (64-bit) */
168
#define btLongLong64    32      /* long long (64-bit) */
169
#define btULongLong64   33      /* unsigned long long (64-bit) */
170
#define btAdr64         34      /* address (64-bit) */
171
#define btInt64         35      /* int (64-bit) */
172
#define btUInt64        36      /* unsigned int (64-bit) */
173
#define btMax           64
174
 
175
#if (_MFG == _MIPS)
176
/* optimization type codes */
177
#define otNil           0
178
#define otReg           1       /* move var to reg */
179
#define otBlock         2       /* begin basic block */
180
#define otProc          3       /* procedure */
181
#define otInline        4       /* inline procedure */
182
#define otEnd           5       /* whatever you started */
183
#define otMax           6       /* KEEP UP TO DATE */
184
#endif /* (_MFG == _MIPS) */

powered by: WebSVN 2.1.0

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