From a40cbfa3c951ac0fcbdf8f98ab668beacca2b872 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 19 Jul 2002 07:52:40 +0000 Subject: Add IP2k GAS and OPCODES support. --- gas/ChangeLog | 27 ++- gas/Makefile.am | 17 ++ gas/Makefile.in | 22 ++- gas/NEWS | 436 ++++++++++++++++++++++--------------------- gas/config/tc-ip2k.c | 507 +++++++++++++++++++++++++++++++++++++++++++++++++++ gas/config/tc-ip2k.h | 65 +++++++ gas/configure | 343 +++++++++++++++++----------------- gas/configure.in | 5 +- gas/doc/Makefile.am | 1 + gas/doc/Makefile.in | 1 + gas/doc/all.texi | 1 + gas/doc/as.texinfo | 32 ++++ gas/doc/c-ip2k.texi | 46 +++++ 13 files changed, 1110 insertions(+), 393 deletions(-) create mode 100644 gas/config/tc-ip2k.c create mode 100644 gas/config/tc-ip2k.h create mode 100644 gas/doc/c-ip2k.texi (limited to 'gas') diff --git a/gas/ChangeLog b/gas/ChangeLog index 86d2b3d..1d37c67 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,4 +1,29 @@ -Wed Jul 17 00:30:13 CEST 2002 Jan Hubicka +2002-07-18 Denis Chertykov + Frank Ch. Eigler + Alan Lehotsky + John Healy + Jeff Johnston + + * configure.in: Add ip2k configuraton. + * configure: Regenerate. + * Makefile.am: Add ip2k configuraton. + * Makefile.in: Regenerate. + * configure: Regenerate. + * Makefile.in: Regenerate. + * config/tc-ip2k.c: New file. + * config/tc-ip2k.h: New files. + * NEWS: Mention new support. + * doc/Makefile.am (CPU_DOCS): Add c-ip2k.texi. + * doc/Makefile.in: Regenerate. + * doc/all.texi: Set IP2K + * doc/as.texinfo: Add IP2K description. + * doc/c-ip2k.texi: New file. + +2002-07-19 Nick Clifton + + * NEWS: Reformat to match style of other NEWS files. + +2002-07-17 Jan Hubicka * tc-i386.c (i386_align_code): Implement x86_64 neutral code fillers. diff --git a/gas/Makefile.am b/gas/Makefile.am index e8d060f..5a09b97 100644 --- a/gas/Makefile.am +++ b/gas/Makefile.am @@ -56,6 +56,7 @@ CPU_TYPES = \ i386 \ i860 \ i960 \ + ip2k \ m32r \ m68hc11 \ m68k \ @@ -246,6 +247,7 @@ TARGET_CPU_CFILES = \ config/tc-i386.c \ config/tc-i860.c \ config/tc-i960.c \ + config/tc-ip2k.c \ config/tc-m32r.c \ config/tc-m68hc11.c \ config/tc-m68k.c \ @@ -295,6 +297,7 @@ TARGET_CPU_HFILES = \ config/tc-i386.h \ config/tc-i860.h \ config/tc-i960.h \ + config/tc-ip2k.h \ config/tc-m32r.h \ config/tc-m68hc11.h \ config/tc-m68k.h \ @@ -1163,6 +1166,12 @@ DEPTC_i960_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-i960.h \ $(INCDIR)/safe-ctype.h $(INCDIR)/obstack.h $(INCDIR)/opcode/i960.h +DEPTC_ip2k_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-ip2k.h \ + $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ + $(srcdir)/../opcodes/ip2k-desc.h $(INCDIR)/opcode/cgen.h \ + $(srcdir)/../opcodes/ip2k-opc.h cgen.h DEPTC_m32r_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ $(srcdir)/config/tc-m32r.h $(INCDIR)/coff/internal.h \ $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h $(INCDIR)/safe-ctype.h \ @@ -1681,6 +1690,11 @@ DEPOBJ_i960_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-i960.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ struc-symbol.h $(INCDIR)/aout/aout64.h +DEPOBJ_ip2k_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-ip2k.h \ + $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ + struc-symbol.h $(INCDIR)/aout/aout64.h DEPOBJ_m32r_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ $(srcdir)/config/tc-m32r.h $(INCDIR)/coff/internal.h \ $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h $(INCDIR)/obstack.h \ @@ -2101,6 +2115,9 @@ DEP_i960_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-i960.h \ DEP_i960_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-i960.h +DEP_ip2k_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-ip2k.h DEP_m32r_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-m32r.h \ $(INCDIR)/symcat.h $(INCDIR)/coff/internal.h $(BFDDIR)/libcoff.h \ $(INCDIR)/bfdlink.h diff --git a/gas/Makefile.in b/gas/Makefile.in index c411820..bebd479 100644 --- a/gas/Makefile.in +++ b/gas/Makefile.in @@ -167,6 +167,7 @@ CPU_TYPES = \ i386 \ i860 \ i960 \ + ip2k \ m32r \ m68hc11 \ m68k \ @@ -363,6 +364,7 @@ TARGET_CPU_CFILES = \ config/tc-i386.c \ config/tc-i860.c \ config/tc-i960.c \ + config/tc-ip2k.c \ config/tc-m32r.c \ config/tc-m68hc11.c \ config/tc-m68k.c \ @@ -413,6 +415,7 @@ TARGET_CPU_HFILES = \ config/tc-i386.h \ config/tc-i860.h \ config/tc-i960.h \ + config/tc-ip2k.h \ config/tc-m32r.h \ config/tc-m68hc11.h \ config/tc-m68k.h \ @@ -910,6 +913,13 @@ DEPTC_i960_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-i960.h \ $(INCDIR)/safe-ctype.h $(INCDIR)/obstack.h $(INCDIR)/opcode/i960.h +DEPTC_ip2k_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-ip2k.h \ + $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ + $(srcdir)/../opcodes/ip2k-desc.h $(INCDIR)/opcode/cgen.h \ + $(srcdir)/../opcodes/ip2k-opc.h cgen.h + DEPTC_m32r_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ $(srcdir)/config/tc-m32r.h $(INCDIR)/coff/internal.h \ $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h $(INCDIR)/safe-ctype.h \ @@ -1539,6 +1549,12 @@ DEPOBJ_i960_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ struc-symbol.h $(INCDIR)/aout/aout64.h +DEPOBJ_ip2k_elf = $(INCDIR)/symcat.h $(srcdir)/config/obj-elf.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-ip2k.h \ + $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ + struc-symbol.h $(INCDIR)/aout/aout64.h + DEPOBJ_m32r_coff = $(INCDIR)/symcat.h $(srcdir)/config/obj-coff.h \ $(srcdir)/config/tc-m32r.h $(INCDIR)/coff/internal.h \ $(BFDDIR)/libcoff.h $(INCDIR)/bfdlink.h $(INCDIR)/obstack.h \ @@ -2069,6 +2085,10 @@ DEP_i960_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \ $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-i960.h +DEP_ip2k_elf = $(srcdir)/config/obj-elf.h $(INCDIR)/symcat.h \ + $(BFDDIR)/elf-bfd.h $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h \ + $(INCDIR)/elf/external.h $(INCDIR)/bfdlink.h $(srcdir)/config/tc-ip2k.h + DEP_m32r_coff = $(srcdir)/config/obj-coff.h $(srcdir)/config/tc-m32r.h \ $(INCDIR)/symcat.h $(INCDIR)/coff/internal.h $(BFDDIR)/libcoff.h \ $(INCDIR)/bfdlink.h @@ -2380,7 +2400,7 @@ configure configure.in gdbinit.in itbl-lex.c itbl-parse.c DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) -TAR = tar +TAR = gtar GZIP_ENV = --best SOURCES = $(gasp_new_SOURCES) $(itbl_test_SOURCES) $(as_new_SOURCES) $(EXTRA_as_new_SOURCES) OBJECTS = $(gasp_new_OBJECTS) $(itbl_test_OBJECTS) $(as_new_OBJECTS) diff --git a/gas/NEWS b/gas/NEWS index 18482a9..b63d532 100644 --- a/gas/NEWS +++ b/gas/NEWS @@ -1,370 +1,366 @@ -*- text -*- +* Support for the Ubicom IP2xxx microcontroller added. + Changes in 2.13: -Support for the Fujitsu FRV architecture added by Red Hat. Models for FR400 and -FR500 included. +* Support for the Fujitsu FRV architecture added by Red Hat. Models for FR400 + and FR500 included. -Support for DLX processor added. +* Support for DLX processor added. -GASP has now been deprecated and will be removed in a future release. Use the -macro facilities in GAS instead. +* GASP has now been deprecated and will be removed in a future release. Use + the macro facilities in GAS instead. -GASP now correctly parses floating point numbers. Unless the base is explicitly -specified, they are interpreted as decimal numbers regardless of the currently -specified base. +* GASP now correctly parses floating point numbers. Unless the base is + explicitly specified, they are interpreted as decimal numbers regardless of + the currently specified base. Changes in 2.12: -Support for Don Knuth's MMIX, by Hans-Peter Nilsson. +* Support for Don Knuth's MMIX, by Hans-Peter Nilsson. -Support for the OpenRISC 32-bit embedded processor by OpenCores. +* Support for the OpenRISC 32-bit embedded processor by OpenCores. -The ARM assembler now accepts -march=..., -mcpu=... and -mfpu=... for -specifying the target instruction set. The old method of specifying the -target processor has been deprecated, but is still accepted for -compatibility. +* The ARM assembler now accepts -march=..., -mcpu=... and -mfpu=... for + specifying the target instruction set. The old method of specifying the + target processor has been deprecated, but is still accepted for + compatibility. -Support for the VFP floating-point instruction set has been added to -the ARM assembler. +* Support for the VFP floating-point instruction set has been added to + the ARM assembler. -New psuedo op: .incbin to include a set of binary data at a given point -in the assembly. Contributed by Anders Norlander. +* New psuedo op: .incbin to include a set of binary data at a given point + in the assembly. Contributed by Anders Norlander. -The MIPS assembler now accepts -march/-mtune. -mcpu has been deprecated -but still works for compatability. +* The MIPS assembler now accepts -march/-mtune. -mcpu has been deprecated + but still works for compatability. -The MIPS assembler no longer issues a warning by default when it -generates a nop instruction from a macro. The new command line option --n will turn on the warning. +* The MIPS assembler no longer issues a warning by default when it + generates a nop instruction from a macro. The new command line option + -n will turn on the warning. Changes in 2.11: -x86 gas now supports the full Pentium4 instruction set. +* x86 gas now supports the full Pentium4 instruction set. -Support for AMD x86-64 architecture, by Jan Hubicka, SuSE Labs. +* Support for AMD x86-64 architecture, by Jan Hubicka, SuSE Labs. -Support for Motorola 68HC11 and 68HC12. +* Support for Motorola 68HC11 and 68HC12. -Support for Texas Instruments TMS320C54x (tic54x). +* Support for Texas Instruments TMS320C54x (tic54x). -Support for IA-64. +* Support for IA-64. -Support for i860, by Jason Eckhardt. +* Support for i860, by Jason Eckhardt. -Support for CRIS (Axis Communications ETRAX series). +* Support for CRIS (Axis Communications ETRAX series). -x86 gas has a new .arch pseudo op to specify the target CPU architecture. +* x86 gas has a new .arch pseudo op to specify the target CPU architecture. -x86 gas -q command line option quietens warnings about register size changes -due to suffix, indirect jmp/call without `*', stand-alone prefixes, and -translating various deprecated floating point instructions. +* x86 gas -q command line option quietens warnings about register size changes + due to suffix, indirect jmp/call without `*', stand-alone prefixes, and + translating various deprecated floating point instructions. Changes in 2.10: -Support for the ARM msr instruction was changed to only allow an immediate -operand when altering the flags field. +* Support for the ARM msr instruction was changed to only allow an immediate + operand when altering the flags field. -Support for ATMEL AVR. +* Support for ATMEL AVR. -Support for IBM 370 ELF. Somewhat experimental. +* Support for IBM 370 ELF. Somewhat experimental. -Support for numbers with suffixes. +* Support for numbers with suffixes. -Added support for breaking to the end of repeat loops. +* Added support for breaking to the end of repeat loops. -Added support for parallel instruction syntax (DOUBLEBAR_PARALLEL). +* Added support for parallel instruction syntax (DOUBLEBAR_PARALLEL). -New .elseif pseudo-op added. +* New .elseif pseudo-op added. -New --fatal-warnings option. +* New --fatal-warnings option. -picoJava architecture support added. +* picoJava architecture support added. -Motorola MCore 210 processor support added. +* Motorola MCore 210 processor support added. -A new pseudo-op .intel_syntax has been implemented to allow gas to parse i386 -assembly programs with intel syntax. +* A new pseudo-op .intel_syntax has been implemented to allow gas to parse i386 + assembly programs with intel syntax. -New pseudo-ops .func,.endfunc to aid in debugging user-written assembler code. +* New pseudo-ops .func,.endfunc to aid in debugging user-written assembler code. -Added -gdwarf2 option to generate DWARF 2 debugging information. +* Added -gdwarf2 option to generate DWARF 2 debugging information. -Full 16-bit mode support for i386. +* Full 16-bit mode support for i386. -Greatly improved instruction operand checking for i386. This change will -produce errors or warnings on incorrect assembly code that previous versions of -gas accepted. If you get unexpected messages from code that worked with older -versions of gas, please double check the code before reporting a bug. +* Greatly improved instruction operand checking for i386. This change will + produce errors or warnings on incorrect assembly code that previous versions + of gas accepted. If you get unexpected messages from code that worked with + older versions of gas, please double check the code before reporting a bug. -Weak symbol support added for COFF targets. +* Weak symbol support added for COFF targets. -Mitsubishi D30V support added. +* Mitsubishi D30V support added. -Texas Instruments c80 (tms320c80) support added. +* Texas Instruments c80 (tms320c80) support added. -i960 ELF support added. +* i960 ELF support added. -ARM ELF support added. +* ARM ELF support added. Changes in 2.9: -Texas Instruments c30 (tms320c30) support added. +* Texas Instruments c30 (tms320c30) support added. -The assembler now optimizes the exception frame information generated by egcs -and gcc 2.8. The new --traditional-format option disables this optimization. +* The assembler now optimizes the exception frame information generated by egcs + and gcc 2.8. The new --traditional-format option disables this optimization. -Added --gstabs option to generate stabs debugging information. +* Added --gstabs option to generate stabs debugging information. -The -a option takes a new suboption, m (e.g., -alm) to expand macros in a -listing. +* The -a option takes a new suboption, m (e.g., -alm) to expand macros in a + listing. -Added -MD option to print dependencies. +* Added -MD option to print dependencies. Changes in 2.8: -BeOS support added. +* BeOS support added. -MIPS16 support added. +* MIPS16 support added. -Motorola ColdFire 5200 support added (configure for m68k and use -m5200). +* Motorola ColdFire 5200 support added (configure for m68k and use -m5200). -Alpha/VMS support added. +* Alpha/VMS support added. -m68k options --base-size-default-16, --base-size-default-32, ---disp-size-default-16, and --disp-size-default-32 added. +* m68k options --base-size-default-16, --base-size-default-32, + --disp-size-default-16, and --disp-size-default-32 added. -The alignment directives now take an optional third argument, which is the -maximum number of bytes to skip. If doing the alignment would require skipping -more than the given number of bytes, the alignment is not done at all. +* The alignment directives now take an optional third argument, which is the + maximum number of bytes to skip. If doing the alignment would require + skipping more than the given number of bytes, the alignment is not done at + all. -The ELF assembler has a new pseudo-op, .symver, used for symbol versioning. +* The ELF assembler has a new pseudo-op, .symver, used for symbol versioning. -The -a option takes a new suboption, c (e.g., -alc), to skip false conditionals -in listings. +* The -a option takes a new suboption, c (e.g., -alc), to skip false + conditionals in listings. -Added new pseudo-op, .equiv; it's like .equ, except that it is an error if the -symbol is already defined. +* Added new pseudo-op, .equiv; it's like .equ, except that it is an error if + the symbol is already defined. Changes in 2.7: -The PowerPC assembler now allows the use of symbolic register names (r0, etc.) -if -mregnames is used. Symbolic names preceded by a '%' (%r0, etc.) can be -used any time. PowerPC 860 move to/from SPR instructions have been added. +* The PowerPC assembler now allows the use of symbolic register names (r0, + etc.) if -mregnames is used. Symbolic names preceded by a '%' (%r0, etc.) + can be used any time. PowerPC 860 move to/from SPR instructions have been + added. -Alpha Linux (ELF) support added. +* Alpha Linux (ELF) support added. -PowerPC ELF support added. +* PowerPC ELF support added. -m68k Linux (ELF) support added. +* m68k Linux (ELF) support added. -i960 Hx/Jx support added. +* i960 Hx/Jx support added. -i386/PowerPC gnu-win32 support added. +* i386/PowerPC gnu-win32 support added. -SCO ELF support added. For OpenServer 5 targets (i386-unknown-sco3.2v5) the -default is to build COFF-only support. To get a set of tools that generate ELF -(they'll understand both COFF and ELF), you must configure with -target=i386-unknown-sco3.2v5elf. +* SCO ELF support added. For OpenServer 5 targets (i386-unknown-sco3.2v5) the + default is to build COFF-only support. To get a set of tools that generate + ELF (they'll understand both COFF and ELF), you must configure with + target=i386-unknown-sco3.2v5elf. -m88k-motorola-sysv3* support added. +* m88k-motorola-sysv3* support added. Changes in 2.6: -Gas now directly supports macros, without requiring GASP. +* Gas now directly supports macros, without requiring GASP. -Gas now has an MRI assembler compatibility mode. Use -M or --mri to select MRI -mode. The pseudo-op ``.mri 1'' will switch into the MRI mode until the ``.mri -0'' is seen; this can be convenient for inline assembler code. +* Gas now has an MRI assembler compatibility mode. Use -M or --mri to select + MRI mode. The pseudo-op ``.mri 1'' will switch into the MRI mode until the + ``.mri 0'' is seen; this can be convenient for inline assembler code. -Added --defsym SYM=VALUE option. +* Added --defsym SYM=VALUE option. -Added -mips4 support to MIPS assembler. +* Added -mips4 support to MIPS assembler. -Added PIC support to Solaris and SPARC SunOS 4 assembler. +* Added PIC support to Solaris and SPARC SunOS 4 assembler. Changes in 2.4: -Converted this directory to use an autoconf-generated configure script. +* Converted this directory to use an autoconf-generated configure script. -ARM support, from Richard Earnshaw. +* ARM support, from Richard Earnshaw. -Updated VMS support, from Pat Rankin, including considerably improved debugging -support. +* Updated VMS support, from Pat Rankin, including considerably improved + debugging support. -Support for the control registers in the 68060. +* Support for the control registers in the 68060. -Handles (ignores) a new directive ".this_GCC_requires_the_GNU_assembler", to -provide for possible future gcc changes, for targets where gas provides some -features not available in the native assembler. If the native assembler is -used, it should become obvious pretty quickly what the problem is. +* Handles (ignores) a new directive ".this_GCC_requires_the_GNU_assembler", to + provide for possible future gcc changes, for targets where gas provides some + features not available in the native assembler. If the native assembler is + used, it should become obvious pretty quickly what the problem is. -Usage message is available with "--help". +* Usage message is available with "--help". -The GNU Assembler Preprocessor (gasp) is included. (Actually, it was in 2.3 -also, but didn't get into the NEWS file.) +* The GNU Assembler Preprocessor (gasp) is included. (Actually, it was in 2.3 + also, but didn't get into the NEWS file.) -Weak symbol support for a.out. +* Weak symbol support for a.out. -A bug in the listing code which could cause an infinite loop has been fixed. -Bugs in listings when generating a COFF object file have also been fixed. +* A bug in the listing code which could cause an infinite loop has been fixed. + Bugs in listings when generating a COFF object file have also been fixed. -Initial i386-svr4 PIC implementation from Eric Youngdale, based on code by Paul -Kranenburg. +* Initial i386-svr4 PIC implementation from Eric Youngdale, based on code by + Paul Kranenburg. -Improved Alpha support. Immediate constants can have a much larger range now. -Support for the 21164 has been contributed by Digital. +* Improved Alpha support. Immediate constants can have a much larger range + now. Support for the 21164 has been contributed by Digital. -Updated ns32k (pc532-mach, netbsd532) support from Ian Dall. +* Updated ns32k (pc532-mach, netbsd532) support from Ian Dall. Changes in 2.3: -Mach i386 support, by David Mackenzie and Ken Raeburn. - -RS/6000 and PowerPC support by Ian Taylor. +* Mach i386 support, by David Mackenzie and Ken Raeburn. -VMS command scripts (make-gas.com, config-gas.com) have been worked on a bit, -based on mail received from various people. The `-h#' option should work again -too. +* RS/6000 and PowerPC support by Ian Taylor. -HP-PA work, by Jeff Law. Note, for the PA, gas-2.3 has been designed to work -with gdb-4.12 and gcc-2.6. As gcc-2.6 has not been released yet, a special -version of gcc-2.5.8 has been patched to work with gas-2.3. You can retrieve -this special version of gcc-2.5.8 via anonymous ftp from jaguar.cs.utah.edu -in the "dist" directory. +* VMS command scripts (make-gas.com, config-gas.com) have been worked on a bit, + based on mail received from various people. The `-h#' option should work + again too. -Vax support in gas fixed for BSD, so it builds and seems to run a couple simple -tests okay. I haven't put it through extensive testing. (GNU make is -currently required for BSD 4.3 builds.) +* HP-PA work, by Jeff Law. Note, for the PA, gas-2.3 has been designed to work + with gdb-4.12 and gcc-2.6. As gcc-2.6 has not been released yet, a special + version of gcc-2.5.8 has been patched to work with gas-2.3. You can retrieve + this special version of gcc-2.5.8 via anonymous ftp from jaguar.cs.utah.edu + in the "dist" directory. -Support for the DEC Alpha, running OSF/1 (ECOFF format). The gas support is -based on code donated by CMU, which used an a.out-based format. I'm afraid the -alpha-a.out support is pretty badly mangled, and much of it removed; making it -work will require rewriting it as BFD support for the format anyways. +* Vax support in gas fixed for BSD, so it builds and seems to run a couple + simple tests okay. I haven't put it through extensive testing. (GNU make is + currently required for BSD 4.3 builds.) -Irix 5 support. +* Support for the DEC Alpha, running OSF/1 (ECOFF format). The gas support is + based on code donated by CMU, which used an a.out-based format. I'm afraid + the alpha-a.out support is pretty badly mangled, and much of it removed; + making it work will require rewriting it as BFD support for the format anyways. -The test suites have been fixed up a bit, so that they should work with a -couple different versions of expect and dejagnu. +* Irix 5 support. -Symbols' values are now handled internally as expressions, permitting more -flexibility in evaluating them in some cases. Some details of relocation -handling have also changed, and simple constant pool management has been added, -to make the Alpha port easier. +* The test suites have been fixed up a bit, so that they should work with a + couple different versions of expect and dejagnu. -New option "--statistics" for printing out program run times. This is intended -to be used with the gcc "-Q" option, which prints out times spent in various -phases of compilation. (You should be able to get all of them printed out with -"gcc -Q -Wa,--statistics", I think.) +* Symbols' values are now handled internally as expressions, permitting more + flexibility in evaluating them in some cases. Some details of relocation + handling have also changed, and simple constant pool management has been + added, to make the Alpha port easier. ----------------------------------------------------------------- +* New option "--statistics" for printing out program run times. This is + intended to be used with the gcc "-Q" option, which prints out times spent in + various phases of compilation. (You should be able to get all of them + printed out with "gcc -Q -Wa,--statistics", I think.) Changes in 2.2: -RS/6000 AIX and MIPS SGI Irix 5 support has been added. - -Configurations that are still in development (and therefore are convenient to -have listed in configure.in) still get rejected without a minor change to -gas/Makefile.in, so people not doing development work shouldn't get the -impression that support for such configurations is actually believed to be -reliable. +* RS/6000 AIX and MIPS SGI Irix 5 support has been added. -The program name (usually "as") is printed when a fatal error message is -displayed. This should prevent some confusion about the source of occasional -messages about "internal errors". +* Configurations that are still in development (and therefore are convenient to + have listed in configure.in) still get rejected without a minor change to + gas/Makefile.in, so people not doing development work shouldn't get the + impression that support for such configurations is actually believed to be + reliable. -ELF support is falling into place. Support for the 386 should be working. -Support for SPARC Solaris is in. HPPA support from Utah is being integrated. +* The program name (usually "as") is printed when a fatal error message is + displayed. This should prevent some confusion about the source of occasional + messages about "internal errors". -Symbol values are maintained as expressions instead of being immediately boiled -down to add-symbol, sub-symbol, and constant. This permits slightly more -complex calculations involving symbols whose values are not alreadey known. +* ELF support is falling into place. Support for the 386 should be working. + Support for SPARC Solaris is in. HPPA support from Utah is being integrated. -DBX-style debugging info ("stabs") is now supported for COFF formats. -If any stabs directives are seen in the source, GAS will create two new -sections: a ".stab" and a ".stabstr" section. The format of the .stab -section is nearly identical to the a.out symbol format, and .stabstr is -its string table. For this to be useful, you must have configured GCC -to generate stabs (by defining DBX_DEBUGGING_INFO), and must have a GDB -that can use the stab sections (4.11 or later). +* Symbol values are maintained as expressions instead of being immediately + boiled down to add-symbol, sub-symbol, and constant. This permits slightly + more complex calculations involving symbols whose values are not alreadey + known. -LynxOS, on i386 and m68k platforms, is now supported. SPARC LynxOS -support is in progress. +* DBX-style debugging info ("stabs") is now supported for COFF formats. + If any stabs directives are seen in the source, GAS will create two new + sections: a ".stab" and a ".stabstr" section. The format of the .stab + section is nearly identical to the a.out symbol format, and .stabstr is + its string table. For this to be useful, you must have configured GCC + to generate stabs (by defining DBX_DEBUGGING_INFO), and must have a GDB + that can use the stab sections (4.11 or later). ----------------------------------------------------------------- +* LynxOS, on i386 and m68k platforms, is now supported. SPARC LynxOS + support is in progress. Changes in 2.1: -Several small fixes for i386-aix (PS/2) support from Minh Tran-Le have been -incorporated, but not well tested yet. +* Several small fixes for i386-aix (PS/2) support from Minh Tran-Le have been + incorporated, but not well tested yet. -Altered the opcode table split for m68k; it should require less VM to compile -with gcc now. +* Altered the opcode table split for m68k; it should require less VM to compile + with gcc now. -Some minor adjustments to add (Convergent Technologies') Miniframe support, -suggested by Ronald Cole. +* Some minor adjustments to add (Convergent Technologies') Miniframe support, + suggested by Ronald Cole. -HPPA support (running OSF only, not HPUX) has been contributed by Utah. This -includes improved ELF support, which I've started adapting for SPARC Solaris -2.x. Integration isn't completely, so it probably won't work. +* HPPA support (running OSF only, not HPUX) has been contributed by Utah. This + includes improved ELF support, which I've started adapting for SPARC Solaris + 2.x. Integration isn't completely, so it probably won't work. -HP9000/300 support, donated by HP, has been merged in. +* HP9000/300 support, donated by HP, has been merged in. -Ian Taylor has finished the MIPS ECOFF (Ultrix, Irix) support. +* Ian Taylor has finished the MIPS ECOFF (Ultrix, Irix) support. -Better error messages for unsupported configurations (e.g., hppa-hpux). +* Better error messages for unsupported configurations (e.g., hppa-hpux). -Test suite framework is starting to become reasonable. - ----------------------------------------------------------------- +* Test suite framework is starting to become reasonable. Changes in 2.0: -Mostly bug fixes. - -Some more merging of BFD and ELF code, but ELF still doesn't work. +* Mostly bug fixes. ----------------------------------------------------------------- +* Some more merging of BFD and ELF code, but ELF still doesn't work. Changes in 1.94: -BFD merge is partly done. Adventurous souls may try giving configure the -"--with-bfd-assembler" option. Currently, ELF format requires it, a.out format -accepts it; SPARC CPU accepts it. It's the default only for OS "elf" or -"solaris". (ELF isn't really supported yet. It needs work. I've got some -code from Utah for HP-PA ELF, and from DG for m88k ELF, but they're not fully -merged yet.) - -The 68K opcode table has been split in half. It should now compile under gcc -without consuming ridiculous amounts of memory. +* BFD merge is partly done. Adventurous souls may try giving configure the + "--with-bfd-assembler" option. Currently, ELF format requires it, a.out + format accepts it; SPARC CPU accepts it. It's the default only for OS "elf" + or "solaris". (ELF isn't really supported yet. It needs work. I've got + some code from Utah for HP-PA ELF, and from DG for m88k ELF, but they're not + fully merged yet.) -A couple data structures have been reduced in size. This should result in -saving a little bit of space at runtime. +* The 68K opcode table has been split in half. It should now compile under gcc + without consuming ridiculous amounts of memory. -Support for MIPS, from OSF and Ralph Campbell, has been merged in. The OSF -code provided ROSE format support, which I haven't merged in yet. (I can make -it available, if anyone wants to try it out.) Ralph's code, for BSD 4.4, -supports a.out format. We don't have ECOFF support in just yet; it's coming. +* A couple data structures have been reduced in size. This should result in + saving a little bit of space at runtime. -Support for the Hitachi H8/500 has been added. +* Support for MIPS, from OSF and Ralph Campbell, has been merged in. The OSF + code provided ROSE format support, which I haven't merged in yet. (I can + make it available, if anyone wants to try it out.) Ralph's code, for BSD + 4.4, supports a.out format. We don't have ECOFF support in just yet; it's + coming. -VMS host and target support should be working now, thanks chiefly to Eric -Youngdale. +* Support for the Hitachi H8/500 has been added. ----------------------------------------------------------------- +* VMS host and target support should be working now, thanks chiefly to Eric + Youngdale. Changes in 1.93.01: -For m68k, support for more processors has been added: 68040, CPU32, 68851. +* For m68k, support for more processors has been added: 68040, CPU32, 68851. -For i386, .align is now power-of-two; was number-of-bytes. +* For i386, .align is now power-of-two; was number-of-bytes. -For m68k, "%" is now accepted before register names. For COFF format, which -doesn't use underscore prefixes for C labels, it is required, so variable "a0" -can be distinguished from the register. +* For m68k, "%" is now accepted before register names. For COFF format, which + doesn't use underscore prefixes for C labels, it is required, so variable "a0" + can be distinguished from the register. -Last public release was 1.38. Lots of configuration changes since then, lots -of new CPUs and formats, lots of bugs fixed. +* Last public release was 1.38. Lots of configuration changes since then, lots + of new CPUs and formats, lots of bugs fixed. Local variables: diff --git a/gas/config/tc-ip2k.c b/gas/config/tc-ip2k.c new file mode 100644 index 0000000..4c217f2 --- /dev/null +++ b/gas/config/tc-ip2k.c @@ -0,0 +1,507 @@ +/* tc-ip2k.c -- Assembler for the Scenix IP2xxx. + Copyright (C) 2000, 2002 Free Software Foundation. + + This file is part of GAS, the GNU Assembler. + + GAS is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GAS is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GAS; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include +#include + +#include "as.h" +#include "dwarf2dbg.h" +#include "subsegs.h" +#include "symcat.h" +#include "opcodes/ip2k-desc.h" +#include "opcodes/ip2k-opc.h" +#include "cgen.h" +#include "elf/common.h" +#include "elf/ip2k.h" +#include "libbfd.h" + +/* Structure to hold all of the different components describing + an individual instruction. */ +typedef struct +{ + const CGEN_INSN * insn; + const CGEN_INSN * orig_insn; + CGEN_FIELDS fields; +#if CGEN_INT_INSN_P + CGEN_INSN_INT buffer [1]; +#define INSN_VALUE(buf) (*(buf)) +#else + unsigned char buffer [CGEN_MAX_INSN_SIZE]; +#define INSN_VALUE(buf) (buf) +#endif + char * addr; + fragS * frag; + int num_fixups; + fixS * fixups [GAS_CGEN_MAX_FIXUPS]; + int indices [MAX_OPERAND_INSTANCES]; +} +ip2k_insn; + +const char comment_chars[] = ";"; +const char line_comment_chars[] = "#"; +const char line_separator_chars[] = ""; +const char EXP_CHARS[] = "eE"; +const char FLT_CHARS[] = "dD"; + +static void ip2k_elf_section_text (int); +static void ip2k_elf_section_rtn (int); + +/* The target specific pseudo-ops which we support. */ +const pseudo_typeS md_pseudo_table[] = +{ + { "file", dwarf2_directive_file, 0 }, + { "loc", dwarf2_directive_loc, 0 }, + { "text", ip2k_elf_section_text, 0 }, + { "sect", ip2k_elf_section_rtn, 0 }, + { NULL, NULL, 0 } +}; + + + +#define OPTION_CPU_IP2022 (OPTION_MD_BASE) +#define OPTION_CPU_IP2022EXT (OPTION_MD_BASE+1) + +struct option md_longopts[] = +{ + { "mip2022", no_argument, NULL, OPTION_CPU_IP2022 }, + { "mip2022ext", no_argument, NULL, OPTION_CPU_IP2022EXT }, + { NULL, no_argument, NULL, 0 }, +}; +size_t md_longopts_size = sizeof (md_longopts); + +const char * md_shortopts = ""; + +/* Flag to detect when switching to code section where insn alignment is + implied. */ +static int force_code_align = 0; + +/* Mach selected from command line. */ +int ip2k_mach = 0; +unsigned ip2k_mach_bitmask = 0; + +int +md_parse_option (c, arg) + int c ATTRIBUTE_UNUSED; + char * arg ATTRIBUTE_UNUSED; +{ + switch (c) + { + case OPTION_CPU_IP2022: + ip2k_mach = bfd_mach_ip2022; + ip2k_mach_bitmask = 1 << MACH_IP2022; + break; + + case OPTION_CPU_IP2022EXT: + ip2k_mach = bfd_mach_ip2022ext; + ip2k_mach_bitmask = 1 << MACH_IP2022EXT; + break; + + default: + return 0; + } + + return 1; +} + + +void +md_show_usage (stream) + FILE * stream; +{ + fprintf (stream, _("IP2K specific command line options:\n")); + fprintf (stream, _(" -mip2022 restrict to IP2022 insns \n")); + fprintf (stream, _(" -mip2022ext permit extended IP2022 insn\n")); +} + + +void +md_begin () +{ + /* Initialize the `cgen' interface. */ + + /* Set the machine number and endian. */ + gas_cgen_cpu_desc = ip2k_cgen_cpu_open (CGEN_CPU_OPEN_MACHS, + ip2k_mach_bitmask, + CGEN_CPU_OPEN_ENDIAN, + CGEN_ENDIAN_BIG, + CGEN_CPU_OPEN_END); + ip2k_cgen_init_asm (gas_cgen_cpu_desc); + + /* This is a callback from cgen to gas to parse operands. */ + cgen_set_parse_operand_fn (gas_cgen_cpu_desc, gas_cgen_parse_operand); + + /* Set the machine type. */ + bfd_default_set_arch_mach (stdoutput, bfd_arch_ip2k, ip2k_mach); +} + + +void +md_assemble (str) + char * str; +{ + ip2k_insn insn; + char * errmsg; + + /* Initialize GAS's cgen interface for a new instruction. */ + gas_cgen_init_parse (); + + insn.insn = ip2k_cgen_assemble_insn + (gas_cgen_cpu_desc, str, & insn.fields, insn.buffer, & errmsg); + + if (!insn.insn) + { + as_bad ("%s", errmsg); + return; + } + + /* Check for special relocation required by SKIP instructions. */ + if (CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_SKIPA)) + /* Unconditional skip has a 1-bit relocation of the current pc, so + that we emit either sb pcl.0 or snb pcl.0 depending on whether + the PCL (pc + 2) >> 1 is odd or even. */ + { + enum cgen_parse_operand_result result_type; + long value; + const char *curpc_plus_2 = ".+2"; + + errmsg = cgen_parse_address (gas_cgen_cpu_desc, & curpc_plus_2, + IP2K_OPERAND_ADDR16CJP, + BFD_RELOC_IP2K_PC_SKIP, + & result_type, & value); + if (errmsg) + { + as_bad ("%s", errmsg); + return; + } + } + + /* Doesn't really matter what we pass for RELAX_P here. */ + gas_cgen_finish_insn (insn.insn, insn.buffer, + CGEN_FIELDS_BITSIZE (& insn.fields), 1, NULL); +} + +valueT +md_section_align (segment, size) + segT segment; + valueT size; +{ + int align = bfd_get_section_alignment (stdoutput, segment); + + return ((size + (1 << align) - 1) & (-1 << align)); +} + + +symbolS * +md_undefined_symbol (name) + char * name ATTRIBUTE_UNUSED; +{ + return 0; +} + +int +md_estimate_size_before_relax (fragP, segment) + fragS * fragP ATTRIBUTE_UNUSED; + segT segment ATTRIBUTE_UNUSED; +{ + as_fatal (_("md_estimate_size_before_relax\n")); + return 1; +} + + +/* *fragP has been relaxed to its final size, and now needs to have + the bytes inside it modified to conform to the new size. + + Called after relaxation is finished. + fragP->fr_type == rs_machine_dependent. + fragP->fr_subtype is the subtype of what the address relaxed to. */ + +void +md_convert_frag (abfd, sec, fragP) + bfd * abfd ATTRIBUTE_UNUSED; + segT sec ATTRIBUTE_UNUSED; + fragS * fragP ATTRIBUTE_UNUSED; +{ +} + + +/* Functions concerning relocs. */ + +long +md_pcrel_from (fixP) + fixS *fixP; +{ + as_fatal (_("md_pcrel_from\n")); + + /* Return the address of the delay slot. */ + return fixP->fx_size + fixP->fx_where + fixP->fx_frag->fr_address; +} + + +/* Return the bfd reloc type for OPERAND of INSN at fixup FIXP. + Returns BFD_RELOC_NONE if no reloc type can be found. + *FIXP may be modified if desired. */ + +bfd_reloc_code_real_type +md_cgen_lookup_reloc (insn, operand, fixP) + const CGEN_INSN * insn ATTRIBUTE_UNUSED; + const CGEN_OPERAND * operand; + fixS * fixP ATTRIBUTE_UNUSED; +{ + bfd_reloc_code_real_type result; + + result = BFD_RELOC_NONE; + + switch (operand->type) + { + case IP2K_OPERAND_FR: + case IP2K_OPERAND_ADDR16L: + case IP2K_OPERAND_ADDR16H: + case IP2K_OPERAND_LIT8: + /* These may have been processed at parse time. */ + if (fixP->fx_cgen.opinfo != 0) + result = fixP->fx_cgen.opinfo; + fixP->fx_no_overflow = 1; + break; + + case IP2K_OPERAND_ADDR16CJP: + result = fixP->fx_cgen.opinfo; + if (result == 0 || result == BFD_RELOC_NONE) + result = BFD_RELOC_IP2K_ADDR16CJP; + fixP->fx_no_overflow = 1; + break; + + case IP2K_OPERAND_ADDR16P: + result = BFD_RELOC_IP2K_PAGE3; + fixP->fx_no_overflow = 1; + break; + + default: + result = BFD_RELOC_NONE; + break; + } + + return result; +} + + +/* Write a value out to the object file, using the appropriate endianness. */ + +void +md_number_to_chars (buf, val, n) + char * buf; + valueT val; + int n; +{ + number_to_chars_bigendian (buf, val, n); +} + +/* Turn a string in input_line_pointer into a floating point constant of type + type, and store the appropriate bytes in *litP. The number of LITTLENUMS + emitted is stored in *sizeP . An error message is returned, or NULL on + OK. */ + +/* Equal to MAX_PRECISION in atof-ieee.c */ +#define MAX_LITTLENUMS 6 + +char * +md_atof (type, litP, sizeP) + char type; + char * litP; + int * sizeP; +{ + int prec; + LITTLENUM_TYPE words [MAX_LITTLENUMS]; + LITTLENUM_TYPE *wordP; + char * t; + char * atof_ieee PARAMS ((char *, int, LITTLENUM_TYPE *)); + + switch (type) + { + case 'f': + case 'F': + case 's': + case 'S': + prec = 2; + break; + + case 'd': + case 'D': + case 'r': + case 'R': + prec = 4; + break; + + /* FIXME: Some targets allow other format chars for bigger sizes here. */ + + default: + * sizeP = 0; + return _("Bad call to md_atof()"); + } + + t = atof_ieee (input_line_pointer, type, words); + if (t) + input_line_pointer = t; + * sizeP = prec * sizeof (LITTLENUM_TYPE); + + /* This loops outputs the LITTLENUMs in REVERSE order; in accord with + the ip2k endianness. */ + for (wordP = words; prec--;) + { + md_number_to_chars (litP, (valueT) (*wordP++), sizeof (LITTLENUM_TYPE)); + litP += sizeof (LITTLENUM_TYPE); + } + + return 0; +} + + +/* See whether we need to force a relocation into the output file. + Force most of them, since the linker's bfd relocation engine + understands range limits better than gas' cgen fixup engine. + Consider the case of a fixup intermediate value being larger than + the instruction it will be eventually encoded within. */ + +int +ip2k_force_relocation (fix) + fixS * fix; +{ + switch (fix->fx_r_type) + { + /* (No C++ support in ip2k. */ + /* case BFD_RELOC_VTABLE_INHERIT: */ + /* case BFD_RELOC_VTABLE_ENTRY: */ + + case BFD_RELOC_IP2K_FR9: + case BFD_RELOC_IP2K_FR_OFFSET: + case BFD_RELOC_IP2K_BANK: + case BFD_RELOC_IP2K_ADDR16CJP: + case BFD_RELOC_IP2K_PAGE3: + case BFD_RELOC_IP2K_LO8DATA: + case BFD_RELOC_IP2K_HI8DATA: + case BFD_RELOC_IP2K_EX8DATA: + case BFD_RELOC_IP2K_LO8INSN: + case BFD_RELOC_IP2K_HI8INSN: + case BFD_RELOC_IP2K_PC_SKIP: + case BFD_RELOC_IP2K_TEXT: + return 1; + + case BFD_RELOC_16: + if (fix->fx_subsy && S_IS_DEFINED (fix->fx_subsy) + && fix->fx_addsy && S_IS_DEFINED (fix->fx_addsy) + && (S_GET_SEGMENT (fix->fx_addsy)->flags & SEC_CODE)) + { + fix->fx_r_type = BFD_RELOC_IP2K_TEXT; + return 0; + } + return 0; + + default: + return 0; + } +} + +void +ip2k_apply_fix3 (fixP, valueP, seg) + fixS *fixP; + valueT *valueP; + segT seg; +{ + if (fixP->fx_r_type == BFD_RELOC_IP2K_TEXT + && ! fixP->fx_addsy + && ! fixP->fx_subsy) + { + *valueP = ((int)(*valueP)) / 2; + fixP->fx_r_type = BFD_RELOC_16; + } + else if (fixP->fx_r_type == BFD_RELOC_UNUSED + IP2K_OPERAND_FR) + { + /* Must be careful when we are fixing up an FR. We could be + fixing up an offset to (SP) or (DP) in which case we don't + want to step on the top 2 bits of the FR operand. The + gas_cgen_md_apply_fix3 doesn't know any better and overwrites + the entire operand. We counter this by adding the bits + to the new value. */ + char *where = fixP->fx_frag->fr_literal + fixP->fx_where; + + /* Canonical name, since used a lot. */ + CGEN_CPU_DESC cd = gas_cgen_cpu_desc; + CGEN_INSN_INT insn_value + = cgen_get_insn_value (cd, where, + CGEN_INSN_BITSIZE (fixP->fx_cgen.insn)); + /* Preserve (DP) or (SP) specification. */ + *valueP += (insn_value & 0x180); + } + + gas_cgen_md_apply_fix3 (fixP, valueP, seg); +} + +int +ip2k_elf_section_flags (flags, attr, type) + int flags; + int attr ATTRIBUTE_UNUSED; + int type ATTRIBUTE_UNUSED; +{ + /* This is used to detect when the section changes to an executable section. + This function is called by the elf section processing. When we note an + executable section specifier we set an internal flag to denote when + word alignment should be forced. */ + if (flags & SEC_CODE) + force_code_align = 1; + + return flags; +} + +static void +ip2k_elf_section_rtn (int i) +{ + obj_elf_section(i); + + if (force_code_align) + { + /* The s_align_ptwo function expects that we are just after a .align + directive and it will either try and read the align value or stop + if end of line so we must fake it out so it thinks we are at the + end of the line. */ + char *old_input_line_pointer = input_line_pointer; + input_line_pointer = "\n"; + s_align_ptwo (1); + force_code_align = 0; + /* Restore. */ + input_line_pointer = old_input_line_pointer; + } +} + +static void +ip2k_elf_section_text (int i) +{ + char *old_input_line_pointer; + obj_elf_text(i); + + /* the s_align_ptwo function expects that we are just after a .align + directive and it will either try and read the align value or stop if + end of line so we must fake it out so it thinks we are at the end of + the line. */ + old_input_line_pointer = input_line_pointer; + input_line_pointer = "\n"; + s_align_ptwo (1); + force_code_align = 0; + /* Restore. */ + input_line_pointer = old_input_line_pointer; +} diff --git a/gas/config/tc-ip2k.h b/gas/config/tc-ip2k.h new file mode 100644 index 0000000..1c54f58 --- /dev/null +++ b/gas/config/tc-ip2k.h @@ -0,0 +1,65 @@ +/* tc-ip2k.h -- Header file for tc-ip2k.c. + Copyright (C) 2000, 2002 Free Software Foundation, Inc. + + This file is part of GAS, the GNU Assembler. + + GAS is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GAS is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GAS; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#define TC_IP2K + +#ifndef BFD_ASSEMBLER +/* Leading space so will compile with cc. */ + #error IP2K support requires BFD_ASSEMBLER +#endif + +#define LISTING_HEADER "IP2xxx GAS " + +/* The target BFD architecture. */ +#define TARGET_ARCH bfd_arch_ip2k + +#define TARGET_FORMAT "elf32-ip2k" + +#define TARGET_BYTES_BIG_ENDIAN 1 + +/* Permit temporary numeric labels. */ +#define LOCAL_LABELS_FB 1 + +/* .-foo gets turned into PC relative relocs. */ +#define DIFF_EXPR_OK + +/* We don't need to handle .word strangely. */ +#define WORKING_DOT_WORD + +#define LITERAL_PREFIXDOLLAR_HEX +#define LITERAL_PREFIXPERCENT_BIN +#define DOUBLESLASH_LINE_COMMENTS + +#define MD_APPLY_FIX3 +#define md_apply_fix3 ip2k_apply_fix3 + +#define md_elf_section_flags ip2k_elf_section_flags +extern int ip2k_elf_section_flags PARAMS ((int, int, int)); + +#define TC_HANDLES_FX_DONE + +#define tc_gen_reloc gas_cgen_tc_gen_reloc + +#define md_operand(x) gas_cgen_md_operand (x) +extern void gas_cgen_md_operand PARAMS ((expressionS *)); + +#define TC_FORCE_RELOCATION(fixp) ip2k_force_relocation (fixp) +extern int ip2k_force_relocation PARAMS ((struct fix *)); + diff --git a/gas/configure b/gas/configure index 4fcba08..2130669 100755 --- a/gas/configure +++ b/gas/configure @@ -2279,6 +2279,7 @@ for this_target in $target $canon_targets ; do i[3456]86) cpu_type=i386 arch=i386;; x86_64) cpu_type=i386 arch=x86_64;; ia64) cpu_type=ia64 ;; + ip2k) cpu_type=ip2k endian=big ;; m6811|m6812|m68hc12) cpu_type=m68hc11 ;; m680[012346]0) cpu_type=m68k ;; m68008) cpu_type=m68k ;; @@ -2480,6 +2481,8 @@ EOF ia64-*-hpux*) fmt=elf em=hpux ;; ia64-*-netbsd*) fmt=elf em=nbsd ;; + ip2k-*-*) fmt=elf bfd_gas=yes ;; + m32r-*-*) fmt=elf bfd_gas=yes ;; m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;; @@ -2734,7 +2737,7 @@ EOF # Any other special object files needed ? case ${cpu_type} in - fr30 | m32r | openrisc) + fr30 | ip2k | m32r | openrisc) using_cgen=yes ;; @@ -3155,7 +3158,7 @@ EOF # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3159: checking for $ac_word" >&5 +echo "configure:3162: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3185,7 +3188,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3189: checking for $ac_word" >&5 +echo "configure:3192: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3236,7 +3239,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3240: checking for $ac_word" >&5 +echo "configure:3243: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3268,7 +3271,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:3272: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:3275: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -3279,12 +3282,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 3283 "configure" +#line 3286 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:3288: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3291: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -3310,12 +3313,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:3314: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:3317: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:3319: checking whether we are using GNU C" >&5 +echo "configure:3322: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3324,7 +3327,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:3328: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:3331: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -3343,7 +3346,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:3347: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:3350: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3380,7 +3383,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3384: checking for $ac_word" >&5 +echo "configure:3387: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3411,7 +3414,7 @@ done test -n "$YACC" || YACC="yacc" echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:3415: checking how to run the C preprocessor" >&5 +echo "configure:3418: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -3426,13 +3429,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3436: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3439: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -3443,13 +3446,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3453: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3456: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -3460,13 +3463,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3470: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3473: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -3496,7 +3499,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3500: checking for $ac_word" >&5 +echo "configure:3503: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3529,7 +3532,7 @@ test -n "$LEX" || LEX="$missing_dir/missing flex" # Extract the first word of "flex", so it can be a program name with args. set dummy flex; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3533: checking for $ac_word" >&5 +echo "configure:3536: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3563,7 +3566,7 @@ then *) ac_lib=l ;; esac echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 -echo "configure:3567: checking for yywrap in -l$ac_lib" >&5 +echo "configure:3570: checking for yywrap in -l$ac_lib" >&5 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3571,7 +3574,7 @@ else ac_save_LIBS="$LIBS" LIBS="-l$ac_lib $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3605,7 +3608,7 @@ fi fi echo $ac_n "checking lex output file root""... $ac_c" 1>&6 -echo "configure:3609: checking lex output file root" >&5 +echo "configure:3612: checking lex output file root" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3626,7 +3629,7 @@ echo "$ac_t""$ac_cv_prog_lex_root" 1>&6 LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6 -echo "configure:3630: checking whether yytext is a pointer" >&5 +echo "configure:3633: checking whether yytext is a pointer" >&5 if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3638,14 +3641,14 @@ echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c ac_save_LIBS="$LIBS" LIBS="$LIBS $LEXLIB" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_prog_lex_yytext_pointer=yes else @@ -3671,7 +3674,7 @@ ALL_LINGUAS="fr tr es" # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3675: checking for $ac_word" >&5 +echo "configure:3678: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3699,12 +3702,12 @@ else fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:3703: checking for ANSI C header files" >&5 +echo "configure:3706: checking for ANSI C header files" >&5 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -3712,7 +3715,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3716: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3719: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3729,7 +3732,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -3747,7 +3750,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -3768,7 +3771,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #define ISLOWER(c) ('a' <= (c) && (c) <= 'z') @@ -3779,7 +3782,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:3783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -3803,12 +3806,12 @@ EOF fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:3807: checking for working const" >&5 +echo "configure:3810: checking for working const" >&5 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3864: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -3878,21 +3881,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:3882: checking for inline" >&5 +echo "configure:3885: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3899: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -3918,12 +3921,12 @@ EOF esac echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:3922: checking for off_t" >&5 +echo "configure:3925: checking for off_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3951,12 +3954,12 @@ EOF fi echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:3955: checking for size_t" >&5 +echo "configure:3958: checking for size_t" >&5 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -3986,19 +3989,19 @@ fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:3990: checking for working alloca.h" >&5 +echo "configure:3993: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:4002: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4005: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -4019,12 +4022,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:4023: checking for alloca" >&5 +echo "configure:4026: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -4084,12 +4087,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:4088: checking whether alloca needs Cray hooks" >&5 +echo "configure:4091: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4118: checking for $ac_func" >&5 +echo "configure:4121: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4149: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4169,7 +4172,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:4173: checking stack direction for C alloca" >&5 +echo "configure:4176: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4177,7 +4180,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4203: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -4221,17 +4224,17 @@ for ac_hdr in stdlib.h unistd.h sys/stat.h sys/types.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4225: checking for $ac_hdr" >&5 +echo "configure:4228: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4235: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4238: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4260,12 +4263,12 @@ done for ac_func in getpagesize do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4264: checking for $ac_func" >&5 +echo "configure:4267: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4295: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4313,7 +4316,7 @@ fi done echo $ac_n "checking for working mmap""... $ac_c" 1>&6 -echo "configure:4317: checking for working mmap" >&5 +echo "configure:4320: checking for working mmap" >&5 if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4321,7 +4324,7 @@ else ac_cv_func_mmap_fixed_mapped=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4481: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_mmap_fixed_mapped=yes else @@ -4502,17 +4505,17 @@ unistd.h values.h sys/param.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4506: checking for $ac_hdr" >&5 +echo "configure:4509: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4516: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4519: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4542,12 +4545,12 @@ done __argz_count __argz_stringify __argz_next do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4546: checking for $ac_func" >&5 +echo "configure:4549: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4599,12 +4602,12 @@ done for ac_func in stpcpy do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4603: checking for $ac_func" >&5 +echo "configure:4606: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4661,19 +4664,19 @@ EOF if test $ac_cv_header_locale_h = yes; then echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6 -echo "configure:4665: checking for LC_MESSAGES" >&5 +echo "configure:4668: checking for LC_MESSAGES" >&5 if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return LC_MESSAGES ; return 0; } EOF -if { (eval echo configure:4677: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4680: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_val_LC_MESSAGES=yes else @@ -4694,7 +4697,7 @@ EOF fi fi echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6 -echo "configure:4698: checking whether NLS is requested" >&5 +echo "configure:4701: checking whether NLS is requested" >&5 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" @@ -4714,7 +4717,7 @@ fi EOF echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6 -echo "configure:4718: checking whether included gettext is requested" >&5 +echo "configure:4721: checking whether included gettext is requested" >&5 # Check whether --with-included-gettext or --without-included-gettext was given. if test "${with_included_gettext+set}" = set; then withval="$with_included_gettext" @@ -4733,17 +4736,17 @@ fi ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for libintl.h""... $ac_c" 1>&6 -echo "configure:4737: checking for libintl.h" >&5 +echo "configure:4740: checking for libintl.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4747: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4750: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4760,19 +4763,19 @@ fi if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6 -echo "configure:4764: checking for gettext in libc" >&5 +echo "configure:4767: checking for gettext in libc" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { return (int) gettext ("") ; return 0; } EOF -if { (eval echo configure:4776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gettext_libc=yes else @@ -4788,7 +4791,7 @@ echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6 if test "$gt_cv_func_gettext_libc" != "yes"; then echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6 -echo "configure:4792: checking for bindtextdomain in -lintl" >&5 +echo "configure:4795: checking for bindtextdomain in -lintl" >&5 ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -4796,7 +4799,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -4823,19 +4826,19 @@ fi if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6 -echo "configure:4827: checking for gettext in libintl" >&5 +echo "configure:4830: checking for gettext in libintl" >&5 if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4842: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gt_cv_func_gettext_libintl=yes else @@ -4863,7 +4866,7 @@ EOF # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4867: checking for $ac_word" >&5 +echo "configure:4870: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4897,12 +4900,12 @@ fi for ac_func in dcgettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4901: checking for $ac_func" >&5 +echo "configure:4904: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4952,7 +4955,7 @@ done # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4956: checking for $ac_word" >&5 +echo "configure:4959: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4988,7 +4991,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4992: checking for $ac_word" >&5 +echo "configure:4995: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5020,7 +5023,7 @@ else fi cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* CATOBJEXT=.gmo DATADIRNAME=share @@ -5060,7 +5063,7 @@ fi # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5064: checking for $ac_word" >&5 +echo "configure:5067: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5094,7 +5097,7 @@ fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5098: checking for $ac_word" >&5 +echo "configure:5101: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5130,7 +5133,7 @@ fi # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5134: checking for $ac_word" >&5 +echo "configure:5137: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5220,7 +5223,7 @@ fi LINGUAS= else echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6 -echo "configure:5224: checking for catalogs to be installed" >&5 +echo "configure:5227: checking for catalogs to be installed" >&5 NEW_LINGUAS= for lang in ${LINGUAS=$ALL_LINGUAS}; do case "$ALL_LINGUAS" in @@ -5248,17 +5251,17 @@ echo "configure:5224: checking for catalogs to be installed" >&5 if test "$CATOBJEXT" = ".cat"; then ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6 -echo "configure:5252: checking for linux/version.h" >&5 +echo "configure:5255: checking for linux/version.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5262: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5265: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5321,7 +5324,7 @@ fi echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6 -echo "configure:5325: checking whether to enable maintainer-specific portions of Makefiles" >&5 +echo "configure:5328: checking whether to enable maintainer-specific portions of Makefiles" >&5 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" @@ -5346,7 +5349,7 @@ fi echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:5350: checking for executable suffix" >&5 +echo "configure:5353: checking for executable suffix" >&5 if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5356,7 +5359,7 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:5360: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:5363: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.o | *.obj) ;; @@ -5381,17 +5384,17 @@ for ac_hdr in string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h e do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:5385: checking for $ac_hdr" >&5 +echo "configure:5388: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:5395: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5398: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -5421,7 +5424,7 @@ done # Put this here so that autoconf's "cross-compiling" message doesn't confuse # people who are not cross-compiling but are compiling cross-assemblers. echo $ac_n "checking whether compiling a cross-assembler""... $ac_c" 1>&6 -echo "configure:5425: checking whether compiling a cross-assembler" >&5 +echo "configure:5428: checking whether compiling a cross-assembler" >&5 if test "${host}" = "${target}"; then cross_gas=no else @@ -5436,19 +5439,19 @@ echo "$ac_t""$cross_gas" 1>&6 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:5440: checking for working alloca.h" >&5 +echo "configure:5443: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:5452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -5469,12 +5472,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:5473: checking for alloca" >&5 +echo "configure:5476: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5509: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -5534,12 +5537,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:5538: checking whether alloca needs Cray hooks" >&5 +echo "configure:5541: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5568: checking for $ac_func" >&5 +echo "configure:5571: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5599: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5619,7 +5622,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:5623: checking stack direction for C alloca" >&5 +echo "configure:5626: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5627,7 +5630,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:5653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -5668,21 +5671,21 @@ EOF fi echo $ac_n "checking for inline""... $ac_c" 1>&6 -echo "configure:5672: checking for inline" >&5 +echo "configure:5675: checking for inline" >&5 if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5689: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_inline=$ac_kw; break else @@ -5712,12 +5715,12 @@ esac for ac_func in unlink remove do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5716: checking for $ac_func" >&5 +echo "configure:5719: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5769,12 +5772,12 @@ done for ac_func in sbrk do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:5773: checking for $ac_func" >&5 +echo "configure:5776: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5804: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -5832,7 +5835,7 @@ case $host in ;; *-ncr-sysv4.3*) echo $ac_n "checking for _mwvalidcheckl in -lmw""... $ac_c" 1>&6 -echo "configure:5836: checking for _mwvalidcheckl in -lmw" >&5 +echo "configure:5839: checking for _mwvalidcheckl in -lmw" >&5 ac_lib_var=`echo mw'_'_mwvalidcheckl | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5840,7 +5843,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lmw $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5858: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5872,7 +5875,7 @@ else fi echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 -echo "configure:5876: checking for main in -lm" >&5 +echo "configure:5879: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5880,14 +5883,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5894: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5910,7 +5913,7 @@ fi ;; *) echo $ac_n "checking for main in -lm""... $ac_c" 1>&6 -echo "configure:5914: checking for main in -lm" >&5 +echo "configure:5917: checking for main in -lm" >&5 ac_lib_var=`echo m'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5918,14 +5921,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -5956,12 +5959,12 @@ esac # enough, but on some of those systems, the assert macro relies on requoting # working properly! echo $ac_n "checking for working assert macro""... $ac_c" 1>&6 -echo "configure:5960: checking for working assert macro" >&5 +echo "configure:5963: checking for working assert macro" >&5 if eval "test \"`echo '$''{'gas_cv_assert_ok'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -5977,7 +5980,7 @@ assert (a == b ; return 0; } EOF -if { (eval echo configure:5981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5984: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_assert_ok=yes else @@ -6018,12 +6021,12 @@ gas_test_headers=" " echo $ac_n "checking whether declaration is required for strstr""... $ac_c" 1>&6 -echo "configure:6022: checking whether declaration is required for strstr" >&5 +echo "configure:6025: checking whether declaration is required for strstr" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_strstr'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_strstr=no else @@ -6055,12 +6058,12 @@ fi echo $ac_n "checking whether declaration is required for malloc""... $ac_c" 1>&6 -echo "configure:6059: checking whether declaration is required for malloc" >&5 +echo "configure:6062: checking whether declaration is required for malloc" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_malloc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6078: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_malloc=no else @@ -6092,12 +6095,12 @@ fi echo $ac_n "checking whether declaration is required for free""... $ac_c" 1>&6 -echo "configure:6096: checking whether declaration is required for free" >&5 +echo "configure:6099: checking whether declaration is required for free" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_free'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6115: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_free=no else @@ -6129,12 +6132,12 @@ fi echo $ac_n "checking whether declaration is required for sbrk""... $ac_c" 1>&6 -echo "configure:6133: checking whether declaration is required for sbrk" >&5 +echo "configure:6136: checking whether declaration is required for sbrk" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_sbrk'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6152: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_sbrk=no else @@ -6166,12 +6169,12 @@ fi echo $ac_n "checking whether declaration is required for environ""... $ac_c" 1>&6 -echo "configure:6170: checking whether declaration is required for environ" >&5 +echo "configure:6173: checking whether declaration is required for environ" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_environ'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6189: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_environ=no else @@ -6206,12 +6209,12 @@ fi # for it? echo $ac_n "checking whether declaration is required for errno""... $ac_c" 1>&6 -echo "configure:6210: checking whether declaration is required for errno" >&5 +echo "configure:6213: checking whether declaration is required for errno" >&5 if eval "test \"`echo '$''{'gas_cv_decl_needed_errno'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* gas_cv_decl_needed_errno=no else diff --git a/gas/configure.in b/gas/configure.in index 8f5ab3c..8372005 100644 --- a/gas/configure.in +++ b/gas/configure.in @@ -128,6 +128,7 @@ changequote(,)dnl i[3456]86) cpu_type=i386 arch=i386;; x86_64) cpu_type=i386 arch=x86_64;; ia64) cpu_type=ia64 ;; + ip2k) cpu_type=ip2k endian=big ;; m6811|m6812|m68hc12) cpu_type=m68hc11 ;; m680[012346]0) cpu_type=m68k ;; changequote([,])dnl @@ -327,6 +328,8 @@ changequote([,])dnl ia64-*-hpux*) fmt=elf em=hpux ;; ia64-*-netbsd*) fmt=elf em=nbsd ;; + ip2k-*-*) fmt=elf bfd_gas=yes ;; + m32r-*-*) fmt=elf bfd_gas=yes ;; m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;; @@ -577,7 +580,7 @@ changequote([,])dnl # Any other special object files needed ? case ${cpu_type} in - fr30 | m32r | openrisc) + fr30 | ip2k | m32r | openrisc) using_cgen=yes ;; diff --git a/gas/doc/Makefile.am b/gas/doc/Makefile.am index cfb8f89..701eab2 100644 --- a/gas/doc/Makefile.am +++ b/gas/doc/Makefile.am @@ -39,6 +39,7 @@ CPU_DOCS = \ c-i386.texi \ c-i860.texi \ c-i960.texi \ + c-ip2k.texi \ c-m32r.texi \ c-m68hc11.texi \ c-m68k.texi \ diff --git a/gas/doc/Makefile.in b/gas/doc/Makefile.in index 25daeaf..2030e80 100644 --- a/gas/doc/Makefile.in +++ b/gas/doc/Makefile.in @@ -150,6 +150,7 @@ CPU_DOCS = \ c-i386.texi \ c-i860.texi \ c-i960.texi \ + c-ip2k.texi \ c-m32r.texi \ c-m68hc11.texi \ c-m68k.texi \ diff --git a/gas/doc/all.texi b/gas/doc/all.texi index 0642dfd..50117d6 100644 --- a/gas/doc/all.texi +++ b/gas/doc/all.texi @@ -40,6 +40,7 @@ @set I80386 @set I860 @set I960 +@set IP2K @set M32R @set M68HC11 @set M680X0 diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo index f3195a3..8504e57 100644 --- a/gas/doc/as.texinfo +++ b/gas/doc/as.texinfo @@ -43,6 +43,7 @@ @set I860 @set I960 @set IA-64 +@set IP2K @set M32R @set M68HC11 @set M680X0 @@ -342,6 +343,11 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}. [@b{-mle}|@b{mbe}] [@b{-x}|@b{-xexplicit}] [@b{-xauto}] [@b{-xdebug}] @end ifset +@ifset IP2K + +@emph{Target IP2K options:} + [@b{-mip2022}|@b{-mip2022ext}] +@end ifset @ifset M32R @emph{Target M32R options:} @@ -670,6 +676,22 @@ error if necessary. @end table @end ifset +@ifset IP2K +The following options are available when @value{AS} is configured for the +Scenix IP2K series. + +@table @gcctabopt + +@item -mip2022ext +Specifies that the extended IP2022 instructions are allowed. + +@item -mip2022 +Restores the default behaviour, which restricts the permited instructions to +just the basic IP2022 ones. + +@end table +@end ifset + @ifset M32R The following options are available when @value{AS} is configured for the Mitsubishi M32R series. @@ -1998,6 +2020,9 @@ is considered a comment and is ignored. The line comment character is @ifset SPARC @samp{!} on the SPARC; @end ifset +@ifset IP2K +@samp{#} on the ip2k; +@end ifset @ifset M32R @samp{#} on the m32r; @end ifset @@ -5690,6 +5715,9 @@ subject, see the hardware manufacturer's manual. @ifset I960 * i960-Dependent:: Intel 80960 Dependent Features @end ifset +@ifset IP2K +* IP2K-Dependent:: IP2K Dependent Features +@end ifset @ifset M32R * M32R-Dependent:: M32R Dependent Features @end ifset @@ -5828,6 +5856,10 @@ family. @include c-ia64.texi @end ifset +@ifset IP2K +@include c-ip2k.texi +@end ifset + @ifset M32R @include c-m32r.texi @end ifset diff --git a/gas/doc/c-ip2k.texi b/gas/doc/c-ip2k.texi new file mode 100644 index 0000000..98e639f --- /dev/null +++ b/gas/doc/c-ip2k.texi @@ -0,0 +1,46 @@ +@c Copyright 2002 +@c Free Software Foundation, Inc. +@c This is part of the GAS manual. +@c For copying conditions, see the file as.texinfo. +@ifset GENERIC +@page +@node IP2K-Dependent +@chapter IP2K Dependent Features +@end ifset +@ifclear GENERIC +@node Machine Dependencies +@chapter IP2K Dependent Features +@end ifclear + +@cindex IP2K support +@menu +* IP2K-Opts:: IP2K Options +@end menu + +@node IP2K-Opts +@section IP2K Options + +@cindex options, IP2K +@cindex IP2K options + +The Scenix IP2K version of @code{@value{AS}} has a few machine +dependent options: + +@table @code +@item -mip2022ext +@cindex @samp{-mip2022ext} option, IP2022 +@cindex architecture options, IP2022 +@cindex IP2K architecture options +@code{@value{AS}} can assemble the extended IP2022 instructions, but +it will only do so if this is specifically allowed via this command +line option. + +@item -mip2022 +@cindex @samp{-mip2022} option, IP2K +@cindex architecture options, IP2K +@cindex IP2K architecture options +This option restores the assembler's default behaviour of not +permitting the extended IP2022 instructions to be assembled. + + +@end table -- cgit v1.1