This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Patch for 32-bit function descriptors in the Assembler
- From: "Jessica Han" <jessica at cup dot hp dot com>
- To: <binutils at sources dot redhat dot com>
- Date: Mon, 1 Apr 2002 14:15:32 -0800
- Subject: Patch for 32-bit function descriptors in the Assembler
- Reply-to: <jessica at cup dot hp dot com>
HP-UX uses 8 byte function descriptors at 32-bit mode on IA64, data8 could
be either DIR64 or IPLT.
Can someone review this and check it in to both mainline and 2.12 brand if
it is OK? I don't have write permission to CVS. Thanks.
----
Jessica Han
Open Source Tools
Hewlett-Packard
(408) 447-6154
2002-04-01 Jessica Han <jessica@cup.hp.com>
* config/tc-ia64.c Handle 8 byte iplt reloc at 32-bit mode.
*** tc-ia64.c.1.64.2.1 Mon Apr 1 13:26:53 2002
--- tc-ia64.c Mon Apr 1 13:18:19 2002
*************** ia64_cons_fix_new (f, where, nbytes, exp
*** 9982,9992 ****
break;
case 8:
! if (target_big_endian)
! code = BFD_RELOC_IA64_DIR64MSB;
! else
! code = BFD_RELOC_IA64_DIR64LSB;
! break;
case 16:
if (exp->X_op == O_pseudo_fixup
--- 9982,10007 ----
break;
case 8:
! /* In 32-bit mode, data8 could mean function descriptors too. */
! if (exp->X_op == O_pseudo_fixup
! && exp->X_op_symbol
! && S_GET_VALUE (exp->X_op_symbol) == FUNC_IPLT_RELOC
! && !(md.flags & EF_IA_64_ABI64))
! {
! if (target_big_endian)
! code = BFD_RELOC_IA64_IPLTMSB;
! else
! code = BFD_RELOC_IA64_IPLTLSB;
! exp->X_op = O_symbol;
! break;
! }
! else {
! if (target_big_endian)
! code = BFD_RELOC_IA64_DIR64MSB;
! else
! code = BFD_RELOC_IA64_DIR64LSB;
! break;
! }
case 16:
if (exp->X_op == O_pseudo_fixup