This is the mail archive of the binutils@sourceware.cygnus.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

pending binutils support for IA-64 64-bit ELF


I've got a pending patch added to my binutils tree.  At the moment, the
linker is not working.  I was working with a copy of binutils that branched
a few months ago for stability reasons, so I believe it just needs a few
adjustments to work with the current binutils sources.  I'll spend a day or
two trying to fix it myself, and if I can't I'll ask Richard Henderson for
help.  Meanwhile, I'm making diffs available in case anyone wants to comment
on them.  I'd like to check the changes in tomorrow whether it is working or
not, so that I don't have to maintain diffs.

The full diff is 1.6MB.  About half of that is gas testsuite support, and about
one third is the opcodes/ support.  Diffs for existing files is only 45K, and
I've included them here.  The full diff can be found at
	http://www.cygnus.com/~wilson/diff.ia64.full.gz
This is a 241K file.

Most of this code was written by Richard Henderson and David Mosberger.
I've tried to get the attributions right, but it is a bit tricky for such a
large long running project.

I've been doing most of the maintenance work for IA-64 binutils, and I expect
to continue doing so.

bfd/
Thu Apr 20 10:38:27 2000  Richard Henderson  <rth@cygnus.com>
			  David Mosberger  <davidm@hpl.hp.com>
			  Timothy Wall <twall@cygnus.com>
			  Jim Wilson  <wilson@cygnus.com>
	
	* Makefile.am (ALL_MACHINES): Add cpu-ia64.lo.
	(ALL_MACHINES_CFILES): Add cpu-ia64.c.
	(BFD64_BACKENDS): Add elf64-ia64.lo.
	(BFD64_BACKENDS_CFILES): Add elf64-ia64.c.
	(cpu-ia64.lo, elf64-ia64.lo): New rules.
	* Makefile.in: Rebuild.
	* archures.c (enum bfd_architecture): Add bfd_arch_ia64.
	(bfd_ia64_arch): Declare.
	(bfd_archures_list): Add bfd_ia64_arch.
	* bfd-in2.h: Rebuild.
	* config.bfd: (ia64*-*-linux-gnu*, ia64*-*-elf*): New targets.
	* configure: Rebuild.
	* configure.host: (ia64-*-linux*): New host.
	* configure.in (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_big_vec,
	bfd_efi_app_ia64_vec, bfd_efi_app_ia64_vec): New vectors.
	* elf.c (prep_headers): Add bfd_arch_ia64.
	* libbfd.h: Rebuild.
	* reloc.c: Add IA-64 relocations.
	* targets.c (bfd_elf64_ia64_little_vec, bfd_elf64_ia64_big_vec):
	Declare.
	(bfd_target_vect): Add bfd_elf64_ia64_little_vec.
	* cpu-ia64-opc.c, cpu-ia64.c, elf64-ia64.c: New files.
	
binutils/
Thu Apr 20 10:38:27 2000  Richard Henderson  <rth@cygnus.com>
			  David Mosberger  <davidm@hpl.hp.com>

	* Makefile.am (readelf.o): Add elf/ia64.h.
	* Makefile.in: Rebuild.
	* readelf.c: Include elf/ia64.h.
	(guess_is_rela, dump_relocations): Handle EM_IA_64.
	
gas/
Thu Apr 20 10:38:27 2000  Richard Henderson  <rth@cygnus.com>
			  David Mosberger  <davidm@hpl.hp.com>
			  Timothy Wall <twall@cygnus.com>
			  Andrew MacLeod  <amacleod@cygnus.com>
			  Jim Wilson  <wilson@cygnus.com>

	* Makefile.am (CPU_TYPES): Add ia64.
	(TARGET_CPU_CFILES): Add cofnig/tc-ia64.c.
	(TARGET_CPU_HFILES): Add config/tc-ia64.h.
	* Makefile.in: Rebuild.
	* app.c (do_scrub_chars): Handle DOUBLESLASH_COMMENTS.
	* configure: Rebuild.
	* configure.in: Recognize ia64 as cpu type.  Set bfd_gas.
	(ia64-*-elf*, ia64-*-linux-gnu*): New targets.
	* expr.c (expr): Handle md_optimize_expr.
	* read.c (LEX_HASH): Add comment.
	* config/tc-ia64.c, config/tc-ia64.h: New files.
	
gas/testsuite/
Thu Apr 20 10:38:27 2000  Richard Henderson  <rth@cygnus.com>
			  David Mosberger  <davidm@hpl.hp.com>
			  Timothy Wall <twall@cygnus.com>
			  Jim Wilson  <wilson@cygnus.com>

	* gas/vtable/vtable.exp: Disable for ia64.
	* gas/testsuite/gas/ia64: New testsuite directory.
	
include/
Thu Apr 20 10:38:27 2000  Richard Henderson  <rth@cygnus.com>
			  David Mosberger  <davidm@hpl.hp.com>

	* dis-asm.h (print_insn_ia64): Declare.

include/elf
Thu Apr 20 10:38:27 2000  Richard Henderson  <rth@cygnus.com>
			  David Mosberger  <davidm@hpl.hp.com>

	* ia64.h: New file.

include/opcode
Thu Apr 20 10:38:27 2000  Richard Henderson  <rth@cygnus.com>
			  David Mosberger  <davidm@hpl.hp.com>
			  Timothy Wall <twall@cygnus.com>
			  Jim Wilson  <wilson@cygnus.com>

	* ia64.h: New file.

ld/
Thu Apr 20 10:38:27 2000  Richard Henderson  <rth@cygnus.com>
			  David Mosberger  <davidm@hpl.hp.com>

	* Makefile.am (ALL_64_EMULATIONS): Add eelf64_ia64.o.
	(eelf64_ia64.c): New rule.
	* Makefile.in: Rebuild.
	* configure.tgt (ia64-*-elf*, ia64-*-linux*): New targets.
	* emulparams/elf64_ia64.sh: New file.
	
opcodes/
Thu Apr 20 10:38:27 2000  Richard Henderson  <rth@cygnus.com>
			  David Mosberger  <davidm@hpl.hp.com>
			  Timothy Wall <twall@cygnus.com>
			  Bob Manson  <manson@charmed.cygnus.com>
			  Jim Wilson  <wilson@cygnus.com>

	* Makefile.am (HFILES): Add ia64-asmtab.h, ia64-opc.h.
	(CFILES): Add ia64-dis.c, ia64-opc-a.c, ia64-opc-b.c, ia64-opc-f.c,
	ia64-opc-i.c, ia64-opc-m.c, ia64-opc-d.c, ia64-opc.c, ia64-gen.c,
	ia64-asmtab.c.
	(ALL_MACHINES): Add ia64-dis.lo, ia64-opc.lo.
	(ia64-ic.tbl, ia64-raw.tbl, ia64-waw.tbl, ia64-war.tbl, ia64-gen,
	ia64-gen.o, ia64-asmtab.c, ia64-dis.lo, ia64-opc.lo): New rules.
	* Makefile.in: Rebuild.
	* configure Rebuild.
	* configure.in (bfd_ia64_arch): New target.
	* disassemble.c (ARCH_ia64): Define.
	(disassembler): Support ARCH_ia64.
	* ia64-asmtab.c, ia64-asmtab.h, ia64-dis.c, ia64-gen.c ia64-ic.tbl,
	ia64-opc-a.c, ia64-opc-b.c, ia64-opc-d.c ia64-opc-f.c, ia64-opc-i.c,
	ia64-opc-m.c, ia64-opc-x.c, ia64-opc.c, ia64-opc.h, ia64-raw.tbl,
	ia64-war.tbl, ia64-waw.tbl): New files.
	
? bfd/cpu-ia64-opc.c
? bfd/cpu-ia64.c
? bfd/elf64-ia64.c
? gas/config/tc-ia64.c
? gas/config/tc-ia64.h
? gas/testsuite/gas/ia64
? include/elf/ia64.h
? include/opcode/ia64.h
? ld/emulparams/elf64_ia64.sh
? opcodes/ia64-asmtab.c
? opcodes/ia64-asmtab.h
? opcodes/ia64-dis.c
? opcodes/ia64-gen.c
? opcodes/ia64-ic.tbl
? opcodes/ia64-opc-a.c
? opcodes/ia64-opc-b.c
? opcodes/ia64-opc-d.c
? opcodes/ia64-opc-f.c
? opcodes/ia64-opc-i.c
? opcodes/ia64-opc-m.c
? opcodes/ia64-opc-x.c
? opcodes/ia64-opc.c
? opcodes/ia64-opc.h
? opcodes/ia64-raw.tbl
? opcodes/ia64-war.tbl
? opcodes/ia64-waw.tbl
Index: bfd/Makefile.am
===================================================================
RCS file: /cvs/src/src/bfd/Makefile.am,v
retrieving revision 1.22
diff -p -r1.22 Makefile.am
*** Makefile.am	2000/04/18 04:03:16	1.22
--- Makefile.am	2000/04/20 17:29:24
*************** ALL_MACHINES = \
*** 51,56 ****
--- 51,57 ----
  	cpu-h8300.lo \
  	cpu-h8500.lo \
  	cpu-hppa.lo \
+ 	cpu-ia64.lo \
  	cpu-i370.lo \
  	cpu-i386.lo \
  	cpu-i860.lo \
*************** ALL_MACHINES_CFILES = \
*** 89,94 ****
--- 90,96 ----
  	cpu-h8300.c \
  	cpu-h8500.c \
  	cpu-hppa.c \
+ 	cpu-ia64.c \
  	cpu-i370.c \
  	cpu-i386.c \
  	cpu-i860.c \
*************** BFD64_BACKENDS = \
*** 388,393 ****
--- 390,396 ----
  	coff-ia64.lo \
  	demo64.lo \
  	elf64-alpha.lo \
+ 	elf64-ia64.lo \
  	elf64-gen.lo \
  	elf64-mips.lo \
  	elf64-sparc.lo \
*************** BFD64_BACKENDS_CFILES = \
*** 401,406 ****
--- 404,410 ----
  	coff-ia64.c \
  	demo64.c \
  	elf64-alpha.c \
+ 	elf64-ia64.c \
  	elf64-gen.c \
  	elf64-mips.c \
  	elf64-sparc.c \
*************** config.status: $(srcdir)/configure $(src
*** 654,659 ****
--- 658,668 ----
  	$(SHELL) ./config.status --recheck
  
  
+ cpu-ia64.lo: cpu-ia64.c cpu-ia64-opc.c $(srcdir)/../opcodes/ia64-opc.h
+ elf64-ia64.lo: elf64-ia64.c elf-bfd.h $(INCDIR)/opcode/ia64.h \
+   $(INCDIR)/elf/ia64.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
+   $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/reloc-macros.h \
+   elf64-target.h
  elfarm-oabi.lo: elfarm-oabi.c elf32-arm.h elf-bfd.h $(INCDIR)/elf/common.h \
    $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
    $(INCDIR)/elf/arm.h $(INCDIR)/elf/reloc-macros.h elf32-target.h
Index: bfd/Makefile.in
===================================================================
RCS file: /cvs/src/src/bfd/Makefile.in,v
retrieving revision 1.24
diff -p -r1.24 Makefile.in
*** Makefile.in	2000/04/18 04:03:16	1.24
--- Makefile.in	2000/04/20 17:29:24
*************** ALL_MACHINES = \
*** 166,171 ****
--- 166,172 ----
  	cpu-h8300.lo \
  	cpu-h8500.lo \
  	cpu-hppa.lo \
+ 	cpu-ia64.lo \
  	cpu-i370.lo \
  	cpu-i386.lo \
  	cpu-i860.lo \
*************** ALL_MACHINES_CFILES = \
*** 205,210 ****
--- 206,212 ----
  	cpu-h8300.c \
  	cpu-h8500.c \
  	cpu-hppa.c \
+ 	cpu-ia64.c \
  	cpu-i370.c \
  	cpu-i386.c \
  	cpu-i860.c \
*************** BFD64_BACKENDS = \
*** 507,512 ****
--- 509,515 ----
  	coff-ia64.lo \
  	demo64.lo \
  	elf64-alpha.lo \
+ 	elf64-ia64.lo \
  	elf64-gen.lo \
  	elf64-mips.lo \
  	elf64-sparc.lo \
*************** BFD64_BACKENDS_CFILES = \
*** 521,526 ****
--- 524,530 ----
  	coff-ia64.c \
  	demo64.c \
  	elf64-alpha.c \
+ 	elf64-ia64.c \
  	elf64-gen.c \
  	elf64-mips.c \
  	elf64-sparc.c \
*************** stmp-lcoff-h: $(LIBCOFF_H_FILES)
*** 1182,1187 ****
--- 1186,1196 ----
  config.status: $(srcdir)/configure $(srcdir)/config.bfd $(srcdir)/configure.host
  	$(SHELL) ./config.status --recheck
  
+ cpu-ia64.lo: cpu-ia64.c cpu-ia64-opc.c $(srcdir)/../opcodes/ia64-opc.h
+ elf64-ia64.lo: elf64-ia64.c elf-bfd.h $(INCDIR)/opcode/ia64.h \
+   $(INCDIR)/elf/ia64.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \
+   $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(INCDIR)/elf/reloc-macros.h \
+   elf64-target.h
  elfarm-oabi.lo: elfarm-oabi.c elf32-arm.h elf-bfd.h $(INCDIR)/elf/common.h \
    $(INCDIR)/elf/internal.h $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h \
    $(INCDIR)/elf/arm.h $(INCDIR)/elf/reloc-macros.h elf32-target.h
Index: bfd/archures.c
===================================================================
RCS file: /cvs/src/src/bfd/archures.c,v
retrieving revision 1.12
diff -p -r1.12 archures.c
*** archures.c	2000/04/07 17:06:57	1.12
--- archures.c	2000/04/20 17:29:24
*************** DESCRIPTION
*** 199,204 ****
--- 199,205 ----
  .  bfd_arch_fr30,
  .#define bfd_mach_fr30		0x46523330
  .  bfd_arch_mcore,
+ .  bfd_arch_ia64,      {* HP/Intel ia64 *}
  .  bfd_arch_pj,
  .  bfd_arch_avr,       {* Atmel AVR microcontrollers *}
  .#define bfd_mach_avr1		1
*************** extern const bfd_arch_info_type bfd_v850
*** 279,284 ****
--- 280,286 ----
  extern const bfd_arch_info_type bfd_fr30_arch;
  extern const bfd_arch_info_type bfd_mcore_arch;
  extern const bfd_arch_info_type bfd_avr_arch;
+ extern const bfd_arch_info_type bfd_ia64_arch;
  
  static const bfd_arch_info_type * const bfd_archures_list[] =
  {
*************** static const bfd_arch_info_type * const 
*** 320,325 ****
--- 322,328 ----
    &bfd_fr30_arch,
    &bfd_mcore_arch,
    &bfd_avr_arch,
+   &bfd_ia64_arch,
  #endif
    0
  };
Index: bfd/bfd-in2.h
===================================================================
RCS file: /cvs/src/src/bfd/bfd-in2.h,v
retrieving revision 1.40
diff -p -r1.40 bfd-in2.h
*** bfd-in2.h	2000/04/08 00:10:49	1.40
--- bfd-in2.h	2000/04/20 17:29:24
*************** enum bfd_architecture 
*** 1425,1430 ****
--- 1425,1431 ----
    bfd_arch_fr30,
  #define bfd_mach_fr30          0x46523330
    bfd_arch_mcore,
+   bfd_arch_ia64,       /* HP/Intel ia64 */
    bfd_arch_pj,
    bfd_arch_avr,        /* Atmel AVR microcontrollers */
  #define bfd_mach_avr1          1
*************** is stored in the reloc's addend.  For Re
*** 2441,2446 ****
--- 2442,2512 ----
  this offset in the reloc's section offset. */
    BFD_RELOC_VTABLE_INHERIT,
    BFD_RELOC_VTABLE_ENTRY,
+ 
+ /* Intel IA64 Relocations. */
+   BFD_RELOC_IA64_IMM14,
+   BFD_RELOC_IA64_IMM22,
+   BFD_RELOC_IA64_IMM64,
+   BFD_RELOC_IA64_DIR32MSB,
+   BFD_RELOC_IA64_DIR32LSB,
+   BFD_RELOC_IA64_DIR64MSB,
+   BFD_RELOC_IA64_DIR64LSB,
+   BFD_RELOC_IA64_GPREL22,
+   BFD_RELOC_IA64_GPREL64I,
+   BFD_RELOC_IA64_GPREL32MSB,
+   BFD_RELOC_IA64_GPREL32LSB,
+   BFD_RELOC_IA64_GPREL64MSB,
+   BFD_RELOC_IA64_GPREL64LSB,
+   BFD_RELOC_IA64_LTOFF22,
+   BFD_RELOC_IA64_LTOFF64I,
+   BFD_RELOC_IA64_PLTOFF22,
+   BFD_RELOC_IA64_PLTOFF64I,
+   BFD_RELOC_IA64_PLTOFF64MSB,
+   BFD_RELOC_IA64_PLTOFF64LSB,
+   BFD_RELOC_IA64_FPTR64I,
+   BFD_RELOC_IA64_FPTR32MSB,
+   BFD_RELOC_IA64_FPTR32LSB,
+   BFD_RELOC_IA64_FPTR64MSB,
+   BFD_RELOC_IA64_FPTR64LSB,
+   BFD_RELOC_IA64_PCREL21B,
+   BFD_RELOC_IA64_PCREL21M,
+   BFD_RELOC_IA64_PCREL21F,
+   BFD_RELOC_IA64_PCREL32MSB,
+   BFD_RELOC_IA64_PCREL32LSB,
+   BFD_RELOC_IA64_PCREL64MSB,
+   BFD_RELOC_IA64_PCREL64LSB,
+   BFD_RELOC_IA64_LTOFF_FPTR22,
+   BFD_RELOC_IA64_LTOFF_FPTR64I,
+   BFD_RELOC_IA64_LTOFF_FPTR64MSB,
+   BFD_RELOC_IA64_LTOFF_FPTR64LSB,
+   BFD_RELOC_IA64_SEGBASE,
+   BFD_RELOC_IA64_SEGREL32MSB,
+   BFD_RELOC_IA64_SEGREL32LSB,
+   BFD_RELOC_IA64_SEGREL64MSB,
+   BFD_RELOC_IA64_SEGREL64LSB,
+   BFD_RELOC_IA64_SECREL32MSB,
+   BFD_RELOC_IA64_SECREL32LSB,
+   BFD_RELOC_IA64_SECREL64MSB,
+   BFD_RELOC_IA64_SECREL64LSB,
+   BFD_RELOC_IA64_REL32MSB,
+   BFD_RELOC_IA64_REL32LSB,
+   BFD_RELOC_IA64_REL64MSB,
+   BFD_RELOC_IA64_REL64LSB,
+   BFD_RELOC_IA64_LTV32MSB,
+   BFD_RELOC_IA64_LTV32LSB,
+   BFD_RELOC_IA64_LTV64MSB,
+   BFD_RELOC_IA64_LTV64LSB,
+   BFD_RELOC_IA64_IPLTMSB,
+   BFD_RELOC_IA64_IPLTLSB,
+   BFD_RELOC_IA64_EPLTMSB,
+   BFD_RELOC_IA64_EPLTLSB,
+   BFD_RELOC_IA64_COPY,
+   BFD_RELOC_IA64_TPREL22,
+   BFD_RELOC_IA64_TPREL64MSB,
+   BFD_RELOC_IA64_TPREL64LSB,
+   BFD_RELOC_IA64_LTOFF_TP22,
+   BFD_RELOC_IA64_LTOFF22X,
+   BFD_RELOC_IA64_LDXMOV,
    BFD_RELOC_UNUSED };
  typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
  reloc_howto_type *
Index: bfd/config.bfd
===================================================================
RCS file: /cvs/src/src/bfd/config.bfd,v
retrieving revision 1.24
diff -p -r1.24 config.bfd
*** config.bfd	2000/04/18 04:03:16	1.24
--- config.bfd	2000/04/20 17:29:24
*************** case "${targ}" in
*** 80,85 ****
--- 80,89 ----
    alpha*-*-*)
      targ_defvec=ecoffalpha_little_vec
      ;;
+   ia64*-*-linux-gnu* | ia64*-*-elf*)
+     targ_defvec=bfd_elf64_ia64_little_vec
+     targ_selvecs="bfd_elf64_ia64_big_vec bfd_efi_app_ia64_vec"
+     ;;
  #endif /* BFD64 */
  
    arc-*-elf*)
Index: bfd/configure
===================================================================
RCS file: /cvs/src/src/bfd/configure,v
retrieving revision 1.24
diff -p -r1.24 configure
*** configure	2000/04/18 04:03:16	1.24
--- configure	2000/04/20 17:29:25
*************** do
*** 5112,5117 ****
--- 5112,5124 ----
    				target64=true ;;
      bfd_elf64_alpha_vec)	tb="$tb elf64-alpha.lo elf64.lo $elf"
  				target64=true ;;
+     bfd_elf64_ia64_little_vec)	tb="$tb elf64-ia64.lo elf64.lo $elf"
+ 				target64=true ;;
+     bfd_elf64_ia64_big_vec)	tb="$tb elf64-ia64.lo elf64.lo $elf"
+ 				target64=true ;;
+     bfd_efi_app_ia32_vec)	tb="$tb efi-app-ia32.lo cofflink.lo" ;;
+     bfd_efi_app_ia64_vec)	tb="$tb efi-app-ia64.lo cofflink.lo"
+ 				target64=true ;;
      bfd_elf32_avr_vec)		tb="$tb elf32-avr.lo elf32.lo $elf" ;;
      bfd_elf32_littlearc_vec)	tb="$tb elf32-arc.lo elf32.lo $elf" ;;
      bfd_elf32_littlearm_vec)	tb="$tb elfarm-nabi.lo elf32.lo $elf" ;;
Index: bfd/configure.host
===================================================================
RCS file: /cvs/src/src/bfd/configure.host,v
retrieving revision 1.2
diff -p -r1.2 configure.host
*** configure.host	1999/05/27 22:48:52	1.2
--- configure.host	2000/04/20 17:29:25
*************** hppa*-*-mpeix*)		HDEFINES=-DHOST_HPPAMPE
*** 27,32 ****
--- 27,34 ----
  hppa*-*-bsd*)		HDEFINES=-DHOST_HPPABSD ;;
  hppa*-*-osf*)		HDEFINES=-DHOST_HPPAOSF ;;
  
+ ia64-*-linux*)		host64=true; HOST_64BIT_TYPE=long ;;
+ 
  i[3456]86-sequent-bsd*)	HDEFINES=-Dshared=genshared ;;
  i[3456]86-sequent-sysv4*) ;;
  i[3456]86-sequent-sysv*)	HDEFINES=-Dshared=genshared ;;
Index: bfd/configure.in
===================================================================
RCS file: /cvs/src/src/bfd/configure.in,v
retrieving revision 1.19
diff -p -r1.19 configure.in
*** configure.in	2000/04/18 04:03:16	1.19
--- configure.in	2000/04/20 17:29:25
*************** do
*** 469,474 ****
--- 469,481 ----
    				target64=true ;;
      bfd_elf64_alpha_vec)	tb="$tb elf64-alpha.lo elf64.lo $elf"
  				target64=true ;;
+     bfd_elf64_ia64_little_vec)	tb="$tb elf64-ia64.lo elf64.lo $elf"
+ 				target64=true ;;
+     bfd_elf64_ia64_big_vec)	tb="$tb elf64-ia64.lo elf64.lo $elf"
+ 				target64=true ;;
+     bfd_efi_app_ia32_vec)	tb="$tb efi-app-ia32.lo cofflink.lo" ;;
+     bfd_efi_app_ia64_vec)	tb="$tb efi-app-ia64.lo cofflink.lo"
+ 				target64=true ;;
      bfd_elf32_avr_vec)		tb="$tb elf32-avr.lo elf32.lo $elf" ;;
      bfd_elf32_littlearc_vec)	tb="$tb elf32-arc.lo elf32.lo $elf" ;;
      bfd_elf32_littlearm_vec)	tb="$tb elfarm-nabi.lo elf32.lo $elf" ;;
Index: bfd/elf.c
===================================================================
RCS file: /cvs/src/src/bfd/elf.c,v
retrieving revision 1.27
diff -p -r1.27 elf.c
*** elf.c	2000/03/27 08:39:12	1.27
--- elf.c	2000/04/20 17:29:25
*************** prep_headers (abfd)
*** 3237,3242 ****
--- 3237,3245 ----
      case bfd_arch_i386:
        i_ehdrp->e_machine = EM_386;
        break;
+     case bfd_arch_ia64:
+       i_ehdrp->e_machine = EM_IA_64;
+       break;
      case bfd_arch_m68k:
        i_ehdrp->e_machine = EM_68K;
        break;
Index: bfd/libbfd.h
===================================================================
RCS file: /cvs/src/src/bfd/libbfd.h,v
retrieving revision 1.17
diff -p -r1.17 libbfd.h
*** libbfd.h	2000/04/08 00:10:49	1.17
--- libbfd.h	2000/04/20 17:29:25
*************** static const char *const bfd_reloc_code_
*** 898,903 ****
--- 898,966 ----
    "BFD_RELOC_AVR_CALL",
    "BFD_RELOC_VTABLE_INHERIT",
    "BFD_RELOC_VTABLE_ENTRY",
+   "BFD_RELOC_IA64_IMM14",
+   "BFD_RELOC_IA64_IMM22",
+   "BFD_RELOC_IA64_IMM64",
+   "BFD_RELOC_IA64_DIR32MSB",
+   "BFD_RELOC_IA64_DIR32LSB",
+   "BFD_RELOC_IA64_DIR64MSB",
+   "BFD_RELOC_IA64_DIR64LSB",
+   "BFD_RELOC_IA64_GPREL22",
+   "BFD_RELOC_IA64_GPREL64I",
+   "BFD_RELOC_IA64_GPREL32MSB",
+   "BFD_RELOC_IA64_GPREL32LSB",
+   "BFD_RELOC_IA64_GPREL64MSB",
+   "BFD_RELOC_IA64_GPREL64LSB",
+   "BFD_RELOC_IA64_LTOFF22",
+   "BFD_RELOC_IA64_LTOFF64I",
+   "BFD_RELOC_IA64_PLTOFF22",
+   "BFD_RELOC_IA64_PLTOFF64I",
+   "BFD_RELOC_IA64_PLTOFF64MSB",
+   "BFD_RELOC_IA64_PLTOFF64LSB",
+   "BFD_RELOC_IA64_FPTR64I",
+   "BFD_RELOC_IA64_FPTR32MSB",
+   "BFD_RELOC_IA64_FPTR32LSB",
+   "BFD_RELOC_IA64_FPTR64MSB",
+   "BFD_RELOC_IA64_FPTR64LSB",
+   "BFD_RELOC_IA64_PCREL21B",
+   "BFD_RELOC_IA64_PCREL21M",
+   "BFD_RELOC_IA64_PCREL21F",
+   "BFD_RELOC_IA64_PCREL32MSB",
+   "BFD_RELOC_IA64_PCREL32LSB",
+   "BFD_RELOC_IA64_PCREL64MSB",
+   "BFD_RELOC_IA64_PCREL64LSB",
+   "BFD_RELOC_IA64_LTOFF_FPTR22",
+   "BFD_RELOC_IA64_LTOFF_FPTR64I",
+   "BFD_RELOC_IA64_LTOFF_FPTR64MSB",
+   "BFD_RELOC_IA64_LTOFF_FPTR64LSB",
+   "BFD_RELOC_IA64_SEGBASE",
+   "BFD_RELOC_IA64_SEGREL32MSB",
+   "BFD_RELOC_IA64_SEGREL32LSB",
+   "BFD_RELOC_IA64_SEGREL64MSB",
+   "BFD_RELOC_IA64_SEGREL64LSB",
+   "BFD_RELOC_IA64_SECREL32MSB",
+   "BFD_RELOC_IA64_SECREL32LSB",
+   "BFD_RELOC_IA64_SECREL64MSB",
+   "BFD_RELOC_IA64_SECREL64LSB",
+   "BFD_RELOC_IA64_REL32MSB",
+   "BFD_RELOC_IA64_REL32LSB",
+   "BFD_RELOC_IA64_REL64MSB",
+   "BFD_RELOC_IA64_REL64LSB",
+   "BFD_RELOC_IA64_LTV32MSB",
+   "BFD_RELOC_IA64_LTV32LSB",
+   "BFD_RELOC_IA64_LTV64MSB",
+   "BFD_RELOC_IA64_LTV64LSB",
+   "BFD_RELOC_IA64_IPLTMSB",
+   "BFD_RELOC_IA64_IPLTLSB",
+   "BFD_RELOC_IA64_EPLTMSB",
+   "BFD_RELOC_IA64_EPLTLSB",
+   "BFD_RELOC_IA64_COPY",
+   "BFD_RELOC_IA64_TPREL22",
+   "BFD_RELOC_IA64_TPREL64MSB",
+   "BFD_RELOC_IA64_TPREL64LSB",
+   "BFD_RELOC_IA64_LTOFF_TP22",
+   "BFD_RELOC_IA64_LTOFF22X",
+   "BFD_RELOC_IA64_LDXMOV",
   "@@overflow: BFD_RELOC_UNUSED@@",
  };
  #endif
Index: bfd/reloc.c
===================================================================
RCS file: /cvs/src/src/bfd/reloc.c,v
retrieving revision 1.20
diff -p -r1.20 reloc.c
*** reloc.c	2000/04/11 23:01:50	1.20
--- reloc.c	2000/04/20 17:29:25
*************** ENUMDOC
*** 2749,2754 ****
--- 2749,2882 ----
    is stored in the reloc's addend.  For Rel hosts, we are forced to put
    this offset in the reloc's section offset.
  
+ ENUM
+   BFD_RELOC_IA64_IMM14
+ ENUMX
+   BFD_RELOC_IA64_IMM22
+ ENUMX
+   BFD_RELOC_IA64_IMM64
+ ENUMX
+   BFD_RELOC_IA64_DIR32MSB
+ ENUMX
+   BFD_RELOC_IA64_DIR32LSB
+ ENUMX
+   BFD_RELOC_IA64_DIR64MSB
+ ENUMX
+   BFD_RELOC_IA64_DIR64LSB
+ ENUMX
+   BFD_RELOC_IA64_GPREL22
+ ENUMX
+   BFD_RELOC_IA64_GPREL64I
+ ENUMX
+   BFD_RELOC_IA64_GPREL32MSB
+ ENUMX
+   BFD_RELOC_IA64_GPREL32LSB
+ ENUMX
+   BFD_RELOC_IA64_GPREL64MSB
+ ENUMX
+   BFD_RELOC_IA64_GPREL64LSB
+ ENUMX
+   BFD_RELOC_IA64_LTOFF22
+ ENUMX
+   BFD_RELOC_IA64_LTOFF64I
+ ENUMX
+   BFD_RELOC_IA64_PLTOFF22
+ ENUMX
+   BFD_RELOC_IA64_PLTOFF64I
+ ENUMX
+   BFD_RELOC_IA64_PLTOFF64MSB
+ ENUMX
+   BFD_RELOC_IA64_PLTOFF64LSB
+ ENUMX
+   BFD_RELOC_IA64_FPTR64I
+ ENUMX
+   BFD_RELOC_IA64_FPTR32MSB
+ ENUMX
+   BFD_RELOC_IA64_FPTR32LSB
+ ENUMX
+   BFD_RELOC_IA64_FPTR64MSB
+ ENUMX
+   BFD_RELOC_IA64_FPTR64LSB
+ ENUMX
+   BFD_RELOC_IA64_PCREL21B
+ ENUMX
+   BFD_RELOC_IA64_PCREL21M
+ ENUMX
+   BFD_RELOC_IA64_PCREL21F
+ ENUMX
+   BFD_RELOC_IA64_PCREL32MSB
+ ENUMX
+   BFD_RELOC_IA64_PCREL32LSB
+ ENUMX
+   BFD_RELOC_IA64_PCREL64MSB
+ ENUMX
+   BFD_RELOC_IA64_PCREL64LSB
+ ENUMX
+   BFD_RELOC_IA64_LTOFF_FPTR22
+ ENUMX
+   BFD_RELOC_IA64_LTOFF_FPTR64I
+ ENUMX
+   BFD_RELOC_IA64_LTOFF_FPTR64MSB
+ ENUMX
+   BFD_RELOC_IA64_LTOFF_FPTR64LSB
+ ENUMX
+   BFD_RELOC_IA64_SEGBASE
+ ENUMX
+   BFD_RELOC_IA64_SEGREL32MSB
+ ENUMX
+   BFD_RELOC_IA64_SEGREL32LSB
+ ENUMX
+   BFD_RELOC_IA64_SEGREL64MSB
+ ENUMX
+   BFD_RELOC_IA64_SEGREL64LSB
+ ENUMX
+   BFD_RELOC_IA64_SECREL32MSB
+ ENUMX
+   BFD_RELOC_IA64_SECREL32LSB
+ ENUMX
+   BFD_RELOC_IA64_SECREL64MSB
+ ENUMX
+   BFD_RELOC_IA64_SECREL64LSB
+ ENUMX
+   BFD_RELOC_IA64_REL32MSB
+ ENUMX
+   BFD_RELOC_IA64_REL32LSB
+ ENUMX
+   BFD_RELOC_IA64_REL64MSB
+ ENUMX
+   BFD_RELOC_IA64_REL64LSB
+ ENUMX
+   BFD_RELOC_IA64_LTV32MSB
+ ENUMX
+   BFD_RELOC_IA64_LTV32LSB
+ ENUMX
+   BFD_RELOC_IA64_LTV64MSB
+ ENUMX
+   BFD_RELOC_IA64_LTV64LSB
+ ENUMX
+   BFD_RELOC_IA64_IPLTMSB
+ ENUMX
+   BFD_RELOC_IA64_IPLTLSB
+ ENUMX
+   BFD_RELOC_IA64_EPLTMSB
+ ENUMX
+   BFD_RELOC_IA64_EPLTLSB
+ ENUMX
+   BFD_RELOC_IA64_COPY
+ ENUMX
+   BFD_RELOC_IA64_TPREL22
+ ENUMX
+   BFD_RELOC_IA64_TPREL64MSB
+ ENUMX
+   BFD_RELOC_IA64_TPREL64LSB
+ ENUMX
+   BFD_RELOC_IA64_LTOFF_TP22
+ ENUMX
+   BFD_RELOC_IA64_LTOFF22X
+ ENUMX
+   BFD_RELOC_IA64_LDXMOV
+ ENUMDOC
+   Intel IA64 Relocations.
  ENDSENUM
    BFD_RELOC_UNUSED
  CODE_FRAGMENT
Index: bfd/targets.c
===================================================================
RCS file: /cvs/src/src/bfd/targets.c,v
retrieving revision 1.16
diff -p -r1.16 targets.c
*** targets.c	2000/04/18 04:03:16	1.16
--- targets.c	2000/04/20 17:29:25
*************** extern const bfd_target b_out_vec_little
*** 508,513 ****
--- 508,515 ----
  extern const bfd_target bfd_efi_app_ia32_vec;
  extern const bfd_target bfd_efi_app_ia64_vec;
  extern const bfd_target bfd_elf64_alpha_vec;
+ extern const bfd_target bfd_elf64_ia64_little_vec;
+ extern const bfd_target bfd_elf64_ia64_big_vec;
  extern const bfd_target bfd_elf32_avr_vec;
  extern const bfd_target bfd_elf32_bigarc_vec;
  extern const bfd_target bfd_elf32_bigarm_vec;
*************** const bfd_target * const bfd_target_vect
*** 703,708 ****
--- 705,712 ----
  	&bfd_elf32_big_generic_vec,
  #ifdef BFD64
  	&bfd_elf64_alpha_vec,
+ 	&bfd_elf64_ia64_little_vec,
+ 	&bfd_elf64_ia64_big_vec,
  #endif
  	&bfd_elf32_avr_vec,
  	&bfd_elf32_bigarc_vec,
Index: binutils/Makefile.am
===================================================================
RCS file: /cvs/src/src/binutils/Makefile.am,v
retrieving revision 1.11
diff -p -r1.11 Makefile.am
*** Makefile.am	2000/04/09 12:17:38	1.11
--- Makefile.am	2000/04/20 17:29:25
*************** readelf.o: readelf.c ../bfd/bfd.h $(INCD
*** 481,486 ****
--- 481,487 ----
    $(INCDIR)/elf/sparc.h $(INCDIR)/elf/m32r.h $(INCDIR)/elf/d10v.h \
    $(INCDIR)/elf/d30v.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/mn10200.h \
    $(INCDIR)/elf/mn10300.h $(INCDIR)/elf/hppa.h $(INCDIR)/elf/arc.h \
+   $(INCDIR)/elf/ia64.h \
    $(INCDIR)/elf/fr30.h $(INCDIR)/elf/mcore.h $(INCDIR)/elf/i960.h \
    $(INCDIR)/elf/pj.h $(INCDIR)/elf/avr.h bucomm.h config.h \
    $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h
Index: binutils/Makefile.in
===================================================================
RCS file: /cvs/src/src/binutils/Makefile.in,v
retrieving revision 1.13
diff -p -r1.13 Makefile.in
*** Makefile.in	2000/04/09 12:17:39	1.13
--- Makefile.in	2000/04/20 17:29:25
*************** readelf.o: readelf.c ../bfd/bfd.h $(INCD
*** 1337,1342 ****
--- 1337,1343 ----
    $(INCDIR)/elf/sparc.h $(INCDIR)/elf/m32r.h $(INCDIR)/elf/d10v.h \
    $(INCDIR)/elf/d30v.h $(INCDIR)/elf/sh.h $(INCDIR)/elf/mn10200.h \
    $(INCDIR)/elf/mn10300.h $(INCDIR)/elf/hppa.h $(INCDIR)/elf/arc.h \
+   $(INCDIR)/elf/ia64.h \
    $(INCDIR)/elf/fr30.h $(INCDIR)/elf/mcore.h $(INCDIR)/elf/i960.h \
    $(INCDIR)/elf/pj.h $(INCDIR)/elf/avr.h bucomm.h config.h \
    $(INCDIR)/bin-bugs.h $(INCDIR)/fopen-same.h
Index: binutils/readelf.c
===================================================================
RCS file: /cvs/src/src/binutils/readelf.c,v
retrieving revision 1.56
diff -p -r1.56 readelf.c
*** readelf.c	2000/04/14 04:14:24	1.56
--- readelf.c	2000/04/20 17:29:26
***************
*** 70,75 ****
--- 70,76 ----
  #include "elf/i960.h"
  #include "elf/pj.h"
  #include "elf/avr.h"
+ #include "elf/ia64.h"
  
  #include "bucomm.h"
  #include "getopt.h"
*************** guess_is_rela (e_machine)
*** 562,567 ****
--- 563,569 ----
      case EM_SH:
      case EM_ALPHA:
      case EM_MCORE:
+     case EM_IA_64:
        return TRUE;
  
      case EM_MMA:
*************** dump_relocations (file, rel_offset, rel_
*** 872,877 ****
--- 874,882 ----
  
  	case EM_PJ:
  	  rtype = elf_pj_reloc_type (type);
+ 	  break;
+ 	case EM_IA_64:
+ 	  rtype = elf_ia64_reloc_type (type);
  	  break;
  	}
  
Index: gas/Makefile.am
===================================================================
RCS file: /cvs/src/src/gas/Makefile.am,v
retrieving revision 1.16
diff -p -r1.16 Makefile.am
*** Makefile.am	2000/04/09 20:25:17	1.16
--- Makefile.am	2000/04/20 17:29:26
*************** CPU_TYPES = \
*** 48,53 ****
--- 48,54 ----
  	h8300 \
  	h8500 \
  	hppa \
+ 	ia64 \
  	i370 \
  	i386 \
  	i860 \
*************** TARGET_CPU_CFILES = \
*** 207,212 ****
--- 208,214 ----
  	config/tc-h8300.c \
  	config/tc-h8500.c \
  	config/tc-hppa.c \
+ 	config/tc-ia64.c \
  	config/tc-i370.c \
  	config/tc-i386.c \
  	config/tc-i860.c \
*************** TARGET_CPU_HFILES = \
*** 243,248 ****
--- 245,251 ----
  	config/tc-h8300.h \
  	config/tc-h8500.h \
  	config/tc-hppa.h \
+ 	config/tc-ia64.h \
  	config/tc-i370.h \
  	config/tc-i386.h \
  	config/tc-i860.h \
Index: gas/Makefile.in
===================================================================
RCS file: /cvs/src/src/gas/Makefile.in,v
retrieving revision 1.18
diff -p -r1.18 Makefile.in
*** Makefile.in	2000/04/09 12:17:40	1.18
--- Makefile.in	2000/04/20 17:29:26
*************** CPU_TYPES = \
*** 151,156 ****
--- 151,157 ----
  	h8300 \
  	h8500 \
  	hppa \
+ 	ia64 \
  	i370 \
  	i386 \
  	i860 \
*************** TARGET_CPU_CFILES = \
*** 315,320 ****
--- 316,322 ----
  	config/tc-h8300.c \
  	config/tc-h8500.c \
  	config/tc-hppa.c \
+ 	config/tc-ia64.c \
  	config/tc-i370.c \
  	config/tc-i386.c \
  	config/tc-i860.c \
*************** TARGET_CPU_HFILES = \
*** 351,356 ****
--- 353,359 ----
  	config/tc-h8300.h \
  	config/tc-h8500.h \
  	config/tc-hppa.h \
+ 	config/tc-ia64.h \
  	config/tc-i370.h \
  	config/tc-i386.h \
  	config/tc-i860.h \
Index: gas/app.c
===================================================================
RCS file: /cvs/src/src/gas/app.c,v
retrieving revision 1.8
diff -p -r1.8 app.c
*** app.c	2000/04/02 06:27:50	1.8
--- app.c	2000/04/20 17:29:26
*************** do_scrub_chars (get, tostart, tolen)
*** 913,918 ****
--- 913,933 ----
  	      ch = ' ';
  	      goto recycle;
  	    }
+ #ifdef DOUBLESLASH_LINE_COMMENTS
+ 	  else if (ch2 == '/')
+ 	    {
+ 	      do
+ 		{
+ 		  ch = GET ();
+ 		}
+ 	      while (ch != EOF && !IS_NEWLINE (ch));
+ 	      if (ch == EOF)
+ 		as_warn ("end of file in comment; newline inserted");
+ 	      state = 0;
+ 	      PUT ('\n');
+ 	      break;
+ 	    }
+ #endif
  	  else
  	    {
  	      if (ch2 != EOF)
Index: gas/configure
===================================================================
RCS file: /cvs/src/src/gas/configure,v
retrieving revision 1.23
diff -p -r1.23 configure
*** configure	2000/04/09 12:17:40	1.23
--- configure	2000/04/20 17:29:26
*************** for this_target in $target $canon_target
*** 1659,1664 ****
--- 1659,1665 ----
        thumb*)		cpu_type=arm endian=little ;;
        hppa*)		cpu_type=hppa ;;
        i[456]86)		cpu_type=i386 ;;
+       ia64)		cpu_type=ia64 ;;
        m680[012346]0)	cpu_type=m68k ;;
        m68008)		cpu_type=m68k ;;
        m683??)		cpu_type=m68k ;;
*************** EOF
*** 1797,1802 ****
--- 1798,1806 ----
        i960-*-vxworks*)      fmt=bout ;;
        i960-*-elf*)	    fmt=elf ;;
  
+       ia64-*-elf*)	    fmt=elf ;;
+       ia64-*-linux-gnu*)    fmt=elf em=linux ;;
+ 
        m32r-*-*)		    fmt=elf bfd_gas=yes ;;
  
        m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
*************** EOF
*** 1963,1968 ****
--- 1967,1973 ----
        arm-*)	bfd_gas=yes ;;
      # not yet
      # i386-aout)	bfd_gas=preferred ;;
+       ia64*-*)	bfd_gas=yes ;;
        mips-*)	bfd_gas=yes ;;
        ns32k-*)	bfd_gas=yes ;;
        ppc-*)	bfd_gas=yes ;;
Index: gas/configure.in
===================================================================
RCS file: /cvs/src/src/gas/configure.in,v
retrieving revision 1.20
diff -p -r1.20 configure.in
*** configure.in	2000/04/09 12:17:40	1.20
--- configure.in	2000/04/20 17:29:26
*************** changequote([,])dnl
*** 121,126 ****
--- 121,127 ----
        hppa*)		cpu_type=hppa ;;
  changequote(,)dnl
        i[456]86)		cpu_type=i386 ;;
+       ia64)		cpu_type=ia64 ;;
        m680[012346]0)	cpu_type=m68k ;;
  changequote([,])dnl
        m68008)		cpu_type=m68k ;;
*************** changequote([,])dnl
*** 258,263 ****
--- 259,267 ----
        i960-*-vxworks*)      fmt=bout ;;
        i960-*-elf*)	    fmt=elf ;;
  
+       ia64-*-elf*)	    fmt=elf ;;
+       ia64-*-linux-gnu*)    fmt=elf em=linux ;;
+ 
        m32r-*-*)		    fmt=elf bfd_gas=yes ;;
  
        m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
*************** changequote([,])dnl
*** 418,423 ****
--- 422,428 ----
        arm-*)	bfd_gas=yes ;;
      # not yet
      # i386-aout)	bfd_gas=preferred ;;
+       ia64*-*)	bfd_gas=yes ;;
        mips-*)	bfd_gas=yes ;;
        ns32k-*)	bfd_gas=yes ;;
        ppc-*)	bfd_gas=yes ;;
Index: gas/expr.c
===================================================================
RCS file: /cvs/src/src/gas/expr.c,v
retrieving revision 1.14
diff -p -r1.14 expr.c
*** expr.c	2000/03/13 21:20:15	1.14
--- expr.c	2000/04/20 17:29:26
*************** expr (rankarg, resultP)
*** 1744,1749 ****
--- 1744,1756 ----
  	}
  
        /* Optimize common cases.  */
+ #ifdef md_optimize_expr
+       if (md_optimize_expr (resultP, op_left, &right))
+ 	{
+ 	  /* skip */;
+ 	}
+       else
+ #endif
        if (op_left == O_add && right.X_op == O_constant)
  	{
  	  /* X + constant.  */
Index: gas/read.c
===================================================================
RCS file: /cvs/src/src/gas/read.c,v
retrieving revision 1.18
diff -p -r1.18 read.c
*** read.c	2000/03/26 14:47:33	1.18
--- read.c	2000/04/20 17:29:27
*************** die horribly;
*** 105,110 ****
--- 105,112 ----
  #endif
  
  #ifndef LEX_HASH
+ /* The IA-64 assembler uses # as a suffix designating a symbol.  We include
+    it in the symbol and strip it out in tc_canonicalize_symbol_name.  */
  #define LEX_HASH 0
  #endif
  
Index: gas/testsuite/gas/vtable/vtable.exp
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/vtable/vtable.exp,v
retrieving revision 1.5
diff -p -r1.5 vtable.exp
*** vtable.exp	1999/09/02 10:11:11	1.5
--- vtable.exp	2000/04/20 17:29:28
*************** if { ([istarget "*-*-elf*"]		
*** 20,25 ****
--- 20,29 ----
       && ![istarget *-*-linux*aout*]
       && ![istarget *-*-linux*oldld*] } then {
  
+     if {[istarget "ia64-*"]} then {
+       return
+     }
+   
      # not supported by D30V
      if {[istarget "d30v-*-*"]} {
        return
Index: include/dis-asm.h
===================================================================
RCS file: /cvs/src/src/include/dis-asm.h,v
retrieving revision 1.12
diff -p -r1.12 dis-asm.h
*** dis-asm.h	2000/03/27 08:39:13	1.12
--- dis-asm.h	2000/04/20 17:29:28
*************** extern int print_insn_big_mips		PARAMS (
*** 157,162 ****
--- 157,163 ----
  extern int print_insn_little_mips	PARAMS ((bfd_vma, disassemble_info*));
  extern int print_insn_i386_att		PARAMS ((bfd_vma, disassemble_info*));
  extern int print_insn_i386_intel	PARAMS ((bfd_vma, disassemble_info*));
+ extern int print_insn_ia64		PARAMS ((bfd_vma, disassemble_info*));
  extern int print_insn_i370		PARAMS ((bfd_vma, disassemble_info*));
  extern int print_insn_m68k		PARAMS ((bfd_vma, disassemble_info*));
  extern int print_insn_z8001		PARAMS ((bfd_vma, disassemble_info*));
Index: ld/Makefile.am
===================================================================
RCS file: /cvs/src/src/ld/Makefile.am,v
retrieving revision 1.28
diff -p -r1.28 Makefile.am
*** Makefile.am	2000/04/14 21:18:22	1.28
--- Makefile.am	2000/04/20 17:29:28
*************** ALL_EMULATIONS = \
*** 226,231 ****
--- 226,232 ----
  	ez8002.o
  
  ALL_64_EMULATIONS = \
+ 	eelf64_ia64.o \
  	eelf64_sparc.o \
  	eelf64alpha.o \
  	eelf64bmip.o
*************** eelf32i370.c: $(srcdir)/emulparams/elf32
*** 449,454 ****
--- 450,458 ----
  eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \
    $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
  	${GENSCRIPTS} elf64alpha "$(tdir_elf64alpha)"
+ eelf64_ia64.c: $(srcdir)/emulparams/elf64_ia64.sh \
+   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ 	${GENSCRIPTS} elf64_ia64 "$(tdir_elf64_ia64)"
  eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \
    $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
  	${GENSCRIPTS} elf64_sparc "$(tdir_elf64_sparc)"
Index: ld/Makefile.in
===================================================================
RCS file: /cvs/src/src/ld/Makefile.in,v
retrieving revision 1.30
diff -p -r1.30 Makefile.in
*** Makefile.in	2000/04/14 21:18:22	1.30
--- Makefile.in	2000/04/20 17:29:28
*************** LIBIBERTY = ../libiberty/libiberty.a
*** 175,181 ****
  ALL_EMULATIONS =  	ea29k.o 	eaixppc.o 	eaixrs6.o 	ealpha.o 	earcelf.o 	earmelf.o 	earmelf_oabi.o 	earmelf_linux.o 	earmelf_linux26.o 	earmaoutb.o 	earmaoutl.o 	earmcoff.o 	earmnbsd.o 	earmpe.o 	earm_epoc_pe.o 	eavr1200.o 	eavr23xx.o 	eavr44x4.o 	eavr4433.o 	eavr85xx.o 	eavrmega603.o 	eavrmega103.o 	eavrmega161.o 	ecoff_sparc.o 	ed10velf.o 	ed30velf.o 	ed30v_e.o 	ed30v_o.o 	edelta68.o 	eebmon29k.o 	eelf32_sparc.o 	eelf32_i960.o 	eelf32b4300.o 	eelf32bmip.o 	eelf32ebmip.o 	eelf32elmip.o 	eelf32bmipn32.o 	eelf32i370.o 	eelf32l4300.o 	eelf32lmip.o 	eelf32lppc.o 	eelf32lppcsim.o 	eelf32ppc.o 	eelf32ppcsim.o 	eelf32ppclinux.o 	eelf_i386.o 	eelf_i386_be.o 	egld960.o 	egld960coff.o 	eelf32fr30.o 	eelf32mcore.o 	eh8300.o 	eh8300h.o 	eh8300s.o 	eh8500.o 	eh8500b.o 	eh8500c.o 	eh8500m.o 	eh8500s.o 	ehp300bsd.o 	ehp3hpux.o 	ei386aout.o 	ei386beos.o 	ei386bsd.o 	ei386coff.o 	ei386go32.o 	ei386linux.o 	ei386lynx.o 	ei386mach.o 	ei386moss.o 	ei386msdos.o 	ei386nbsd.o 	ei386nw.o 	ei386pe.o !
	ei386pe_posix.o 	elnk960.o 	em68k4knbsd.o 	em68kaout.o 	em68kaux.o 	em68kcoff.o 	em68kelf.o 	em68klinux.o 	em68klynx.o 	em68knbsd.o 	em68kpsos.o 	em88kbcs.o 	emcorepe.o 	emipsbig.o 	emipsbsd.o 	emipsidt.o 	emipsidtl.o 	emipslit.o 	emipslnews.o 	emipspe.o 	enews.o 	epjelf.o 	epjlelf.o 	ens32knbsd.o 	epc532macha.o 	eppcmacos.o 	eppcnw.o 	eppcpe.o 	eriscix.o 	esa29200.o 	esh.o 	eshelf.o 	eshlelf.o 	eshl.o 	eshpe.o 	esparcaout.o 	esparclinux.o 	esparclynx.o 	esparcnbsd.o 	est2000.o 	esun3.o 	esun4.o 	etic30aout.o 	etic30coff.o 	etic80coff.o 	evanilla.o 	evax.o 	evsta.o 	ew65.o 	ez8001.o 	ez8002.o
  
  
! ALL_64_EMULATIONS =  	eelf64_sparc.o 	eelf64alpha.o 	eelf64bmip.o
  
  
  ALL_EMUL_EXTRA_OFILES =  	pe-dll.o 	deffilep.o
--- 175,181 ----
  ALL_EMULATIONS =  	ea29k.o 	eaixppc.o 	eaixrs6.o 	ealpha.o 	earcelf.o 	earmelf.o 	earmelf_oabi.o 	earmelf_linux.o 	earmelf_linux26.o 	earmaoutb.o 	earmaoutl.o 	earmcoff.o 	earmnbsd.o 	earmpe.o 	earm_epoc_pe.o 	eavr1200.o 	eavr23xx.o 	eavr44x4.o 	eavr4433.o 	eavr85xx.o 	eavrmega603.o 	eavrmega103.o 	eavrmega161.o 	ecoff_sparc.o 	ed10velf.o 	ed30velf.o 	ed30v_e.o 	ed30v_o.o 	edelta68.o 	eebmon29k.o 	eelf32_sparc.o 	eelf32_i960.o 	eelf32b4300.o 	eelf32bmip.o 	eelf32ebmip.o 	eelf32elmip.o 	eelf32bmipn32.o 	eelf32i370.o 	eelf32l4300.o 	eelf32lmip.o 	eelf32lppc.o 	eelf32lppcsim.o 	eelf32ppc.o 	eelf32ppcsim.o 	eelf32ppclinux.o 	eelf_i386.o 	eelf_i386_be.o 	egld960.o 	egld960coff.o 	eelf32fr30.o 	eelf32mcore.o 	eh8300.o 	eh8300h.o 	eh8300s.o 	eh8500.o 	eh8500b.o 	eh8500c.o 	eh8500m.o 	eh8500s.o 	ehp300bsd.o 	ehp3hpux.o 	ei386aout.o 	ei386beos.o 	ei386bsd.o 	ei386coff.o 	ei386go32.o 	ei386linux.o 	ei386lynx.o 	ei386mach.o 	ei386moss.o 	ei386msdos.o 	ei386nbsd.o 	ei386nw.o 	ei386pe.o !
	ei386pe_posix.o 	elnk960.o 	em68k4knbsd.o 	em68kaout.o 	em68kaux.o 	em68kcoff.o 	em68kelf.o 	em68klinux.o 	em68klynx.o 	em68knbsd.o 	em68kpsos.o 	em88kbcs.o 	emcorepe.o 	emipsbig.o 	emipsbsd.o 	emipsidt.o 	emipsidtl.o 	emipslit.o 	emipslnews.o 	emipspe.o 	enews.o 	epjelf.o 	epjlelf.o 	ens32knbsd.o 	epc532macha.o 	eppcmacos.o 	eppcnw.o 	eppcpe.o 	eriscix.o 	esa29200.o 	esh.o 	eshelf.o 	eshlelf.o 	eshl.o 	eshpe.o 	esparcaout.o 	esparclinux.o 	esparclynx.o 	esparcnbsd.o 	est2000.o 	esun3.o 	esun4.o 	etic30aout.o 	etic30coff.o 	etic80coff.o 	evanilla.o 	evax.o 	evsta.o 	ew65.o 	ez8001.o 	ez8002.o
  
  
! ALL_64_EMULATIONS =  	eelf64_ia64.o 	eelf64_sparc.o 	eelf64alpha.o 	eelf64bmip.o
  
  
  ALL_EMUL_EXTRA_OFILES =  	pe-dll.o 	deffilep.o
*************** eelf32i370.c: $(srcdir)/emulparams/elf32
*** 981,986 ****
--- 981,989 ----
  eelf64alpha.c: $(srcdir)/emulparams/elf64alpha.sh \
    $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
  	${GENSCRIPTS} elf64alpha "$(tdir_elf64alpha)"
+ eelf64_ia64.c: $(srcdir)/emulparams/elf64_ia64.sh \
+   $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+ 	${GENSCRIPTS} elf64_ia64 "$(tdir_elf64_ia64)"
  eelf64_sparc.c: $(srcdir)/emulparams/elf64_sparc.sh \
    $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
  	${GENSCRIPTS} elf64_sparc "$(tdir_elf64_sparc)"
Index: ld/configure.tgt
===================================================================
RCS file: /cvs/src/src/ld/configure.tgt,v
retrieving revision 1.25
diff -p -r1.25 configure.tgt
*** configure.tgt	2000/04/14 21:18:22	1.25
--- configure.tgt	2000/04/20 17:29:28
*************** i960-*-coff)		targ_emul=gld960coff ;;
*** 79,84 ****
--- 79,86 ----
  i960-intel-nindy)	targ_emul=gld960 ;;
  i960-*-rtems*)		targ_emul=gld960coff ;;
  i960-*-elf*)		targ_emul=elf32_i960 ;;
+ ia64-*-elf*)		targ_emul=elf64_ia64 ;;
+ ia64-*-linux*)		targ_emul=elf64_ia64 ;;
  m32r-*-*)		targ_emul=m32relf ;;
  m68*-sun-sunos[34]*)	targ_emul=sun3 ;;
  m68*-wrs-vxworks*)	targ_emul=sun3 ;;
Index: opcodes/Makefile.am
===================================================================
RCS file: /cvs/src/src/opcodes/Makefile.am,v
retrieving revision 1.11
diff -p -r1.11 Makefile.am
*** Makefile.am	2000/04/14 04:16:58	1.11
--- Makefile.am	2000/04/20 17:29:29
*************** HFILES = \
*** 25,30 ****
--- 25,32 ----
  	mcore-opc.h \
  	sh-opc.h \
  	sysdep.h \
+ 	ia64-asmtab.h \
+ 	ia64-opc.h \
  	w65-opc.h \
  	z8k-opc.h
  
*************** CFILES = \
*** 58,63 ****
--- 60,75 ----
  	i370-opc.c \
  	i386-dis.c \
  	i960-dis.c \
+ 	ia64-dis.c \
+ 	ia64-opc-a.c \
+ 	ia64-opc-b.c \
+ 	ia64-opc-f.c \
+ 	ia64-opc-i.c \
+ 	ia64-opc-m.c \
+ 	ia64-opc-d.c \
+ 	ia64-opc.c \
+ 	ia64-gen.c \
+ 	ia64-asmtab.c \
  	m32r-asm.c \
  	m32r-desc.c \
  	m32r-dis.c \
*************** ALL_MACHINES = \
*** 120,125 ****
--- 132,139 ----
  	i370-dis.lo \
  	i370-opc.lo \
  	i960-dis.lo \
+ 	ia64-dis.lo \
+ 	ia64-opc.lo \
  	m32r-asm.lo \
  	m32r-desc.lo \
  	m32r-dis.lo \
*************** CLEANFILES = \
*** 202,208 ****
--- 216,239 ----
  
  
  
+ ia64-ic.tbl: $(srcdir)/ia64-ic.tbl
+ 	$(LN_S) -f $(srcdir)/ia64-ic.tbl
+ ia64-raw.tbl: $(srcdir)/ia64-raw.tbl
+ 	$(LN_S) -f $(srcdir)/ia64-raw.tbl
+ ia64-waw.tbl: $(srcdir)/ia64-waw.tbl
+ 	$(LN_S) -f $(srcdir)/ia64-waw.tbl
+ ia64-war.tbl: $(srcdir)/ia64-war.tbl
+ 	$(LN_S) -f $(srcdir)/ia64-war.tbl
  
+ ia64-gen: ia64-gen.o
+ 	$(LINK) ia64-gen.o $(LIBIBERTY)
+ 
+ ia64-gen.o: ia64-gen.c ia64-opc.c ia64-opc-a.c ia64-opc-b.c ia64-opc-f.c \
+   ia64-opc-i.c ia64-opc-m.c ia64-opc-d.c ia64-opc.h
+ 
+ ia64-asmtab.c: @MAINT@ ia64-gen ia64-ic.tbl ia64-raw.tbl ia64-waw.tbl ia64-war.tbl
+ 	./ia64-gen > $(srcdir)/ia64-asmtab.c
+ 
  # This dependency stuff is copied from BFD.
  
  DEP: dep.sed $(CFILES) $(HFILES) config.h
*************** i386-dis.lo: i386-dis.c $(INCDIR)/dis-as
*** 315,320 ****
--- 346,354 ----
    $(INCDIR)/ansidecl.h sysdep.h config.h opintl.h
  i960-dis.lo: i960-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \
    $(INCDIR)/dis-asm.h $(BFD_H)
+ ia64-dis.lo: ia64-dis.c $(INCDIR)/dis-asm.h $(INCDIR)/opcode/ia64.h $(BFD_H)
+ ia64-opc.lo: $(INCDIR)/opcode/ia64.h $(BFD_H) $(INCDIR)/libiberty.h \
+   $(INCDIR)/ansidecl.h sysdep.h ia64-asmtab.h ia64-asmtab.c
  m32r-asm.lo: m32r-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \
    $(BFD_H) $(INCDIR)/symcat.h m32r-desc.h $(INCDIR)/opcode/cgen.h \
    m32r-opc.h opintl.h
Index: opcodes/Makefile.in
===================================================================
RCS file: /cvs/src/src/opcodes/Makefile.in,v
retrieving revision 1.13
diff -p -r1.13 Makefile.in
*** Makefile.in	2000/04/14 04:16:58	1.13
--- Makefile.in	2000/04/20 17:29:29
*************** HFILES = \
*** 128,133 ****
--- 128,135 ----
  	mcore-opc.h \
  	sh-opc.h \
  	sysdep.h \
+ 	ia64-asmtab.h \
+ 	ia64-opc.h \
  	w65-opc.h \
  	z8k-opc.h
  
*************** CFILES = \
*** 162,167 ****
--- 164,179 ----
  	i370-opc.c \
  	i386-dis.c \
  	i960-dis.c \
+ 	ia64-dis.c \
+ 	ia64-opc-a.c \
+ 	ia64-opc-b.c \
+ 	ia64-opc-f.c \
+ 	ia64-opc-i.c \
+ 	ia64-opc-m.c \
+ 	ia64-opc-d.c \
+ 	ia64-opc.c \
+ 	ia64-gen.c \
+ 	ia64-asmtab.c \
  	m32r-asm.c \
  	m32r-desc.c \
  	m32r-dis.c \
*************** ALL_MACHINES = \
*** 225,230 ****
--- 237,244 ----
  	i370-dis.lo \
  	i370-opc.lo \
  	i960-dis.lo \
+ 	ia64-dis.lo \
+ 	ia64-opc.lo \
  	m32r-asm.lo \
  	m32r-desc.lo \
  	m32r-dis.lo \
*************** all-redirect all-am all installdirs-am i
*** 676,682 ****
--- 690,713 ----
  distclean-generic clean-generic maintainer-clean-generic clean \
  mostlyclean distclean maintainer-clean
  
+ ia64-ic.tbl: $(srcdir)/ia64-ic.tbl
+ 	$(LN_S) -f $(srcdir)/ia64-ic.tbl
+ ia64-raw.tbl: $(srcdir)/ia64-raw.tbl
+ 	$(LN_S) -f $(srcdir)/ia64-raw.tbl
+ ia64-waw.tbl: $(srcdir)/ia64-waw.tbl
+ 	$(LN_S) -f $(srcdir)/ia64-waw.tbl
+ ia64-war.tbl: $(srcdir)/ia64-war.tbl
+ 	$(LN_S) -f $(srcdir)/ia64-war.tbl
  
+ ia64-gen: ia64-gen.o
+ 	$(LINK) ia64-gen.o $(LIBIBERTY)
+ 
+ ia64-gen.o: ia64-gen.c ia64-opc.c ia64-opc-a.c ia64-opc-b.c ia64-opc-f.c \
+   ia64-opc-i.c ia64-opc-m.c ia64-opc-d.c ia64-opc.h
+ 
+ ia64-asmtab.c: @MAINT@ ia64-gen ia64-ic.tbl ia64-raw.tbl ia64-waw.tbl ia64-war.tbl
+ 	./ia64-gen > $(srcdir)/ia64-asmtab.c
+ 
  disassemble.lo: disassemble.c $(INCDIR)/dis-asm.h
  	$(LIBTOOL) --mode=compile $(COMPILE) -c @archdefs@ $(srcdir)/disassemble.c
  
*************** i386-dis.lo: i386-dis.c $(INCDIR)/dis-as
*** 812,817 ****
--- 843,851 ----
    $(INCDIR)/ansidecl.h sysdep.h config.h opintl.h
  i960-dis.lo: i960-dis.c sysdep.h config.h $(INCDIR)/ansidecl.h \
    $(INCDIR)/dis-asm.h $(BFD_H)
+ ia64-dis.lo: ia64-dis.c $(INCDIR)/dis-asm.h $(INCDIR)/opcode/ia64.h $(BFD_H)
+ ia64-opc.lo: $(INCDIR)/opcode/ia64.h $(BFD_H) $(INCDIR)/libiberty.h \
+   $(INCDIR)/ansidecl.h sysdep.h ia64-asmtab.h ia64-asmtab.c
  m32r-asm.lo: m32r-asm.c sysdep.h config.h $(INCDIR)/ansidecl.h \
    $(BFD_H) $(INCDIR)/symcat.h m32r-desc.h $(INCDIR)/opcode/cgen.h \
    m32r-opc.h opintl.h
Index: opcodes/configure
===================================================================
RCS file: /cvs/src/src/opcodes/configure,v
retrieving revision 1.7
diff -p -r1.7 configure
*** configure	2000/04/09 12:17:43	1.7
--- configure	2000/04/20 17:29:29
*************** if test x${all_targets} = xfalse ; then
*** 3955,3960 ****
--- 3955,3961 ----
  	bfd_i386_arch)		ta="$ta i386-dis.lo" ;;
  	bfd_i860_arch)		;;
  	bfd_i960_arch)		ta="$ta i960-dis.lo" ;;
+ 	bfd_ia64_arch)		ta="$ta ia64-dis.lo ia64-opc.lo" ;;
  	bfd_m32r_arch)		ta="$ta m32r-asm.lo m32r-desc.lo m32r-dis.lo m32r-ibld.lo m32r-opc.lo m32r-opinst.lo" using_cgen=yes ;;
  	bfd_m68k_arch)		ta="$ta m68k-dis.lo m68k-opc.lo" ;;
  	bfd_m88k_arch)		ta="$ta m88k-dis.lo" ;;
Index: opcodes/configure.in
===================================================================
RCS file: /cvs/src/src/opcodes/configure.in,v
retrieving revision 1.6
diff -p -r1.6 configure.in
*** configure.in	2000/04/09 12:17:43	1.6
--- configure.in	2000/04/20 17:29:29
*************** if test x${all_targets} = xfalse ; then
*** 166,171 ****
--- 166,172 ----
  	bfd_i386_arch)		ta="$ta i386-dis.lo" ;;
  	bfd_i860_arch)		;;
  	bfd_i960_arch)		ta="$ta i960-dis.lo" ;;
+ 	bfd_ia64_arch)		ta="$ta ia64-dis.lo ia64-opc.lo" ;;
  	bfd_m32r_arch)		ta="$ta m32r-asm.lo m32r-desc.lo m32r-dis.lo m32r-ibld.lo m32r-opc.lo m32r-opinst.lo" using_cgen=yes ;;
  	bfd_m68k_arch)		ta="$ta m68k-dis.lo m68k-opc.lo" ;;
  	bfd_m88k_arch)		ta="$ta m88k-dis.lo" ;;
Index: opcodes/disassemble.c
===================================================================
RCS file: /cvs/src/src/opcodes/disassemble.c,v
retrieving revision 1.9
diff -p -r1.9 disassemble.c
*** disassemble.c	2000/04/14 04:16:58	1.9
--- disassemble.c	2000/04/20 17:29:29
*************** Foundation, Inc., 59 Temple Place - Suit
*** 33,38 ****
--- 33,39 ----
  #define ARCH_i370
  #define ARCH_i386
  #define ARCH_i960
+ #define ARCH_ia64
  #define ARCH_fr30
  #define ARCH_m32r
  #define ARCH_m68k
*************** disassembler (abfd)
*** 145,150 ****
--- 146,156 ----
  #ifdef ARCH_i960
      case bfd_arch_i960:
        disassemble = print_insn_i960;
+       break;
+ #endif
+ #ifdef ARCH_ia64
+     case bfd_arch_ia64:
+       disassemble = print_insn_ia64;
        break;
  #endif
  #ifdef ARCH_fr30

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]