Commit graph

1421 commits

Author SHA1 Message Date
Doug Evans
c94a25c228 tweak comment regarding state transitions 1998-04-10 18:34:49 +00:00
Doug Evans
07b2042891 * config/tc-dvp.c (VU_LABEL_PREFIX): New macro.
(compute_mpgloc): New function.
	(eval_expr): New arg `cpu'.  All callers updated.
	(non_vu_insn_seen_p): New static global.
	(RELAX_{MPG,DIRECT,VU,ENCODE,GROWTH,DONE_}): New macros.
	(struct dvp_fixup): New member `cpu'.
	(assemble_one_insn): New args init_fixup_count, fixup_offset.
	All callers updated.
	(md_assemble): Set non_vu_insn_seen_p as appropriate.
	(assemble_vif): Set `cpu' field of fixup.
	Clean up calls to frag_var.  Recorded mpgloc is now in bytes.
	(assemble_vu_insn): Delete, contents moved into ...
	(assemble_vu): ... here.  Don't record fixups until after parsing
	both upper and lower insns.  If branch insn inside mpg, properly
	compute target address.
	(dvp_frob_label): Create copies of vu labels inside mpg's.
	(dvp_relax_frag): Clean up.
	(md_convert_frag): Ditto.
	(md_apply_fix3): Signal error if mpg embedded vu code has branch
	to undefined label (not currently supported).
	(eval_expr): New arg `cpu'.  All callers updated.
	(insert_operand_final): Convert mpgloc from bytes to dwords.
	(s_endmpg): Use compute_mpgloc to update $.mpgloc.
	(s_state): If switching to vu state, initialize $.mpgloc.
1998-04-10 01:37:00 +00:00
Doug Evans
bfb27620b9 * config/tc-dvp.c (md_convert_frag): Fix thinko. 1998-04-07 19:26:40 +00:00
Doug Evans
a9589a2ca7 * config/tc-dvp.c (assemble_vif): 0 is a valid length value (= max+1).
(install_vif_length): 0 is a valid length value (= max+1).
1998-04-07 03:22:22 +00:00
Doug Evans
b25ce8e1fa * config/tc-dvp.c (assemble_vif): Watch for macro insns. 1998-04-07 00:12:27 +00:00
Doug Evans
79cb0c8a2f tweak comment in last entry 1998-04-03 20:37:32 +00:00
Doug Evans
050ac694c5 * config/tc-dvp.c (assemble_vif): Put relaxable insns in their
own fragment.
1998-04-03 20:15:57 +00:00
Gavin Romig-Koch
3c69baf939 * config/tc-mips.c (mips_pseudo_table): Add weakext entry.
(s_mips_weakext): Define.
	* ecoff.c (ecoff_directive_weakext): Don't define if defined(TC_MIPS).
	* config/obj-ecoff.c (obj_pseudo_table): Don't add weakext if
	defined(TC_MIPS).
1998-04-03 14:13:52 +00:00
Nick Clifton
f71d1797c5 Add patch from Dean Deaver (deaver@amt.tay1.dec.com) via Richard Earnshaw
(richard.earnshaw@arm.com) to fix addressing mode 2 using rrx.
Add super interworking support.
1998-04-01 19:17:20 +00:00
Ian Lance Taylor
227b6b55fa Thu Mar 26 23:07:18 1998 Alan Modra <alan@spri.levels.unisa.edu.au>
* config/tc-i386.c (md_assemble): Swap template arguments to
	CONSISTENT_REGISTER_MATCH macro in reverse direction test.
	This macro is currently symmetric, so passing them the wrong
	way didn't cause any problem, but may if the macro is changed
	in the future.
	After copying template to i.tm, use i.tm. rather than t-> to
	access fields, and make t a const*
	Move i.tm.operand_types[] swap to immediately after the copy.
1998-03-27 04:10:05 +00:00
Doug Evans
8b901ef830 * config/tc-dvp.h (md_estimate_size_before_relax): Delete.
(md_convert_frag): Delete.
	(TC_FIX_TYPE): New fields wl,cl,user_value;
	* config/tc-dvp.c (insert_mpg_marker): New argument ignore.
	All callers updated.
	(insert_unpack_marker): New function.
	(insert_file): New argument insert_marker_arg.  All callers updated.
	(gif_user_value): New static local.
	(vif_data_start,vif_data_end): New static locals.
	(mpgloc_sym,unpackloc_sym): New static locals.
	(cur_varlen_frag,cur_varlen_insn,cur_varlen_value): Delete.
	(cur_opcode,cur_operand): New static locals.
	(endmpg_caller): New enum.
	(md_pseudo_table): Pass ENDMPG_USER to s_endmpg.
	(md_begin): Initialize mpgloc_sym, unpackloc_sym.
	(dvp_fixup): New members user_value,wl,cl;
	(assemble_vif): Rewrite.
	(assemble_gif): Tweak name of data start label.
	(assemble_one_insn): Allow special parser to punt and call the
	normal expression parser.  Set cur_opcode,cur_operand for md_operand.
	(md_operand): Handle '*' value for mpgloc,unpackloc.
	(md_estimate_size_before_relax): New function.
	(dvp_relax_frag,md_convert_frag): New functions.
	(md_pcrel_from_section): Handle end data label for variable length
	vif insns.
	(md_apply_fix3): Handle count field for variable length vif insns.
	Handle address field for mpg,unpack.
	(eval_expr): Initialize user_value,wl,cl fields of the fixup.
	(cur_vif_insn_length): Delete.
	(vif_length_value): New function.
	(install_vif_length): Don't perform logical->physical conversion here.
	(s_enddirect,s_endmpg,s_endunpack): Rewrite.
1998-03-25 22:31:13 +00:00
Ian Lance Taylor
dddc8a823d Tue Mar 24 18:30:58 1998 H.J. Lu <hjl@gnu.org>
* config/tc-i386.h (LinearAddress): Define.
	* config/tc-i386.c (md_assemble): If LinearAddress is set for the
	instruction, don't use a default segment.
1998-03-24 23:34:45 +00:00
Doug Evans
e7201c9e36 * config/tc-dvp.c (insert_mpg_marker): Update mpgloc. 1998-03-23 21:19:04 +00:00
Jeff Law
0bc0e337fc * config/tc-mips.c (append_insn): Handle BFD_RELOC_MIPS16_S3.
(mips_ip): Handle 'O' operand.
        (md_apply_fix): Handle BFD_RELOC_MIPS16_S3.
1998-03-22 20:17:34 +00:00
Jeff Law
981ce1861f * config/tc-mips.c: Change '%' to '#' in r5900 code to avoid conflict
with vr5400 support.
1998-03-20 16:04:15 +00:00
Jeff Law
059a638882 * config/tc-mips.c (mips_ip): Handle opcodes which have the form
"name.completer" where only the name is actually in the opcode
        table.  Allow various operands for base register in load/store
        instructions.  Handle various new argument characters for the
        cop2/vu0 co-processor.
1998-03-19 21:28:24 +00:00
Doug Evans
8903601144 * config/tc-dvp.c (s_enddmadata): Always fill dma data out to 16
byte boundary.
1998-03-17 22:19:12 +00:00
Doug Evans
3b4389e23e * config/tc-dvp.h (TC_START_LABEL): Define.
* config/tc-dvp.c (force_mach_label): New function.
	(md_begin,create_colon_label,s_dmadata): Use it.
1998-03-17 22:10:10 +00:00
Doug Evans
7f28a81d93 * config/tc-dvp.c (md_begin): Turn dma/vif packing on by default.
(assemble_dma): Only output 8 bytes for actual dma insn if dma/vif
	packing is enabled.  Emit VIF cpu marker after dma insn.
1998-03-17 18:51:57 +00:00
Doug Evans
fa3671a34f * config/tc-dvp.c (md_pseudo_table): Make .quad 16 bytes. 1998-03-16 18:22:18 +00:00
Doug Evans
ba4be194df (insert_mpg_marker): New function.
(insert_file): New args insert_marker, size.  All callers updated.
	(assemble_vif): Rewrite varlen insn handling.
	(assemble_vu): Call insert_mpg_marker when 256th insn reached.
	(s_enddirect,s_endunpack): Rename arg to internal_p.
1998-03-07 03:22:18 +00:00
Doug Evans
65309b9834 (install_vif_length): Second pass at unpack len calcs.
(s_endunpack): Round data up to word boundary.
1998-03-07 01:43:32 +00:00
Joern Rennecke
5f1a734712 Remove SH4 sanitation. 1998-03-07 00:31:19 +00:00
Gavin Romig-Koch
e599ab169e Scrap the un-needed vr4111 stuff. 1998-03-06 21:22:59 +00:00
Doug Evans
d030671bfc * config/tc-dvp.c (s_endgif): Fix nloop calc and test. Warn if
insufficient data present.  Fix insertion of computed nloop value.
1998-03-06 19:40:53 +00:00
Gavin Romig-Koch
2d035a507f * config/tc-mips.c : Added vr4320 similar to vr4300. 1998-03-03 16:45:13 +00:00
Richard Henderson
c35d42c21a * config/obj-elf.c [TC_ALPHA]: Include <elf/alpha.h>.
* config/tc-alpha.h (ELF_TC_SPECIAL_SECTIONS): New.
1998-03-01 01:08:03 +00:00
Doug Evans
1fb06680cf * config/tc-dvp.c (assemble_vif): Insert cpu type marker before
inserted binary files.
1998-02-27 18:10:03 +00:00
Nick Clifton
39149be224 Fix bug detected by Michael snyder. 1998-02-25 02:05:09 +00:00
Doug Evans
b439fb8117 (s_endgif): Update. NLOOP is in quadwords for IMAGE mode now. 1998-02-25 01:05:10 +00:00
Doug Evans
9152bebae6 (UNIQUE_LABEL_PREFIX): New macro.
(unique_label): Use it.
	(assemble_gif): Emit start label before mach label.
	(s_endgif): Update.
1998-02-24 22:08:40 +00:00
Doug Evans
ef9448db9a (s_endgif): Change length mismatched errors to warnings. 1998-02-24 21:39:58 +00:00
Doug Evans
b6d331b9cd (create_colon_label): New argument `sto'. All callers updated.
(record_mach): New argument `force_next_p'.  All callers updated.
	(cpu_sto): New function.
1998-02-24 20:40:41 +00:00
Doug Evans
69312dac86 * config/tc-dvp.h (tc_frob_label): Define.
* config/tc-dvp.c (dvp_frob_label): New function.
1998-02-24 19:04:22 +00:00
Doug Evans
e9cb12e459 * config/tc-dvp.c (assemble_dma): Do alignment before parsing insn.
(setup_dma_autocount): Renamed from setup_autocount.  New argument
	inline_p.  All callers changed.  Fix word address of count.
	(parse_dma_addr_autocount): Fix word address of address.
1998-02-24 00:00:18 +00:00
James Lemke
96f5b6b2a5 Instead of changing the names of .bss etc, add .vubss etc via
the macro ELF_TC_SPECIAL_SECTIONS.  As per Ian's suggestion.
1998-02-23 22:27:12 +00:00
Doug Evans
a15a45e51f * cgen.c: #include symcat.h.
* config/tc-m32r.c: Likewise.
1998-02-23 19:30:18 +00:00
Jeff Law
65d2c7d3de * config/tc-mips.c (mips_ip, case 'P'): Make 'P' arguments be
absolute expressions instead of '$' prefixed register names.
1998-02-23 17:26:25 +00:00
Doug Evans
83920d292b (vu_count): New static local.
(assemble_vif): Temporary hack to properly align mpg/direct data.
	(assemble_vu): Insert mpg every 256 insns.
1998-02-21 07:44:25 +00:00
Doug Evans
57d0c8302d (cur_mach): New static local.
(record_mach): New function.
	(md_begin): Initialize `cur_mach'.
	(assemble_*): Record current mach type.
1998-02-21 06:28:18 +00:00
Doug Evans
498fcb9cdb (asm_state_stack): Maintain stack of parsing states.
({push,pop,set}_asm_state): New functions.
	(CUR_ASM_STATE): Renamed from cur_asm_state, all uses updated.
1998-02-21 03:26:47 +00:00
Doug Evans
8151801a09 (asm_state): New state ASM_GIF.
(gif_{insn_type,data_name,insn_frag}): New static locals.
	(md_assemble): Watch for .endgif if in ASM_GIF state.
	(assemble_gif): Complete.
	(s_endgif): Complete.
1998-02-21 02:12:15 +00:00
Doug Evans
d3c6610c00 * confirg/tc-dvp.c (md_assemble): Handle ASM_DIRECT state.
(dvp_parse_done): Comment out contents.
	(s_enddirect,s_endmpg,s_endunpack): Call demand_empty_rest_of_line.
	(s_state): Handle .vu in included file.
1998-02-20 20:48:39 +00:00
Richard Henderson
9db4b37c3f * tc-ppc.c (ppc_biei): Cache the last symbol we inserted
so we don't have to scan the entire list.
1998-02-20 06:27:12 +00:00
Fred Fish
ccc12f73ce * config/tc-d30v.c (parallel_ok): For the explicitly parallel
case, allow the parallel instructions to modify the same flag
 	bits.
PR 14883
1998-02-20 05:47:40 +00:00
Doug Evans
915729414d * config/tc-dvp.c (LOCAL_LABEL_PREFIX,END_LABEL_PREFIX): New macros.
(inline_dmadata): Renamed from s_dmadata_implied.
	(assemble_one_insn): Rewrite dma operand processing.
	(md_apply_fix3): Handle DVP_OPERAND_DMA_NEXT.
	(unique_name,setup_autocount): New functions.
1998-02-19 22:51:08 +00:00
Doug Evans
1ece1d561b * config/tc-dvp.c: Include stdarg.h/varargs.h.
(md_pseudo_table): Add .word.
	(assemble_dma): Set alignment to 16 bytes.  Enable code that records
	fixups.
	(assemble_one_insn): Handle DVP_OPERAND_DMA_{ADDR,AUTOCOUNT}.
	(md_apply_fix3): Handle DVP_OPERAND_DMA_ADDR.
	(parse_dma_addr_autocount): Renamed from parse_dma_ptr_autocount.
	Rewrite.
	(eval_expr): New function.
	(create_label,create_colon_label): New function.
	(s_enddmadata): Rewrite.
1998-02-19 10:24:15 +00:00
Doug Evans
a48a6f2301 Allow FAKE arguments to have a parser handler. 1998-02-19 00:39:38 +00:00
Doug Evans
18daef646e fix thinko in last patch 1998-02-18 23:57:47 +00:00
Doug Evans
19f12fb41c * config/tc-dvp.c (parse_float): New function.
(assemble_vu): Handle loi insns.
	(assemble_one_insn): Simplify suffix parsing.
	Handle DVP_OPERAND_FLOAT.
1998-02-18 23:56:15 +00:00