Commit graph

1478 commits

Author SHA1 Message Date
Ian Lance Taylor
31493cdfd6 * config/tc-mips.c (md_show_usage): Fix -mipsN usage. 1998-06-17 17:07:54 +00:00
Doug Evans
79259a91a3 * config/tc-dvp.c (create_vuoverlay_section): Don't set a non-zero
section vma.
1998-06-12 19:49:54 +00:00
Nick Clifton
d32f7037b2 Fix for PR11938 - display suitable error messages for bogus .byte, .short and .quad directives. 1998-06-11 22:58:05 +00:00
Nick Clifton
fb9702790f Create v850 special sections upon demand. 1998-06-11 00:27:54 +00:00
Vladimir Makarov
c2a5732b78 PR15041 1998-06-10 15:50:08 +00:00
Doug Evans
8b9286ecf1 * config/tc-dvp.c (assemble_vu): Print better error message if
lower insn is missing.
1998-06-09 19:22:21 +00:00
Ian Lance Taylor
284f02bba8 Tue Jun 9 12:20:05 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
* config/tc-i386.h: Change Data16 to Size16, Data32 to Size32,
	IgnoreDataSize to IgnoreSize as they are used for address size as
	well as data size.
	* config/tc-i386.c: Likewise.  Add code to reject addr32/data32 in
	32-bit mode, similarly addr16/data16 and variants.
1998-06-09 16:21:35 +00:00
Nick Clifton
7a0f469b1c Foixes for PR16116 and ER15940 - improve parallel insn handling. 1998-06-09 01:33:23 +00:00
Doug Evans
2dc7ca5026 * config/tc-dvp.c (dvp_relax_frag): Adjust target address by stretch.
PR 16132.
1998-06-08 22:44:03 +00:00
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
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
dbf2a52296 Another fix for PR16116 1998-06-06 07:03:45 +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
bc67c82378 Fix PR16116 - stoe previous subseg state with prev instructionss. 1998-06-05 17:51:58 +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
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
Doug Evans
7f7d7bc009 * config/tc-dvp.c (md_begin): Change alignment of .DVP.ovlytab to 4.
(create_vuoverlay_section): Entries are 4 bytes not 8.
1998-06-03 17:27:56 +00:00
Catherine Moore
1e3fba9b78 config/tc-v850.c (md_begin): Don't create special sections by default. 1998-06-03 14:32:15 +00:00
Jeff Law
edc8f76e73 * config/tc-mips.c (macro): For div and udiv, close the
reorder block as soon as possible.
1998-06-02 20:54:35 +00:00
Ian Lance Taylor
d05d27a9d1 Tue Jun 2 13:32:22 1998 Klaus Kaempf <kkaempf@progis.de>
* config/tc-alpha.c (s_alpha_comm): Allow alignment parameter in
	OBJ_EVAX case.
1998-06-02 17:33:07 +00:00
Doug Evans
30596dfc4f * read.c (do_s_func): New function.
(s_func): Call it.
	* config/tc-dvp.c (md_pseudo_table): Add .func/.endfunc.
	(s_dvp_func): New function.
1998-06-02 16:54:20 +00:00
Jeff Law
be294de6b3 * config/tc-mips.c (hilo_interlocks): The r5900 has HILO interlocks. 1998-06-01 23:07:21 +00:00
Ian Lance Taylor
8b398c5354 From Andrew Crabtree <andrewc@typhoon.rose.hp.com>:
* config/te-go32.h (TE_GO32): Define.
	* config/tc-i386.h (LOCAL_LABEL): Don't define if TE_GO32.
1998-06-01 18:10:16 +00:00
Doug Evans
7a70182554 (create_vuoverlay_section): Set SEC_CODE flag for overlay sections. 1998-06-01 03:53:32 +00:00
Doug Evans
c3b51879b3 * config/tc-dvp.h (ELF_TC_SPECIAL_SECTIONS): Delete .vuoverlay_table.
(VUOVERLAY_SECTION_PREFIX,VUOVERLAY_TABLE_SECTION_NAME): Delete.
	* config/tc-dvp.c (vuoverlay_string_section): New static global.
	(md_begin): Create overlay string section.
	(create_vuoverlay_section): Put section name in overlay string section.
	Put string's offset in overlay table entry.
1998-05-31 22:46:56 +00:00
Ian Lance Taylor
04e6b63b72 * config/tc-a29k.h (WORKING_DOT_WORD): Define.
* config/tc-alpha.h (WORKING_DOT_WORD): Define.
	* config/tc-arm.h (WORKING_DOT_WORD): Define.
	* config/tc-h8300.h (WORKING_DOT_WORD): Define.
	* config/tc-h8500.h (WORKING_DOT_WORD): Define.
	* config/tc-hppa.h (WORKING_DOT_WORD): Define.
	* config/tc-i860.h (WORKING_DOT_WORD): Define.
	* config/tc-i960.h (WORKING_DOT_WORD): Define.
	* config/tc-tic30.h (WORKING_DOT_WORD): Define.
	* config/tc-w65.h (WORKING_DOT_WORD): Define.
	* config/tc-z8k.h (WORKING_DOT_WORD): Define.
	* config/tc-a29k.c: Don't define md_short_jump_size,
 	md_long_jump_size, md_create_short_jump or md_create_long_jump.
	* config/tc-alpha.c: Likewise.
	* config/tc-alpha.h: Likewise.
	* config/tc-arm.c: Likewise.
	* config/tc-h8300.c: Likewise.
	* config/tc-h8500.c: Likewise.
	* config/tc-hppa.c: Likewise.
	* config/tc-i860.c: Likewise.
	* config/tc-i960.c: Likewise.
	* config/tc-ppc.c: Likewise.
	* config/tc-sh.c: Likewise.
	* config/tc-sparc.h: Likewise.
	* config/tc-tic30.c: Likewise.
	* config/tc-w65.c: Likewise.
	* config/tc-z8k.c: Likewise.
1998-05-29 22:25:56 +00:00
Ian Lance Taylor
1a20177a13 Fri May 29 16:03:26 1998 Pat Rankin <rankin@eql.caltech.edu>
* config/tc-vax.c (_): Delete this macro used for placeholder
	values in vax_operand_width_size; it conflicts with the _() macro
	used for internationalization.
1998-05-29 20:08:25 +00:00
Ian Lance Taylor
dcb76edbb8 * config/tc-m68k.c (mri_assemble): New static function.
(build_mri_control_operand): Call mri_assemble rather than
	md_assemble.
	(s_mri_else, s_mri_break, s_mri_next, s_mri_for): Likewise.
	(s_mri_endf, s_mri_endw): Likewise.
1998-05-29 17:48:03 +00:00
Doug Evans
5dccb8b0f4 more attempts to handle `*' as mpg address 1998-05-29 01:08:08 +00:00
Doug Evans
dfa96dc4df tweak last entry 1998-05-29 01:06:37 +00:00
Doug Evans
c371a664d5 resolve mpgloc_sym in `*' case 1998-05-29 00:39:03 +00:00
Doug Evans
1554baf3cb * config/tc-dvp.h (ELF_TC_SPECIAL_SECTIONS): Add .vuoverlay_table.
(dvp_frob_file): Declare.
	(tc_frob_file): Define.
	(VUOVERLAY_SECTION_PREFIX,VUOVERLAY_TABLE_SECTION_NAME): New macros.
	* config/tc-dvp.c (VUOVERLAY_START_PREFIX): New macro.
	(vuoverlay_section_name,create_vuoverlay_section): New functions.
	(vuoverlay_section,vuoverlay_table_section): New static globals.
	(ovlysym_table): New static global.
	(md_begin): Create .vuoverlay_table section.
	(assemble_vif): Call create_vuoverlay_section for each mpg.
	(dvp_frob_label): Record vu labels in ovlysym_table for later
	movement from absolute section to their overlay section.
	(dvp_frob_file): New function.
	(md_apply_fix3): For 8/16/32/64 bit relocs, only process if fx_done.
1998-05-28 23:29:19 +00:00
Stan Cox
fc23c14efc sparclite 86x big endian instruction / little endian data support. 1998-05-27 01:06:20 +00:00
Catherine Moore
a5002978e0 Use number_to_chars_bigendian and number_to_chars_littleendian to
write data in sparc_handle_align.
1998-05-19 13:03:09 +00:00
Nick Clifton
98c5cd5a5a Changed command line switch from --m32rx-enable-special to --hidden
Removed documentation about the switch.
1998-05-18 17:34:24 +00:00
Frank Ch. Eigler
d9c2c0c569 * Followup for SCEI PR 15853.
Mon May 18 12:37:38 1998  Frank Ch. Eigler  <fche@cygnus.com>
	* config/tc-mips.c (macro): For R5900, use "B" operand format for
 	"break" instructions generated in macro (div etc.) instructions.
1998-05-18 13:33:26 +00:00
Nick Clifton
ca6a899da7 Change command line switch fron --enable-special to --m32rx-enable-special 1998-05-14 20:54:47 +00:00
Doug Evans
7c62987898 * config/tc-m32r.c (warn_unmatched_high): New static local.
(OPTION_WARN_PARALLEL): Rename from OPTION_WARN.
	(OPTION_NO_WARN_PARALLEL): Rename from OPTION_NO_WARN.
	(md_longopts): Recognize --{no-,}warn-unmatched-high.
	(md_parse_option): Likewise.
	(md_show_usage): Likewise.
	(m32r_frob_file): Likewise.
1998-05-13 22:10:12 +00:00
Nick Clifton
32c2be7633 Add --enable-special command line switch. 1998-05-12 20:38:36 +00:00
Richard Henderson
7d515759c9 * config/tc-d30v.c (cur_mul32_p, prev_mul32_p): Make static.
(d30v_current_align, d30v_current_align_seg): New variables.
        (d30v_last_label): New variable.
        (d30v_align, s_d30v_align, s_d30v_text): New functions.
        (s_d30v_data, s_d30v_section): Likewise.
        (md_pseudo_table): Call them.
        (md_begin): Initialize d30v_current_align_seg.
        (md_assemble): Call d30v_align when needed by known current alignment.
        (d30v_frob_label, d30v_cons_align): New functions.
        * config/tc-d30v.h (md_do_align): Remove.
        (tc_frob_label): Call d30v_frob_label.
        (md_cons_align): New.

PR 15642
1998-05-12 19:04:29 +00:00
Doug Evans
cb74aaa54c * config/tc-dvp.c (md_begin): Set type of output file to mips:r5900. 1998-05-11 19:49:29 +00:00
Frank Ch. Eigler
40f0c90498 * Fixes for d30v PR 15627.
* First batch of fixes for sky PR 15853 (20-bit break/sdbbp)
* Fixes for d30v test suite.
1998-05-07 15:27:13 +00:00
Doug Evans
defc70bf2b * cgen.h: New file.
* cgen.c: Include it.
	(MAX_FIXUPS): Renamed to CGEN_MAX_FIXUPS.
	(cgen_asm_finish_insn): Result is now void.  New arg `result'.
	All callers updated.
	* config/tc-m32r.c: Include cgen.h.
	(m23r_insn): New members num_fixups,fixups.
	(assemble_parallel_insn): Initialize debug_sym_link for each insn.
	(md_assemble): Simplify code to pack two insns in parallel.
	When swapping two insns, update their fixups.
1998-05-07 09:31:42 +00:00
Richard Henderson
daaef8f8df * config/tc-d30v.c (do_assemble): Accept a new parameter requesting
a short format insn.
	(md_assemble): Set it for explicitly packed insns.

PR 14601
1998-05-06 18:56:08 +00:00
Doug Evans
f2980bb478 * cgen.c (cgen_asm_finish_insn): New arg relax_p. All callers updated.
* config/tc-m32r.c (assemble_parallel_insn): No need to try
	non-relaxable variant any more.  Simplify test for nop insn.
	(md_assemble): Only scan operands if m32rx.  Set orig_insn in case
	scan of operands yields an insn different from original (e.g. a macro).
	Fix call to can_make_parallel.
1998-04-27 19:36:06 +00:00
Ian Lance Taylor
0917e2cbea Fri Apr 24 12:47:42 1998 Philippe De Muyter <phdm@macqel.be>
* read.c (s_set): Cast xmalloc return value to fragS *.
	* config/tc-m68k.c (m68k_ip): Function made static to match
	previous forward declaration.
	(insert_reg, init_regtable, md_convert_frag_1): Likewise.
1998-04-24 16:49:58 +00:00
Nick Clifton
d0023d7e18 Add initernationalisation macros to error strings 1998-04-24 16:28:25 +00:00
Ian Lance Taylor
8081c2be07 * config/tc-i386.c (md_assemble): Print operand number rather than
using ordinal_names.
	(i386_operand): Likewise.
1998-04-22 18:54:39 +00:00
Ian Lance Taylor
e33bfde75c fix sanitization for gettext changes 1998-04-22 16:18:07 +00:00
Ian Lance Taylor
8c9272025e fix indentation in comment 1998-04-22 16:05:56 +00:00