2003-03-03 H.J. Lu <hjl@gnu.org>
* elfxx-ia64.c (USE_BRL): Removed. (oor_ip): Removed.
This commit is contained in:
parent
838a82217b
commit
6a0fb18653
2 changed files with 5 additions and 31 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2003-03-03 H.J. Lu <hjl@gnu.org>
|
||||||
|
|
||||||
|
* elfxx-ia64.c (USE_BRL): Removed.
|
||||||
|
(oor_ip): Removed.
|
||||||
|
|
||||||
Mon Mar 3 20:48:23 2003 J"orn Rennecke <joern.rennecke@superh.com>
|
Mon Mar 3 20:48:23 2003 J"orn Rennecke <joern.rennecke@superh.com>
|
||||||
|
|
||||||
* elf32-sh.c (sh_elf_howto_tab): Make R_SH_IND12W into an ordinary
|
* elf32-sh.c (sh_elf_howto_tab): Make R_SH_IND12W into an ordinary
|
||||||
|
|
|
@ -656,31 +656,12 @@ static const bfd_byte plt_full_entry[PLT_FULL_ENTRY_SIZE] =
|
||||||
#define DYNAMIC_INTERPRETER(abfd) \
|
#define DYNAMIC_INTERPRETER(abfd) \
|
||||||
(elfNN_ia64_aix_vec (abfd->xvec) ? AIX_DYNAMIC_INTERPRETER : ELF_DYNAMIC_INTERPRETER)
|
(elfNN_ia64_aix_vec (abfd->xvec) ? AIX_DYNAMIC_INTERPRETER : ELF_DYNAMIC_INTERPRETER)
|
||||||
|
|
||||||
/* Select out of range branch fixup type. Note that Itanium does
|
|
||||||
not support brl, and so it gets emulated by the kernel. */
|
|
||||||
#undef USE_BRL
|
|
||||||
|
|
||||||
#ifdef USE_BRL
|
|
||||||
static const bfd_byte oor_brl[16] =
|
static const bfd_byte oor_brl[16] =
|
||||||
{
|
{
|
||||||
0x05, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MLX] nop.m 0 */
|
0x05, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MLX] nop.m 0 */
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* brl.sptk.few tgt;; */
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* brl.sptk.few tgt;; */
|
||||||
0x00, 0x00, 0x00, 0xc0
|
0x00, 0x00, 0x00, 0xc0
|
||||||
};
|
};
|
||||||
#else
|
|
||||||
static const bfd_byte oor_ip[48] =
|
|
||||||
{
|
|
||||||
0x04, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MLX] nop.m 0 */
|
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, /* movl r15=0 */
|
|
||||||
0x01, 0x00, 0x00, 0x60,
|
|
||||||
0x03, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MII] nop.m 0 */
|
|
||||||
0x00, 0x01, 0x00, 0x60, 0x00, 0x00, /* mov r16=ip;; */
|
|
||||||
0xf2, 0x80, 0x00, 0x80, /* add r16=r15,r16;; */
|
|
||||||
0x11, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MIB] nop.m 0 */
|
|
||||||
0x60, 0x80, 0x04, 0x80, 0x03, 0x00, /* mov b6=r16 */
|
|
||||||
0x60, 0x00, 0x80, 0x00 /* br b6;; */
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* These functions do relaxation for IA-64 ELF. */
|
/* These functions do relaxation for IA-64 ELF. */
|
||||||
|
|
||||||
|
@ -897,11 +878,7 @@ elfNN_ia64_relax_section (abfd, sec, link_info, again)
|
||||||
size = sizeof (plt_full_entry);
|
size = sizeof (plt_full_entry);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef USE_BRL
|
|
||||||
size = sizeof (oor_brl);
|
size = sizeof (oor_brl);
|
||||||
#else
|
|
||||||
size = sizeof (oor_ip);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Resize the current section to make room for the new branch. */
|
/* Resize the current section to make room for the new branch. */
|
||||||
|
@ -923,18 +900,10 @@ elfNN_ia64_relax_section (abfd, sec, link_info, again)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef USE_BRL
|
|
||||||
memcpy (contents + trampoff, oor_brl, size);
|
memcpy (contents + trampoff, oor_brl, size);
|
||||||
irel->r_info = ELFNN_R_INFO (ELFNN_R_SYM (irel->r_info),
|
irel->r_info = ELFNN_R_INFO (ELFNN_R_SYM (irel->r_info),
|
||||||
R_IA64_PCREL60B);
|
R_IA64_PCREL60B);
|
||||||
irel->r_offset = trampoff + 2;
|
irel->r_offset = trampoff + 2;
|
||||||
#else
|
|
||||||
memcpy (contents + trampoff, oor_ip, size);
|
|
||||||
irel->r_info = ELFNN_R_INFO (ELFNN_R_SYM (irel->r_info),
|
|
||||||
R_IA64_PCREL64I);
|
|
||||||
irel->r_addend -= 16;
|
|
||||||
irel->r_offset = trampoff + 2;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Record the fixup so we don't do it again this section. */
|
/* Record the fixup so we don't do it again this section. */
|
||||||
|
|
Loading…
Reference in a new issue