Commit graph

22741 commits

Author SHA1 Message Date
Ian Lance Taylor
0351b70c21 Mon Jun 8 12:20:30 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
* config/tc-i386.c: REPNE renamed to REPNE_PREFIX_OPCODE, and
	likewise for REPE.

	* config/tc-i386.c (reloc): Add braces.

	* config/tc-i386.c (struct _i386_insn): Rename bi to sib to be
	consistent with Intel naming.
	* config/tc-i386.h (base_index_byte): Rename to sib_byte.  Don't
	use bitfields in sib_byte.
	(modrm_byte): Don't use bitfields here either.

	* config/tc-i386.c (current_templates): Add const.
	(parse_register): Add const to return, param, and char *s.
	(i386_operand): Add const to reg_entry *r.
	* config/tc-i386.h (templates): Add const to start, end.

	Inspired by code for 16 bit gas support from Martynas Kunigelis
	<martynas@nm3.ktu.lt>:
	* config/tc-i386.c (md_assemble): Add full support for 16 bit
	modrm, and Jump, JumpByte, JumpDword, JumpInterSegment insns.
	(uses_mem_addrmode): Remove.
	(md_estimate_size_before_relax): Add support here too.
	(md_relax_table): Rewrite interface to md_relax for 16 bit
	support.
	(BYTE, WORD, DWORD, UNKNOWN_SIZE): Remove.
	(opcode_suffix_to_type): Remove.
	(CODE16, SMALL, SMALL16, BIG, BIG16): Define.
	(SIZE_FROM_RELAX_STATE): Modify to suit above.
	(md_convert_frag): Likewise.
	(i386_operand): Add support for 16 bit base/index regs,
	immediates, and displacements.  Remove some unnecessary casts, and
	localise end_of_operand_string, displacement_string_start,
	displacement_string_end variables.  Add GCC_ASM_O_HACK.
	* config/tc-i386.h (NO_BASE_REGISTER_16): Define.

	* config/tc-i386.c (prefix_hash): Remove.
	(md_begin): Rewrite without obstacks.  Remove prefix hash table
	handling.  Rewrite lexical table handling.
	(i386_print_statistics): Don't print prefix statistics.
	(md_assemble): Rewrite instruction parser so that line is not
	converted to lower case.  Don't do a hash_find for prefixes,
	instead recognise them via opcode modifier.
	(expecting_operand, paren_not_balanced): Localise variables.
	* config/tc-i386.h (IsPrefix): Define.
	(prefix_entry): Remove.

	* config/tc-i386.h (PREFIX_SEPERATOR): Don't define.
	* config/tc-i386.c (PREFIX_SEPARATOR): Define here instead, using
	'\\' in case where comment_chars contains '/'.

	* config/tc-i386.c (MATCH): Ensure given operand and template
	match for JumpAbsolute.  Makes e.g. `ljmp table(%ebx)' invalid;
	you must write `ljmp *table(%ebx)'.

	From H.J. Lu <hjl@gnu.org>:
	* config/tc-i386.c (BFD_RELOC_16, BFD_RELOC_16_PCREL): Define
	as 0 ifndef BFD_ASSEMBLER.
	(md_assemble): Allow immediate operands without suffix or
	other reg operand to default in size to the current code size.
1998-06-08 17:06:00 +00:00
Ian Lance Taylor
038915c98c Mon Jun 8 12:15:52 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
* i386.h (REPNE): Rename to REPNE_PREFIX_OPCODE.
	(REPE): Rename to REPE_PREFIX_OPCODE.
	(i386_regtab_end): Remove.
	(i386_prefixtab, i386_prefixtab_end): Remove.
	(i386_optab): Use NULL as sentinel rather than "" to suit rewrite
	of md_begin.
	(MAX_OPCODE_SIZE): Define.
	(i386_optab_end): Remove.
	(sl_Suf): Define.
	(sl_FP): Use sl_Suf.

	* i386.h (i386_optab): Allow 16 bit displacement for `mov
	mem,acc'.  Combine 16 and 32 bit forms of various insns.  Allow 16
	bit form of ljmp.  Add IsPrefix modifier to prefixes.  Add addr32,
	data32, dword, and adword prefixes.
	(i386_regtab): Add BaseIndex modifier to valid 16 bit base/index
	regs.
1998-06-08 16:20:19 +00:00
Catherine Moore
3f59a76366 Mon Jun 8 09:45:00 1998 Catherine Moore <clm@cygnus.com>
* config/tc-v850.c (md_begin):  Restore creation of
        .call_table_text and .call_table_data sections.
1998-06-08 14:36:19 +00:00
Nick Clifton
0203fbf278 Add prototypes. 1998-06-06 07:42:09 +00:00
Nick Clifton
7c3b369de0 Add prototypes. 1998-06-06 07:32:18 +00:00
Nick Clifton
dbf2a52296 Another fix for PR16116 1998-06-06 07:03:45 +00:00
Ian Lance Taylor
06aa0337a8 x 1998-06-06 04:00:25 +00:00
Ian Lance Taylor
80119c9ee4 Fri Jun 5 23:47:55 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
* i386-dis.c:  Combine aflag and dflag into sizeflag.  Change OP_*
	functions to void.
	(OP_DSreg): Rename from OP_DSSI.
	(OP_ESreg): Rename from OP_ESDI.
	(Xb, Xv, Yb, Yv): Use index reg code, not b_mode or v_mode.
	(DSBX): Define.
	(append_seg): Rename from append_prefix.
	(ptr_reg): New function.
	(dis386): Add S suffix to pushf, popf, ret, lret, enter, leave.
	Add DSBX for xlat.
	(PREFIX_ADDR): Rename from PREFIX_ADR.
	(float_reg): Add non-broken opcodes for people who don't want
	UNIXWARE_COMPAT.
1998-06-06 03:54:24 +00:00
Ian Lance Taylor
ed44fb7a0d Fri Jun 5 23:42:43 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
* i386.h (i386_regtab): Remove BaseIndex modifier from esp.

	* i386.h: Allow `l' suffix on fld, fst, fstp, fcom, fcomp with
	register operands, because this is a common idiom.  Flag them with
	a warning.  Allow illegal faddp, fsubp, fsubrp, fmulp, fdivp,
	fdivrp because gcc erroneously generates them.  Also flag with a
	warning.

	* i386.h: Add suffix modifiers to most insns, and tighter operand
	checks in some cases.  Fix a number of UnixWare compatibility
	issues with float insns.  Merge some floating point opcodes, using
	new FloatMF modifier.
	(WORD_PREFIX_OPCODE): Rename to DATA_PREFIX_OPCODE for
	consistency.

	* i386.h: Change occurence of ShortformW to W|ShortForm.  Add
	IgnoreDataSize where appropriate.
1998-06-06 03:47:33 +00:00
Ian Lance Taylor
73a8be66ca Fri Jun 5 23:27:04 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
* config/tc-i386.c (mode_from_disp_size): Disp16 is mode 2.
	(i386_operand): Simplify checks for valid base/index combinations.
	Disallow `in 4(%dx),%al'.

	* config/tc-i386.c (struct _i386_insn): Make regs, base_reg, and
	index_reg const.
	(add_prefix): Change parameter from char to int.

	* config/tc-i386.h (Ugh): Define opcode modifier.
	* config/tc-i386.c (md_assemble): Print warnings for Ugh insns.

	* config/tc-i386.c (md_assemble): Rewrite MATCH and
	CONSISTENT_REGISTER_MATCH macros to check register types more
	thoroughly.  Check for illegal suffix/operand combinations
	when matching insns with operands.  Handle new `s' suffix, and
	associated FloatMF opcode modifier for float insns with memory
	operands.
	* config/tc-i386.h (FloatMF): Define new opcode modifier.
	(No_sSuf, No_bSuf, No_wSuf, No_lSuf): Likewise.
	(SHORT_OPCODE_SUFFIX, LONG_OPCODE_SUFFIX): Define.
	* config/tc-i386.c: Rename WORD_PREFIX_OPCODE to
	DATA_PREFIX_OPCODE throughout.

	* config/tc-i386.c (REGISTER_WARNINGS): Define.
	(md_assemble): Rewrite suffix/register operand checking code to be
	more thorough.  Remove Abs8,16,32.  Change occurrences of Mem to
	AnyMem, the better to grep.
	(pi): Remove Abs.
	(i386_operand): Don't set Mem bits in i.types[this_operand] when
	given a memory operand.  Don't set Abs bits either.
	(type_names): Remove Mem*, Abs*.
	* config/tc-i386.h (Mem8, Mem16, Mem32, Abs8, Abs16, Abs32): Don't
	define opcode_modifiers as these cases are handled by Disp8,
	Disp16, Disp32 and suffix checks.
	(COMES_IN_BOTH_DIRECTIONS): Remove.
	(FloatR): Define. It's OK to share the bit with ReverseRegRegmem.

	* config/tc-i386.c (md_assemble): Don't emit operand size prefix
	if IgnoreDataSize modifier given.  Remove ShortformW modifier
	test.  Add test for ShortForm in W base_opcode modification.
	Merge Seg2ShortForm and Seg3ShortForm code.
	* config/tc-i386.h (ShortFormW): Remove.
	(IgnoreDataSize): Define.
1998-06-06 03:42:14 +00:00
Nick Clifton
40afcc4cd4 sort sections by LMA then VMA. 1998-06-06 00:28:46 +00:00
Nick Clifton
c84c3b965c Add prototypes for static functions.
Chnage type of addend from long to bfd_vma.
1998-06-06 00:23:25 +00:00
Ian Lance Taylor
4bb22852ba 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.
1998-06-05 23:16:49 +00:00
Ian Lance Taylor
587b388d85 Fri Jun 5 19:15:04 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* m68k-opc.c (tstb, tstw, tstl): Don't allow pcrel on
	68000/68008/68010.
1998-06-05 23:15:45 +00:00
Doug Evans
71dfb81d2c * configure.tgt (dvp-*-*): Set targ_emul=elf32l5900. 1998-06-05 23:00:19 +00:00
Doug Evans
bf86ea82b3 * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Set vma to 0
for .DVP.overlay.*.
1998-06-05 22:58:06 +00:00
Ian Lance Taylor
aaaf948f2d * objcopy.c (setup_section): Adjust the section size if copy_byte
is >= 0.
	(copy_section): Do not call bfd_set_section_size.
1998-06-05 22:44:15 +00:00
Ian Lance Taylor
b469b73492 * emultempl/aix.em (gld${EMULATION_NAME}_before_parse): Set
config.has_shared to true.
	* emultempl/linux.em (gld${EMULATION_NAME}_before_parse):
	Likewise.
	* emultempl/sunos.em (gld${EMULATION_NAME}_before_parse):
	Likewise.
1998-06-05 22:21:31 +00:00
Ian Lance Taylor
118bd5952f * aoutx.h (howto_table_ext): Change RELOC_BASE13 to use
complain_overflow_signed instead of complain_overflow_bitfield.
1998-06-05 22:19:09 +00:00
Doug Evans
705b12dfdf * dbxread.c (read_dbx_symtab): Don't lower texthigh for last psymtab. 1998-06-05 20:57:54 +00:00
Ian Lance Taylor
5e3da1b0d3 Fri Jun 5 15:11:11 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* elf.c (elf_map_symbols): Don't add section VMA to symbol value
	when comparing against 0.
1998-06-05 19:17:08 +00:00
Nick Clifton
bc67c82378 Fix PR16116 - stoe previous subseg state with prev instructionss. 1998-06-05 17:51:58 +00:00
Martin Hunt
aa3b21bfdc Fri Jun 5 00:16:22 1998 Martin M. Hunt <hunt@cygnus.com>
* gdbtk.c (gdbtk_init): Change all references to
	GDBTK_IDE to IDE_ENABLED.
1998-06-05 07:13:27 +00:00
Felix Lee
72d33b581d * gdb.fortran/types.exp: don't guess at float size. 1998-06-05 05:47:31 +00:00
Felix Lee
b304ac184b * chexp.exp: fix tests that assume >16-bit ints. 1998-06-05 04:54:03 +00:00
Felix Lee
cf4f99867d * gdb.base/exprs.exp: delete test that depends on int size. 1998-06-05 04:53:28 +00:00
Stan Shebs
0e05ecee9a * remote.c (init_extended_remote_ops): Make extended_remote_ops
by copying from remote_ops, move it and init_remote_ops to
	usual place at end of file, remove "void" from arg lists.
1998-06-05 01:38:26 +00:00
Martin Hunt
94a6f14fa4 Thu Jun 4 18:31:53 1998 Martin M. Hunt <hunt@cygnus.com>
* gdbtk.c (gdbtk_init): Initialize tkTable.
1998-06-05 01:29:10 +00:00
Mark Alexander
ce56660d3a * sparc-tdep.c (sparc_fix_call_dummy): Byte-swap the call dummy
on bi-endian machines.
	(sparc_extract_return_value): Handle values smaller than int on
	machines with little-endian data.
	(sparc_target_architecture_hook): Set bi_endian flag.
1998-06-05 00:57:00 +00:00
James Lemke
037f29c526 Added support for the VU insn D (debug) & T (trace) bits. 1998-06-04 20:50:55 +00:00
Michael Snyder
d6b6757b7a Thu Jun 4 12:14:48 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
* printcmd.c (disassemble_command): Fix off-by-one error for
        disassembling functions in unmapped overlay sections.
1998-06-04 19:16:00 +00:00
Elena Zannoni
fed03c013d Thu Jun 4 10:15:03 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* gdbtk.c: merged:

	- Elena Zannoni  <ezannoni@kwikemart.cygnus.com>
        (call_obj_wrapper): in case of error, copy the
        error message from the result to the error_string.
        (gdbtk_fputs): add comments.
        (gdb_actions_command): call validate_actionline when installing the
        tracepoint, to do the syntax checking of the actions for us.
        - Elena Zannoni  <ezannoni@kwikemart.cygnus.com>
        (gdb_get_trace_frame_num): new function to get the
        trace frame number from gdb.
        (gdbtk_init): added new command gdb_get_trace_frame_num.
        - Jim Blandy  <jimb@zwingli.cygnus.com>
        (struct wrapped_call_objs): Change the `func' member to
        be a Tcl_ObjCmdProc, not an Tcl_CmdProc, since it accepts a vector
        of objects as arguments.  Change the object vector to be const,
        since that's what all the users of this structure seem to expect.
        (call_obj_wrapper): Cast clientData properly before storing it in
        the wrapped_args structure.
1998-06-04 18:10:21 +00:00
Elena Zannoni
ecc6e8426e Thu Jun 4 10:15:03 1998 Elena Zannoni <ezannoni@kwikemart.cygnus.com>
* remote.c: merged.

        - Jim Blandy  <jimb@zwingli.cygnus.com>
        (print_packet, remote_packet_command): New functions.
        (_initialize_remote): Register the remote-packet command.
        - David Taylor  <taylor@texas.cygnus.com>
        (_initialize_remote): remote-compare is now
        compare-sections.
        - Elena Zannoni  <ezannoni@kwikemart.cygnus.com>
         (remote_compare_command): added warning, issued in case
        of mismatch only.
1998-06-04 18:07:32 +00:00
Michael Snyder
0005424512 Fix my previous screwed-up checkin. 1998-06-04 17:55:57 +00:00
Nick Clifton
ce770ed5f4 Add missing \n\ from help description. 1998-06-04 16:13:47 +00:00
Michael Snyder
b85cf6aec0 Thu Jun 4 08:25:38 1998 Michael Snyder <msnyder@cleaver.cygnus.com>
* remote.c (remote_compare_command): New function, new command.
        Compare object file binary image with corresponding memory on
        remote target.  Report differences.
1998-06-04 15:29:58 +00:00
Frank Ch. Eigler
da040f2a6c * Early check-in of tx3904 timer sim implementation for ECC.
It is not yet properly tested.
Thu Jun  4 15:37:33 1998  Frank Ch. Eigler  <fche@cygnus.com>
	* dv-tx3904tmr.c: New file - implements tx3904 timer.
	* dv-tx3904{irc,cpu}.c: Mild reformatting.
	* configure.in: Include tx3904tmr in hw_device list.
	* configure: Rebuilt.
	* interp.c (sim_open): Instantiate three timer instances.
	Fix address typo of tx3904irc instance.
1998-06-04 12:43:45 +00:00
Andrew Cagney
0e797366ef The r5900 doesn't have HI/LO DIV/MUL register problems. Hobble
checks on hi/lo usage but retain functions so that they can be used
for HI/LO stall counting code.
1998-06-04 08:46:56 +00:00
Andrew Cagney
05f6bf9cea Memory corruption problems - hw-event list wasn't correct
unlinking/freeing events.  Couldn't handle the removal of a hw-event
that just been scheduled.
1998-06-04 06:33:02 +00:00
Ian Lance Taylor
be5fbc8388 x 1998-06-04 00:08:42 +00:00
Ian Lance Taylor
105ba43fc5 * Makefile.am (YACC): Correct bison -L option.
* Makefile.in: Rebuild.
1998-06-03 23:59:39 +00:00
Ian Lance Taylor
144826805f * binutils.texi, objdump.1: Document -p/--private-headers. 1998-06-03 23:32:22 +00:00
Ian Lance Taylor
bba897857d x 1998-06-03 23:19:32 +00:00
Ian Lance Taylor
aa56747a9b Wed Jun 3 18:21:56 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
* config/tc-i386.c (END_STRING_AND_SAVE): Protect arguments of
	macros and enclose in do while(0).
	(RESTORE_END_STRING): Likewise.
	(md_assemble): Add one to printed operand number so we start
	from 1 not 0.  Add some more gettext invocations.
	(i386_operand): Fix `%%s' -> `%%%s'. Inc printed operand
	number here too.

	* config/tc-i386.h (WAIT_PREFIX, LOCKREP_PREFIX, ADDR_PREFIX,
	DATA_PREFIX, SEG_PREFIX): Define.
	* config/tc-i386.c (struct _i386_insn): Remove wait_prefix field.
	(check_prefix): Remove function.
	(add_prefix): New function.  Add prefix to i.prefix as well as
	doing checks.
	(md_assemble): Changes for add_prefix.	Remove hack for wait
	prefix, instead always output prefixes in fixed order.	Test
	for jcxz/loop when selecting between word & dword operations,
	and add address size prefix rather than operand size prefix.
	Remove operand -> address size hack when emitting jcxz/loop.
	(i386_operand): Remove O_Absent check as it's done in expr.
1998-06-03 23:11:04 +00:00
Ian Lance Taylor
06f9c743fc x 1998-06-03 22:57:17 +00:00
Nick Clifton
537b2e5e86 Implemented new command line options: --change-section-vma and --change-section-lma.
Tidied up the code.
1998-06-03 22:54:50 +00:00
Ian Lance Taylor
77be9a8a19 Wed Jun 3 18:28:45 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
* i386.h: (one_byte_segment_defaults): Remove.
	(two_byte_segment_defaults): Remove.
	(i386_regtab): Add BaseIndex to 32 bit regs reg_type.
1998-06-03 22:31:09 +00:00
Ian Lance Taylor
ec1e6bb850 Wed Jun 3 18:21:56 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
* config/tc-i386.c (SCALE1_WHEN_NO_INDEX): Define.
	(ebp, esp): Remove static variables.
	(MATCH): Remove test for InOutPortReg.
	(i386_operand): Properly handle InOutPortReg here instead.
	Disallows `inb (%dx,2)', `inb %es:(%dx)' and `mov (%dx),%ax'
	(md_assemble): Simplify and correct modrm and sib generation.
	(i386_operand): Add warning for scale without index.
	Rewrite checks for valid base/index combinations.
1998-06-03 22:28:28 +00:00
Ian Lance Taylor
2edb8195a9 * Makefile.am (config.status): New target.
* Makefile.in: Rebuild.
1998-06-03 21:53:14 +00:00
Michael Snyder
9fe11cd106 merged from EMC branch into devo 1998-06-03 20:14:26 +00:00