OLD | NEW |
1 /* RL78 ELF support for BFD. | 1 /* RL78 ELF support for BFD. |
2 Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. | 2 Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. |
3 | 3 |
4 This file is part of BFD, the Binary File Descriptor library. | 4 This file is part of BFD, the Binary File Descriptor library. |
5 | 5 |
6 This program is free software; you can redistribute it and/or modify | 6 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 | 7 it under the terms of the GNU General Public License as published by |
8 the Free Software Foundation; either version 3 of the License, or | 8 the Free Software Foundation; either version 3 of the License, or |
9 (at your option) any later version. | 9 (at your option) any later version. |
10 | 10 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 | 48 |
49 /* These are for fields in the instructions. */ | 49 /* These are for fields in the instructions. */ |
50 RELOC_NUMBER (R_RL78_DIR16UL, 0x0c) | 50 RELOC_NUMBER (R_RL78_DIR16UL, 0x0c) |
51 RELOC_NUMBER (R_RL78_DIR16UW, 0x0d) | 51 RELOC_NUMBER (R_RL78_DIR16UW, 0x0d) |
52 RELOC_NUMBER (R_RL78_DIR8UL, 0x0e) | 52 RELOC_NUMBER (R_RL78_DIR8UL, 0x0e) |
53 RELOC_NUMBER (R_RL78_DIR8UW, 0x0f) | 53 RELOC_NUMBER (R_RL78_DIR8UW, 0x0f) |
54 RELOC_NUMBER (R_RL78_DIR32_REV, 0x10) | 54 RELOC_NUMBER (R_RL78_DIR32_REV, 0x10) |
55 RELOC_NUMBER (R_RL78_DIR16_REV, 0x11) | 55 RELOC_NUMBER (R_RL78_DIR16_REV, 0x11) |
56 RELOC_NUMBER (R_RL78_DIR3U_PCREL, 0x12) | 56 RELOC_NUMBER (R_RL78_DIR3U_PCREL, 0x12) |
57 | 57 |
| 58 /* These are extensions added by Red Hat. */ |
| 59 RELOC_NUMBER (R_RL78_RH_RELAX, 0x2d) /* Marks opcodes suitable for linker
relaxation. */ |
| 60 RELOC_NUMBER (R_RL78_RH_SFR, 0x2e) /* SFR addresses - internal use only.
*/ |
| 61 RELOC_NUMBER (R_RL78_RH_SADDR, 0x2f) /* SADDR addresses - internal use onl
y.. */ |
| 62 |
58 /* These are for complex relocs. */ | 63 /* These are for complex relocs. */ |
59 RELOC_NUMBER (R_RL78_ABS32, 0x41) | 64 RELOC_NUMBER (R_RL78_ABS32, 0x41) |
60 RELOC_NUMBER (R_RL78_ABS24S, 0x42) | 65 RELOC_NUMBER (R_RL78_ABS24S, 0x42) |
61 RELOC_NUMBER (R_RL78_ABS16, 0x43) | 66 RELOC_NUMBER (R_RL78_ABS16, 0x43) |
62 RELOC_NUMBER (R_RL78_ABS16U, 0x44) | 67 RELOC_NUMBER (R_RL78_ABS16U, 0x44) |
63 RELOC_NUMBER (R_RL78_ABS16S, 0x45) | 68 RELOC_NUMBER (R_RL78_ABS16S, 0x45) |
64 RELOC_NUMBER (R_RL78_ABS8, 0x46) | 69 RELOC_NUMBER (R_RL78_ABS8, 0x46) |
65 RELOC_NUMBER (R_RL78_ABS8U, 0x47) | 70 RELOC_NUMBER (R_RL78_ABS8U, 0x47) |
66 RELOC_NUMBER (R_RL78_ABS8S, 0x48) | 71 RELOC_NUMBER (R_RL78_ABS8S, 0x48) |
67 RELOC_NUMBER (R_RL78_ABS24S_PCREL, 0x49) | 72 RELOC_NUMBER (R_RL78_ABS24S_PCREL, 0x49) |
(...skipping 28 matching lines...) Expand all Loading... |
96 | 101 |
97 #define EF_RL78_CPU_RL78 0x00000079 /* FIXME: correct value? */ | 102 #define EF_RL78_CPU_RL78 0x00000079 /* FIXME: correct value? */ |
98 #define EF_RL78_CPU_MASK 0x0000007F /* specific cpu bits. */ | 103 #define EF_RL78_CPU_MASK 0x0000007F /* specific cpu bits. */ |
99 #define EF_RL78_ALL_FLAGS (EF_RL78_CPU_MASK) | 104 #define EF_RL78_ALL_FLAGS (EF_RL78_CPU_MASK) |
100 | 105 |
101 /* Values for the e_flags field in the ELF header. */ | 106 /* Values for the e_flags field in the ELF header. */ |
102 #define E_FLAG_RL78_64BIT_DOUBLES (1 << 0) | 107 #define E_FLAG_RL78_64BIT_DOUBLES (1 << 0) |
103 #define E_FLAG_RL78_DSP (1 << 1) /* Defined in the RL78 CPU Obje
ct file specification, but not explained. */ | 108 #define E_FLAG_RL78_DSP (1 << 1) /* Defined in the RL78 CPU Obje
ct file specification, but not explained. */ |
104 | 109 |
105 /* These define the addend field of R_RL78_RH_RELAX relocations. */ | 110 /* These define the addend field of R_RL78_RH_RELAX relocations. */ |
106 #define»RL78_RELAXA_IMM6» 0x00000010» /* Imm8/16/24/32 at bit offset 6
. */ | 111 #define»RL78_RELAXA_BRA»» 0x00000010» /* Any type of branch (must be d
ecoded). */ |
107 #define»RL78_RELAXA_IMM12» 0x00000020» /* Imm8/16/24/32 at bit offset 1
2. */ | 112 #define»RL78_RELAXA_ADDR16» 0x00000020» /* addr16->sfr/saddr opportunity
*/ |
108 #define»RL78_RELAXA_DSP4» 0x00000040» /* Dsp0/8/16 at bit offset 4. *
/ | |
109 #define»RL78_RELAXA_DSP6» 0x00000080» /* Dsp0/8/16 at bit offset 6. *
/ | |
110 #define»RL78_RELAXA_DSP14» 0x00000100» /* Dsp0/8/16 at bit offset 14.
*/ | |
111 #define»RL78_RELAXA_BRA»0x00000200» /* Any type of branch (must be decoded).
*/ | |
112 #define RL78_RELAXA_RNUM 0x0000000f /* Number of associated relocati
ons. */ | 113 #define RL78_RELAXA_RNUM 0x0000000f /* Number of associated relocati
ons. */ |
113 /* These mark the place where alignment is requested, and the place where the fi
ller bytes end. */ | 114 /* These mark the place where alignment is requested, and the place where the fi
ller bytes end. */ |
114 #define RL78_RELAXA_ALIGN 0x10000000 /* Start alignment; the remainin
g bits are the alignment value. */ | 115 #define RL78_RELAXA_ALIGN 0x10000000 /* Start alignment; the remainin
g bits are the alignment value. */ |
115 #define RL78_RELAXA_ELIGN 0x20000000 /* End alignment; the remaining
bits are the alignment value. */ | 116 #define RL78_RELAXA_ELIGN 0x20000000 /* End alignment; the remaining
bits are the alignment value. */ |
116 #define RL78_RELAXA_ANUM 0x00ffffff /* Alignment amount, in bytes (i
.e. .balign). */ | 117 #define RL78_RELAXA_ANUM 0x00ffffff /* Alignment amount, in bytes (i
.e. .balign). */ |
117 | 118 |
118 #endif /* _ELF_RL78_H */ | 119 #endif /* _ELF_RL78_H */ |
OLD | NEW |