From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alan Modra To: binutils@sourceware.cygnus.com Cc: Geoffrey Keating , David Edelsohn , Torbjorn Granlund Subject: ppc64 patches Date: Fri, 24 Aug 2001 07:11:00 -0000 Message-id: <20010824234125.A15534@bubble.sa.bigpond.net.au> X-SW-Source: 2001-08/msg00558.html Here's the current patchset to support PowerPc64. I'll commit in a day or so if I hear no complaints. bfd/ChangeLog 2001-08-24 Linus Nordberg Torbjorn Granlund Staffan Ulfberg Alan Modra * config.bfd: Add powerpc64 target. Add powerpc64 vectors to targ64_selvecs for 32 bit powerpc targets. * Makefile.am (BFD64_BACKENDS): Add elf64-ppc.lo. (BFD64_BACKENDS_CFILES): Add elf64-ppc.c. Run "make dep-am". * Makefile.in: Regenerate. * configure.in: Add elf64_powerpc vecs. * configure: Regenerate. * cpu-powerpc.c: Default to bfd_mach_ppc_620 entry for 64 bit. * elf.c (prep_headers): EM_PPC64 for 64 bit ppc elf target. * targets.c: Add bfd_elf64_powerpc_vec and bfd_elf64_powerpcle_vec. * elf64-ppc.c: New file. * reloc.c: Add powerpc64 relocs. * libbfd.h: Regenerate. * bfd-in2.h: Regenerate. binutils/ChangeLog 2001-08-24 Alan Modra * readelf.c (dump_relocations): Recognise EM_PPC64. binutils/testsuite/ChangeLog 2001-08-24 Alan Modra * binutils-all/readelf.s-64: Adjust offsets for powerpc64. Don't use constructs like [45][08] when all combinations are not valid. Instead use (48|50) to explicitly state which values are correct. gas/ChangeLog 2001-08-24 Torbjorn Granlund Staffan Ulfberg Linus Nordberg Alan Modra * configure.in: Recognise powerpc*le*, not just powerpcle*. * configure: Regenerate. * config/tc-ppc.c (PPC_LO, PPC_HI, PPC_HA, PPC_HIGHER, PPC_HIGHERA, PPC_HIGHEST, PPC_HIGHESTA, SEX16): New macros. (md_assemble): Use them. (ppc_machine): Support stub for ELF64 as well as XCOFF. (md_pseudo_table): Add "llong", "quad". (md_parse_option): Match default_cpu of powerpc*. (ppc_arch): Likewise. (ppc_subseg_align): Only for OBJ_XCOFF. (ppc_target_format): Return elf64-powerpc strings for 64 bit ELF. (md_begin): Select PPC_OPCODE_64 for 64 bit. (ppc_insert_operand): Don't bother testing 'file' before calling as_bad_where. Use as_bad_where for operand->insert errors. (mapping): Add ELF64 relocation modifiers. (ppc_elf_suffix): Replace symbol on BFD_RELOC_PPC64_TOC reloc expressions with abs_symbol. (ppc_elf_cons): Correct offset for little endian targets. (ppc_elf_frob_symbol): New. (md_assemble): Add support for 64 bit ELF relocs. (ppc_tc): Ensure 8 byte alignment when 64 bit. (ppc_is_toc_sym): Only define for OBJ_XCOFF and OBJ_ELF. Match ".toc" section for 64 bit ELF. (ppc_fix_adjustable): New. Macro body moved from tc-ppc.h. (md_apply_fix3): Silence warning with ATTRIBUTE_UNUSED. Only do the ppc_is_toc_sym check for OBJ_XCOFF and OBJ_ELF. For 64 bit, use BFD_RELOC_PPC64_TOC16_DS instead of BFD_RELOC_PPC_TOC16. Expand on comments, error message. Add support for 64 bit relocs, and use PPC_HI etc. macros. * config/tc-ppc.h (ppc_target_format): Add missing prototype. (MAX_MEM_FOR_RS_ALIGN_CODE): Define. (HANDLE_ALIGN): Define to generate nops in code sections rather than zeros. (TC_FORCE_RELOCATION): Force for BFD_RELOC_PPC64_TOC. (ELF_TC_SPECIAL_SECTIONS): Add 64 bit ELF sections. (tc_fix_adjustable): Move body of macro to tc-ppc.c. (ppc_fix_adjustable): Declare. (tc_frob_symbol): Define. (ppc_elf_frob_symbol): Declare. gas/testsuite/ChangeLog 2001-08-24 Staffan Ulfberg Alan Modra * gas/macros/macros.exp: xfail powerpc-*-aix. * gas/ppc/astest64.s: New. * gas/ppc/astest64.d: New. * gas/ppc/astest2_64.s: New. * gas/ppc/astest2_64.d: New. * gas/ppc/test1elf.asm: New. * gas/ppc/test1xcoff.asm: New. * gas/ppc/generate.sh: New. Generate new files below from above .asm * gas/ppc/test1elf32.s: New. * gas/ppc/test1elf32.d: New. * gas/ppc/test1elf64.s: New. * gas/ppc/test1elf64.d: New. * gas/ppc/test1xcoff32.s: New. * gas/ppc/test1xcoff32.d: New. * gas/ppc/ppc.exp: Run new tests. * gas/ppc/simpshft.s: Tweak align now that we get nops. include/elf/ChangeLog 2001-08-24 Staffan Ulfberg * ppc.h: Add relocs from the 64-bit PowerPC ELF ABI revision 1.2. include/opcode/ChangeLog 2001-08-24 Torbjorn Granlund * ppc.h (PPC_OPERAND_DS): Define. ld/ChangeLog 2001-08-24 Linus Nordberg Alan Modra * Makefile.am (ALL_EMULATIONS): Add eelf64ppc.o and eelf64lppc.o. (eelf64ppc.c, eelf64lppc.c): Add make targets. Run "make dep-am" * Makefile.in: Regenerate. * configure.tgt: Add powerpc64 support. Move pdp11, pjl, pj entries to correct alphabetical position. * emulparams/elf64ppc.sh: New. * emulparams/elf64lppc.sh: New. ld/testsuite/ChangeLog 2001-08-24 Alan Modra Linus Nordberg * ld-checks/checks.exp: .lcomm is incompatible with ppc coff. * ld-scripts/cross1.t: Add .toc section. * ld-scripts/cross2.t: Likewise. * ld-scripts/phdrs.exp: powerpc64 is 64 bit. * ld-srec/srec.exp: xfail powerpc64 opcodes/ChangeLog 2001-08-24 David Edelsohn Torbjorn Granlund * ppc-opc.c (DS): Add PPC_OPERAND_DS flag. (LS): Define. (insert_ds): Complain if not a multiple of 4. (XSYNC): Define. (XSYNC_MASK): Define. (powerpc_opcodes): Add "slbmte", "lwsync", "ptesync", "slbmfev", "slbmfee". Modify "sync" to use XSYNC_MASK and LS. -- Alan Modra