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>
|
||||
|
||||
* 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) \
|
||||
(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] =
|
||||
{
|
||||
0x05, 0x00, 0x00, 0x00, 0x01, 0x00, /* [MLX] nop.m 0 */
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* brl.sptk.few tgt;; */
|
||||
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. */
|
||||
|
||||
|
@ -897,11 +878,7 @@ elfNN_ia64_relax_section (abfd, sec, link_info, again)
|
|||
size = sizeof (plt_full_entry);
|
||||
else
|
||||
{
|
||||
#ifdef USE_BRL
|
||||
size = sizeof (oor_brl);
|
||||
#else
|
||||
size = sizeof (oor_ip);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* 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
|
||||
{
|
||||
#ifdef USE_BRL
|
||||
memcpy (contents + trampoff, oor_brl, size);
|
||||
irel->r_info = ELFNN_R_INFO (ELFNN_R_SYM (irel->r_info),
|
||||
R_IA64_PCREL60B);
|
||||
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. */
|
||||
|
|
Loading…
Reference in a new issue