Switched over to using new reloc types.
This commit is contained in:
parent
552c6220e0
commit
def31039ac
6 changed files with 712 additions and 246 deletions
|
@ -1,3 +1,12 @@
|
|||
Tue Sep 2 15:45:45 1997 Nick Clifton <nickc@cygnus.com>
|
||||
|
||||
* cpu-v850.c: Use a macro to construct bfd_arch_info_type
|
||||
entries.
|
||||
|
||||
* reloc.c, libbfd.h, bfd-in2.h, elf32-v850.c: Replace
|
||||
BFD_RELOC_V850_{SDA/TDA/ZDA}_OFFSET relocs with new bit pattern
|
||||
specific versions: BFD_RELOC_V850_{area}_{bits}_OFFSET.
|
||||
|
||||
Thu Aug 28 17:01:09 1997 Andrew Cagney <cagney@b1.cygnus.com>
|
||||
|
||||
* cpu-v850.c: Remove "plain" from v850 printable name.
|
||||
|
|
|
@ -1948,14 +1948,19 @@ add3, load, and store instructions. */
|
|||
/* This is a 22-bit reloc */
|
||||
BFD_RELOC_V850_22_PCREL,
|
||||
|
||||
/* This is an offset from the short data area pointer.. */
|
||||
BFD_RELOC_V850_SDA_OFFSET,
|
||||
|
||||
/* This is an offset from the zero data area pointer.. */
|
||||
BFD_RELOC_V850_ZDA_OFFSET,
|
||||
|
||||
/* This is an offset from the tiny data area pointer.. */
|
||||
BFD_RELOC_V850_TDA_OFFSET,
|
||||
BFD_RELOC_V850_SDA_16_16_OFFSET, /* A 16 bit reloc in the small data area. */
|
||||
BFD_RELOC_V850_SDA_15_16_OFFSET, /* A 16 bit reloc (of which only 15 bits are used) in the small data area. */
|
||||
BFD_RELOC_V850_ZDA_16_16_OFFSET, /* A 16 bit reloc in the zero data area. */
|
||||
BFD_RELOC_V850_ZDA_15_16_OFFSET, /* A 16 bit reloc (of which only 15 bits are used) in the zero data area. */
|
||||
BFD_RELOC_V850_TDA_6_8_OFFSET, /* An 8 bit reloc (of which only 6 bits are used) in the tiny data area. */
|
||||
BFD_RELOC_V850_TDA_7_8_OFFSET, /* An 8 bit reloc (of which only 7 bits are used) in the tiny data area. */
|
||||
BFD_RELOC_V850_TDA_7_7_OFFSET, /* A 7 bit reloc in the tiny data area. */
|
||||
/* start-sanitize-v850e */
|
||||
BFD_RELOC_V850_TDA_4_5_OFFSET, /* A 5 bit reloc (of which only 4 bits are used) in the tiny data area. */
|
||||
BFD_RELOC_V850_TDA_4_4_OFFSET, /* A 4 bit reloc in the tiny data area. */
|
||||
BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET, /* A 16 bit reloc (but the bits are not contiguous) in the small data area. */
|
||||
BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET, /* A 16 bit reloc (but the bits are not contiguous) in the zero data area. */
|
||||
/* end-santize-v850e */
|
||||
/* end-sanitize-v850 */
|
||||
|
||||
|
||||
|
|
|
@ -83,55 +83,18 @@ scan (info, string)
|
|||
return true;
|
||||
}
|
||||
|
||||
#define N(number, print, default, next) \
|
||||
{ 32, 32, 8, bfd_arch_v850, number, "v850", print, 2, default, bfd_default_compatible, scan, next }
|
||||
|
||||
static const bfd_arch_info_type arch_info_struct[2] =
|
||||
{
|
||||
/* start-sanitize-v850e */
|
||||
{
|
||||
32, /* 32 bits in a word */
|
||||
32, /* 32 bits in an address */
|
||||
8, /* 8 bits in a byte */
|
||||
bfd_arch_v850,
|
||||
bfd_mach_v850e,
|
||||
"v850",
|
||||
"v850e",
|
||||
2,
|
||||
false,
|
||||
bfd_default_compatible,
|
||||
scan,
|
||||
& arch_info_struct[ 1 ],
|
||||
},
|
||||
N( bfd_mach_v850e, "v850e", false, & arch_info_struct[1] ),
|
||||
/* end-sanitize-v850e */
|
||||
/* start-sanitize-v850eq */
|
||||
{
|
||||
32, /* 32 bits in a word */
|
||||
32, /* 32 bits in an address */
|
||||
8, /* 8 bits in a byte */
|
||||
bfd_arch_v850,
|
||||
bfd_mach_v850eq,
|
||||
"v850",
|
||||
"v850eq",
|
||||
2,
|
||||
false,
|
||||
bfd_default_compatible,
|
||||
scan,
|
||||
0,
|
||||
}
|
||||
N( bfd_mach_v850eq, "v850eq", false, NULL ),
|
||||
/* end-sanitize-v850eq */
|
||||
};
|
||||
|
||||
const bfd_arch_info_type bfd_v850_arch =
|
||||
{
|
||||
32, /* 32 bits in a word */
|
||||
32, /* 32 bits in an address */
|
||||
8, /* 8 bits in a byte */
|
||||
bfd_arch_v850,
|
||||
bfd_mach_v850,
|
||||
"v850",
|
||||
"v850",
|
||||
2,
|
||||
true, /* the default */
|
||||
bfd_default_compatible,
|
||||
scan ,
|
||||
& arch_info_struct[ 0 ],
|
||||
};
|
||||
N( bfd_mach_v850, "v850", true, & arch_info_struct[0] );
|
||||
|
|
809
bfd/elf32-v850.c
809
bfd/elf32-v850.c
File diff suppressed because it is too large
Load diff
17
bfd/libbfd.h
17
bfd/libbfd.h
|
@ -770,10 +770,21 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
|
|||
"BFD_RELOC_M32R_SDA16",
|
||||
/* start-sanitize-v850 */
|
||||
"BFD_RELOC_V850_9_PCREL",
|
||||
"BFD_RELOC_V850_16_PCREL",
|
||||
"BFD_RELOC_V850_22_PCREL",
|
||||
"BFD_RELOC_V850_SDA_OFFSET",
|
||||
"BFD_RELOC_V850_ZDA_OFFSET",
|
||||
"BFD_RELOC_V850_TDA_OFFSET",
|
||||
"BFD_RELOC_V850_SDA_16_16_OFFSET",
|
||||
"BFD_RELOC_V850_SDA_15_16_OFFSET",
|
||||
"BFD_RELOC_V850_ZDA_16_16_OFFSET",
|
||||
"BFD_RELOC_V850_ZDA_15_16_OFFSET",
|
||||
"BFD_RELOC_V850_TDA_6_8_OFFSET",
|
||||
"BFD_RELOC_V850_TDA_7_8_OFFSET",
|
||||
"BFD_RELOC_V850_TDA_7_7_OFFSET",
|
||||
/* start-sanitize-v850e */
|
||||
"BFD_RELOC_V850_TDA_4_5_OFFSET",
|
||||
"BFD_RELOC_V850_TDA_4_4_OFFSET",
|
||||
"BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET",
|
||||
"BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET",
|
||||
/* end-santize-v850e */
|
||||
/* end-sanitize-v850 */
|
||||
|
||||
"BFD_RELOC_MN10300_32_PCREL",
|
||||
|
|
55
bfd/reloc.c
55
bfd/reloc.c
|
@ -983,6 +983,7 @@ bfd_install_relocation (abfd, reloc_entry, data_start, data_start_offset,
|
|||
if (howto->special_function)
|
||||
{
|
||||
bfd_reloc_status_type cont;
|
||||
|
||||
/* XXX - The special_function calls haven't been fixed up to deal
|
||||
with creating new relocations and section contents. */
|
||||
cont = howto->special_function (abfd, reloc_entry, symbol,
|
||||
|
@ -1007,7 +1008,6 @@ bfd_install_relocation (abfd, reloc_entry, data_start, data_start_offset,
|
|||
else
|
||||
relocation = symbol->value;
|
||||
|
||||
|
||||
reloc_target_output_section = symbol->section->output_section;
|
||||
|
||||
/* Convert input-section-relative symbol value to absolute. */
|
||||
|
@ -2355,22 +2355,63 @@ ENUM
|
|||
BFD_RELOC_V850_9_PCREL
|
||||
ENUMDOC
|
||||
This is a 9-bit reloc
|
||||
ENUM
|
||||
BFD_RELOC_V850_16_PCREL
|
||||
ENUMDOC
|
||||
This is a 16-bit reloc
|
||||
ENUM
|
||||
BFD_RELOC_V850_22_PCREL
|
||||
ENUMDOC
|
||||
This is a 22-bit reloc
|
||||
|
||||
ENUM
|
||||
BFD_RELOC_V850_SDA_OFFSET
|
||||
BFD_RELOC_V850_SDA_16_16_OFFSET,
|
||||
ENUMDOC
|
||||
This is an offset from the short data area pointer..
|
||||
This is a 16 bit offset from the short data area pointer..
|
||||
ENUM
|
||||
BFD_RELOC_V850_ZDA_OFFSET
|
||||
BFD_RELOC_V850_SDA_15_16_OFFSET,
|
||||
ENUMDOC
|
||||
This is an offset from the zero data area pointer..
|
||||
This is a 16 bit offset (of which only 15 bits are used) from the short data area pointer..
|
||||
ENUM
|
||||
BFD_RELOC_V850_TDA_OFFSET
|
||||
BFD_RELOC_V850_ZDA_16_16_OFFSET,
|
||||
ENUMDOC
|
||||
This is an offset from the tiny data area pointer..
|
||||
This is a 16 bit offset from the zero data area pointer..
|
||||
ENUM
|
||||
BFD_RELOC_V850_ZDA_15_16_OFFSET,
|
||||
ENUMDOC
|
||||
This is a 16 bit offset (of which only 15 bits are used) from the zero data area pointer..
|
||||
ENUM
|
||||
BFD_RELOC_V850_TDA_6_8_OFFSET,
|
||||
ENUMDOC
|
||||
This is an 8 bit offset (of which only 6 bits are used) from the tiny data area pointer..
|
||||
ENUM
|
||||
BFD_RELOC_V850_TDA_7_8_OFFSET,
|
||||
ENUMDOC
|
||||
This is an 8bit offset (of which only 7 bits are used) from the tiny data area pointer..
|
||||
ENUM
|
||||
BFD_RELOC_V850_TDA_7_7_OFFSET,
|
||||
ENUMDOC
|
||||
This is a 7 bit offset from the tiny data area pointer..
|
||||
COMMENT
|
||||
{* start-sanitize-v850e *}
|
||||
ENUM
|
||||
BFD_RELOC_V850_TDA_4_5_OFFSET,
|
||||
ENUMDOC
|
||||
This is a 5 bit offset (of which only 4 bits are used) from the tiny data area pointer..
|
||||
ENUM
|
||||
BFD_RELOC_V850_TDA_4_4_OFFSET,
|
||||
ENUMDOC
|
||||
This is a 4 bit offset from the tiny data area pointer..
|
||||
ENUM
|
||||
BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET,
|
||||
ENUMDOC
|
||||
This is a 16 bit offset from the short data area pointer, with the bits placed non-contigously in the instruction..
|
||||
ENUM
|
||||
BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET,
|
||||
ENUMDOC
|
||||
This is a 16 bit offset from the zero data area pointer, with the bits placed non-contigously in the instruction..
|
||||
COMMENT
|
||||
{* end-santize-v850e *}
|
||||
COMMENT
|
||||
{* end-sanitize-v850 *}
|
||||
|
||||
|
|
Loading…
Reference in a new issue