2003-03-03 H.J. Lu <hjl@gnu.org>

* elfxx-ia64.c (USE_BRL): Removed.
	(oor_ip): Removed.
This commit is contained in:
H.J. Lu 2003-03-03 23:19:19 +00:00
parent 838a82217b
commit 6a0fb18653
2 changed files with 5 additions and 31 deletions

View file

@ -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

View file

@ -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. */