2001-11-01  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* gas/m68hc11/opers12.s: Add test for disassembler bug with movb
	instruction.
	* gas/m68hc11/opers12.d: Likewise.
	* gas/m68hc11/opers12-dwarf2.d: Likewise.

2001-10-09  Nick Clifton  <nickc@cambridge.redhat.com>

	* sh/basic.exp: Add dsp dump test.
        * sh/dsp/d: New file: Expected output of disassembly of dsp.s
        * sh/dsp.s: New file: Test assembly source of DSP single data
	transfer instructions.

2001-09-04  Alan Modra  <amodra@bigpond.net.au>

	Merge from mainline.
	2001-07-23  Alan Modra  <amodra@bigpond.net.au>
	* gas/i386/opcode.d: Tweak lgdt for 2001-07-18 change.
	* gas/i386/intel.d: Likewise.

2001-07-16  Philip Blundell  <philb@gnu.org>

	* gas/arm/arm7t.d, gas/arm/inst.d: Tweak expected output for
	change to disassembler.

2001-06-20  Tom Rix  <trix@redhat.com>

	* gas/ppc/aix.exp: New file, aix specific tests.
	* gas/ppc/align.s: New file, .comm alignment test.

2001-06-18  Philip Blundell  <philb@gnu.org>

	* gas/arm/arm.exp (msr_bad): Deleted.
	* gas/arm/msr-bad.s: Likewise.

2001-06-11  Alan Modra  <amodra@bigpond.net.au>

	Merge from mainline.
	2001-06-10  H.J. Lu  <hjl@gnu.org>
	* gas/elf/section2.l: Match various white spaces.
	* gas/elf/section2.e: Support 64bit ELF.
	* gas/elf/section2.e-mips: Likewise.

	2001-06-08  Alan Modra  <amodra@bigpond.net.au>
	* gas/elf/elf.exp (run_list_test): Undo $readelf change in 2001-06-07.

	2001-06-07  H.J. Lu  <hjl@gnu.org>
	* gas/elf/section2.e-mips: New file.
	* gas/elf/elf.exp (run_list_test): Add suffix.
	Pass -mips as suffix to run_list_test for mips.
	* gas/elf/section2.l: Match ".*GAS.*" instead of
	"GAS LISTING .*".
	* gas/mips/mips.exp: Set xfail for "lineno" on Linux/mips.
	* gas/mips/empic.d: Support stabs.
	* gas/mips/mips16-e.d: Likewise.
	* gas/mips/mips16-f.d: Likewise.
	* gas/mips/mipsel16-f.d: Likewise.
	* gas/mips/telempic.d: Likewise.
	* gas/mips/tempic.d: Likewise.
	* gas/mips/tmips16-e.d: Likewise.
	* gas/mips/tmipsel16-e.d: Likewise.

	2001-06-06  H.J. Lu  <hjl@gnu.org>
	* gas/mips/elf-rel3.s: New file.
	* gas/mips/elf-rel3.d: Likewise.
	* gas/mips/elfel-rel3.s: Likewise.
	* gas/mips/elfel-rel3.d: Likewise.
	* gas/mips/mips.exp: Run elf-rel3/elfel-rel3.
	* gas/elf/elf.exp (run_list_test): New.
	Run section2 with run_list_test.
	* gas/elf/section2.e: New file.
	* gas/elf/section2.l: Likewise.
	* gas/elf/section2.s: Likewise.

	2001-06-04  H.J. Lu  <hjl@gnu.org>
	* gas/mips/mips4010.s: Add the missing ".end".
	* gas/mips/mips4100.s: Likewise.
	* gas/mips/mips4650.s: Likewise.
	* gas/mips/sync.s: Likewise.

	2001-06-02  H.J. Lu  <hjl@gnu.org>
	* gas/sparc/unalign.d: Support Sparc V9.

	2001-05-25  H.J. Lu  <hjl@gnu.org>
	* gas/mips/e32el-rel2.d: New for little endian mips.
	* gas/mips/elfel-rel2.d: Likewise.
	* gas/mips/elfel-rel.d: Likewise.
	* gas/mips/mipsel16-f.d: Likewise.
	* gas/mips/telempic.d: Likewise.
	* gas/mips/tmipsel16-e.d: Likewise.
	* gas/mips/tempic.d: New for traditional mips.
	* gas/mips/tmips16-e.d: Likewise.
	* gas/mips/elf-rel.d: Handle alignment padding.
	* gas/mips/elf-rel2.d: Likewise.
	* gas/mips/mips.exp: Support little endian and traditional
	mips.

	2001-05-24  H.J. Lu  <hjl@gnu.org>
	* gas/m68k/pcrel.d: Support 64bit BFD.
	* gas/arm/adrl.d: Support 64bit BFD.
	* gas/arm/arm7t.d: Likewise.
	* gas/arm/inst.d: Likewise.
	* gas/arm/pic.d: Likewise.
	* gas/arm/xscale.d: Likewise.

	2001-05-15  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
	* gas/mips/abs.d: Remove $ before register names, per latest
	disassembler.
	* gas/mips/add.d: Ditto.
	* gas/mips/and.d: Ditto.
	* gas/mips/beq.d: Ditto.
	* gas/mips/bge.d: Ditto.
	* gas/mips/bgeu.d: Ditto.
	* gas/mips/blt.d: Ditto.
	* gas/mips/bltu.d: Ditto.
	* gas/mips/delay.d: Ditto.
	* gas/mips/div-ilocks.d: Ditto.
	* gas/mips/div.d: Ditto.
	* gas/mips/dli.d: Ditto.
	* gas/mips/elf_e_flags1.d: Ditto.
	* gas/mips/elf_e_flags2.d: Ditto.
	* gas/mips/elf_e_flags3.d: Ditto.
	* gas/mips/elf_e_flags4.d: Ditto.
	* gas/mips/jal-empic.d: Ditto.
	* gas/mips/jal-svr4pic.d: Ditto.
	* gas/mips/jal-xgot.d: Ditto.
	* gas/mips/jal.d: Ditto.
	* gas/mips/la-empic.d: Ditto.
	* gas/mips/la-svr4pic.d: Ditto.
	* gas/mips/la-xgot.d: Ditto.
	* gas/mips/la.d: Ditto.
	* gas/mips/lb-empic.d: Ditto.
	* gas/mips/lb-svr4pic.d: Ditto.
	* gas/mips/lb-xgot-ilocks.d: Ditto.
	* gas/mips/lb-xgot.d: Ditto.
	* gas/mips/lb.d: Ditto.
	* gas/mips/ld-empic.d: Ditto.
	* gas/mips/ld-ilocks-addr32.d: Ditto.
	* gas/mips/ld-ilocks.d: Ditto.
	* gas/mips/ld-svr4pic.d: Ditto.
	* gas/mips/ld-xgot.d: Ditto.
	* gas/mips/ld.d: Ditto.
	* gas/mips/li.d: Ditto.
	* gas/mips/lif-empic.d: Ditto.
	* gas/mips/lif-svr4pic.d: Ditto.
	* gas/mips/lif-xgot.d: Ditto.
	* gas/mips/lifloat.d: Ditto.
	* gas/mips/mips16.d: Ditto.
	* gas/mips/mips32.d: Ditto.
	* gas/mips/mips4.d: Ditto.
	* gas/mips/mips4010.d: Ditto.
	* gas/mips/mips4100.d: Ditto.
	* gas/mips/mips4650.d: Ditto.
	* gas/mips/mips64.d: Ditto.
	* gas/mips/mul-ilocks.d: Ditto.
	* gas/mips/mul.d: Ditto.
	* gas/mips/nodelay.d: Ditto.
	* gas/mips/rol.d: Ditto.
	* gas/mips/sb.d: Ditto.
	* gas/mips/trap20.d: Ditto.
	* gas/mips/trunc.d: Ditto.
	* gas/mips/uld.d: Ditto.
	* gas/mips/ulh-empic.d: Ditto.
	* gas/mips/ulh-svr4pic.d: Ditto.
	* gas/mips/ulh-xgot.d: Ditto.
	* gas/mips/ulh.d: Ditto.
	* gas/mips/ulw.d: Ditto.
	* gas/mips/usd.d: Ditto.
	* gas/mips/ush.d: Ditto.
	* gas/mips/usw.d: Ditto.

	2001-04-05  Hans-Peter Nilsson  <hp@axis.com>
	* lib/gas-defs.exp (run_dump_test): Support using readelf.
	* config/default.exp: Default READELF and READELFFLAGS.

	2001-03-30  H.J. Lu  <hjl@gnu.org>
	* gas/i386/relax.d: Dump with -s instead of -drw.

	2001-03-29  H.J. Lu  <hjl@gnu.org>
	* gas/i386/relax.s: New test for relaxation between sections.
	* gas/i386/relax.d: New.
	* gas/i386/i386.exp: Add tests for ELF.

	2001-03-27  Chris Demetriou  <cgd@broadcom.com>
	* gas/mips/lineno.d: Allow for the possibility that
	the local labels won't be in the objdump output.  Match
	zeros in addresses using '+' for better compatibility with
	different targets.

	2001-03-26  Chris Demetriou  <cgd@broadcom.com>
	* gas/mips/sync.s: Declare 'foo' as a function so that this
	test will work on properly on ECOFF targets.

	2001-03-18  H.J. Lu  <hjl@gnu.org>
	* gas/i386/intel.s: Move PIC code to ...
	* gas/i386/intelpic.s: New. Here.
	* gas/i386/intel.d: Updated.
	* gas/i386/intelpic.d: New.
	* gas/i386/i386.exp: Check PIC code in Intel syntax for ELF
	targets only.

	2001-02-17  Chris Demetriou  <cgd@broadcom.com>
	* gas/mips/mips32.d: Remove ELF dependencies.  This test
	wasn't meant to be ELF specific, and doesn't have to be.
	* gas/mips/mips64.d: Likewise.
	* gas/mips/mips.exp: Don't attempt the elf_e_flags family of
	tests if not ELF; they test ELF-specific features.

2001-05-28  Jeff Sturm  <jsturm@one-point.com>

	* gas/sparc/unalign.s: New test.  Check unaligned relocs.
	* gas/sparc/unalign.d: New expected test results.
	* gas/sparc/sparc.exp: Run new test.

2001-05-23  Alan Modra  <amodra@one.net.au>

	* gas/elf/ehopt0.d: Tweak for bigendian targets.

2001-05-14  Richard Henderson  <rth@redhat.com>

	* gas/elf/ehopt0.s: New.
	* gas/elf/ehopt0.d: New.
	* gas/elf/elf.exp: Run it.

2001-05-12  Alan Modra  <amodra@one.net.au>

	* gas/i386/sse2.s: Correct cvtps2dq, movdq2q, and movq2dq
	* gas/i386/sse2.d: Likewise.  Fix pmuludq and punpckhqdq too.

	* gas/i386/ssemmx2.d: Correct movq.

2001-05-04  Alan Modra  <amodra@one.net.au>

	* gas/i386/katmai.d: Correct pmovmskb and pextrw opcodes.
	* gas/i386/ssemmx2.d: Likewise.  Correct register for pextrw,
	pinsrw, and pmovmskb.
	* gas/i386/sse2.d: Correct register for movmskpd.

2001-03-31  Alan Modra  <alan@linuxcare.com.au>

	* gas/all/cond.s: Add .if .elseif tree.
	* gas/all/cond.d: Match above.

2001-03-24  Alan Modra  <alan@linuxcare.com.au>

	* gas/i386/ssemmx2.s: Change movntq to movntdq.
	* gas/i386/ssemmx2.d: Matching change.

2001-03-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>

	* gas/vax/quad.exp: Correct expected result.

2001-03-19  Andreas Schwab  <schwab@suse.de>

	* gas/m68k/pcrel.s: Force alignment to 8 byte boundary to get
	consistent output across targets.
	* gas/m68k/pcrel.d: Adjusted.

2001-03-18  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* gas/mri/mri.exp: Fix test of m6811/m6812 targets.

2001-03-17  Philip Blundell  <philb@gnu.org>

	* gas/vtable/vtable.exp: Don't run tests on AVR.
	* gas/macros/macros.exp: Mark strings test xfail for AVR.

2001-02-23  H.J. Lu  <hjl@gnu.org>

	* gas/ia64/opc-a-err.l: Fix "cmp4.lt.or".

	* gas/ia64/opc-a.pl: Add tests for pseudo-ops for "cmp" and
	"cmp4".
	* gas/ia64/opc-a.s: Rebuilt.
	* gas/ia64/opc-a.d: Likewise.

2001-02-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* gas/mri/mri.exp: Don't execute the M68K specific tests 
	on m6811-elf and m6812-elf targets, still run the generic MRI tests.

2001-02-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* gas/m68hc11/malis.s: New test to verify compliance with Motorola
	Assembly Language Input Standard.
	* gas/m68hc11/malis.d: New file.
	* gas/m68hc11/malis-include.s: New file.
	* gas/m68hc11/all.exp: Add the new test.

2001-01-12  Alan Modra  <alan@linuxcare.com.au>

	* gas/i386/i386.exp (gas_64_check): Correct target string.
	Use gas_64_check rather than target string to decided whether
	x86_64 checks should run.

	* gas/i386/sse2.s: Add a label to cure objdump "no symbols" error.
	* gas/i386/ssemmx2.s: Likewise.
	* gas/i386/sse2.d: Update to suit.
	* gas/i386/ssemmx2.s: Likewise.

2001-01-11  Peter Targett <peter.targett@arccores.com>

	* gas/arc/alias.*: Removed.
	* gas/arc/branch.*: Likewise.
	* gas/arc/insn3.*: Likewise.
	* gas/arc/math.*: Likewise.
	* gas/arc/sshift.*: Likewise.
	* gas/arc/arc.exp: Simplified test process for base case
	instruction set by adding run_dump_test cases for all base
	instructions.
 	* gas/arc/adc.s, gas/arc/adc.d: New test cases and dump.
 	* gas/arc/add.s, gas/arc/add.d: Likewise.
 	* gas/arc/and.s, gas/arc/and.d: Likewise.
 	* gas/arc/asl.s, gas/arc/asl.d: Likewise.
 	* gas/arc/asr.s, gas/arc/asr.d: Likewise.
 	* gas/arc/b.s, gas/arc/b.d: Likewise.
 	* gas/arc/bic.s, gas/arc/bic.d: Likewise.
 	* gas/arc/bl.s, gas/arc/bl.d: Likewise.
 	* gas/arc/brk.s, gas/arc/brk.d: Likewise.
 	* gas/arc/extb.s, gas/arc/extb.d: Likewise.
 	* gas/arc/extw.s, gas/arc/extw.d: Likewise.
 	* gas/arc/flag.s, gas/arc/flag.d: Likewise.
 	* gas/arc/j.s, gas/arc/j.d: Likewise.
 	* gas/arc/jl.s, gas/arc/jl.d: Likewise.
 	* gas/arc/ld.s, gas/arc/ld.d: Likewise.
 	* gas/arc/ld2.s, gas/arc/ld2.d: Likewise.
 	* gas/arc/lp.s, gas/arc/lp.d: Likewise.
 	* gas/arc/lsr.s, gas/arc/lsr.d: Likewise.
 	* gas/arc/mov.s, gas/arc/mov.d: Likewise.
 	* gas/arc/nop.s, gas/arc/nop.d: Likewise.
 	* gas/arc/or.s, gas/arc/or.d: Likewise.
 	* gas/arc/rlc.s, gas/arc/rlc.d: Likewise.
 	* gas/arc/ror.s, gas/arc/ror.d: Likewise.
 	* gas/arc/rrc.s, gas/arc/rrc.d: Likewise.
 	* gas/arc/sbc.s, gas/arc/sbc.d: Likewise.
 	* gas/arc/sexb.s, gas/arc/sexb.d: Likewise.
 	* gas/arc/sexw.s, gas/arc/sexw.d: Likewise.
 	* gas/arc/sleep.s, gas/arc/sleep.d: Likewise.
 	* gas/arc/add.s, gas/arc/add.d: Likewise.
 	* gas/arc/st.s, gas/arc/st.d: Likewise.
 	* gas/arc/sub.s, gas/arc/sub.d: Likewise.
 	* gas/arc/swi.s, gas/arc/swi.d: Likewise.
 	* gas/arc/xor.s, gas/arc/xor.d: Likewise.
	* gas/arc/warn.s: Removed warning test case for setting of flags
	followed by conditional branch, an arc5 only feature.

	* gas/ieee-fp/x930509a.exp: Skip test if target also arc*-*-*.

	* gas/vtable/vtable.exp: Skip tests if target also arc*-*-*.

2001-01-11  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* gas/m68hc11/opers12.s: Add more tests for index post byte.
	* gas/m68hc11/opers12.d: Likewise.

2001-01-11  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* gas/m68hc11/all.exp: Add new tests for dwarf2.
	* gas/m68hc11/lbranch-dwarf2.d: New file, test for dwarf2.
	* gas/m68hc11/opers12-dwarf2.d: Likewise.
	* gas/m68hc11/insns-dwarf2.d: Likewise.

2001-01-11  Nick Clifton  <nickc@redhat.com>

	* gas/arm/adrl.s: Add global label 'foo'.
	* gas/arm/adrl.d: Expect to see references to 'foo' in the
	disassembly.  COFF and ELF disassemblys should now be the same.

Wed Jan 10 15:14:54 MET 2001  Jan Hubicka  <jh@suse.cz>

	* i386.exp: Add ssemmx2 and sse2 tests.
	(sse2.d, sse2.s, ssemmx2.d, ssemmx2.s): New tests.

2001-01-09  Nick Clifton  <nickc@redhat.com>

	* gas/arm/pic.d: Fix patterns to match new behaviour of
	disassembler.
	inst.d: Fix patterns to match new behaviour of disassembler.

2001-01-03  Philip Blundell  <pb@futuretv.com>

	* gas/vtable/vtable.exp: Don't run tests on Alpha.

Sat Jan  6 13:34:07 MET 2001  Jan Hubicka  <jh@suse.cz>

	* i386.exp: Add tests for presence of 32bit versus 64bit output
	format; run both 64bit and 32bit tests when format is available;
	add x86_64 test.
	* x86_64.s: New file.
	* x86_64.d: New file.

2001-01-02  Nick Clifton  <nickc@redhat.com>

	* gas/arm/arm.exp: Pass -marmv3 to msr-bad test, since the
	instruction is legal in v5.  Also fix expected error message.

2001-01-01  Philip Blundell  <philb@gnu.org>

	* gas/arm/adrl.s, gas/arm/pic.s, gas/arm/msr-bad.s: New tests.
	* gas/arm/arm.exp: Run them.
	* gas/arm/adrl.d, gas/arm/pic.d: Expected results for above.
	* gas/arm/arm6.s: Also test uppercase `CPSR' and `SPSR'.

2000-12-22  H.J. Lu  <hjl@gnu.org>

	* gas/i386/intel.s: Replace "nop" with ".p2align 4,0".
	* gas/i386/intel.d: Updated.

2000-12-12  Jim Wilson  <wilson@redhat.com>

	* gas/ia64/dv-imply.d, gas/ia64/dv-mutex.d, gas/ia64/dv-safe.d,
	gas/ia64/dv-srlz.d, gas/ia64/opc-m.d: Update.

2000-12-12  Nick Clifton  <nickc@redhat.com>

	* gas/vtable/vtable.exp: Fix formatting.

	* gas/arm/elsegundo.s: New Test (currently disabled).
	* gas/arm/elsegundo.d: Expected test results.

2000-12-11  H.J. Lu  <hjl@gnu.org>

	* gas/i386/intel.d: Adjusted for the a.out assembler.
	* gas/i386/intel.s: Likewise.

2000-12-09  Nick Clifton  <nickc@redhat.com>

	* gas/m68k/pcrel.d: Update to match latest assembler output.

2000-12-02  Chris Demetriou  <cgd@sibyte.com>

        * gas/mips/elf_e_flags.s: Add padding to the end of the
        file so that objdump output will be consistent.
        * gas/mips/elf_e_flags1.d, gas/mips/elf_e_flags2.d,
        gas/mips/elf_e_flags3.d, gas/mips/elf_e_flags4.d: Expect
        "..." at end of objdump output because of zero bytes at end
        of section.
        * gas/mips/elf_e_flags.c: Add note to comment about
        what's changing in elf_e_flags.s.

        * gas/mips/la.s: Add padding to the end of the file so that
        objdump output will be consistent.
        * gas/mips/la-svr4pic.d, gas/mips/la-xgot.d: Expect "..." at
        end of objdump output because of zero bytes at end of
        section.

        * gas/mips/sync.s: Add padding to the end of the file so that
        objdump output will be consistent.
        * gas/mips/sync.d: Expect "..." at end of objdump output
        because of zero bytes at end of section.

        * gas/mips/empic.d: Pad sections out to 16 bytes, to avoid
        alignment issues so tests are useful on multiple targets.
        * gas/mips/empic.s: Likewise.
        * gas/mips/mips16-e.d: Likewise.
        * gas/mips/mips16-e.s: Likewise.
        * gas/mips/mips16-f.d: Likewise.
        * gas/mips/mips16-f.s: Likewise.

        * gas/mips/mips32.d: Expect disassembly of madd and maddu
        to use their correct names.  Add tests for break and sdbbp.
        * gas/mips/mips32.s: Likewise.

        * gas/mips/mips64.s: Add test for assembly of MIPS64
        extensions.
        * gas/mips/mips64.d: Likewise.
        * gas/mips/mips.exp: Test using the new "mips64" test.

2000-12-01  Chris Demetriou  <cgd@sibyte.com>

        * gas/mips/mips16.d: Expect mips16 nops to be used for padding
        when mips16 code generation is enabled.

	* gas/mips/empic.d: Adjust for the fact that the difference
	between two symbols in the same section are not expected to
	generate a reloc.
	* gas/mips/empic.s: Likewise.  Also, correct typo in comment
	about expected relocs.
	
        * gas/mips/mips32.s, gas/mips/mips32.d: New files for MIPS32
        instruction assembly test.
        * gas/mips/mips.exp: Add the test mentioned above.

2000-11-30  Diego Novillo  <dnovillo@redhat.com>

	* intel.s, intel.d: New test for @GOT references.

2000-11-28  Hans-Peter Nilsson  <hp@bitrange.com>

	* gas/sh/err.exp: New, framework for error-testing.
	* gas/sh/err-1.s: New test.

2000-11-26  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* gas/m68hc11/opers12.s: New test for movw operands.
	* gas/m68hc11/opers12.d: Likewise.

2000-11-24  Nick Clifton  <nickc@redhat.com>

	* arm.exp: Run tests for xscale as well as arm.
	Run xscale tests.

	* xscale.s: New file: XScale instruction tests.
	* xscale.d: New file: Expected XScale instruction results.

2000-11-20  H.J. Lu  <hjl@gnu.org>

	* gas/i386/intel.d: Add 3 "nop"s for the a.out assembler.
	* gas/i386/intel.s: Likewise.

2000-11-16  H.J. Lu  <hjl@gnu.org>

	* gas/symver/symver0.d: Add 64bit support.
	* gas/symver/symver1.d: Likewise.

2000-11-16  H.J. Lu  <hjl@gnu.org>

	* gas/symver/symver.exp: Don't run symver4 nor symver5.

2000-11-13  H.J. Lu  <hjl@gnu.org>

	* gas/symver/symver.exp: New for symver test.
	* gas/symver/symver0.d: Likewise.
	* gas/symver/symver0.s: Likewise.
	* gas/symver/symver1.d: Likewise.
	* gas/symver/symver1.s: Likewise.
	* gas/symver/symver2.l: Likewise.
	* gas/symver/symver2.s: Likewise.
	* gas/symver/symver3.l: Likewise.
	* gas/symver/symver3.s: Likewise.
	* gas/symver/symver4.l: Likewise.
	* gas/symver/symver4.s: Likewise.
	* gas/symver/symver5.l: Likewise.
	* gas/symver/symver5.s: Likewise.
	* gas/symver/symver6.l: Likewise.
	* gas/symver/symver6.s: Likewise.

2000-11-11  Hans-Peter Nilsson  <hp@bitrange.com>

	* gas/macros/macros.exp: Mark strings test xfail for sh.

2000-10-24  Diego Novillo  <dnovillo@cygnus.com>

	* intel.s, intel.d: Add new tests for intel syntax.

2000-10-19  Alan Modra  <alan@linuxcare.com.au>

	* gas/elf/section0.s: Ensure section sizes are multiples of 16.
	* gas/elf/section1.s: Likewise.
	* gas/elf/section[01].d: Change to suit.

2000-10-18  H.J. Lu <hjl@gnu.org>

	* gas/i386/intel.d: Fix the support for 64bit BFD in the last
	change.

2000-10-15  Diego Novillo  <dnovillo@cygnus.com>

	* intel.s, intel.d: Add new tests for naked registers using intel
	syntax.

2000-09-29  Hans-Peter Nilsson  <hp@axis.com>

	* gas/cris/regprefix-err-1.s, gas/cris/rd-regprefix-1.s,
	gas/cris/rd-regprefix-1.d, gas/cris/rd-regprefix-1b.d,
	gas/cris/us-err-1.s, gas/cris/us-err-2.s, gas/cris/us-err-3.s: New.
	* gas/cris/cris.exp: Loop run_dump_test over files matching rd-*.d.

2000-09-28  Alan Modra  <alan@linuxcare.com.au>

	* gas/hppa/parse/parse.exp: Replace "hppa*w-*-*" with "hppa*64*-*-*"
	* gas/hppa/reloc/reloc.exp: Likewise.
	* gas/hppa/unsorted/unsorted.exp: Likewise.

	* gas/hppa/reloc/reduce.s: Modify .PARAM so we need an arg reloc.

2000-09-22  Jim Wilson  <wilson@cygnus.com>

	* gas/ia64/opc-f.pl: Add missing fcmp and fpcmp tests.
	* gas/ia64/opc-f.s, gas/ia64/opc-f.d: Regenerate.

	* gas/ia64/dv-raw-err.s: Add new testcases for PR%, 16 - 62.
	* gas/ia64/dv-waw-err.s: Likewise.
	* gas/ia64/dv-imply.d: Regenerate.
	* gas/ia64/dv-mutex.d, gas/ia64/dv-raw-err.l, gas/ia64/dv-safe.d,
	gas/ia64/dv-srlz.d, gas/ia64/dv-war-err.l, gas/ia64/dv-waw-err.l,
	gas/ia64/opc-f.d, gas/ia64/opc-i.d, gas/ia64/opc-m.d: Likewise.

2000-09-14  Timothy Wall  <twall@cygnus.com>

	* gas/ia64/dv-waw-err.[sl]: Additional tests for parallel
	comparisons which should and should not produce DVs.

2000-09-05  Alan Modra  <alan@linuxcare.com.au>

	* gas/vtable/vtable.exp: Re-enable for hppa-elf.

2000-08-29  Timothy Wall  <twall@cygnus.com>

        * gas/ia64/dv-mutex.s: Add stop to avoid DV error on cmp.eq.
        * gas/ia64/dv-mutex.d: Update regexp pattern.
        * gas/ia64/dv-entry-err.s: Add stop to avoid DV error on cmp.eq.
        * gas/ia64/dv-imply.s: Add stops to avoid DV errors on cmp.REL.
        Test still fails due to insn opcode pattern changes.
	
2000-08-21  H.J. Lu <hjl@gnu.org>

	* gas/all/cofftag.d: Support the strict COFF.

2000-08-16  Jim Wilson  <wilson@cygnus.com>

	* gas/ia64/dv-raw-err.s: Add new tests for addl and postinc.
	* gas/ia64/dv-raw-err.l: Likewise.
	* gas/ia64/dv-waw-err.l: Update sed pattern.
	* gas/ia64/opc-f.pl: Delete fpsub, and fpadd comment.
	* gas/ia64/opc-f.s, gas/ia64/opc-f.d: Regenerate.

2000-08-16  Nick Clifton  <nickc@redhat.com>

	* gas/arm/inst.s: Add tests for edge cases of shift based
        addressing modes.

	* gas/arm/inst.d: Add expected results for new tests.

2000-07-20  Hans-Peter Nilsson  <hp@axis.com>

	* gas/all/gas.exp: Don't run floating-point tests on CRIS.
	* gas/ieee-fp/x930509a.exp: Ditto.
	* gas/macros/macros.exp: Mark strings test xfail for CRIS.
	* gas/cris/*: New tests for CRIS.

2000-07-19  Alan Modra  <alan@linuxcare.com.au>

	* gas/macros/macros.exp (test1): Run it for hppa*-*-linux*.
	(semi): Likewise.
	(strings): Don't run for hppa, except for hppa*-*-linux*.

	* gas/hppa/parse/linesepbug.s: Ensure we have whitespace before
	pseudos.

2000-07-18  Scott Bambrough  <scottb@netwinder.org>

        * gas/arm/inst.d: Fix expected results to match current assembler
        output.  Patch from Justin Seger <justin.m.seger@intel.com>.

2000-07-10  Alan Modra  <alan@linuxcare.com.au>

	* gas/vtable/vtable.exp: Disable test for hppa.

	* gas/hppa/reloc/reloc.exp (do_relocation_reduction_tests): Don't
	run test for any elf target.
	(applybug): Don't run test for linux.
	* gas/hppa/unsorted/unsorted.exp (do_common_text): Likewise.
	* gas/hppa/parse/parse.exp (linesepbug): Remove xfail
	(labelbug): xfail for hppa-linux.

	* gas/hppa/basic/{coprmem.s, fmemLRbug.s}: Add colons to labels.
	* gas/hppa/parse/{callinfobug.s, regpopbug.s}: Likewise.
	* gas/hppa/reloc/{applybug.s, funcrelocbug.s, longcall.s,
	r_no_reloc.s, reduce3.s}: Likewise.
	* gas/hppa/unsorted/common.s: Likewise.

2000-07-05  Nick Clifton  <nickc@cygnus.com>

	* gas/d30v/inst.d: Fix expected results to match current assembler
	output.
	* gas/d30v/bittest.l: Fix expected warning messages to match
	current assembler output.

2000-06-29  Kazu Hirata  <kazu@hxi.com>

	* gas/h8300/h8300.exp (do_h8300s_mac): Change the registers used
	in ldmac and stmac.
	* gas/h8300/macs.s: Likewise.

2000-06-27  Nick Clifton  <nickc@cygnus.com>

	* gas/d30v/bittest.l: Edit to match new warning messages produced
	by assembler.

2000-06-19  Timothy Wall  <twall@cygnus.com>

	* gas/macros/macros.exp: Avoid tests which are not useful on tic54x.
	* gas/all/gas.exp: Make adjustments for tic54x target.
	* gas/ieee-fp/x930509a.exp: Ditto.
	* gas/tic54x/*: New tests for tic54x.  NOTE: load page has been
	moved into the LMA and is not printed separately by objdump any
	longer.  This still needs to be tested.
	
2000-06-18  Stephane Carrez  <stcarrez@worldnet.fr>

	* gas/m68k/all.exp: Don't execute tests if the target is m68hc11&12.
	* gas/m68hc11/all.exp: Specific tests for m68hc11.
	* gas/m68hc11/all_insns.[ds]: Check m68hc11 instructions.
	* gas/m68hc11/insns[ds]: Another test.
	* gas/m68hc11/lbranch.[ds]: Check branch optimization (gas relax).
	* gas/m68hc11/opers12.[ds]: New files, check m68hc12 operands.

2000-06-17  Alan Modra  <alan@linuxcare.com.au>

	* gas/macros/strings.s: Don't start directives in first column
	(for LABELS_WITHOUT_COLONS targets).

2000-06-14  H.J. Lu <hjl@gnu.org>

	* gas/macros/strings.d: Support a.out and coff.

2000-06-14  Nick Clifton  <nickc@cygnus.com>

	* gas/arm/arm6.s: Remove 'mrs r9, cpsr_all' since the cpsr_all
	flag is no longer legal syntax.

2000-06-09  Nick Clifton  <nickc@cygnus.com>

	* gas/macros/macros.exp: Run new test: strings.
	* gas/macros/strings.s: New test: String expansion inside
	macros.
	* gas/macros/strings.d: New test results.
	
2000-06-04  Alan Modra  <alan@linuxcare.com.au>

	* gas/i386/prefix.s: Modify so we have at least one x86 test that
	checks the line separator.

Sun May 21 10:08:08 2000  Hans-Peter Nilsson  <hp@axis.com>

	* gas/elf/elf.exp: Exclude *-*-linux*coff* as non-elf.

2000-05-15  Nick Clifton  <nickc@cygnus.com>

	* gas/arm/arch4t.s: Add tests of new fields to msr instruction.

2000-05-11  Ulf Carlsson  <ulfc@engr.sgi.com>

	* gas/mips/mips.exp: Include *-*-linux* in svr4pic.

	* gas/mips/jal-svr4pic.{s,d} gas/mips/jal-xgot.d: Add a jal to a
	weak symbol.

2000-05-08  Alan Modra  <alan@linuxcare.com.au>

	* gas/mri/float.d: Fix for srec length change.

2000-05-02  Alan Modra  <alan@linuxcare.com.au>

	* gas/hppa/unsorted/unsorted.exp: Duplicate hppa*-*-*elf*
	behaviour for hppa*-*-linux* throughout file.
	* gas/hppa/reloc/reloc.exp: Ditto.
	(reduce2.s): Disable test for elf targets.

	* gas/hppa/parse/parse.exp (ssbug.s): setup_xfail hppa*-*-linux*.

	* gas/elf/section0.s: Don't start pseudos on first column so
	targets that define LABELS_WITHOUT_COLONS work.
	* gas/elf/section1.s: Ditto.
	* gas/vtable/inherit0.s: Ditto.
	* gas/vtable/inherit1.s: Ditto.
	* gas/vtable/entry0.s: Ditto.
	* gas/vtable/entry1.s: Ditto.

2000-05-01  Nick Clifton  <nickc@cygnus.com>

	* gasp/macro.out: Fix label numbers to remove leading zeroes. 
	* gasp/mdouble.out: Fix label numbers to remove leading zeroes. 

2000-04-25  Alan Modra  <alan@linuxcare.com.au>

	* gas/i386/general.l: Allow for DISP32 pe relocs.
	* gas/i386/jump.d: Similarly.

Mon Apr 24 16:35:08 2000  Jim Wilson  <wilson@cygnus.com>

	* gas/ia64/opc-i.d: Change pmin2.u to pmin2.  Change pmax2.u to pmax2.
	Change MLI to MLX.  Switch operands for output matching tbit.z.orcm,
	tbit.z.andcm, tbit.nz.orcm, tbit.nz.andcm, tnat.z.orcm, tnat.z.andcm,
	tnat.nz.orcm, tnat.nz.andcm inputs.
	* gas/ia64/opc-i.pl: Insert padding nops before last dep.
	* gas/ia64/opc-i.s: Regenerate.
	
	* gas/ia64/opc-i.s: Regenerate.
	* gas/ia64/opc-f.pl: Add explicit stop at end.
	
2000-04-22  Timothy Wall  <twall@cygnus.com>

	* gas/ia64/opc-f.d: Disassemble zeroes to verify break.f.
	* gas/ia64/opc-f.s: Add an explicit stop to make IAS output match.

Fri Apr 21 13:20:53 2000  Richard Henderson  <rth@cygnus.com>
			  David Mosberger  <davidm@hpl.hp.com>
			  Timothy Wall <twall@cygnus.com>
			  Jim Wilson  <wilson@cygnus.com>

	* gas/vtable/vtable.exp: Disable for ia64.
	* gas/ia64: New testsuite directory.
	
2000-04-03  Alan Modra  <alan@linuxcare.com.au>

	* gas/i386/general.s: Check 16-bit immediates, and move call/jump
	checks to start.
	* gas/i386/general.l: Likewise.

2000-04-01  Alexandre Oliva  <aoliva@cygnus.com>

	* gas/mn10300/am33_5.s: Check that negative SP offsets are encoded
	with 32 bits, not with the unsigned shorter opcodes.
	* gas/mn10300/basic.exp: Likewise.

2000-03-31  Alexandre Oliva  <aoliva@cygnus.com>

	* lib/gas-defs.exp (regexp_diff): Don't break on the first
	difference, list them all.

2000-03-29  Nick Clifton <nickc@cygnus.com

	* gas/arm/thumb.s: Add test of bal instruction.

2000-03-27  Alan Modra  <alan@linuxcare.com.au>

	* gas/ieee-fp/x930509a.exp (dotest): Fix test for
	LISTING_WORD_SIZE==1.
	* gas/all/gas.exp (do_930509a): Same here.
	* gas/all/cond.d: And here.

2000-03-16  Nick Clifton  <nickc@cygnus.com>

	* gas/arm/arm.exp: Run branch.s test.
	Run tests if target is strongarm.

	* gas/arm/branch.s: New test.  Make sure that assembler can handle
	same-section branch relocations properly.

	* gas/arm/branch.d: New file.  Expected output from assembling
	branch.s.

2000-03-10  Geoffrey Keating  <geoffk@cygnus.com>

	* gas/mips/empic.d: New file.
	* gas/mips/empic.s: New file.
	* gas/mips/mips16-e.d: New file.
	* gas/mips/mips16-e.s: New file.
	* gas/mips/mips16-f.d: New file.
	* gas/mips/mips16-f.s: New file.
	* gas/mips/mips.exp: Add empic, mips16-e.  Add mips16-f as an
	expected failure.

2000-02-25  H.J. Lu <hjl@gnu.org>

	* gas/i386/general.l: Support a.out and coff.

2000-02-25  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* gas/i386/intel.s: New file, intel version of opcode.s
	* gas/i386/intel.d: New file, copy of opcode.d
	* gas/i386/i386.exp: Call it.

	* gas/i386/general.s: Add extra "out" instructions.
	* gas/i386/general.l: Likewise.

2000-01-31  Nick Clifton  <nickc@cygnus.com>

	* gas/arm/inst.s: Include test of ATPCS register naming
	conventions.

	* gas/arm/float.s: Include test of ATPCS register naming
	conventions.

Fri Jan 21 12:48:06 2000  H.J. Lu <hjl@gnu.org>

	* gas/i386/general.l: Support a.out.
	* gas/i386/jump.d: Likewise.
	* gas/i386/jump16.d: Likewise.

2000-01-21  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* gas/i386/general.{s,l}: Move 16 bit jmp and call tests from here
	* gas/i386/jump16.{s,d}: To here.
	* gas/i386/jump.{s,d}: New files.  Duplicate 32 bit jmp and call
	tests in general.s so that objdump is exercised.

	* gas/i386/i386.exp: Call new tests.

2000-01-15  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* gas/i386/general.{s,l}: Add jmp and call tests for .code16gcc,
	.code16, and .code32 modes.

Tue Nov 30 23:02:01 1999  Jeffrey A Law  (law@cygnus.com)

	* gas/mn10300/{am33.s, am33_2.s, am33_3.s}: New test files.
	* gas/mn10300/{am33_4.s, am33_5.s, am33_6.s}: Likewise.
	* gas/mn10300/{am33_7.s, am33_8.s}: Likewise.
	* gas/mn10300/basic.exp: Run the am33 tests.

1999-11-15  Gavin Romig-Koch  <gavin@cygnus.com>

	* gas/mips/la.d: Adjust for new la macro expansion.
	Change matches for explicit addresses to matches for
	any address.
	* gas/mips/la-xgot.d: Same.
	* gas/mips/la-svr4pic.d: Same.

1999-11-01  Nick Clifton  <nickc@cygnus.com>

	Remove reloc generating references to local labels in test code.
	Some ARM targets (eg PE) generate a reloc based on the label,
	whilst others (eg ELF) generate a reloc based on the section
	symbol.  This meant that the disassembled outputs would differ.
	
	* gas/arm/inst.s: Change test of BLPL instruction.
	* gas/arm/inst.d: Change expected decode of BLPL instruction.
	* gas/arm/arm7t.s: Remove use of .LC0 label in .word directive.
	Remove .rdata section, since this cannot exist in an arm-aout
	target.
	* gas/arm/arm7t.d: Change expected reloc generated for .word
	directive.

1999-10-21  Nick Clifton  <nickc@cygnus.com>

	* gas/arm/arm7t.d: Update to match latest objdump output.
	* gas/arm/inst.s: Fix erroneous test case.
	* gas/arm/inst.d: Update to match latest objdump output.

Mon Oct 11 13:37:51 1999  Geoffrey Keating  <geoffk@cygnus.com>

	* lib/gas-defs.exp (regexp_diff): Allow '#...' to mean "some
 	indeterminate number of extra lines here".

	* gas/elf/elf.exp: Remove XFAILs.
	* gas/elf/section0.d: Make pass on MIPS (and hopefully alpha).
	* gas/elf/section1.d: Likewise.

Thu Oct  7 00:12:04 MDT 1999	Diego Novillo <dnovillo@cygnus.com>

	* gas/d10v: New directory.
	* gas/d10v/d10.exp: New file.
	* gas/d10v/inst.s: New file.
	* gas/d10v/inst.d: New file.

Thu Oct  7 12:52:25 1999  Geoffrey Keating  <geoffk@cygnus.com>

	* gas/mips/elf-rel.s: New file.
	* gas/mips/elf-rel.d: New file.
	* gas/mips/elf-rel2.d: New file.
	* gas/mips/e32-rel2.d: New file.
	* gas/mips/elf-rel2.s: New file.
	* gas/mips/mips.exp: Add elf-rel, elf-rel2.

	* gas/mips/elf_e_flags1.d: Tweak a little so it passes
	even if the CPU is set to something by default.

Mon Oct  4 18:25:49 1999  Doug Evans  <devans@canuck.cygnus.com>

	* gas/m32r/error.exp: New testcase driver.
	* gas/m32r/m32rx.exp: New testcase driver.
	* gas/m32r/fslotx.[sd]: New testcase.
	* gas/m32r/m32rx.[sd]: New testcase.
	* gas/m32r/relax-s.[sd]: New testcase.
	* gas/m32r/interfere.s: New testcase.
	* gas/m32r/wrongsize.s: New testcase.

1999-09-17  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* gas/i386/i386.exp: Enable reloc and white tests for COFF.
	* gas/i386/reloc.d: Accept dir32 relocs.

1999-09-12  Donn Terry  <donn@interix.com>

	* gas/all/gas.exp: Run cofftag test for i*86-*-interix*.
	* lib/gas-defs.exp: Add perror if can not read .d file.

1999-09-04  Steve Chamberlain  <sac@pobox.com>

	* gas/pj/{pj.exp, ops.c, ops.d}: New tests for picoJava.

1999-09-02  Nick Clifton  <nickc@cygnus.com>

	* gas/vtable/vtable.exp: Add [istarget "strongarm*-*-*"] to run
	dump  test "entry0" instead of "entry1".
	
1999-09-01  Scott Bambrough  <scottb@netwinder.org>
 
        * gas/vtable/vtable.exp: Added [istarget "arm*-*-*"] to run dump 
        test "entry0" instead of "entry1".  ARM targets use REL relocs,
        and should use the test entry0.

1999-09-01  H.J. Lu  <hjl@gnu.org>

	* gas/i386/naked.d: Fix for coff targets.

Mon Aug 30 12:18:40 1999  Jeffrey A Law  (law@cygnus.com)

	* gas/hppa/unsorted/*.s: Use .code instead of .SPACE/.SUBSPA for
	sectioning.
	* gas/hppa/unsorted/unsorted.exp: Disable tests not appropriate for
	PA64.

	* gas/hppa/reloc/*.s: Use .code instead of .SPACE/.SUBSPA for
	sectioning.
	* gas/hppa/parse/parse.exp: Disable tests not appropriate for PA64.
	Revamp address expressions slightly to handle an arbitrary sized
	address.

	* gas/hppa/parse/*.s: Use .code instead of .SPACE/.SUBSPA for
	sectioning.
	* gas/hppa/parse/parse.exp: Disable tests not appropriate for PA64.

	* gas/hppa/basic/*.s: Use .code instead of .SPACE/.SUBSPA for
	sectioning.

1999-08-30  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* gas/i386/naked.s, gas/i386/naked.d: Test-suite addition for
	allow_naked_reg parsing.
	* gas/i386/i386.exp: Call it.

1999-08-29  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* gas/i386/white.s, gas/i386/white.l: Add space in FP reg tests.

Sat Aug 28 00:16:12 1999  Jerry Quinn <jquinn@nortelnetworks.com>

	* gas/hppa/basic/basic.exp:  Add new tests shift2.s,
	shift3.s, extract2.s, extract3.s, deposit2.s, and deposit3.s.
	* gas/hppa/basic/shift2.s, shift3.s, extract2.s,
	extract3.s, deposit2.s, deposit3.s:  New.

	* gas/hppa/basic/add.s,addi.s,dcor.s,shladd.s,sub.s,subi.s,unit.s:
	Add new syntax versions of instructions to tests.
	* gas/hppa/basic/add2.s,dcor2.s,perf.s,purge2.s,shladd2.s,sub2.s,
	system2.s, unit2.s:  New tests.
	* hppa/basic/basic.exp: Add new tests.

	* gas/hppa/basic/basic.exp:
	* gas/hppa/basic/media.s:  Add test cases for new instructions.

	* gas/hppa/basic/basic.exp (do_branch2,do_media): New.
	* gas/hppa/basic/branch2.s:  New.
	* gas/hppa/basic/media.s:  New.

	* gas/hppa/basic/basic.exp (do_fp_comp2):  New.
	* gas/hppa/basic/fp_comp2.s:  New.

1999-08-20  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* gas/i386/general.s, gas/i386/general.l: Add .code16gcc
	displacement checks with auto address prefix.

1999-08-17  H.J. Lu  <hjl@gnu.org>

	* gas/elf/elf.exp: Expected to fail on alpha*-*-*.

1999-08-09  Ian Lance Taylor  <ian@zembu.com>

	* gas/i386/float.s, gas/i386/float.l: Modify to work correctly
	when gas uses 2**4 alignment for .text.
	* gas/i386/general.s, gas/i386/general.l: Likewise.
	* gas/i386/katmai.s, gas/i386/katmai.d: Likewise.
	* gas/i386/modrm.s, gas/i386/modrm.l: Likewise.
	* gas/i386/prefix.s, gas/i386/prefix.d: Likewise.

1999-07-27  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* gas/i386/reloc.d: Fix so that test passes when enable-targets
	includes 64-bit bfd target.

1999-06-13  Ian Lance Taylor  <ian@zembu.com>

	* gas/i386/katmai.d: Tweak for recent disassembler changes.

1999-06-12  Ian Lance Taylor  <ian@zembu.com>

	* gas/elf/elf.exp: Don't run tests on "*-*-linux*aout*" or
	"*-*-linux*oldld*".
	* gas/vtable/vtable.exp: Likewise.
	* gas/i386/reloc.d: Modify expected reloc names to accept a.out
	names.

	* gas/i386/amd.s: Add a symbol so a.out tests will work.
	* gas/i386/katmai.s: Likewise.
	* gas/i386/amd.d: Corresponding change.
	* gas/i386/katmai.d: Corresponding change.

1999-06-10  Ian Lance Taylor  <ian@zembu.com>

	* gas/mips/sync.d: Pass -mips2 to the assembler.

	* gas/mips/elf_e_flags.s: Tweak code so that the tests pass for
	mips-elf target as well as mips64-elf target.
	* gas/mips/elf_e_flags1.d: Corresponding changes.
	* gas/mips/elf_e_flags2.d: Likewise.
	* gas/mips/elf_e_flags3.d: Likewise.
	* gas/mips/elf_e_flags4.d: Likewise.

	* gas/elf/elf.exp: Add setup_xfail for mips*-*-*.

	* gas/all/itbl-test.c (main): Update itbl_get_reg_val call for new
	parameter.

1999-06-10  Jakub Jelinek  <jj@ultra.linux.cz>

	* gas/sparc/synth64.s: Add checks for single register signx/clruw.
	* gas/sparc/set64.s: Add tests for setuw and setsw synthetic insns.
	* gas/sparc/prefetch.d: Add -64 as switch.
	* gas/sparc/rdpr.d: Ditto.
	* gas/sparc/wrpr.d: Ditto.
	* gas/sparc/synth64.d: Ditto, reflect synth64.s changes.
	* gas/sparc/reloc64.d: Add -64 as switch, be more tolerant, as
	current gas outputs %hi(0) and not %hi(0x0).
	* gas/sparc/set64.d: Add -64 as switch, reflect set64.s changes and
	optimizations for setx instruction.
	* gas/sparc/sparc.exp: Do sparc64*-*-* checks if it is any of the
	compiled-in targets.

1999-06-10  Richard Henderson  <rth@cygnus.com>

	* gas/macros/irp.s: Use `foo' and `bar' instead of `r' and `s'.
	* gas/macros/rept.s, gas/macros/test2.s, gas/macros/test3.s: Likewise.
	* gas/macros/{irp,rept,test2,test3}.d: Update.

1999-06-05  Richard Henderson  <rth@cygnus.com>

	* gas/elf/elf.exp: New directory.
	* gas/elf/section0.[sd]: New test.
	* gas/elf/section1.[sd]: New test.

1999-06-03  Philip Blundell  <philb@gnu.org>

	* gas/arm/arm7t.d, gas/arm/inst.d: Update to match current gas,
 	bfd and opcodes.

1999-05-28  Ian Lance Taylor  <ian@zembu.com>

	* gas/vtable/vtable.exp: Don't run test for i960 yet.

1999-05-17  Nick Clifton  <nickc@cygnus.com>

	* gas/mcore/allinsn.d: Updated to match latest objdump output.

1999-05-12  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* gas/i386/opcode.d: Modify callw to suit disasm fix.

	* gas/i386/amd.d: Modify a '(bad)' to SIMD instruction.

	* gas/i386/amd.s: Pad to multiple of 8
	* gas/i386/amd.d: Here too.

	* gas/i386/prefix.[sd]: Align with nops
	* gas/i386/reloc.[sd]: Here too.

	* gas/i386/katmai.[sd]: New for PIII SIMD
	* gas/i386/i386.exp: Call it.

1999-05-02  Nick Clifton  <nickc@cygnus.com>

	* gas/mcore/allinsn.d: Update to match latest assembler
	operations. 

1999-04-16  DJ Delorie  <dj@cygnus.com>

	* gas/i386/amd.s: Add NOPs to align for coff targets
	* gas/i386/amd.d: and check for them.

Thu Apr 15 15:03:43 1999  Jeffrey A Law  (law@cygnus.com)

	* gas/hppa/basic/basic.exp (do_coprmem): No longer expected to file.

Wed Apr 14 13:43:06 1999  Jeffrey A Law  (law@cygnus.com)

	* gas/hppa/basic/branch.s: Do not use immediate value where we
	really want a register.
	* gas/hppa/basic/coprmem.s: Likewise.
	* gas/hppa/basic/fmemLRbug.s: Likewise.
	* gas/hppa/basic/coprmem.s: Likewise.
	* gas/hppa/basic/spop.s: Likewise.
	* gas/hppa/basic/imem.s: Likewise.
	* gas/hppa/parse/badfmpyadd.s: Likewise.
	* gas/hppa/parse/calldatabug.s: Likewise.
	* gas/hppa/parse/entrybug.s: Likewise.
	* gas/hppa/parse/exprbug.s: Likewise.
	* gas/hppa/parse/fixup7bug.s: Likewise.
	* gas/hppa/parse/labelbug.s: Likewise.
	* gas/hppa/reloc/applybug.s: Likewise.
	* gas/hppa/reloc/funcrelocbug.s: Likewise.
	* gas/hppa/reloc/labelopbug.s: Likewise.
	* gas/hppa/reloc/longcall.s: Likewise.
	* gas/hppa/reloc/plabelbug.s: Likewise.
	* gas/hppa/reloc/reduce.s: Likewise.
	* gas/hppa/reloc/reduce2.s: Likewise.
	* gas/hppa/reloc/reduce3.s: Likewise.
	* gas/hppa/unsorted/brlenbug.s: Likewise.
	* gas/hppa/unsorted/importbug.s: Likewise.
	* gas/hppa/unsorted/lasbeldiffs.s: Likewise.

	* gas/hppa/basic/basic.exp (do_imem): Handle multiple encodings
	for loads and stores using reg + small d addresses.
	No longer expect failure for mis-parse of imm %reg.

1999-04-13  Doug Evans  <devans@casey.cygnus.com>

	* gas/m32r/m32rx.d (cmpu__rach): Fix expected output.
	* gas/m32r/m32rx.s (bc__add,add__bc): Explicitly specify short branch
	so branch relaxation restrictions won't interfere with parallelization
	attempts.

1999-04-08  Nick Clifton  <nickc@cygnus.com>

	* gas/mcore: New Directory.
	* gas/mcore/allinsn.exp: New File: Expect file for MCore assembly
	tests.
	* gas/mcore/allinsn.s: New File: Source file for MCore assembly
	tests.
	* gas/mcore/allinsn.d: New File: Expected output file for MCore
	assembly tests.

1999-03-20  Doug Evans  <devans@casey.cygnus.com>

	* gas/m32r/m32rx.[sd]: Fix a few more testcases.

1999-03-16  Martin Hunt  <hunt@cygnus.com>

	* gas/d30v/d30.exp (run_list_test): Add new tests,
        label, guard-debug, serial, warn_oddreg, bittest, and mul.

	* gas/d30v/opt.s: Fix some warnings and add a few labels
        to keep things from parallelizing where we don't want them to.

	* gas/d30v/reloc.s: Fix warning.
        
	* gas/d30v/opt.d, reloc.d, inst.d: Rebuild.

	* gas/d30v/label.s: New test. Check that labels are aligned 
        on 8-byte boundaries.

	* gas/d30v/guard-debug.s: New test. Test output with "-g".

	* gas/d30v/serial.s: New test. Check for warnings with 
        illegal serial instructions.

	* gas/d30v/warn_oddreg.s: New test. CHeck for warnings when
        odd-numbered registers are used for some instructions.

	* gas/d30v/bittest.s: New test. Check for bit operation 
        instructions (BCLR, BNOT, BSET, BTST) in the IU.

	* gas/d30v/mul.s: New test. Check for restricted sequences
        in a bunch of different multiply instructions.
	
	* gas/vtable/vtable.exp (run_list_test): Don't
	run test on D30V.

1999-03-05  Nick Clifton  <nickc@cygnus.com>

	* gas/all/gas.exp: Expect strongarm-coff target to fail cofftag
	test. 

1999-02-13  Jim Blandy  <jimb@zwingli.cygnus.com>

	* gas/mips/mips.exp: Run the new tests, below.
	* gas/mips/elf_e_flags1.d, gas/mips/elf_e_flags2.d,
	gas/mips/elf_e_flags3.d, gas/mips/elf_e_flags4.d: New files.
	* gas/mips/elf_e_flags.c, gas/mips/elf_e_flags.s: New files.

	* lib/gas-defs.exp (run_dump_test): Document.  It's not
 	really trivial.

	* lib/gas-defs.exp (run_dump_test): Clean up logic for guessing
	$program (the dump tool).

1999-02-10  Doug Evans  <devans@casey.cygnus.com>

	* gas/m32r/allinsn.d: Prefix all | with \.
	(push,pop): Fix expected output.
	* gas/m32r/relax-1.d: Emitted nops are serial, not parallel.
	* gas/m32r/fslot.d: Prefix all | with \.

1999-02-08  Nick Clifton  <nickc@cygnus.com>

	* gas/vtable/inherit0.s: Do not use '@' prefix to .type operator.
	Some ports use it as a comment initiator.

	* gas/vtable/entry1.d: Do not look for an addend.  Some ports use
	REL relocations and so do not have one.

1998-12-18  Nick Clifton  <nickc@cygnus.com>

	* gas/fr30/allinsn.s: Fix to match latest assembler syntax.
	* gas/fr30/allinsn.d: Fix to match latest assembler output

1998-12-03  Nick Clifton  <nickc@cygnus.com>

	* gas/fr30/allinsn.d: Updated to match latest assembler output.

1998-12-02  Nick Clifton  <nickc@cygnus.com>

	* gas/fr30/allinsn.s: Replace illegal insns with legal versions.

	* gas/fr30/allinsn.d: Update to match latest assembler output.

Thu Nov 19 15:59:51 1998  Dave Brolley  <brolley@cygnus.com>

	* gas/fr30/allinsn.s: Reorder insns for better simulation.

Thu Nov 19 07:50:44 1998  Doug Evans  <devans@charmed.cygnus.com>

	* gas/mips/sync.[sd]: New testcase.
	* gas/mips/mips.exp: Run it.

Wed Nov 18 11:27:56 1998  Dave Brolley  <brolley@cygnus.com>

	* gas/fr30/allinsn.s (dmov): Correct hex literals.

Tue Nov 17 15:24:20 1998  Nick Clifton  <nickc@cygnus.com>

	* gas/fr30/allinsn.s: Moved currently un-assembliable instructions
	to end of file.

	* gas/fr30/allinsn.d: Added disassembly of currently assembliable
	opcodes.

Mon Nov 16 16:50:27 1998  Nick Clifton  <nickc@cygnus.com>

	* gas/fr30/allinsn.s: Fix syntax errors.

Mon Nov 16 19:27:52 1998  Dave Brolley  <brolley@cygnus.com>

	* gas/fr30/allinsn.s: Fixed more typos.

Fri Nov 13 13:15:01 1998  Nick Clifton  <nickc@cygnus.com>

	* gas/fr30/allinsn.s: Fixed typos and added some tests of upper
	case vs lower case.

Tue Nov 10 14:54:47 1998  Nick Clifton  <nickc@cygnus.com>

	* gas/fr30/allinsn.s: New file.
	* gas/fr30/allinsn.d: New file.
	* gas/fr30/allinsn.exp: New file.
	* gas/fr30/fr30.exp: New file.

Mon Nov  2 20:16:50 1998  Doug Evans  <devans@canuck.cygnus.com>

	* gas/m32r/fslot.[sd]: New testcase.
	* gas/m32r/m32r.exp: Run it.

Tue Oct 20 11:35:06 1998  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* gas/i386/i386.exp: Run AMD insn test.
	* gas/i386/amd.s: New test.
	* gas/i386/amd.d: New test results.

Sun Sep 20 01:00:01 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* gas/vtable/inherit1.l: Require only the word GAS somewere in the
	first line of the listing.

Tue Sep  1 10:20:03 1998  Richard Henderson  <rth@cygnus.com>

	* gas/ppc/astest.d: Adjust regexps to match a 64-bit host.
	* gas/ppc/astest2.d: Likewise.

Mon Aug 31 13:25:07 1998  Richard Henderson  <rth@cygnus.com>

	* gas/vtable/{entry0.d,entry1.d,inherit0.d}: Fix pattern matching
	of whitespace for 64-bit hosts.

Mon Aug 31 12:45:49 1998  Richard Henderson  <rth@cygnus.com>

	* gas/vtable/vtable.exp: New.
	* gas/vtable/{entry0.s,entry0.d}: New.
	* gas/vtable/{entry1.s,entry1.d}: New.
	* gas/vtable/{inherit0.s,inherit0.d}: New.
	* gas/vtable/{inherit1.s,inherit1.l}: New.

Thu Aug 20 23:18:06 1998  Ian Lance Taylor  <ian@cygnus.com>

	* gas/i386/white.l: Revert patch of August 12.

Wed Aug 12 11:54:37 1998  Jeffrey A Law  (law@cygnus.com)

	* gas/mn10300/udf.s: New test.
	* gas/mn10300/basic.exp: Run it.

Wed Aug 12 13:25:38 1998  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* gas/i386/general.l: Test andb $~0x80,foo.
	* gas/i386/general.s: Update.

	* gas/i386/white.l: Expect warning for stand-alone ss prefix.

Tue Jul 21 12:46:59 1998  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* gas/i386/white.s: Add some more whitespace tests.
	* gas/i386/white.l: Update accordingly.

Mon Jul 13 18:15:11 1998  Alan Modra  <alan@spri.levels.unisa.edu.au>

	* gas/i386/*: All new i386 testsuite.

1998-07-02  Ken Raeburn  <raeburn@cygnus.com>

	* lib/gas-defs.exp (gas_init): Complain if target name isn't in
	canonical form.

Wed Jul  1 15:35:09 1998  Nick Clifton  <nickc@cygnus.com>

	* gas/all/gas.exp: Expect ARM and Thumb cofftag test to fail.

Wed Jul  1 17:31:39 1998  Ian Lance Taylor  <ian@cygnus.com>

	* gas/ppc/simpshft.s: Add alignment so that it works on AIX.
	* gas/ppc/simpshft.d: Change accordingly.  Only dump the .text
	section.

Tue Jun 23 15:14:43 1998  Nick Clifton  <nickc@cygnus.com>

	* gas/v850/hilo2.s: Use r1 as the destination of the movea
	instruction, since r0 is read only.

	* gas/v850/basic.exp: Fix names of special area relocations.
	Set -mwarn-signed-overflow flag when running range.s test.

Sun Jun 21 12:44:43 1998  Nick Clifton  <nickc@cygnus.com>

	* gas/d30v/reloc.d: Updated to match latest assembler output.

Wed Jun 17 14:02:10 1998  Frank Ch. Eigler  <fche@cygnus.com>

	* gas/mips/delay.d: Add -mcpu=NNNN to gas flags to let test case
 	run on differently targeted assembler.
	* gas/mips/{ld-ilocks-addr32,ld-svr4pic.d}: Ditto.
	* gas/mips/{ld-xgot.d,lif-svr4pic.d,lif-xgot.d}: Same.
	* gas/mips/{mips16.d,mips4.d,nodelay.d}: Again.
	* gas/mips/{trunc.d,uld.d,ulh-xgot.d,usd.d}: And then some.
	
	* gas/mips/ld-ilocks.d: Removed disassembler flags to let target
 	defaults go unmodified.  Replaced $f4/$f5 with $fp[45], as the
	original `ld.d' had.  Find `ld.s'.
	* gas/mips/mul-ilocks.d: Nearly ditto.
	
Thu Jun 11 16:50:46 1998  Nick Clifton  <nickc@cygnus.com>

	* gas/d30v/inst.d: Expect repeati instrucitons to be combined.

	* gas/d30v/inst.s: Add nop to keep assembled instructions at
	expected addresses.

Mon Jun  8 18:47:11 1998  Nick Clifton  <nickc@cygnus.com>

	* gas/d30v/array.d: Updated to match latest assembler results.
	* gas/d30v/reloc.d: Partially updated to match latest assembler
	results. 

Fri Jun  5 19:15:59 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* gas/m68k/operands.s: For all pc relative addresses change tstl
	to pea since the former does not allow pcrel on m68000.  Do not
	make label foo global, so that references to it can be relaxed on
	ELF targets.
	* gas/m68k/operands.d, gas/m68k/op68000.d: Updated.

Tue Jun  2 15:08:36 1998  Geoff Keating  <geoffk@ozemail.com.au>

	* gas/ppc/ppc.exp: Run simpshft test.
	* gas/ppc/simpshft.d: New file.
	* gas/ppc/simpshft.s: New file.

Mon Jun  1 17:00:22 1998  Jeffrey A Law  (law@cygnus.com)

	* gas/mips/div-ilocks.d: Handle both "break" instruction variants.
	* gas/mips/{div.d, mul-ilocks.d, mul.d}: Likewise.
	
Fri May 29 12:07:35 1998  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/mips.exp: Adjust ilocks initialization to match current
	assembler defaults more closely.

	* gas/sh/fp.s: Remove ftst/nan.  The assembler no longer supports
	the instruction.
	* gas/sh/basic.exp: Adjust accordingly.

Wed May 27 15:26:51 1998  Nick Clifton  <nickc@cygnus.com>

	* gas/d30v/align.d: Updated to match latest assembler output.
	* gas/d30v/inst.d: Updated to match latest assembler output.
	* gas/d30v/inst.s: Updated to match latest assembler rules.
	* gas/d30v/opt.d: Updated to match latest assembler output.

Fri May 22 15:56:51 1998  Doug Evans  <devans@canuck.cygnus.com>

	* gas/m32r/allinsn.d: Handle 64 bit bfd_vma.
	* gas/m32r/uppercase.d: Likewise.

Thu May 21 15:03:06 1998  Nick Clifton  <nickc@cygnus.com>

	* gas/arm/thumb.s: Add period to start of labels to prevent
	assembler thinking that they are function entry points.

Tue May 19 18:17:10 1998  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/mips16.d: Correct to reflect bug fix to disassembler.

Mon May 18 13:11:45 1998  Frank Ch. Eigler  <fche@cygnus.com>

	* gas/mips/{div,ld,mul}.d: Add assembler -mcpu= flag to match
 	disassembler.
	
Fri May 15 14:51:01 1998  Gavin Koch  <gavin@cygnus.com>

	* gas/mips/mips.exp: Distinguish chains with 32-bit addresses.
	* gas/mips/ld-ilocks-addr32.d : New.

Wed May 13 15:06:31 1998  Doug Evans  <devans@canuck.cygnus.com>

	* gas/m32r/uppercase.[sd]: Test for HIGH,SHIGH,LOW,SDA.

Thu May  7 13:05:25 1998  Frank Ch. Eigler  <fche@cygnus.com>

	* gas/mips/break20.[sd]: New tests for 20-bit operand break and
 	sddbp instructions. 
	* gas/mips/trap20.[sd]: New tests for 20-bit operand trap
 	instructions. 
	* gas/mips/mips.exp: Run them.

Thu Apr 30 11:55:01 1998  Frank Ch. Eigler  <fche@cygnus.com>

	* gas/d30v/{inst,array,opt,reloc}.d: Accept <symbol+offset> labels
 	in disassembly, where the offset is in hex and has a "0x" prefix.
	
Tue Apr 28 16:38:34 1998  Frank Ch. Eigler  <fche@cygnus.com>

	* gas/mips/lineno.[sd]: Assembly source line number test.
	* gas/mips/mips.exp: Added lineno test.

Wed Apr  8 18:45:17 1998  Jeffrey A Law  (law@cygnus.com)

	* gas/testsuite/all/gas.exp: No longer expect failures for
	difference of undefined symbols on mn10x00 targets.

Mon Mar 23 10:47:33 1998  Frank Ch. Eigler  <fche@cygnus.com>

	* gas/all/align.s: Back out ".section text" change below;
	use ".text" again.
	* gas/macros/semi.s: Ditto.
	
Fri Mar 20 18:51:49 1998  Frank Ch. Eigler  <fche@cygnus.com>

	* gas/all/align.s: Identify ".text" section explicitly.
	* gas/macros/semi.s: Ditto.
	
	
	
Mon Mar  2 13:30:40 1998  Doug Evans  <devans@seba.cygnus.com>

	* gas/m32r/allinsn.[sd] (ldi8a,ldi16a): Delete.
	(ldi16): Improve test.
	(nop): Fix test.

Thu Feb 12 20:12:39 1998  Ian Lance Taylor  <ian@cygnus.com>

	* gasp/macro.out: Adjust to reflect the fact that keyword
	arguments are now permitted after positional arguments.

Wed Feb  4 15:27:44 1998  Nick Clifton  <nickc@cygnus.com>

	* gas/arm/arm7t.d: Update to match latest assembler output.

Wed Feb  4 15:40:00 1998  Geoffrey Keating  <geoffk@ozemail.com.au>

	* gas/ppc/ppc.exp: New file.
	* gas/ppc/astest.s, gas/ppc/astest.d: New test.
	* gas/ppc/astest2.s, gas/ppc/astest2.d: New test.

Sun Feb  1 21:43:54 1998  Jeffrey A Law  (law@cygnus.com)

	* gas/mips/4010.s: Pad test code out to a 16byte boundary.
	* gas/mips/4010.d: Corresponding changes.
	* gas/mips/4100.s: Pad test code out to a 16byte boundary.
	* gas/mips/4100.d: Corresponding changes.
	* gas/mips/4650.s: Pad test code out to a 16byte boundary.
	* gas/mips/4650.d: Corresponding changes.

Fri Jan 30 14:09:13 1998  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mri/moveml.d: Add test comments, fix regexps.

Thu Jan 29 13:34:49 1998  Doug Evans  <devans@canuck.cygnus.com>

	* gas/m32r/{allinsn,high-1}.d: Allow # constant prefix to be missing.

Thu Jan 29 09:43:50 1998  Richard Henderson  <rth@cygnus.com>

	* gas/m68k/mri_moveml.[sd]: Moved to ...
	* gas/mri/moveml.[sd]: ... here.
	* gas/mri/mri.exp: Run it.

Tue Jan 27 21:55:44 1998  Jeffrey A Law  (law@cygnus.com)

	* gas/mips/4010.s: Add 4010 tests.
	* gas/mips/4010.d: Expected output.
	* gas/mips/4100.s: Add 4010 tests.
	* gas/mips/4100.d: Expected output.
	* gas/mips/4650.s: Add 4010 tests.
	* gas/mips/4650.d: Expected output.
	* gas/mips/mips.exp: Run the new tests.
	* gas/mips/*.d: Pass the right processor model to objdump.
	Fix minor cases where expected output was wrong due to opcode
	conflicts.

Tue Jan 27 05:35:02 1998  Richard Henderson  <rth@cygnus.com>

	* gas/m68k/mri_moveml.[sd]: New testcase.

Thu Jan 22 17:29:07 1998  Nick Clifton  <nickc@cygnus.com>

	* gas/m32r/high-1.d: Add hash prefix to constants.

	* gas/m32r/allinsn.s: Add hash prefix to some constants.
	* gas/m32r/allinsn.d: Add hash prefix to constants.

Wed Jan 21 21:24:08 1998  Manfred Hollstein  <manfred@s-direktnet.de>

	* gas/m88k/init.d: Fix hexadecimal offsets.

Wed Jan 14 17:49:22 1998  Nick Clifton  <nickc@cygnus.com>

	* gas/m32r/uppercase.d: Fix white space matching.
	* gas/m32r/relax-1.d: Fix white space matching.

Wed Jan 14 15:44:32 1998  Jeffrey A Law  (law@cygnus.com)

	* gas/mips/div.d: Update for recent assembler changes.
	* gas/mips/div-ilocks.d: Likewise.

Wed Jan 14 11:13:06 1998  Doug Evans  <devans@seba.cygnus.com>

	* gas/m32r/allinsn.d (cmpui): Update output to new format.

Thu Dec 18 11:10:42 1997  Nick Clifton  <nickc@cygnus.com>

	* gas/arm/inst.d: Updated to match latest disassembler changes.

	* gas/arm/arm7t.d: Updated to match latest disassembler changes.

Tue Dec 16 22:19:25 1997  Ken Raeburn  <raeburn@cygnus.com>

	* gas/mips/lb-xgot.d, gas/mips/rol.d, gas/mips/jal-svr4pic.d,
	gas/mips/jal-xgot.d: Add assembler option to select a specific
	target chip, the R3000.
	* gas/mips/lb-xgot-ilocks.d: New test, specifically selecting
	R3900.
	* gas/mips/mips.exp: Run it.

	* gas/ieee-fp/x930509a.exp: Don't run IEEE FP tests for Vax
	targets.

Wed Oct 15 10:40:14 1997  Jeffrey A Law  (law@cygnus.com)

	* gas/ieee-fp/x930509a.s: Tweak slightly to work on the PA.

	* gas/hppa/unsorted/unsorted.exp: Update for recent disassembler
	changes.

Thu Oct  9 18:10:44 1997  Doug Evans  <dje@canuck.cygnus.com>

	* gas/sparc/set64.[sd]: `set' doesn't take negative arguments.

Thu Oct  9 12:59:55 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gas/arm/arm7t.d: Update for recent disassembler changes.
	* gas/h8300/ffxx1.d: Likewise.

Wed Oct  8 16:22:50 1997  Doug Evans  <dje@canuck.cygnus.com>

	* gas/sparc/reloc64.[sd]: Add testcases for %hix,%lox.

Wed Oct  8 15:12:35 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gas/sparc/synth.d: Update for recent disassembler changes.
	* gas/sparc/synth64.d: Likewise.

	* gas/mips/beq.s: Add .text to .globl to mark the symbol to as a
	function symbol.
	* gas/mips/jal.s: Likewise.

Tue Oct  7 13:30:30 1997  Doug Evans  <dje@canuck.cygnus.com>

	* gas/sparc/reloc64.[sd]: New testcase.
	* gas/sparc/sparc.exp: Run it.

Sat Oct  4 19:14:24 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gas/ieee-fp/x930509a.exp: Accept m68k listing format.

Fri Oct  3 15:46:05 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gas/ieee-fp/x930509a.exp: Remove setup_xfail; it should now
	work.  Correct for big endian and for tabs in input file.

	* gas/alpha/fp.exp: Check for alpha-*-osf*, not alpha-*-osf1*.
	* gas/alpha/fp.s: Change comment characters from ! to #.

Thu Sep 18 11:17:53 1997  Doug Evans  <dje@canuck.cygnus.com>

	* gas/sparc/splet.d: Update to new objdump output format.
	* gas/sparc/{asi.d,membar.d,prefetch.d,rdpr.d,wrpr.d}: Likewise.
	* gas/sparc/set64.[ds]: New testcase.
	* gas/sparc/splet-2.[ds]: New testcase.
	* gas/sparc/sparc.exp: Run them.

Tue Sep 16 15:27:08 1997  Ken Raeburn  <raeburn@cygnus.com>

	Merge changes from Martin Hunt:

	* gas/d30v/inst.s: Add some new tests. 

 	* gas/d30v/{inst, opt, reloc}.d: Update results with
 	new disassembler changes.

	* gas/d30v/inst.[sd]: Update examples for d*i instructions. 

	* gas/d30v/*.d: Update all test results because
 	of new ".s" and ".l" extensions.

	* gas/d30v/inst.[sd]: Correct entry for mulx2h.
	* gas/d30v/opt.[sd]: Correct st2w instruction. 

	* gas/d30v/align.d: Change expected output.

	* gas/d30v/reloc.[sd]: Add test case. 

	* gas/d30v/array.[sd]: New test case.

	* gas/d30v/opt.[sd]: Added more test cases. 

	* gas/d30v/opt.s: Add test cases.
	* gas/d30v/reloc.s: Fix a test case.	
	* gas/d30v/{opt,reloc}.d: Regenerate.

Mon Sep  8 14:21:23 1997  Doug Evans  <dje@canuck.cygnus.com>

	* gas/m32r/high-1.[ds]: New testcase.
	* gas/m32r/m32r.exp: Run it.

Mon Aug 25 11:04:24 1997  Doug Evans  <dje@canuck.cygnus.com>

	* gas/m32r/relax-1.[ds]: New testcase.
	* gas/m32r/m32r.exp: Run it.

Thu Aug 14 23:49:49 1997  Doug Evans  <dje@canuck.cygnus.com>

	* gas/arc: New directory
	* gas/arc/{arc.exp,alias.[sd],branch.[sd],flag.[sd],insn3.[sd],j.[sd],
	ld.[sd],math.[sd],sshift.[sd],st.[sd],warn.{exp,s}}: New files.

Wed Aug  6 00:33:30 1997  Ian Lance Taylor  <ian@cygnus.com>

	* config/default.exp: Set AS and GASP to as-new, not as.new.

Tue Aug  5 12:33:23 1997  Ian Lance Taylor  <ian@cygnus.com>

	* config/default.exp: Set NM to nm-new, not nm.new, to match
	recent change in binutils build directory.

Thu Jul 31 15:21:51 1997  Jeffrey A Law  (law@cygnus.com)

	* gas/v850/range.s: New test.
	* gas/v850/basic.exp: Run it.

Tue Jul 29 14:35:02 1997  Jeffrey A Law  (law@cygnus.com)

	* gas/v850/hilo2.s: New test.
	* gas/v850/fepsw.s: New test.
	* gas/v850/basic.exp: Run them.

Tue Jul 15 13:03:17 1997  Doug Evans  <dje@canuck.cygnus.com>

	* gas/m32r/uppercase.[sd]: New testcase.
	* gas/m32r/m32r.exp: New file.

Mon Jun 16 14:32:11 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gas/m68k/pcrel.d: Update for m68k disassembler changes.
	* gas/m68k/operands.d: Likewise.

Mon Jun  2 16:50:03 1997  Nick Clifton  <nickc@cygnus.com>

	* gas/arm/arm.exp: Added changes from armT-970328-branch.

Mon Jun  2 12:09:02 1997  Gavin Koch  <gavin@cygnus.com>

	* gas/mips/mips.exp: The r3900 has interlocks for mul, but
	not div.

Mon Jun  2 12:03:32 1997  Gavin Koch  <gavin@.cygnus.com>

	* gas/mips/mul.{d,s}: End the tests with no-ops. 

Mon Jun  2 11:48:58 1997  Gavin Koch  <gavin@cygnus.com>

	* lib/gas-defs.exp (regexp_diff): Improve messages when one
	file is shorter than the other.

Wed May  7 16:18:30 1997  Manfred Hollstein  <manfred@s-direktnet.de>

	* gas/m88k/init.{s,d}: New checks for proper padding of
	.init sections.
	* gas/m88k/m88.exp: Run them.

	* gas/m68k/t2.d: New file for check of presence of section
	symbols on the m68k-motorola-sysv.
	* gas/m68k/all.exp: Run t2 if [istarget m68*-motorola-sysv].

Wed May  7 16:12:24 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gas/all/gas.exp: Don't run cofftag test for m88k-coff.

	* gas/mips/lifloat.s: Update for recent changes to floating point
	handling.
	* gas/mips/lif-empic.d, gas/mips/lif-svr4pic.d: Likewise.
	* gas/mips/lif-xgot.d, gas/mips/lifloat.d: Likewise.

	* gas/mips/mips.exp: Handle Irix 6 like Irix 5.

Sat Apr 19 23:16:35 1997  Niklas Hallqvist  <niklas@petra.appli.se>

	* gas/mips/mips.exp: Handle OpenBSD like NetBSD.

Wed Apr 16 12:20:24 1997  Martin Hunt  <hunt@cygnus.com>

	* gas/d30v/d30.exp: Add optimizer test case.
	* gas/d30v/opt.s: Add conditional compilation tests.
	* gas/d30v/opt.d: Rebuild.

Tue Apr 15 18:10:01 1997  Gavin Koch  <gavin@cygnus.com>

	* gas/mips/{delay.d,nodelay.d}: added.

Mon Apr  7 12:57:45 1997  Doug Evans  <dje@canuck.cygnus.com>

	* gas/m32r/allinsn.d: Update to new objdump output style.

Fri Apr  4 13:19:39 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gas/all/float.s: Put a tab before .text, to keep the PA happy.

	* gas/arm/arm.exp: Only run inst and arm7t on targets which can
	handle -EL.  Add setup_xfail for thumb.

	* gas/h8300/ffxx1.d: Don't fail if BFD is 64 bits.

Thu Apr  3 18:26:56 1997  Doug Evans  <dje@canuck.cygnus.com>

	* gas/m32r/allinsn.{exp,s.d}: New testcases.

Thu Mar 27 00:42:28 1997  Martin M. Hunt  <hunt@pizza.cygnus.com>

	* gas/d30v/d30.exp: Add test case reloc.
	* gas/d30v/reloc.[sd]: New files to test relocations.

Sat Mar 15 17:21:46 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gas/arm/inst.d: Update for disassembler changes.
	* gas/arm/arm7t.d: Likewise.

Tue Mar 11 13:31:56 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* gas/m68k/op68000.d: Update for recent assembler bug fix.

Wed Mar  5 13:01:24 1997  Jeffrey A Law  (law@cygnus.com)

	* gas/all/gas.exp: xfail a couple tests for the mn10300.

Mon Mar  3 11:41:00 1997  Fred Fish  <fnf@cygnus.com>

	* gas/tic80/{add.d, float.d, regops2.d, relocs1.d, relocs1b.d,
	relocs2.d, relocs2b.d}: Adjust to objdump format tweaks.

Thu Feb 27 15:21:46 1997  Fred Fish  <fnf@cygnus.com>

	* gas/tic80/{align.d, align.lst, align.s} New test for the
	".align" pseudop.
	* gas/tic80/tic80.exp: Run the align test.
	
Wed Feb 26 20:36:46 1997  Fred Fish  <fnf@cygnus.com>

	* gas/tic80/{float.d, float.lst, float.s}: New tests for
	simple floating point operands.
	* gas/tic80/tic80.exp: Run the float test.

Wed Feb 26 15:16:04 1997  Fred Fish  <fnf@cygnus.com>

	* gas/tic80/{regops2.d, regops2.lst, regops2.s, regops3.d,
 	regops3.lst, regops3.s, regops4.d, regops4.lst, regops4.s}:
	New tests for :m and :s operand modifiers.
	* gas/tic80/tic80.exp: Run the regops2, regops3, and regops4 tests.

Tue Feb 25 13:45:55 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gas/macros/semi.s: Force the final alignment to use a fill value
	of 0.

	* gas/all/cond.s, gas/all/cond.d: New test.
	* gas/all/gas.exp: Run it.

Mon Feb 24 10:52:12 1997  Bob Manson  <manson@charmed.cygnus.com>

	* lib/gas-defs.exp(gas_init): Added new parameter for script
	name.

Mon Feb 24 10:40:28 1997  Fred Fish  <fnf@cygnus.com>

	* gas/tic80/{add.d, bitnum.d, ccode.d, cregops.d, endmask.d,
	regops.d, relocs1.d, 
	(relocs1.c): Add file for reference.
	(relocs1b.d): Split reloc table contents test to different test file.
	(relocs2.c): Add test that uses various types (char, short, int, ...) of
	static and global variables with data shuffling to generate lots of ld/st
	instructions for the different types.
	(relocs2.d): New file, expected code for relocs2 test.
	(relocs2.lst): New file, TI assembler listing for reference.
	(relocs2.s): New file, assembly source for relocs2 test.
	(relocs2b.d): New file, expected reloc table contents for relocs2 test.
	(tic80.exp): Run the relocs1b, relocs2, and relocs2b tests.

Sun Feb 23 17:54:00 1997  Dawn Perchik  <dawn@cygnus.com>

	* gas/all/itbl-test.c(main): Update function calls.
	Remove parameters from itbl_get_reg_val and
	change itbl_get_insn_name to itbl_get_field.

Sun Feb 23 17:22:00 1997  Dawn Perchik  <dawn@cygnus.com>

	* gas/mips/itbl: Add comments.
	* gas/mips/itbl.s: Add comments.  Prefix register names with $.
	* gas/all/itbl: Generic table for testing for itbl support.
	* gas/all/itbl.s: Generic assembly for testing for itbl support.
	* gas/mips/itbl-test.c: Moved to gas/all.
	* gas/all/itbl-test.c: Moved from gas/mips.

Sat Feb 22 20:24:23 1997  Fred Fish  <fnf@cygnus.com>

	* gas/tic80/{add.lst, bitnum.lst, ccode.lst, cregops.lst,
 	endmask.lst, regops.lst}: Remove ^M's from end of lines.
	* gas/tic80/bitnum.s: Add comment to each line showing value
	that symbolic BITNUM assembles to.  Add coverage for raw
	numeric values for the BITNUM operand.
	* gas/tic80/bitnum.d: Update due to bitnum.s changes.
	* gas/tic80/regops.d: Update due to opcode library additions
	of floating point test BITNUM values that are ambiguous with
	the integral ones.
	* gas/tic80/relocs1.s: New test case that tests simple relocs.
	* gas/tic80/relocs1.d: Expected output for above.
	* gas/tic80/relocs1.lst: TI assembler listing for above.
	* gas/tic80/tic80.exp: Add relocs1 test.

Fri Feb 21 14:23:14 1997  Martin M. Hunt  <hunt@pizza.cygnus.com>

	* gas/d30v/{align.d, align.s, d30.exp, guard.d, guard.s,
	inst.d, inst.s, opt.d, opt.s}: Test files for D30V.

Wed Feb 19 00:55:29 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gas/macros/semi.s, gas/macros/semi.d: New test.
	* gas/macros/macros.exp: Run it.
	* gas/mri/semi.s, gas/mri/semi.d: New test.
	* gas/mri/mri.exp: Run it.

Tue Feb 18 13:37:06 1997  Jeffrey A Law  (law@cygnus.com)

	* gas/hppa/unsorted/unsorted.exp (align4 tests): Tweak expected
	output.
	
Fri Feb 14 17:56:27 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gas/all/align.d, gas/all/align.s: New test.
	* gas/all/gas.exp: Run it.

Thu Feb 13 14:44:05 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/mips16.d: Correct PC relative instruction bytes.

Wed Feb 12 12:33:08 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/lif-svr4pic.d: Pass -EB when running the assembler.
	* gas/mips/lif-xgot.d: Likewise.
	* gas/mips/ulh-svr4pic.d: Likewise.
	* gas/mips/ulh-xgot.d: Likewise.

	* gas/mips/mips16.d: Update for yet another change in disassembly
	output (this one is spacing only).

Tue Feb 11 14:45:39 1997  Fred Fish  <fnf@cygnus.com>

	* gas/tic80/{add.d, add.lst, add.s, bitnum.d, bitnum.lst, bitnum.s,
 	ccode.d, ccode.lst, ccode.s, cregops.d, cregops.lst, cregops.s,
	endmask.d, endmask.lst, endmask.s, regops.d, regops.lst, regops.s,
	tic80.exp}: New files for TIc80 test cases.

Tue Feb 11 15:46:27 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/mips16.d: Update for change in disassembly output.

Mon Feb 10 22:24:00 1997  Dawn Perchik  <dawn@cygnus.com>

        * gas/mips/itbl-test.c: Add copyright message and fix indentation.   

Mon Feb 10 17:54:00 1997  Dawn Perchik  <dawn@cygnus.com>

	* gas/mips/itbl-test.c: New file.  Stand-alone assembler and 
	dissassembler for itbl support.

Mon Feb 10 17:20:00 1997  Dawn Perchik  <dawn@cygnus.com>

	* gas/mips/itbl: New file.  Instruction Spec for testing --itbl
	option.
	* gas/mips/itbl.s: New file.  Assembly with ne2w instructions
	specified in itbl.

Fri Feb  7 16:42:53 1997  Bob Manson  <manson@charmed.cygnus.com>

	* gasp/gasp.exp: Use prune_warnings instead of prune_system_crud.
	* lib/gas-defs.exp: Ditto.

Mon Feb  3 15:46:05 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gas/arm/inst.d, gas/arm/arm7t.d: Pass --prefix-addresses to
	objdump.  Update for current relocation printing style.

Thu Jan 30 11:57:33 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/mips16.d: Update for disassembler changes.

Thu Jan 23 03:15:06 1997  Angela Marie Thomas (angela@cygnus.com)

	* gas/mips/mips.exp: set ilocks for all 4100/4300

Thu Jan  2 16:49:17 1997  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/mips16.s, gas/mips/mips16.d: New test.
	* gas/mips/mips.exp: Run mips16 test.

	* gas/mips/mips.exp: Run dli test unconditionally.
	* gas/mips/dli.s: Add text symbol.  Add nops to round to 16 byte
	boundary.
	* gas/mips/dli.d: Corresponding changes.

Tue Dec 31 13:03:16 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/sparc/synth.d: Use --prefix-addresses for objdump.
	* gas/sparc/synth64.d: Likewise.

Tue Dec 24 16:30:58 1996  Angela Marie Thomas (angela@cygnus.com)

	* gas/mips/*-ilocks.d: Fix regexps to resemble disassembled output.

Fri Dec 13 13:05:33 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/*.[sd]: Add explicit nops, sometimes controlled by
	.ifdef, to accomodate change to avoid default alignment on
	embedded systems.

Wed Dec 11 09:26:01 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/mn10200/basic.exp (do_movb): Fix bit pattern for
	"movb dm,(an)".

Tue Dec 10 13:01:05 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/mn10300/basic.exp: Update after endianness changes to
	the assembler.

	* gas/mn10200/{mov1.s,mov2.s,mov3.s,mov4.s,movx.s}: New tests.
	* gas/mn10200/{movb.s, movbu.s}: Likewise.
	* gas/mn10200/basic.exp: Run them.

Mon Dec  9 17:08:38 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/mn10200/*.s: New tests for the mn10200 assembler.
	* gas/mn10200/basic.exp: Run them.

Fri Dec  6 15:35:04 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/mn10300/*.s: Remove '$' register prefixing.

Mon Nov 25 16:35:33 1996  Doug Evans  <dje@canuck.cygnus.com>

	* gas/sparc-solaris/addend.exp: Fix patterns, you can't assume
	\r will be present.

Mon Nov 25 13:45:02 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/m68k/*.d: Update for disassembler changes.
	* gas/mri/*.d: Likewise.

Mon Nov 25 11:38:37 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/mn10300/*.s: Use '$' as register prefix for
	all register operands.

Thu Nov 21 11:52:54 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/all/gas.exp: xfail a couple tests for the mn10300.

Wed Nov 20 11:31:41 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/mn10300/other.s: Update for correct syntax on a
	few instructions (those with register lists).
	* gas/mn10300/basic.exp: Corresponding changes.

Tue Nov 19 13:36:57 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/mn10300/movm.s: Update for correct syntax.
	* gas/mn10300/basic.exp: Update expected movm bit patterns.

Fri Nov 15 13:57:42 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/mn10300/other.s: Put parens around register
	argument in calls and jmp instructions.

Wed Nov 13 13:16:04 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/h8300/ffxx1.d: Update for recent disassembler changes.

Mon Nov 11 16:03:24 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/hppa/reloc/reloc.exp: Pass "--prefix-addresses" to objdump
	as needed.
	* gas/hppa/unsorted/unsorted.exp: Likewise.

Thu Nov  7 00:27:52 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/mn10300/basic.exp: Check opcode insertion for
	extended instructions.
	* gas/mn10300/extend.s: Tweak constants for better
	testsuite coverage.

Wed Nov  6 13:50:07 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/mn10300/basic.exp: Test insertion of operands
	into call and jmp instructions with 32bit offsets.
	Fix typo in bit test patterns.
	* gas/mn10300/other.s: Tweak constants to improve
	testsuite coverage.

	* gas/mn10300/basic.exp: Test insertion of 32bit operand
	in calls, btst, bclr & bset instructions.

	* gas/mn10300/*.s: Tweak constants in 32bit insns for
	better testing coverage.
	* gas/mn10300/basic.exp: Test insertion of most 32bit
	operands.

Tue Nov  5 13:33:12 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/mn10300/basic.exp: Check bit patterns for indexed mov,
	movbu, movhu instructions.  Check bit patterns for more bit
	operations.  Check bit patterns for various 16bit call, retf
	and ret instructions.
	* gas/mn10300/other.s: Update operands for better test coverage.

Mon Nov  4 12:55:11 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/mn10300/basic.exp: Check bit patterns for a couple more
	mov and cmp instructions.

Tue Oct 29 17:05:43 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/*.d: Update for disassembler changes.

Wed Oct 16 22:39:50 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/v850/reloc.s: New tests.
	* gas/v850/basic.exp: Run them.

Mon Oct 14 13:52:55 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips: Add symbols to several testsuites, since the ELF
	assembler now always builds a symbol table, which means that
	objdump will no longer report `No symbols in FILE'.  Change the
	expected output accordingly.

Thu Oct 10 13:11:48 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/mn10300/basic.exp: Check bit patterns for instructions
	with a single 8bit or 16bit immediate operand.

	* gas/mn10300/basic.exp: Check bit patterns for many
	instructions.  Add missing test in do_mov1.
	* gas/mn10300/mov1.s: Add missing test.

Wed Oct  9 14:15:18 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/mn10300/{add.s, bcc.s, bit.s, cmp.s, ext.s}: New tests.
	* gas/mn10300/{extend.s logical.s, loop.s, mov1.s}: Likewise.
	* gas/mn10300/{mov2.s, mov3.s, mov4.s, movbu.s}: Likewise.
	* gas/mn10300/{movhu.s, movm.s, muldiv.s, other.s}: Likewise.
	* gas/mn10300/{shift.s, sub.s}: Likewise.
	* gas/mn10300/basic.exp: Run them.

Thu Oct  3 09:57:03 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/mn10200, gas/mn10300: New directories for Matsushita
	mn10200 and mn10300 tests.

Tue Oct  1 15:38:28 1996  Ian Lance Taylor  <ian@cygnus.com>

	* lib/gas-defs.exp (gas_version): Fix for current version
	printing.

Sun Sep 29 07:55:58 1996  Doug Evans  <dje@canuck.cygnus.com>

	* gas/sparc/splet.d: Fix typo in cpusha result.

Mon Sep 23 12:33:31 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/m68k/fmoveml.s, gas/m68k/fmoveml.d: Add tests for fmovemx.

Wed Sep 18 12:14:06 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/all/cofftag.s: Use .p2align rather than .align.

Fri Sep 13 15:28:04 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/h8300/macs.s: Add "stmac" instructions.
	* gas/h8300/basic.exp: Test them.

Thu Sep 12 10:28:44 1996  James G. Smith  <jsmith@cygnus.co.uk>

	* gas/arm/thumb.s (back): Check assembly of Thumb BL.

Mon Sep  9 14:37:00 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/mips4.s, gas/mips/mips4.d: Use $fccN for condition code
	registers.

Fri Sep  6 18:23:54 1996  James G. Smith  <jsmith@cygnus.co.uk>

	* gas/mips/dli.{s,d}: More test cases added.

Wed Sep  4 11:47:29 1996  James G. Smith  <jsmith@cygnus.co.uk>

	* gas/mips/mips.exp: Add check for dli macro instruction.
	* gas/mips/dli.{s,d}: Added.

Sat Aug 31 01:25:03 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/v850/basic.exp (do_mem): Check bit patterns for short
	load/store instructions.  Remove xfails for short load/store
	instructions.
	* gas/v850/mem.s: Offsets for short load/store operands
	are unsigned.

	* gas/v850/basic.exp (do_branch): Check offsets in branch insns.
	(do_jumps): Likewise.
	
Fri Aug 30 00:37:55 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/v850/misc.s: Tweak register numbers for better testing.
	* gas/v850/basic.exp (do_misc): Corresponding changes.

	* gas/v850/hilo.s: New testfile.
	* gas/v850/basic.exp: Run hilo tests.

Thu Aug 29 11:32:23 1996  James G. Smith  <jsmith@cygnus.co.uk>

	* gas/arm/arm7t.d: Explicitly force little-endian assembly.

Fri Aug 23 11:02:55 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/v850/basic.exp (do_move): Test instruction bit patterns.
	* gas/v850/move.s: Tweak constants for better testing.

	* gas/v850/basic.exp (do_mem): Test instruction bit patterns.
	xfail sst and sld tests.
	(do_mov): Remove bogus xfail.
	* gas/v850/mem.s: sst and sld instructions can only index from
	"ep" register.

	* gas/v850/basic.exp (do_logical): Test instruction bit patterns.
	Update addresses.
	* gas/v850/logical.s: Tweak constants for better testing.

	* gas/v850/basic.exp (do_jump): Test instruction bit patterns,
	but not displacements (yet).

	* gas/v850/basic.exp (do_compare): Test instruction bit patterns.

	* gas/v850/basic.exp (do_branch): Test instruction bit patterns,
	but not displacements (yet).
	
	* gas/v850/basic.exp (do_bit): Test instruction bit patterns.

	* gas/v850/basic.exp (do_arith): Test instruction bit patterns.	
	* gas/v850/arith.s: Tweak constants for better testing.

	* gas/v850/basic.exp (do_misc): No longer expect failures
	assembling "ldsr" and "stsr" opcodes.
	* gas/v850/misc.s: Re-enable assembling of "ldsr" and "stsr"
	opcodes.

	* gas/v850/basic.exp (do_misc): No longer expect failures
	assembling "trap" opcodes.
	* gas/v850/misc.s: Re-enable assembling of "trap" opcodes.

	* gas/v850: New directory with v850 tests.

Fri Aug 16 00:19:10 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/hppa/basic/purge.s: Use "%sr4" on pitlb, pitlbe
	fic and fice instructions to test 3bit space identifiers.
	* gas/hppa/basic/system.s: Similarly for iitlba and
	iitlbp.
	* gas/hppa/basic/basic.exp: Corresponding changes.

Thu Aug 15 16:25:05 1996  James G. Smith  <jsmith@cygnus.co.uk>

	* gas/arm/arm.exp: Change inst.s test to check objdump.
	* gas/arm/inst.d: Added.
	
Thu Aug 15 16:06:02 1996  James G. Smith  <jsmith@cygnus.co.uk>

	* gas/arm/thumb.s: Added.
	* gas/arm/immed.s: Added.
	* gas/arm/arch4t.s: Added.
	* gas/arm/arm.exp: Updated to run the new tests.

Tue Aug  6 11:06:29 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/h8300/misch.s: Reenable "eepmov.w" test.
	* gas/h8300/miscs.s: Likewise.
	* gas/h8300/h8300.exp: Check for correct assembly of "eepmov.w"
	on the H8/300H and H8/S.  Don't expect it to fail.

Wed Jul 31 10:57:44 1996  Doug Evans  <dje@canuck.cygnus.com>

	* gas/sparc/asi.s: Update ASI_AS_IF_USER_{PRIMARY,SECONDARY}_LITTLE.

Wed Jul 31 15:55:12 1996  James G. Smith  <jsmith@cygnus.co.uk>

	* gas/arm/arm7t.s: Added.
	* gas/arm/arm7t.d: Added.
	* gas/arm/arm.exp: Updated to run the new test.

Mon Jul  8 14:27:39 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/m68k/pcrel.d: Rename from schwab.d.
	* gas/m68k/pcrel.s: Rename from schwab.s.

Mon Jul  8 14:23:26 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* gas/m68k/schwab.d: Correct for ELF format.
	* gas/m68k/all.exp: Run "schwab" test for all targets.

Thu Jul  4 14:23:36 1996  Ian Lance Taylor  <ian@cygnus.com>

	Avoid DOS file naming problems:
	* gas/h8300/branch.s: Rename from branches.s.
	* gas/h8300/branchh.s: Rename from branchesh.s.
	* gas/h8300/branchs.s: Rename from branchess.s.
	* gas/h8300/rotsh.s: Rename from rotshift.s.
	* gas/h8300/rotshh.s: Rename from rotshifth.s.
	* gas/h8300/rotshs.s: Rename from rotshifts.s.
	* gas/h8300/h8300.exp: Corresponding changes.

Thu Jul  4 14:01:46 1996  James G. Smith  <jsmith@cygnus.co.uk>

	* gas/mips/mips.exp: Add new tests for processors with interlocks
 	on div and mul.
	* gas/mips/div-ilocks.d: Added.
	* gas/mips/mul-ilocks.d: Added.
	
Wed Jul  3 14:20:04 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/all/gas.exp: Remove setup_xfail for h8300*-*-* for two tests
	which now pass.
	* gas/h8300/h8300.exp: Fix regexp of mov32bug test to work on a 64
	bit host.

Sat Jun 29 18:21:51 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/all/gas.exp: Add setup_xfail for vax*-*-vms* for 930509a
	test.
	* gas/vax/quad.exp: Expect a nop after the movq.

Tue Jun 18 12:39:49 1996  Jeffrey A. Law  <law@rtl.cygnus.com>

	* gas/h8300/cbranchh.s: Switch into h8300h mode.
	* gas/h8300/h8300.exp (H8/300H misc tests): Fix test names.

	* gas/h8300/{addsubs.s,bitops1s.s,bitops2s.s}: New tests for the
	H8/S.
	* gas/h8300/{bitops3.s,bitops4.s,cbranchs.s,logicals.s}: Likewise.
	* gas/h8300/{branchess.s,compares.s,macs.s,decimals.s}: Likewise.
	* gas/h8300/{incdecs.s,divmuls.s,miscs.s,multiples.s}: Likewise.
	* gas/h8300/{movbs.s,movws.s,movls.s,pushpops.s}: Likewise.
	* gas/h8300/{rotshifts.s,extends.s}: Likewise.
	* gas/h8300/h8300.exp: Run them.

Mon Jun 10 14:14:40 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/all/cofftag.s, gas/all/cofftag.d: New test for COFF enum tag
	with the same name as a global variable.
	* gas/all/gas.exp: Run cofftag test for any COFF target.

Thu Jun  6 12:30:05 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/m68k/all.exp: Pass -m68020 when assembling the disperr.s
	test.

Fri May 31 10:11:13 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/h8300/h8300.exp: Fix add.l test for H8/300H.

Wed May 29 16:35:43 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/jal-xgot.d: Correct for 64 bit output.

Thu Apr 25 19:31:59 1996  Doug Evans  <dje@canuck.cygnus.com>

	* gas/sparc/sparc.exp: Only run sparclet tests if sparclet.

Wed Apr 24 17:06:18 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/m68k/op68000.d: Add statements now caught by gas.

Mon Apr 22 16:45:12 1996  Doug Evans  <dje@canuck.cygnus.com>

	* gas/sparc/splet.[ds]: New tests for sparclet extensions.
	* gas/sparc/sparc.exp: Run them.

Mon Apr 15 17:25:18 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/la.d: Updated for April 5 MIPS assembler changes.
	* gas/mips/lb.d, gas/mips/ld.d, gas/mips/sb.d: Likewise.
	* gas/mips/uld.d, gas/mips/ulh.d, gas/mips/ulw.d: Likewise.
	* gas/mips/usd.d, gas/mips/ush.d, gas/mips/usw.d: Likewise.

Wed Apr 10 14:27:51 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/h8300/mov32bug.s: New test.
	* gas/h8300/h8300.exp: Run it.

Fri Apr  5 10:13:28 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/h8300/{addsubh.s,bitops1h.s,bitops2h.s}: New h8300h tests.
	* gas/h8300/{bitops3h.s,bitops4h.s,branchesh.s}: New h8300h tests.
	* gas/h8300/{cbranchh.s,compareh.s,decimalh.s}: New h8300h tests.
	* gas/h8300/{divmulh.s,incdech.s,logicalh.s}: New h8300h tests.
	* gas/h8300/{misch.s,movbh.s,movwh.s}: New h8300h tests.
	* gas/h8300/{pushpoph.s,rotshifth.s}: New h8300h tests.
	* gas/h8300/h8300.exp: Run them.

	* gas/h8300/{movb.s,movw.s}: Correct predecrement syntax.

	* gas/h8300/h8300.exp: Fix typos in bitops4 and movb tests.

	* gas/h8300/{addsub.s,bitops1.s,bitops2.s}: New h8300 tests.
	* gas/h8300/{bitops3.s,bitops4.s,branches.s}: New h8300 tests.
	* gas/h8300/{cbranch.s,compare.s,decimal.s}: New h8300 tests.
	* gas/h8300/{divmul.s,incdec.s,logical.s}: New h8300 tests.
	* gas/h8300/{misc.s,movb.s,movw.s}: New h8300 tests.
	* gas/h8300/{pushpop.s,rotshift.s}: New h8300 tests.
	* gas/h8300/h8300.exp: Run them.

Fri Mar 15 17:16:24 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/sparc/synth.d: Don't require sparc in the file format, since
	it won't be there on SunOS.

Thu Mar  7 14:51:23 1996  Doug Evans  <dje@charmed.cygnus.com>

	* gas/sparc/synth.[ds]: New testcase.
	* gas/sparc/sparc.exp: Run it.

Fri Mar  1 12:01:48 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/all/gas.exp: xfail difference of two undefined symbols
	and difference of forward references for the h8300.

Thu Feb 22 16:40:31 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/lb-xgot.d: Correct.

Mon Feb 19 02:43:36 1996  Doug Evans  <dje@charmed.cygnus.com>

	* gas/sparc/{asi,membar,prefetch,rdpr,synth64,wrpr}.d: Pass -Av9
	to gas.
	* gas/sparc/addend.exp: Execute for any sparc cpu.
	* gas/sparc/{mismatch.exp,mism-1.s}: New test.

Wed Feb 14 13:49:59 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/jal-xgot.d, gas/mips/la-xgot.d: New tests.
	* gas/mips/lb-xgot.d, gas/mips/ld-xgot.d: New tests.
	* gas/mips/lif-xgot.d, gas/mips/ulh-xgot.d: New tests.
	* gas/mips/mips.exp: Run new tests if svr4pic.

Sat Jan 27 13:27:45 1996  Doug Evans  <dje@charmed.cygnus.com>

	* lib/gas-dg.exp (gas-dg-test): Delete default_flags and libs args.

Fri Jan 26 14:24:01 1996  Jeffrey A Law  (law@cygnus.com)

	* gas/hppa/unsorted/unsorted.exp: Update for objdump changes.

Wed Jan 10 12:40:31 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/*.d: Update for changes to disassembler.

Wed Jan  3 22:59:53 1996  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/ulh-svr4pic.d: Update for tc-mips.c load_address
 	change.

Fri Nov 17 10:32:25 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mri/immconst.d: New test.
	* gas/mri/mri.exp: Run it.
	* gas/mri/constants.s: Test immediate constants.
	* gas/mri/constants.d: Corresponding change.

	* gas/m68k/link.s: Add nop to pad to eight byte boundary.
	* gas/m68k/link.d: Corresponding change.

Sun Nov 12 21:28:11 1995  Jeffrey A Law  (law@cygnus.com)

	* gas/hppa/unsorted/brlenbug.s: New test.
	* gas/hppa/unsorted/unsorted.exp: Run it.

Sun Nov  5 12:49:27 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/beq.s: Declare text_label global.
	* gas/mips/jal.s: Likewise.

Fri Nov  3 12:35:07 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/m68k/link.s: Use "&" instead of "#" for immediate values.

	* gas/m68k/fmoveml.s, gas/m68k/fmoveml.d: New test.
	* gas/m68k/all.exp: Run it.

Thu Nov  2 23:11:05 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/m68k/link.s, gas/m68k/link.d: New test.
	* gas/m68k/all.exp: Run it.

Tue Oct 24 10:57:20 1995  Jeffrey A Law  (law@cygnus.com)

	* gas/hppa/basic/basic.exp: Test lci and syncdma instructions.
	* gas/hppa/basic/system.s: Corresponding changes.

Fri Oct  6 17:13:35 1995  Ken Raeburn  <raeburn@cygnus.com>

	* gas/m68k/operands.d: Don't require a fixed number of leading
	zeros in any number.

	* gas/m68k/operands.s, gas/m68k/bitfield.s: Use "&" instead of "#"
	for immediate values.

Fri Oct  6 10:54:13 1995  Doug Evans  <dje@canuck.cygnus.com>

	* gas/arm/arm.exp: Renamed from gas.exp.
	* gas/arm/le-fpconst.[sd]: New testcase.

Fri Sep 29 15:12:10 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mri/mri.exp: Only run tests for m68k target.

Mon Sep 25 12:31:46 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mri/mri.exp: Add setup_xfail for arm*-*-* for constants
	test.

Thu Sep 21 01:26:08 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gas/sh/fp.s (fmac): Update for new assembly syntax.

Mon Sep 18 14:04:34 1995  Ian Lance Taylor  <ian@cygnus.com>

	* lib/gas-defs.exp (gas_run): Call prune_system_crud.
	(run_dump_test, objdump): Likewise.

Thu Sep 14 13:10:10 1995  Doug Evans  <dje@canuck.cygnus.com>

	* gas/sparc/{wrdr.[ds],rdpr.[ds]}: New tests.
	* gas/sparc/sparc.exp: Run them.

Wed Sep 13 16:35:51 1995  Ian Lance Taylor  <ian@cygnus.com>

	* Makefile.in, configure.in: Remove; the testsuite is now run
	directly from the gas Makefile.

Mon Sep 11 11:44:23 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mri/empty.s: New file.
	* gas/mri/mri.exp: Test assembling empty.s.
	* gas/mri/comment.s: Add a couple more comment variants.

	* gas/mri/mri.exp: Add xfail for the expr test for all hppa
	targets.

Wed Sep  6 21:39:23 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mri/comment.s, gas/mri/comment.d: New test.
	* gas/mri/mri.exp: Run it.
	* gas/mri/expr.s: Remove whitespace in operand field.
	* gas/mri/for.s: Add comments for further testing.
	* gas/macros/test2.s: Put in an upper case ELSE to test case
	insensitivity.

Wed Aug 30 16:12:03 1995  Doug Evans  <dje@canuck.cygnus.com>

	* gas/sparc/{prefetch.[ds],synth64.[ds]}: New tests.

Tue Aug 29 18:59:33 1995  Doug Evans  <dje@canuck.cygnus.com>

	* gas/sparc/sparc.exp: New file.
	* gas/sparc/{asi.[ds],membar.[ds]}: New tests.

Mon Aug 21 14:39:29 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/macros/*: New tests for macros.

	* gas/mri/common.s: Use data, not .data.

	* gasp/pl3.out: Update for changes in commented source output when
	LOCAL is used.

Sat Aug 19 17:36:17 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gasp/gasp.exp (gasp_test): Call prune_system_crud on the output
	of diff.
	* lib/gas-defs.exp: Define prune_system_crud if it is not already
	defined.

Fri Aug 18 11:09:38 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gasp/mri/*.out: Use ;, not !, for the comment character.

Wed Aug 16 12:24:12 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mri/mri.exp: Change hppa*-*-* expected failures to only
	expect failure for targets which use SOM.

	* lib/gas-defs.exp (run_dump_test): If the program to run does not
        exist, mark the test as untested.

	* gas/mri/mri.exp: Add setup_xfail for i960 b.out targets for
	common test.

	* lib/gas-defs.exp (run_dump_test): Name the output file dump.o,
	rather than using an implicit a.out.

	* gas/mri/for.s: Add nop to round out to four byte boundary.
	* gas/mri/repeat.s: Likewise.
	* gas/mri/while.s: Likewise.
	* gas/mri/for.d: Expected added nop.
	* gas/mri/repeat.d: Likewise.
	* gas/mri/while.d: Likewise.

	* gas/mips/*.d: Change all test names to say MIPS.

Tue Aug 15 15:42:33 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mri/for.d, gas/mri/for.s: New test.
	* gas/mri/if.d, gas/mri/if.s: New test.
	* gas/mri/repeat.d, gas/mri/repeat.s: New test.
	* gas/mri/while.d, gas/mri/while.s: New test.
	* gas/mri/mri.exp: Run the new tests.

Mon Aug 14 16:03:07 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mri/expr.d: Permit leading zeroes, in case we're using a
        64-bit BFD.

	* gasp/mri/*: New tests.
	* gasp/gasp.exp: Run them.  Also, clean up the test names used in
	pass and fail.

Sun Aug 13 00:39:24 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gas/sh/basic.exp: Update now that we know the right
	bit patters for the new sts instructions.

Thu Aug 10 00:46:21 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mri/char.d: Fix for little endian machines.
	* gas/mri/float.d: Likewise.

Wed Aug  9 15:34:36 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/all/struct.s, gas/all/struct.d: New test.
	* gas/all/gas.exp: Run it.

Tue Aug  8 17:11:39 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mri/common.s, gas/mri/common.d: New test.
	* gas/mri/mri.exp: Run it.

Mon Aug  7 22:39:28 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mri/mri.exp: Add setup_xfail for a29k*-*-* for constants
	test.

	* gasp/crash1.out, gasp/macro.out, gasp/sfunc.out: Complete
	truncated files, so that the tests pass.

	* gas/mri/mri.exp: Add setup_xfail for hppa*-*-* for equ,
	constants, and expr.

	* gas/m68k/all.exp: Run schwab test on hpux*, not just hpux.  Run
	on vxworks*, not just vxworks5.1.

	* lib/gas-defs.exp (fail_phase, pass_phase): Remove.
	(run_dump_test): Just call pass or fail.

	* gas/m68k/operands.s, gas/m68k/operands.d: New test.
	* gas/m68k/op68000.d: New test.
	* gas/m68k/cas.s, gas/m68k/cas.d: New test.
	* gas/m68k/bitfield.s, gas/m68k/bitfield.d: New test.
	* gas/m68k/schwab.d: Run objdump with -j .text.  Adjust for
	changes to disassembler.
	* gas/m68k/all.exp: Run new tests.  Run schwab test for
	m68k-*-coff*.

Mon Aug  7 03:01:32 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gas/sh/*: New tests for the hitachi-sh.

Tue Aug  1 18:02:47 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mri/*: New tests for MRI mode.

	* lib/gas-defs.exp (run_dump_test): Support using objcopy.  Dump
	program executions to the log file before running them.  Use the
	simple program name, rather than the path to the binary being run,
	in pass/fail messages.
	(regexp_diff): If the regexp file has the special comment #pass,
	stop checking at that point.
	* config/default.exp: Set NM, NMFLAGS, OBJCOPY, and OBJCOPYFLAGS,
	if they are not already set.

Tue Aug  1 11:41:30 1995  steve chamberlain  <sac@slash.cygnus.com>

	* Makefile.in: Remove superfluous runtest gasp.

Mon Jul 31 18:19:26 1995  steve chamberlain  <sac@slash.cygnus.com>

 	* gasp/*: New.
	* Makefile.in: Use gasp tests.
	* config/default.exp: Add gasp stuff.

Thu Jul 20 18:56:48 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gas/all/gas.exp: Disable tests that are not appropriate for
	the PA.

Thu Jul 13 18:22:49 1995  Ken Raeburn  <raeburn@cygnus.com>

	* gas/m68k/all.exp: Run schwab test for m68k vxworks5.1.

Wed Jun 21 21:28:57 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* gas/m68k/schwab.*: New test based on a test case from Andreas
	Schwab.
	* gas/m68k/all.exp: Run it for some aout configurations.

Mon Jun 12 22:27:18 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/parse/badfmpyadd.s: New test.
	* gas/hppa/parse/parse.exp: Run it.

Sun May 21 20:26:18 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/unsorted/unsorted.exp: Disable align4 tests for
	ELF targets.

Wed May 10 14:28:16 1995 Richard Earnshaw (rearnsha@armltd.co.uk)	

	* arm/arm7dm.s: New file -- tests for ARM7DM instructions.
	* arm/arm6.s: Correct bogus tests.
	* arm/gas.exp (arm6.s): Is now a valid test.
	(arm7dm.s): New test.
	* arm/float.s: Add load/store multiple floating point instruction 
	tests.

Wed May  3 13:14:44 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/longcall.s: New test.
	* gas/hppa/reloc/reloc.exp: Run it.

Tue May  2 16:37:48 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* gas/mips/ld.d: Modified for gas delay-slot fixes.

Sat Apr 29 23:35:18 1995  Doug Evans  <dje@chestnut.cygnus.com>

	* lib/gas-dg.exp: New file.

Tue Apr 11 13:57:52 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* gas/mips/mips4.d: Allow more than exactly 8 zeros in bc1*
	targets.

Mon Apr 10 15:36:39 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* lib/gas-defs.exp (pass_phase): New proc.
	(run_dump_test): Note passing or failing of each phase of this
	test, instead of failure of phases or passing of complete test.
	Ensure test file name is in reported message.

Sat Apr  8 12:46:33 1995  Doug Evans  <dje@chestnut.cygnus.com>

	* lib/gas-defs.exp (run_dump_test): Handle arguments with paths.
	Always resolve testcase status before returning.
	If `slurp_options' fails, return and don't do test.
	(slurp_options): Fix "can't open" error message.
	Return -1 to indicate error.

Mon Mar 20 22:45:30 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/unsorted/common.s: New test.
	* gas/hppa/unsorted/unsorted.exp: Run it.

Fri Mar 10 19:07:09 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* gas/h8300/ffxx1.s: Add .word 0 at the end to eliminate
	uncertainty as to whether there should be trailing bytes in the
	output file.
	* gas/h8300/ffxx1.d: Adjust reloc values to permit an addend value
	of 0x00000000ffffffff on 64-bit hosts.  (I'm not sure if this is
	correct.)  End with "..." to match trailing zero bytes.

Wed Mar  8 15:50:34 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/mips4.d, gas/mips/mips4.s: New files.
	* gas/mips/mips.exp: Run new test.

Thu Feb 23 17:58:50 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/basic/fmemLRbug.s: Add indexing variants.
	* gas/hppa/basic/basic.exp: Test them.

Wed Feb 15 15:43:26 1995  Ian Lance Taylor  <ian@cygnus.com>

	* gas/mips/uld.d: New file.
	* gas/mips/uld.s: New file.
	* gas/mips/usd.d: New file.
	* gas/mips/usd.s: New file.
	* gas/mips/mips.exp: Run new tests.

Thu Feb  9 10:57:39 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/applybug.s: New test.
	* gas/hppa/reloc/reloc.exp (do_applybug_test): Run it.

Thu Feb  2 00:34:55 1995  Jeff Law  (law@snake.cs.utah.edu)

        * gas/hppa/reloc/picreloc.s: New test.
	* gas/hppa/reloc/reloc.exp (do_pic_relocation_test): Run it.

Fri Jan 27 14:02:02 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* gas/h8300/ffxx1.d, gas/h8300/ffxx1.s, gas/h8300/cmpsi2.s,
	gas/h8300/h8300.exp: New tests.

Mon Jan 23 21:44:26 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/basic/basic.exp (do_system): Update.

Wed Jan 11 17:20:25 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* gas/mips/mips.exp: Don't run the memory-access tests if the
	format is a.out, because the generated code is different from what
	is used with other formats.

Tue Jan 10 11:42:13 1995  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/unsorted/unsorted.exp (align4.s): Fix glitch in
	regexp to avoid losing without a controlling tty.

Fri Dec 30 18:08:20 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* gas/i386/pushw.l: Fixed whitespace to match current listing
	style.

	* gas/all/gas.exp: Mark test p1480.s expected to pass, even with
	listings enabled.

Thu Dec 15 18:14:27 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* Makefile.in (AS_FOR_TARGET, OBJDUMP_FOR_TARGET): Don't set.
	(uninstall): Don't set OBJDUMP and OBJDUMPFLAGS in site.exp.
	* config/default.exp: Default OBJDUMP and OBJDUMPFLAGS.  Use
	findfile and transform procedures to determine objdump program
	name.

	* gas/mips/abs.s, gas/mips/div.s: Force some padding at the end,
	in case the format doesn't automatically require it.
	* gas/mips/beq.d, gas/mips/jal.d: Handle MIPS_JMP as an alternate
	name for the reloc type.

	* lib/gas-defs.exp (file_contents, verbose_eval): New procs.
	(run_dump_test): If verbosity level is over 3, print out dump
	command and its output.

Tue Dec 13 18:21:09 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* gas/mips/jal-svr4pic.d: Fix 0-strings to work with 64-bit hosted
	disassembly.

Fri Dec  9 19:54:04 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* gas/all/gas.exp (comment.s test): Make the "\r" optional, since
	it depends on tty modes.

	* lib/gas-defs.exp (gas_start): Try using -nottycopy instead of
	-nottyinit.

	* gas/arm/gas.exp: The arm6 test should report errors, for now.

Thu Dec  8 20:19:09 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* lib/gas-defs.exp: Use -i in expect_after command.

Wed Dec  7 16:49:14 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* gas/mips/mul.d,jal.d: Fix 0-strings to work with 64-bit hosted
	disassembly.

	* gas/ieee-fp: Renamed from ieee.fp.

	* lib/gas-defs.exp: Make sure timeout is at least 2 minutes.

Wed Nov 30 10:48:00 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/parse: Renamed from gas/hppa/more.parse.

Mon Nov 28 00:40:26 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/more.parse/parse.exp (nosubspace.s): No longer expected
	to fail.  Fix comments for the test.  Tweak test name.

Tue Nov 22 23:38:20 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/reloc.exp: Minor tweaks to match current PA ELF
	output. 

Fri Nov 18 17:56:57 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* gas/mips/ld.d: Adjust to work for both big and little endian
	code.
	* gas/mips/ld.s, gas/mips/lif-empic.d: Likewise.
	* gas/mips/lifloat.d, gas/mips/ulh-empic.d: Likewise.
	* gas/mips/ulh.d, gas/mips/ulw.d, gas/mips/ush.d: Likewise.
	* gas/mips/usw.d: Likewise.

Tue Nov 15 11:09:57 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/unsorted/align4.s: New test.
	* gas/hppa/unsorted/unsorted.exp: Run it.

	* gas/hppa/unsorted/unsorted.exp (importbug): Tweak to match
	current expected PA ELF output.
	* gas/hppa/reloc/reloc.exp (do_r_no_reloc): Likewise.
	(do_plabel_relocation_test): Likewise.

Thu Nov  3 18:14:09 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>

	* gas/all/p1480.s: Use larger constant, so expression can have a
	positive value.
	* gas/all/gas.exp: Expect p1480.s without listings to pass.

Thu Nov  3 15:43:46 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>

	* gas/mips/ulh.d, gas/mips/ulw.d, gas/mips/ush.d, gas/mips/usw.d:
	Correct test cases.

Thu Oct 20 00:55:13 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/blebug3.s: New test.
	* gas/hppa/reloc/reloc.exp: Run it.

Mon Oct 17 02:33:53 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/reduce3.s: New test.
	* gas/hppa/reloc/reloc.exp: Run it.

Sun Oct 16 22:25:56 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/reloc.exp (r_no_reloc): Tweak output to match
	current reality.

Wed Sep 28 21:21:34 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/reduce.s: Renamed from relocreduce.s
	* gas/hppa/reloc/reduce2.s: Renamed from relocreduce2.s
	* gas/hppa/reloc/r_no_reloc.s: Renamed from r_no_relocbug.s
	* gas/hppa/reloc/reloc.exp: Changed accordingly.

Wed Sep 28 13:25:10 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* gas/mips/beq.d, gas/mips/beq.s: Test that unconditional branch
	overflows are correctly converted to jumps.

Mon Sep 26 17:41:43 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* gas/mips: Add test cases for PIC code, both SVR4 style and
	-membedded-pic style.

Fri Sep 23 14:45:42 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* gas/mips: New directory with MIPS specific test cases.

	* lib/gas-defs.exp (run_dump_test): Permit the .d file to specify
	the name of the source file to assemble.
	(regexp_diff): Put the reason for failure in the log file.

Wed Sep 21 13:44:21 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)

	* lib/gas-defs.exp: Don't try to use shell redirection, since TCL
	doesn't support it.  Redirect stdout using > instead of 1>, and
	don't bother to redirect stderr since TCL redirects it anyhow.
	(run_dump_test): Pass appropriate arguments to program, defaulting
	to -r.

Sat Sep 17 01:04:56 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* gas/vax: New directory.
	* gas/vax/{quad.s,quad.exp}: New test, for immediate quadword
	values.

Mon Sep 12 22:19:11 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/r_no_relocbug.s: New test.
	* gas/hppa/reloc/reloc.exp: Run it.

	* gas/hppa/reloc/reloc.exp (do_function_reloc_bug): Update
	expected output.

Sun Sep 04 17:58:10 1994  Richard Earnshaw (rwe@pegasus.esprit.ec.org)

	* gas/arm/*: New subtree.  Add ARM tests.

Mon Aug  8 12:13:31 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/unsorted/unsorted.exp: Accept any character
	between foo's type and foo itself.

Fri Jul 15 19:09:25 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* lib/gas-defs.exp (run_dump_test): New routine for running the
	assembler, running objdump or nm (not fully supported) on the
	resulting object file, and comparing the results against a file of
	regular expressions in the test suite, all in one command.
	Options for the assembler and objdump are read from comments at
	the start of the .d file.
	(fail_phase, slurp_options): New auxiliary routines.
	(regexp_diff): Always return a value.  Fix bugs in actually doing
	the regexp test.

	* gas/sun4/addend.exp: Use run_dump_test.
	* gas/sun4/addend.d: Fix regular expressions so that they work.

Thu Jul  7 11:55:33 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/relocreduce2.s: More relocation reduction tests.
	* gas/hppa/reloc/reloc.exp: Run them.

Thu Jun 30 18:49:25 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* config/default.exp: Look for "as.new" in "$base_dir/..", where
	it got compiled, not in "$base_dir".
	* config/unknown.exp: Deleted.

Sun Jun 26 13:23:54 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gas/lib/gas-defs.exp (gas_finish): Call "close" and "wait"
	before exiting.  Enclose both calls inside a "catch".
	(objdump_finish): Likewise.

Fri Jun 10 10:23:35 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/reloc.exp (roundmode test): Tweak expected output
	for SOM to match current testcase.

Thu Jun  2 19:46:58 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* gas/i386/{pushw.s,pushw.l}: New test.
	* gas/i386/all.exp: Run it.

	* Makefile.in (distclean): Remove site config files and gas.sum.

Fri May 27 12:24:18 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* gas/m68k/disperr.s: Use % for registers.

	* gas/m68k-coff/gas.exp: Expect failure for p2389a.s.

Tue May 17 14:53:08 1994  Bill Cox  (bill@rtl.cygnus.com)

	* lib/gas-defs.exp: Replace error proc calls with perror calls.

Mon May 16 13:19:16 1994  Jeff Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/reloc.exp: Tweak expected output to match new
	ELF code.
	* gas/hppa/reloc/roundmode.s: Avoid "S" and "D" modes, ELF does
	not support them.
	* gas/hppa/unsorted/unsorted.exp: Tweak expected output to match
	new ELF code.

Thu May  5 17:27:54 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* config/default.exp: Renamed from unix-gas.exp.

Mon Apr 11 10:31:00 1994  Bill Cox  (bill@rtl.cygnus.com)

	* Makefile.in (check): Set TCL_LIBRARY for runtest.

Mon Apr 11 07:54:10 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/more.parse/callinfobug.s: Add missing name for
	procedure.

	* gas/hppa/reloc/funcrelocbug.s: Place the trampoline in the
	$DATA$ rather than $LIT$ subspace.

Sun Mar 27 14:05:33 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/funcrelocbug.s: New test.
	* gas/hppa/reloc/reloc.exp: Run it.

Thu Mar 17 13:38:04 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/unsorted/importbug.s: New test.
	* gas/hppa/unsorted/unsorted.exp: Run it.

Wed Mar 16 11:57:07 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/more.parse/regpopbug.s: Add trivial .equ test.

	* gas/hppa/unsorted/globalbug.s: New test (expected to fail).
	* gas/hppa/unsorted/unsorted.exp: Run it.

	* gas/hppa/more.parse/callinfobug.s: New test.
	* gas/hppa/omre.parse/parse.exp: Run it.

	* gas/hppa/more.parse/regpopbug.s: New test.
	* gas/hppa/more.parse/parse.exp: Run it.

Mon Feb 28 14:10:04 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* lib/gas-defs.exp (objdump): New proc.
	(objdump_start): Deleted unused proc.
	(objdump_start_common): Merged into objdump_start_no_subdir.

	* gas/alpha/fp.exp: Use objdump instead of
	objdump_start_no_subdir, since the former actually waits for
	objdump to finish.  Specify .rdata section only.  Make comment
	indicate Alpha architecture rather than SPARC.
	* gas/alpha/fp.d: Omit .reginfo patterns.  Just use "." to match
	against ASCII code 0x2a ("*", special in regexp).
	* gas/sun4/addend.exp: Use objdump instead of
	objdump_start_no_subdir.

Thu Feb 24 07:11:57 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

        * gas/hppa/more.parse/parse.exp (no subspace test): Only expect
	a failure if gas is not producing an ELF object.

Mon Feb 14 09:24:03 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/basic/fmemLRbug.s: New test.
	* gas/hppa/basic/basic.exp: Run it.

Thu Feb 10 00:34:26 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* gas/alpha/fp.*: New files.
	* lib/gas-defs.exp (regexp_diff): Report noted mismatch at
	verbosity level 3 or above only.

Mon Feb  7 15:53:10 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/*/*.exp: Change xfails to check for PA ELF rather than
	PA OSF1.

Fri Feb  4 23:42:14 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/more.parse/xmpyubug.s: New test.
	* gas/hppa/more.parse/parse.exp: Run it.

Fri Feb  4 17:13:20 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* lib/gas-defs.exp (regexp_diff): New procedure, vaguely based on
	"simple_diff" from linker test suite.
	* gas/sun4/addend.exp: Use it.
	* gas/sun4/addend.d: New file.

Sun Jan 30 23:34:58 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)

	* gas/all/gas.exp: Adjust regexp for x930509.s for current listing
	format.

Thu Jan 20 16:44:51 1994  Rob Savoye  (rob@darkstar.cygnus.com)

	* gas/all/gas.exp, lib/gas-defs.exp, sun4/addend.exp,
	sparc-solaris/addend.exp: Tweaked to fix a few bugs and to run
	well under either version of expect.

Mon Jan 17 00:25:03 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/basic/fp_misc.s: Delete copr instruction.  It's tested
	elsewhere now.
	* gas/hppa/basic/{copr, coprmem, spop}.s: New tests.
	* gas/hppa/basic/basic.exp: Run them.

Thu Jan 13 11:59:22 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/all/gas.exp: No longer expect difference of forward
	references to fail.
	* gas/all/x930509.s: Fix testcase to match how the expect code was
	written.

Wed Jan 12 13:41:10 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/reloc.exp: Fix typo in last change.  Latest test
	for cross-subspace call bugs is no longer expected to fail.

	* gas/hppa/more.parse/procbug.s: Add test for another bug relating
	to having a function's label follow the .PROC directive.

Tue Jan 11 21:47:48 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/reloc.exp: Add test for cross-subspace call bug
	found while working on multiple $CODE$ subspace support.

Mon Jan 10 09:54:15 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/more.parse/parse.exp: procbug.s is no longer expected
	to fail.
	* gas/hppa/more.parse/procbug.s: Add missing .procend.

Mon Jan  3 10:07:47 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/more.parse/labelbug.s: Add testcase for bug in last
	app.c change.

Wed Dec 29 11:32:39 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/more.parse/labelbug.s: Add more colonless label tests.

Wed Dec 15 08:24:31 1993  Ken Raeburn  (raeburn@rtl.cygnus.com)

	* Makefile.in (site.exp): Don't set ASFLAGS.  Quote value of
	OBJDUMPFLAGS in case it's empty.  Use temporary names until the
	end; make creating site.exp the final step.
	(check): Pass in ASFLAGS.

	* gas/all/gas.exp: Use all_ones proc.  Change regexp for matching
	C comments to avoid bugs in latest expect code.

Wed Dec  8 14:30:14 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/m68k/disperr.s: New test.
	* gas/m68k/all.exp: Run it.

Sun Dec  5 19:24:57 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/roundmode.s: New test.
	* gas/hppa/reloc/reloc.exp: Run it.  Fix typo in last change.

Wed Dec  1 10:44:18 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/reloc.exp: Run the first half of bogus R_EXIT
	test for ELF.  

Tue Nov 30 13:43:21 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/more.parse/parse.exp: Test for error on for subspace
	directive is an XFAIL for SOM assmeblers.

	* gas/hppa/reloc/reloc.exp: Remove XFAIL for relocation on
	cross-subspace call test.

Sun Nov 28 12:12:50 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/more.parse/appbug.s: New test.
	* gas/hppa/more.parse/parse.exp: Run it.

	* gas/hppa/unsorted/align3.s: New test.
	* gas/hppa/unsorted/unsorted.exp: Run it.

Sat Nov 27 22:50:01 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/all/p2425.s: Insert a tab before assembler directives so
	that the directives are not interpreted as labels.

	* gas/hppa/basic/weird.s: Sync with GDB version.

	* gas/hppa/more.parse/labelbug.s: New test.

	* gas/hppa/more.parse/parse.exp: Run it.

Wed Nov 24 01:25:03 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/fixupbug.s: New test.
	* gas/hppa/reloc/reloc.exp: Run it.

	* gas/hppa/reloc/exitbug.s: New test.
	* gas/hppa/reloc/reloc.exp: Run it.

Sun Nov 21 22:11:10 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/reloc.exp: Minor fixes so that SOM & ELF can
	share the same test code.
	* gas/hppa/reloc/relocreduce.s: Likewise.

	* gas/hppa/basic/fmem.s: Add quadword FP store instructions.
	* gas/hppa/basic/basic.exp: Test quadword FP store instructions.

Sun Nov  7 00:31:41 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/reloc.exp: No longer expect failure for
	field selector on ble instruction test.

	* gas/hppa/basic/basic.exp: No longer expect failures for
	system instruction tests now that probei is fixed.

Sat Nov  6 22:45:08 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/selectorbug.s: New test.
	* gas/hppa/reloc/reloc.exp: Run it.

Thu Nov  4 17:01:30 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/unsorted/fragbug.s: New test.
	* gas/hppa/unsorted/unsorted.exp: Run it.

Thu Nov 04 09:09:49 1993  Jeffrey Wheat  (cassidy@cygnus.com)

	* Makefile.in: Changed RUNTESTFLAGS to RUNTEST_FLAGS

Tue Nov  2 22:12:30 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/more.parse/{defbug.s, stdreg.s}: New tests.
	* gas/hppa/more.parse/parse.exp: Run them.

Mon Nov  1 23:37:58 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/reloc/reloc.exp (reloc_reduce): Correct offsets at
	which specific relocations are expected to be found.
	
Sat Oct 30 14:12:31 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/unsorted/unsorted.exp (ss_align): Remove OSF xfail.

	* gas/hppa/more.parse/parse.exp: Add new test.
	* gas/hppa/more.parse/ssbug.s: New test to make sure non-default
	sections are handled correctly.

	* gas/all/gas.exp: Disable (and fail) p1480.s for all PA targets.

Fri Oct 29 16:29:06 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/more.parse/calldatabug.s: Colonize.
	* gas/hppa/more.parse/parse.exp: Fix typos.

Thu Oct 28 21:40:06 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)

	* gas/hppa/{basic, more.parse, reloc, unsorted}: New directories.
	* gas/hppa/*/*.exp: New test drivers.
	* gas/hppa/*/*.s: New test files.

Mon Oct 25 09:40:59 1993  Ken Raeburn  (raeburn@cygnus.com)

	* gas/sun4: New directory.
	* gas/sun4/addend.s,addend.exp: New test case.
	* gas/sparc-solaris/addend.s,addend.exp: Solaris version of same
	test case.

	* gas/all/gas.exp: Check `*' in C comments.

	* lib/gas-defs.exp (all_ones): New procedure, for a predicate to
	simplify some tests.
	(want_no_output): Return zero or nonzero, depending on success or
	failure.
	(gas_test_old): Return value from want_no_output.
	(objdump_start_common): Split off from objdump_start.
	(objdump_start_no_subdir): New procedure.

Wed Oct 20 07:25:48 1993  Ken Raeburn  (raeburn@rover.cygnus.com)

	* gas/all/diff1.s, gas/m68k/pic1.s: New tests.
	* gas/all/gas.exp, gas/m68k/all.exp: Run them.

	* Makefile.in (OBJDUMP_FOR_TARGET): Define similar to
	AS_FOR_TARGET.
	(check): Don't pass ASFLAGS variable.
	(site.exp): Put ASFLAGS, OBJDUMP, OBJDUMPFLAGS into site.exp.

	From Jeff Law:

	* lib/gas-defs.exp (objdump_start, objdump_finish): New functions
	so that tests can parse the output of objdump looking for errors
	in relocation entires, file headers and the like.

Thu Sep 23 16:20:34 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)

	* gas/ieee.fp/x930509a.exp: Currently expected to fail always.
	* gas/all/gas.exp (p1480.s, x930509.s): Ditto.  Break up gas_test
	call so it no longer performs multiple tests.
	* gas/m68k/all.exp (t2.s): Don't bother with listings.
	(p2410.s): Don't pass unwanted arguments to gas_test_error.

Wed Aug 25 16:50:08 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)

	* lib/do*: Remove RCS id strings.

Mon May 17 15:09:45 1993  Ken Raeburn  (raeburn@deneb.cygnus.com)

	* gas/all/float.s, gas/all/p1480.s, gas/m68k/p2410.s: New tests.
	* gas/all/gas.exp, gas/m68k/all.exp: Run them.
	* gas/i386: New directory.

Mon May 10 14:50:20 1993  Ken Raeburn  (raeburn@deneb.cygnus.com)

	* Added directory structure, to categorize tests by targets.
	* Added new tests all/x930509.s, ieee.fp/x930509a.s, m68k/p2663.s,
	and refined some to examine the assembler listing output.
	* lib/gas-defs.exp: Renamed gas_start to gas_run.  Added some
	expect_after patterns.
	(gas_start, gas_finish): New procs, for tests that examine process
	output.
	* config/unix-gas.exp: Invoke gas_init directly, instead of
	requiring test .exp files do it.

Wed Apr 21 01:24:16 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)

	* gas/gas.exp: Handle new tests, and changes to testing procs.

	* lib/gas-defs.exp (want_no_output): New proc; success iff output
	is empty.
	(gas_test_old): Functionally same as old gas_test.
	(gas_test_ignore_stdout): Rewritten to use want_no_output.
	(gas_test): New argument lists set of options to be tried in
	combinations.  Option with trailing ">" indicates standard output
	should be ignored.

	* gas/p2425a.s: Use %-form for registers, so this test can be run
	on m68k-coff targets too.

	* gas/p2430a.s: New test case, whitespace &c matches customer
	report more closely.  Gets different results from p2430.s; this is
	bad, and not yet tested for.

Mon Apr  5 12:27:19 1993  Ken Raeburn  (raeburn@cygnus.com)

	* gas/p2389a.s, gas/p2411.s, gas/t2.s: New test cases.
	* lib/run: New script.
	* gas/gas-defs.exp (gas_start): Takes new args, assembler options
	and redirection options.  Use "run" script so redirection works.
	(gas_test): Now takes assembler options as separate arg from input
	file name.
	(gas_test_ignore_stdout): New proc.  Discards output.
	(gas_test_error): New proc.  Expects assembler to generate output.
	(target_cpu_family setting): Handle i486->i386 also.

	* lib/do*: Scripts moved here from gas/testscripts.  May be useful
	someday for writing more test cases; not currently used.

Tue Mar 30 11:45:27 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)

	* gas/sol-gcc.s, gas/sol-cc.s, gas/p2425a.s, gas/p2389.s: New test
	cases.
	* gas/gas.exp: Enable them for appropriate targets.  Removed some
	useless comments &c.  Changed m68k target test to be more general.

	* lib/gas-defs.exp (gas_exit, gas_init): New procs.
	* gas/gas.exp: Call gas_init.

Mon Mar 29 00:00:00 1993  Ken Raeburn  (raeburn@kr-pc.cygnus.com)

	* Test suite created.
