* ecoff.h (struct ecoff_debug_info): Add adjust field.

(struct ecoff_value_adjust): Define.
This commit is contained in:
Ian Lance Taylor 1994-03-25 22:18:00 +00:00
parent 91f300d635
commit 5517168c9e
2 changed files with 73 additions and 42 deletions

View File

@ -1,3 +1,12 @@
Fri Mar 25 17:16:55 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* ecoff.h (struct ecoff_debug_info): Add adjust field.
(struct ecoff_value_adjust): Define.
Tue Mar 22 13:22:47 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* mips.h (MIPS_R_PCREL16): Define.
Sat Feb 26 10:26:38 1994 Ian Lance Taylor (ian@cygnus.com)
* ecoff.h: Add casts to avoid warnings from SVR4 cc.
@ -375,6 +384,7 @@ Sat Nov 30 20:38:35 1991 Steve Chamberlain (sac at rtl.cygnus.com)
* ChangeLog, a29k.h, h8300.h, i386.h, i960.h, internal.h, m68k.h,
m88k.h, mips.h, rs6000.h: move from above coff-<foo>.h
Local Variables:
version-control: never
End:

View File

@ -158,42 +158,42 @@ struct tir_ext {
unsigned char t_tq23[1];
};
#define TIR_BITS1_FBITFIELD_BIG 0x80
#define TIR_BITS1_FBITFIELD_LITTLE 0x01
#define TIR_BITS1_FBITFIELD_BIG ((unsigned int) 0x80)
#define TIR_BITS1_FBITFIELD_LITTLE ((unsigned int) 0x01)
#define TIR_BITS1_CONTINUED_BIG 0x40
#define TIR_BITS1_CONTINUED_LITTLE 0x02
#define TIR_BITS1_CONTINUED_BIG ((unsigned int) 0x40)
#define TIR_BITS1_CONTINUED_LITTLE ((unsigned int) 0x02)
#define TIR_BITS1_BT_BIG 0x3F
#define TIR_BITS1_BT_BIG ((unsigned int) 0x3F)
#define TIR_BITS1_BT_SH_BIG 0
#define TIR_BITS1_BT_LITTLE 0xFC
#define TIR_BITS1_BT_LITTLE ((unsigned int) 0xFC)
#define TIR_BITS1_BT_SH_LITTLE 2
#define TIR_BITS_TQ4_BIG 0xF0
#define TIR_BITS_TQ4_BIG ((unsigned int) 0xF0)
#define TIR_BITS_TQ4_SH_BIG 4
#define TIR_BITS_TQ5_BIG 0x0F
#define TIR_BITS_TQ5_BIG ((unsigned int) 0x0F)
#define TIR_BITS_TQ5_SH_BIG 0
#define TIR_BITS_TQ4_LITTLE 0x0F
#define TIR_BITS_TQ4_LITTLE ((unsigned int) 0x0F)
#define TIR_BITS_TQ4_SH_LITTLE 0
#define TIR_BITS_TQ5_LITTLE 0xF0
#define TIR_BITS_TQ5_LITTLE ((unsigned int) 0xF0)
#define TIR_BITS_TQ5_SH_LITTLE 4
#define TIR_BITS_TQ0_BIG 0xF0
#define TIR_BITS_TQ0_BIG ((unsigned int) 0xF0)
#define TIR_BITS_TQ0_SH_BIG 4
#define TIR_BITS_TQ1_BIG 0x0F
#define TIR_BITS_TQ1_BIG ((unsigned int) 0x0F)
#define TIR_BITS_TQ1_SH_BIG 0
#define TIR_BITS_TQ0_LITTLE 0x0F
#define TIR_BITS_TQ0_LITTLE ((unsigned int) 0x0F)
#define TIR_BITS_TQ0_SH_LITTLE 0
#define TIR_BITS_TQ1_LITTLE 0xF0
#define TIR_BITS_TQ1_LITTLE ((unsigned int) 0xF0)
#define TIR_BITS_TQ1_SH_LITTLE 4
#define TIR_BITS_TQ2_BIG 0xF0
#define TIR_BITS_TQ2_BIG ((unsigned int) 0xF0)
#define TIR_BITS_TQ2_SH_BIG 4
#define TIR_BITS_TQ3_BIG 0x0F
#define TIR_BITS_TQ3_BIG ((unsigned int) 0x0F)
#define TIR_BITS_TQ3_SH_BIG 0
#define TIR_BITS_TQ2_LITTLE 0x0F
#define TIR_BITS_TQ2_LITTLE ((unsigned int) 0x0F)
#define TIR_BITS_TQ2_SH_LITTLE 0
#define TIR_BITS_TQ3_LITTLE 0xF0
#define TIR_BITS_TQ3_LITTLE ((unsigned int) 0xF0)
#define TIR_BITS_TQ3_SH_LITTLE 4
/* Relative symbol external record */
@ -203,19 +203,19 @@ struct rndx_ext {
};
#define RNDX_BITS0_RFD_SH_LEFT_BIG 4
#define RNDX_BITS1_RFD_BIG 0xF0
#define RNDX_BITS1_RFD_BIG ((unsigned int) 0xF0)
#define RNDX_BITS1_RFD_SH_BIG 4
#define RNDX_BITS0_RFD_SH_LEFT_LITTLE 0
#define RNDX_BITS1_RFD_LITTLE 0x0F
#define RNDX_BITS1_RFD_LITTLE ((unsigned int) 0x0F)
#define RNDX_BITS1_RFD_SH_LEFT_LITTLE 8
#define RNDX_BITS1_INDEX_BIG 0x0F
#define RNDX_BITS1_INDEX_BIG ((unsigned int) 0x0F)
#define RNDX_BITS1_INDEX_SH_LEFT_BIG 16
#define RNDX_BITS2_INDEX_SH_LEFT_BIG 8
#define RNDX_BITS3_INDEX_SH_LEFT_BIG 0
#define RNDX_BITS1_INDEX_LITTLE 0xF0
#define RNDX_BITS1_INDEX_LITTLE ((unsigned int) 0xF0)
#define RNDX_BITS1_INDEX_SH_LITTLE 4
#define RNDX_BITS2_INDEX_SH_LEFT_LITTLE 4
#define RNDX_BITS3_INDEX_SH_LEFT_LITTLE 12
@ -338,7 +338,9 @@ struct ecoff_debug_info
structure provides the sizes of the structures and the functions
needed to swap the information in and out. These pointers are
all pointers to arrays, not single structures. They will be NULL
if there are no instances of the relevant structure. */
if there are no instances of the relevant structure. These
fields are also used by the assembler to output ECOFF debugging
information. */
unsigned char *line;
PTR external_dnr; /* struct dnr_ext */
PTR external_pdr; /* struct pdr_ext */
@ -351,30 +353,49 @@ struct ecoff_debug_info
PTR external_rfd; /* struct rfd_ext */
PTR external_ext; /* struct ext_ext */
/* When we are linking, the above pointers point to growing buffers.
This set of pointers point to the end of the buffers. */
unsigned char *line_end;
PTR external_dnr_end; /* struct dnr_ext */
PTR external_pdr_end; /* struct pdr_ext */
PTR external_sym_end; /* struct sym_ext */
PTR external_opt_end; /* struct opt_ext */
union aux_ext *external_aux_end;
char *ss_end;
/* These fields are used when linking. They may disappear at some
point. */
char *ssext_end;
PTR external_fdr_end; /* struct fdr_ext */
PTR external_rfd_end; /* struct rfd_ext */
PTR external_ext_end; /* struct ext_ext */
PTR external_ext_end;
/* When linking, this field is set to the base FDR index for an
input BFD in the output FDR information, and is used when writing
out the xternal symbols. */
bfd_size_type ifdbase;
/* When linking, this field holds a mapping from the input FDR
numbers to the output numbers, and is used when writing out the
external symbols. It is NULL if no mapping is required. */
RFDT *ifdmap;
/* The swapped FDR information. Currently this is never NULL, but
code using this structure should probably double-check in case
this changes in the future. This is a pointer to an array, not a
single structure. */
FDR *fdr;
/* When relaxing MIPS embedded PIC code, we may need to adjust
symbol values when they are output. This is a linked list of
structures indicating how values should be adjusted. There is no
requirement that the entries be in any order, or that they not
overlap. This field is normally NULL, in which case no
adjustments need to be made. */
struct ecoff_value_adjust *adjust;
};
/* This structure describes how to adjust symbol values when
outputting MIPS embedded PIC code. These adjustments only apply to
the internal symbols, as the external symbol values will come from
the hash table and have already been adjusted. */
struct ecoff_value_adjust
{
/* Next entry on adjustment list. */
struct ecoff_value_adjust *next;
/* Starting VMA of adjustment. This is the VMA in the ECOFF file,
not the offset from the start of the section. Thus it should
indicate a particular section. */
bfd_vma start;
/* Ending VMA of adjustment. */
bfd_vma end;
/* Adjustment. This should be added to the value of the symbol, or
FDR. This is zero for the last entry in the array. */
long adjust;
};
#endif /* ! defined (ECOFF_H) */