/[gcl]/gcl/binutils/include/coff/mips.h
ViewVC logotype

Diff of /gcl/binutils/include/coff/mips.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.1.1 by camm, Fri Aug 9 05:36:43 2002 UTC revision 1.1.1.1.20.1 by camm, Fri Sep 30 02:10:24 2005 UTC
# Line 1  Line 1 
1  /* ECOFF support on MIPS machines.  /* ECOFF support on MIPS machines.
2     coff/ecoff.h must be included before this file.     coff/ecoff.h must be included before this file.
3        
4     Copyright 2001 Free Software Foundation, Inc.     Copyright 1999, 2004 Free Software Foundation, Inc.
5    
6     This program is free software; you can redistribute it and/or modify     This program is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by     it under the terms of the GNU General Public License as published by
# Line 105  struct external_reloc Line 105  struct external_reloc
105  #define MIPS_R_GPREL    6  #define MIPS_R_GPREL    6
106  #define MIPS_R_LITERAL  7  #define MIPS_R_LITERAL  7
107    
108  /* These reloc types are a Cygnus extension used when generating  /* FIXME: This relocation is used (internally only) to represent branches
109     position independent code for embedded systems.  The numbers are     when assembling.  It should never appear in output files, and  
110     taken from Irix 4, but at least for internal relocs Irix 5 does not     be removed.  (It used to be used for embedded-PIC support.)  */
    give them the same meaning.  For an internal reloc the symbol index  
    of RELHI and RELLO is modified as described below for  
    MIPS_R_SWITCH.  */  
111  #define MIPS_R_PCREL16  12  #define MIPS_R_PCREL16  12
 #define MIPS_R_RELHI    13  
 #define MIPS_R_RELLO    14  
   
 /* This reloc type is a Cygnus extension used when generating position  
    independent code for embedded systems.  It is used for an entry in  
    a switch table, which looks like this:  
      .word $L3-$LS12  
    The object file will contain the correct difference, and does not  
    require adjustment.  However, when the linker is relaxing PC  
    relative calls, it is possible for $L3 to move farther away.  This  
    reloc always appears in the .text section, and is always against  
    the .text section.  However, the symbol index is not  
    RELOC_SECTION_TEXT.  It is, instead, the distance between this  
    switch table entry and $LS12.  Thus, the original value of $L12 is  
      vaddr - symndx  
    and the original value of $L3 is  
      vaddr - symndx + addend  
    where addend is the value in the object file.  Knowing this, the  
    linker can know whether the addend in the object file must be  
    adjusted.  */  
 #define MIPS_R_SWITCH   22  
112    
113  /********************** STABS **********************/  /********************** STABS **********************/
114    

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.1.20.1

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26