123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- /* Declarations of constants for internal format of MIPS ECOFF symbols.
- Originally contributed by MIPS Computer Systems and Third Eye Software.
- Changes contributed by Cygnus Support are in the public domain.
- This file is just aggregated with the files that make up the GNU
- release; it is not considered part of GAS, GDB, or other GNU
- programs. */
- /*
- * |-----------------------------------------------------------|
- * | Copyright (c) 1992, 1991, 1990 MIPS Computer Systems, Inc.|
- * | MIPS Computer Systems, Inc. grants reproduction and use |
- * | rights to all parties, PROVIDED that this comment is |
- * | maintained in the copy. |
- * |-----------------------------------------------------------|
- */
- /* (C) Copyright 1984 by Third Eye Software, Inc.
- *
- * Third Eye Software, Inc. grants reproduction and use rights to
- * all parties, PROVIDED that this comment is maintained in the copy.
- *
- * Third Eye makes no claims about the applicability of this
- * symbol table to a particular use.
- */
- /* glevels for field in FDR */
- #define GLEVEL_0 2
- #define GLEVEL_1 1
- #define GLEVEL_2 0 /* for upward compat reasons. */
- #define GLEVEL_3 3
- /* magic number fo symheader */
- #define magicSym 0x7009
- /* The Alpha uses this value instead, for some reason. */
- #define magicSym2 0x1992
- /* Language codes */
- #define langC 0
- #define langPascal 1
- #define langFortran 2
- #define langAssembler 3 /* one Assembley inst might map to many mach */
- #define langMachine 4
- #define langNil 5
- #define langAda 6
- #define langPl1 7
- #define langCobol 8
- #define langStdc 9 /* FIXME: Collides with SGI langCplusplus */
- #define langCplusplus 9 /* FIXME: Collides with langStdc */
- #define langCplusplusV2 10 /* SGI addition */
- #define langMax 11 /* maximum allowed 32 -- 5 bits */
- /* The following are value definitions for the fields in the SYMR */
- /*
- * Storage Classes
- */
- #define scNil 0
- #define scText 1 /* text symbol */
- #define scData 2 /* initialized data symbol */
- #define scBss 3 /* un-initialized data symbol */
- #define scRegister 4 /* value of symbol is register number */
- #define scAbs 5 /* value of symbol is absolute */
- #define scUndefined 6 /* who knows? */
- #define scCdbLocal 7 /* variable's value is IN se->va.?? */
- #define scBits 8 /* this is a bit field */
- #define scCdbSystem 9 /* variable's value is IN CDB's address space */
- #define scDbx 9 /* overlap dbx internal use */
- #define scRegImage 10 /* register value saved on stack */
- #define scInfo 11 /* symbol contains debugger information */
- #define scUserStruct 12 /* address in struct user for current process */
- #define scSData 13 /* load time only small data */
- #define scSBss 14 /* load time only small common */
- #define scRData 15 /* load time only read only data */
- #define scVar 16 /* Var parameter (fortran,pascal) */
- #define scCommon 17 /* common variable */
- #define scSCommon 18 /* small common */
- #define scVarRegister 19 /* Var parameter in a register */
- #define scVariant 20 /* Variant record */
- #define scSUndefined 21 /* small undefined(external) data */
- #define scInit 22 /* .init section symbol */
- #define scBasedVar 23 /* Fortran or PL/1 ptr based var */
- #define scXData 24 /* exception handling data */
- #define scPData 25 /* Procedure section */
- #define scFini 26 /* .fini section */
- #define scRConst 27 /* .rconst section */
- #define scMax 32
- /*
- * Symbol Types
- */
- #define stNil 0 /* Nuthin' special */
- #define stGlobal 1 /* external symbol */
- #define stStatic 2 /* static */
- #define stParam 3 /* procedure argument */
- #define stLocal 4 /* local variable */
- #define stLabel 5 /* label */
- #define stProc 6 /* " " Procedure */
- #define stBlock 7 /* beginnning of block */
- #define stEnd 8 /* end (of anything) */
- #define stMember 9 /* member (of anything - struct/union/enum */
- #define stTypedef 10 /* type definition */
- #define stFile 11 /* file name */
- #define stRegReloc 12 /* register relocation */
- #define stForward 13 /* forwarding address */
- #define stStaticProc 14 /* load time only static procs */
- #define stConstant 15 /* const */
- #define stStaParam 16 /* Fortran static parameters */
- /* These new symbol types have been recently added to SGI machines. */
- #define stStruct 26 /* Beginning of block defining a struct type */
- #define stUnion 27 /* Beginning of block defining a union type */
- #define stEnum 28 /* Beginning of block defining an enum type */
- #define stIndirect 34 /* Indirect type specification */
- /* Pseudo-symbols - internal to debugger */
- #define stStr 60 /* string */
- #define stNumber 61 /* pure number (ie. 4 NOR 2+2) */
- #define stExpr 62 /* 2+2 vs. 4 */
- #define stType 63 /* post-coersion SER */
- #define stMax 64
- /* definitions for fields in TIR */
- /* type qualifiers for ti.tq0 -> ti.(itqMax-1) */
- #define tqNil 0 /* bt is what you see */
- #define tqPtr 1 /* pointer */
- #define tqProc 2 /* procedure */
- #define tqArray 3 /* duh */
- #define tqFar 4 /* longer addressing - 8086/8 land */
- #define tqVol 5 /* volatile */
- #define tqConst 6 /* const */
- #define tqMax 8
- /* basic types as seen in ti.bt */
- #define btNil 0 /* undefined (also, enum members) */
- #define btAdr 1 /* address - integer same size as pointer */
- #define btChar 2 /* character */
- #define btUChar 3 /* unsigned character */
- #define btShort 4 /* short */
- #define btUShort 5 /* unsigned short */
- #define btInt 6 /* int */
- #define btUInt 7 /* unsigned int */
- #define btLong 8 /* long */
- #define btULong 9 /* unsigned long */
- #define btFloat 10 /* float (real) */
- #define btDouble 11 /* Double (real) */
- #define btStruct 12 /* Structure (Record) */
- #define btUnion 13 /* Union (variant) */
- #define btEnum 14 /* Enumerated */
- #define btTypedef 15 /* defined via a typedef, isymRef points */
- #define btRange 16 /* subrange of int */
- #define btSet 17 /* pascal sets */
- #define btComplex 18 /* fortran complex */
- #define btDComplex 19 /* fortran double complex */
- #define btIndirect 20 /* forward or unnamed typedef */
- #define btFixedDec 21 /* Fixed Decimal */
- #define btFloatDec 22 /* Float Decimal */
- #define btString 23 /* Varying Length Character String */
- #define btBit 24 /* Aligned Bit String */
- #define btPicture 25 /* Picture */
- #define btVoid 26 /* void */
- #define btLongLong 27 /* long long */
- #define btULongLong 28 /* unsigned long long */
- #define btLong64 30 /* long (64-bit) */
- #define btULong64 31 /* unsigned long (64-bit) */
- #define btLongLong64 32 /* long long (64-bit) */
- #define btULongLong64 33 /* unsigned long long (64-bit) */
- #define btAdr64 34 /* address (64-bit) */
- #define btInt64 35 /* int (64-bit) */
- #define btUInt64 36 /* unsigned int (64-bit) */
- #define btMax 64
- #if (_MFG == _MIPS)
- /* optimization type codes */
- #define otNil 0
- #define otReg 1 /* move var to reg */
- #define otBlock 2 /* begin basic block */
- #define otProc 3 /* procedure */
- #define otInline 4 /* inline procedure */
- #define otEnd 5 /* whatever you started */
- #define otMax 6 /* KEEP UP TO DATE */
- #endif /* (_MFG == _MIPS) */
|