tic30.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /* coff information for Texas Instruments TMS320C3X
  2. Copyright (C) 2001-2015 Free Software Foundation, Inc.
  3. This program is free software; you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation; either version 3 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program; if not, write to the Free Software
  13. Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
  14. MA 02110-1301, USA. */
  15. #define L_LNNO_SIZE 4
  16. #include "coff/external.h"
  17. #define TIC30MAGIC 0xC000
  18. #define TIC30BADMAG(x) (((x).f_magic != TIC30MAGIC))
  19. /********************** RELOCATION DIRECTIVES **********************/
  20. /* The external reloc has an offset field, because some of the reloc
  21. types on the z8k don't have room in the instruction for the entire
  22. offset - eg with segments */
  23. struct external_reloc
  24. {
  25. char r_vaddr[4];
  26. char r_symndx[4];
  27. char r_offset[4];
  28. char r_type[2];
  29. char r_stuff[2];
  30. };
  31. #define RELOC struct external_reloc
  32. #define RELSZ 16
  33. /* TMS320C30 relocation types. */
  34. #define R_TIC30_ABS16 0x100 /* 16 bit absolute. */
  35. #define R_TIC30_ABS24 0x101 /* 24 bit absolute. */
  36. #define R_TIC30_ABS32 0x102 /* 32 bit absolute. */
  37. #define R_TIC30_LDP 0x103 /* LDP bits 23-16 to 7-0. */
  38. #define R_TIC30_PC16 0x104 /* 16 bit pc relative. */