OLD | NEW |
1 /* BFD back-end for Renesas H8/500 COFF binaries. | 1 /* BFD back-end for Renesas H8/500 COFF binaries. |
2 Copyright 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002, 2003, 2004, | 2 Copyright 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002, 2003, 2004, |
3 2005, 2007, 2008 Free Software Foundation, Inc. | 3 2005, 2007, 2008, 2012 Free Software Foundation, Inc. |
4 Contributed by Cygnus Support. | 4 Contributed by Cygnus Support. |
5 Written by Steve Chamberlain, <sac@cygnus.com>. | 5 Written by Steve Chamberlain, <sac@cygnus.com>. |
6 | 6 |
7 This file is part of BFD, the Binary File Descriptor library. | 7 This file is part of BFD, the Binary File Descriptor library. |
8 | 8 |
9 This program is free software; you can redistribute it and/or modify | 9 This program is free software; you can redistribute it and/or modify |
10 it under the terms of the GNU General Public License as published by | 10 it under the terms of the GNU General Public License as published by |
11 the Free Software Foundation; either version 3 of the License, or | 11 the Free Software Foundation; either version 3 of the License, or |
12 (at your option) any later version. | 12 (at your option) any later version. |
13 | 13 |
14 This program is distributed in the hope that it will be useful, | 14 This program is distributed in the hope that it will be useful, |
15 but WITHOUT ANY WARRANTY; without even the implied warranty of | 15 but WITHOUT ANY WARRANTY; without even the implied warranty of |
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
17 GNU General Public License for more details. | 17 GNU General Public License for more details. |
18 | 18 |
19 You should have received a copy of the GNU General Public License | 19 You should have received a copy of the GNU General Public License |
20 along with this program; if not, write to the Free Software | 20 along with this program; if not, write to the Free Software |
21 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, | 21 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, |
22 MA 02110-1301, USA. */ | 22 MA 02110-1301, USA. */ |
23 | 23 |
24 #include "sysdep.h" | 24 #include "sysdep.h" |
25 #include "bfd.h" | 25 #include "bfd.h" |
26 #include "libbfd.h" | 26 #include "libbfd.h" |
27 #include "bfdlink.h" | 27 #include "bfdlink.h" |
28 #include "coff/h8500.h" | 28 #include "coff/h8500.h" |
29 #include "coff/internal.h" | 29 #include "coff/internal.h" |
30 #include "libcoff.h" | 30 #include "libcoff.h" |
31 | 31 |
32 static int coff_h8500_select_reloc PARAMS ((reloc_howto_type *)); | |
33 static void rtype2howto PARAMS ((arelent *, struct internal_reloc *)); | |
34 static void reloc_processing PARAMS ((arelent *, struct internal_reloc *, asymbo
l **, bfd *, asection *)); | |
35 static void extra_case PARAMS ((bfd *, struct bfd_link_info *, struct bfd_
link_order *, arelent *, bfd_byte *, unsigned int *, unsigned int *)); | |
36 | 32 |
37 #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (1) | 33 #define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (1) |
38 | 34 |
39 static reloc_howto_type r_imm8 = | 35 static reloc_howto_type r_imm8 = |
40 HOWTO (R_H8500_IMM8, 0, 1, 8, FALSE, 0, | 36 HOWTO (R_H8500_IMM8, 0, 1, 8, FALSE, 0, |
41 complain_overflow_bitfield, 0, "r_imm8", TRUE, 0x000000ff, 0x000000ff, FA
LSE); | 37 complain_overflow_bitfield, 0, "r_imm8", TRUE, 0x000000ff, 0x000000ff, FA
LSE); |
42 | 38 |
43 static reloc_howto_type r_imm16 = | 39 static reloc_howto_type r_imm16 = |
44 HOWTO (R_H8500_IMM16, 0, 1, 16, FALSE, 0, | 40 HOWTO (R_H8500_IMM16, 0, 1, 16, FALSE, 0, |
45 complain_overflow_bitfield, 0, "r_imm16", TRUE, 0x0000ffff, 0x0000ffff, F
ALSE); | 41 complain_overflow_bitfield, 0, "r_imm16", TRUE, 0x0000ffff, 0x0000ffff, F
ALSE); |
(...skipping 17 matching lines...) Expand all Loading... |
63 static reloc_howto_type r_pcrel8 = | 59 static reloc_howto_type r_pcrel8 = |
64 HOWTO (R_H8500_PCREL8, 0, 1, 8, TRUE, 0, complain_overflow_signed, 0, "r_pcrel8"
, TRUE, 0, 0, TRUE); | 60 HOWTO (R_H8500_PCREL8, 0, 1, 8, TRUE, 0, complain_overflow_signed, 0, "r_pcrel8"
, TRUE, 0, 0, TRUE); |
65 | 61 |
66 static reloc_howto_type r_pcrel16 = | 62 static reloc_howto_type r_pcrel16 = |
67 HOWTO (R_H8500_PCREL16, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0, "r_pcrel
16", TRUE, 0, 0, TRUE); | 63 HOWTO (R_H8500_PCREL16, 0, 1, 16, TRUE, 0, complain_overflow_signed, 0, "r_pcrel
16", TRUE, 0, 0, TRUE); |
68 | 64 |
69 static reloc_howto_type r_high16 = | 65 static reloc_howto_type r_high16 = |
70 HOWTO (R_H8500_HIGH16, 0, 1, 8, FALSE, 0, | 66 HOWTO (R_H8500_HIGH16, 0, 1, 8, FALSE, 0, |
71 complain_overflow_dont, 0, "r_high16", TRUE, 0x000ffff, 0x0000ffff, FALSE
); | 67 complain_overflow_dont, 0, "r_high16", TRUE, 0x000ffff, 0x0000ffff, FALSE
); |
72 | 68 |
error: old chunk mismatch |
None
OLD | NEW |