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