|
|
1.1 ! root 1: /* fixes.h (was write.h in the original GAS) ! 2: Copyright (C) 1987 Free Software Foundation, Inc. ! 3: ! 4: This file is part of GAS, the GNU Assembler. ! 5: ! 6: GAS is free software; you can redistribute it and/or modify ! 7: it under the terms of the GNU General Public License as published by ! 8: the Free Software Foundation; either version 1, or (at your option) ! 9: any later version. ! 10: ! 11: GAS is distributed in the hope that it will be useful, ! 12: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! 14: GNU General Public License for more details. ! 15: ! 16: You should have received a copy of the GNU General Public License ! 17: along with GAS; see the file COPYING. If not, write to ! 18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ! 19: ! 20: /* ! 21: * For machines with machine dependent relocation types (encoded in the r_type ! 22: * field of a relocation_info struct) they use NO_RELOC in assembling ! 23: * instructions which they want to indicate have no relocation. ! 24: */ ! 25: #define NO_RELOC 0x10 /* above the range of r_type:4 */ ! 26: ! 27: /* ! 28: * FixSs may be built up in any order. ! 29: */ ! 30: struct fix { ! 31: fragS *fx_frag; /* which frag? */ ! 32: long int fx_where; /* where is the 1st byte to fix up? */ ! 33: symbolS *fx_addsy; /* NULL or Symbol whose value we add in */ ! 34: symbolS *fx_subsy; /* NULL or Symbol whose value we subtract */ ! 35: long int fx_offset; /* absolute number we add in */ ! 36: struct fix *fx_next; /* NULL or -> next fixS */ ! 37: char fx_size; /* how many bytes are involved? */ ! 38: char fx_pcrel; /* TRUE: pc-relative. */ ! 39: char fx_pcrel_reloc;/* force a pc-relative relocatation entry */ ! 40: char fx_r_type; /* relocation type */ ! 41: long fx_value; /* the relocated value placed in the frag */ ! 42: }; ! 43: typedef struct fix fixS; ! 44: ! 45: extern void fix_new( ! 46: fragS *frag, /* which frag? */ ! 47: int where, /* where in that frag? */ ! 48: int size, /* 1, 2 or 4 bytes */ ! 49: symbolS *add_symbol, /* X_add_symbol */ ! 50: symbolS *sub_symbol, /* X_subtract_symbol */ ! 51: long offset, /* X_add_number */ ! 52: int pcrel, /* TRUE if PC-relative */ ! 53: int pcrel_reloc, /* TRUE if must have relocation entry */ ! 54: int r_type); /* relocation type */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.