Commit graph

2805 commits

Author SHA1 Message Date
Ian Lance Taylor
ca296aab0e Don't set interlocks for r5000. Rely on -mips4 settings. 1996-09-10 01:12:35 +00:00
Ian Lance Taylor
4a9149d501 * gas/mips/mips4.s, gas/mips/mips4.d: Use $fccN for condition code
registers.
1996-09-09 18:37:54 +00:00
Ian Lance Taylor
d31a3f5e76 * config/tc-mips.c (append_insn): Don't swap an instruction which
sets a condition code with an instruction which uses a condition
	code.
	(mips_ip): In cases 'N' and 'M', look for $fccN rather than an
	immediate value.
1996-09-09 18:37:10 +00:00
Ian Lance Taylor
517078c1b3 * config/tc-mips.c (md_begin): Recognize r5000 for cpu. If
mips_cpu is 5000, set interlocks and cop_interlocks.
	(mips_ip): Give a better error message if the ISA level is wrong.
	(md_parse_option): Recognize -mcpu=[v][r]5000.
1996-09-09 15:04:59 +00:00
Jackie Smith Cashion
ff8716f58e Sat Sep 7 13:25:55 1996 James G. Smith <jsmith@cygnus.co.uk>
* config/tc-mips.c (COUNT_TOP_ZEROES): Added macro to count
 	leading zeroes.
	(load_register): Ensure hi32 bits are not lost during lo32bit
 	processing. Fix shift offset that was overflowing into the next
 	instruction field. Add code to generate shorter sequences for
 	constants with a single contiguous seqeuence of ones.

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

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

NOTE: The COUNT_TOP_ZEROES macro is a bit bulky, and the same result
can be achieved by using a "standard" ffs() routine:
	count = ffs(~v);
	count = count == 0 ? 0 : 33 - count;

However the following timings (VR4300 CPU clock ticks on a CMA101
board) show the performance gain.

Number of	ffs()		for loop	if/then/else	conditional
leading								   ?:
zeroes
-------------------------------------------------------------------------------
  0		 167		 179		266		251
  1		1718		 283		263		259
  2		1670		 379		287		295
  3		1622		 475		311		311
  4		1574		 571		295		287
  5		1534		 667		311		319
  6		1478		 763		307		299
  7		1430		 859		323		323
  8		1382		 962		287		295
  9		1334		1051		319		311
 10		1286		1154		299		307
 11		1238		1250		323		331
 12		1183		1346		299		307
 13		1135		1442		331		323
 14		1087		1546		311		319
 15		1039		1642		335		343
 16		 991		1730		295		287
 17		 950		1834		311		319
 18		 895		1922		307		299
 19		 847		2026		331		323
 20		 799		2122		307		299
 21		 751		2218		323		323
 22		 703		2314		311		311
 23		 655		2417		343		335
 24		 599		2506		307		299
 25		 559		2602		331		331
 26		 511		2705		311		319
 27		 463		2801		343		335
 28		 407		2897		311		319
 29		 367		2993		343		335
 30		 311		3097		323		331
 31		 271		3185		355		355
 32		 215		3233		379		371
1996-09-07 12:45:19 +00:00
Martin Hunt
5e6c6406e6 Fri Sep 6 17:07:12 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (d10v_dot_word): New function to support
	"@word" with the word pseudo-op.
	(md_apply_fix3): Cleanup and changes to support correct sizes
	for 16 and 18-bit relocs.
1996-09-07 00:12:56 +00:00
David Edelsohn
df4021c176 * configure.in (sparc-*-aout): Set `em'.
* configure: Regenerated.
	* config/te-sparcaout.h: New file.
	* config/tc-sparc.h (TARGET_BYTES_BIG_ENDIAN): Define.
	Ifdef TE_SPARCOUT define TARGET_FORMAT and SPARC_BIENDIAN.
	* config/tc-sparc.c (INSN_BIG_ENDIAN): New macro.
	(SPECIAL_CASE_{SETSW,SETX}): Define.
	({NOP,OR,FMOVS,SETHI,SLLX,SRA}_INSN): Define.
	(md_begin): Delete setting of `target_big_endian'.
	(output_insn): New function.
	(md_assemble): Rewrite.  Add `setx' support.
	(sparc_ip): Handle `0' operand char.  Recognize setuw, setsw, setx
	special cases.
	(md_atof): Add little endian support.
	(md_number_to_chars): Likewise.
	(md_apply_fix): Likewise.
	(md_longopts): Recognize -EL,-EB ifdef SPARC_BIENDIAN.
	(md_parse_option): Likewise.
	(md_show_usage): Print -EL, -EB ifdef SPARC_BIENDIAN.
1996-09-06 23:05:12 +00:00
Ian Lance Taylor
cfc71c6d3a * ecoff.c (ecoff_new_file): New function.
* ecoff.h (ecoff_new_file): Declare.
	* config/obj-ecoff.h (obj_app_file): Define.
PR 10548.
1996-09-05 17:43:06 +00:00
Ian Lance Taylor
711254da6c * config/tc-mips.c (load_register): Remove unused variable tmp. 1996-09-04 14:26:20 +00:00
Jackie Smith Cashion
1b68deb599 Wed Sep 4 11:24:29 1996 James G. Smith <jsmith@cygnus.co.uk>
* config/tc-mips.c (load_register): Remove unnecessary code that
 	was causing the high 32bits of 64bit constants to be lost.

Fixes PR10503. The compiler was producing the assembler code:
	dli $3,0xfffffffffffff
when constructing the softfloat library. Unfortunately it was being
incorrectly assembled.
1996-09-04 13:15:28 +00:00
Jeff Law
05fd83edd4 * config/tc-v850.c: Remove commented out and #if 0'd code.
(v850_reloc_prefix): Provide prototype.
        (postfix, get_reloc, build_insn): Remove prototypes for nonexistant
        functions.
        (md_begin, md_assemble, md_apply_fix3): Remove unused variables.
        (md_assemble): Add default to case statement.
Minor cleanups.
1996-09-03 17:59:16 +00:00
Jeff Law
270fd2adc3 * config/tc-v850.c (md_assemble): Compute size of the instrction
from the opcode.
1996-08-31 22:04:08 +00:00
Jeff Law
2d56269edf * config/tc-v850.c (md_apply_fix3): Do simple byte, short and
word fixups too.
Fixes "difference between forward references".
1996-08-31 18:36:19 +00:00
Jeff Law
6cff464b3a * gas/v850/basic.exp (do_branch): Check offsets in branch insns.
(do_jumps): Likewise.
Now that we can resolve known branch targets.
1996-08-31 07:26:35 +00:00
Jeff Law
74dd0c0786 * config/tc-v850.c (md_apply_fix3): Use little endian get/put
routines to fetch/store the updated instruction from/to memory.
        (v850_insert_operand): If the operand has a specialized insert
        routine, call it.
Getting fixups closer.  At least br <target> works now.
1996-08-31 05:52:38 +00:00
J.T. Conklin
c84615bc23 * config/tc-v850.c (reg_name_search): Align calling convention to
be like identical function found in tc-ppc.c.
(get_reloc): Removed.
(v850_reloc_prefix): New function, parse lo(), hi() and hi0().
(md_assemble): emit fixups.
(md_pcrel_from): renamed from md_pcrel_from_section, emit proper
displacement.
(md_apply_fix3): handle fixups/relocs.
* config/tc-v850.h (MD_PCREL_FROM_SECTION): Removed definition.
1996-08-31 01:42:46 +00:00
Ian Lance Taylor
0f616818c0 Add SH ELF support.
* configure.in (sh-*-elf*): New target.
	* config/tc-sh.h (TARGET_ARCH): Define.
	(WORKING_DOT_WORD): Define.
 	(TC_COFF_FIX2RTYPE): Only define if OBJ_COFF.
	(BFD_ARCH, COFF_MAGIC, TC_COUNT_RELOC): Likewise.
	(TC_RELOC_MANGLE, tc_coff_symbol_emit_hook): Likewise.
	(DO_NOT_STRIP, NEED_FX_R_TYPE, TC_KEEP_FX_OFFSET): Likewise.
	(TC_COFF_SIZEMACHDEP, tc_frob_file): Likewise.
	(SUB_SEGMENT_ALIGN): Likewise.
	(RELOC_32): Don't define.
	(tc_frob_file_before_adjust): Define if BFD_ASSEMBLER.
	(target_big_endian): Declare if OBJ_ELF.
	(TARGET_FORMAT): Define if OBJ_ELF.
	* config/tc-sh.c: Use BFD reloc codes instead of SH COFF reloc
	numbers throughout.
	(tc_crawl_symbol_chain): Only define if OBJ_COFF.
	(tc_headers_hook, tc_coff_sizemachdep): Likewise.
	(struct sh_count_relocs): Define.
	(sh_count_relocs): New static function, broken out of
	sh_frob_file.  Add BFD_ASSEMBLER code.
	(sh_frob_section): Likewise.
	(sh_frob_file): Call sh_frob_section.
	(md_convert_frag): If BFD_ASSEMBLER, change type of headers, and
	call section_symbol rather than seg_info (seg)->dot.
	(md_section_align): Add OBJ_ELF version.
	(SWITCH_TABLE_CONS): Define.
	(SWITCH_TABLE): Use SWITCH_TABLE_CONS.
	(md_apply_fix): Change parameter types if BFD_ASSEMBLER.  Only
	handle fx_r_type == 0 if not BFD_ASSEMBLER.  Return 0 if
	BFD_ASSEMBLER.
	(struct reloc_map): Define if not BFD_ASSEMBLER.
	(coff_reloc_map): Likewise.
	(sh_coff_reloc_mangle): Use coff_reloc_map to convert fx_r_type.
	(tc_gen_reloc): New function if BFD_ASSEMBLER.
	* write.c (write_relocs): Ifdef out fx_where test which triggers
	inappropriately for SH ELF.
	(write_object_file): Call tc_frob_file_before_adjust and
	obj_frob_file_before_adjust if they are defined.

	* write.c (write_object_file): Use BFD_RELOC_16, not
	BFD_RELOC_NONE, when calling fix_new_exp for a broken word.
1996-08-30 22:29:42 +00:00
Martin Hunt
20dbcd5c31 Fri Aug 30 14:47:38 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (find_opcode): Fix problem with calculating
	branch sizes in across sections.
1996-08-30 21:50:52 +00:00
Jeff Law
1a393e50be * gas/v850/misc.s: Tweak register numbers for better testing.
* gas/v850/basic.exp (misc_tests): Corresponding changes.
1996-08-30 19:59:06 +00:00
Jeff Law
05631de266 * config/tc-850.c (md_assemble): Handle hi() correctly. Handle
hi0() too.
Bugfix.
1996-08-30 06:44:44 +00:00
Jeff Law
1f17971dee * gas/v850/hilo.s: New testfile.
* gas/v850/basic.exp: Run hilo tests.
1996-08-30 06:40:44 +00:00
Jackie Smith Cashion
d833e7e3c8 Thu Aug 29 11:32:23 1996 James G. Smith <jsmith@cygnus.co.uk>
* gas/arm/arm7t.d: Explicitly force little-endian assembly.
1996-08-29 10:34:09 +00:00
Martin Hunt
e592d28fa4 Wed Aug 28 19:20:04 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (find_opcode): Fix a bug which could generate
	the wrong opcode for cases like st2w where there are many forms
	of the same instruction.
1996-08-29 02:22:25 +00:00
Ian Lance Taylor
6fce31a64b * expr.c (operand): If md_parse_name is defined, call it before
calling symbol_find_or_make.
	* config/tc-ppc.h (md_parse_name): Define.
	(ppc_parse_name): Declare.
	* config/tc-ppc.c (reg_name_search): Add regs and regcount
	parameters.
	(register_name): Update call to reg_name_search.
	(cr_operand): New static variable.
	(cr_names): New static const array.
	(ppc_parse_name): New function.
	(md_assemble): If PPC_OPERAND_CR is set in the operand flags, set
	cr_operand before calling expression.
PR 10460.
1996-08-27 17:56:47 +00:00
Jeff Law
a58b037adc * config/tc-hppa.c (tc_gen_reloc): Add new argument to
hppa_gen_reloc_type call.
Fixing a problem with -mlinker-opt.
1996-08-27 15:21:30 +00:00
Martin Hunt
67f0d0ea4c Mon Aug 26 18:24:51 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.c: Fixed ".word".  Fixed problem with range checking
	on addresses.  Improved error messages.
1996-08-27 01:28:29 +00:00
Martin Hunt
3017263b68 Mon Aug 26 18:24:51 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c: Fixed ".word".  Fixed problem with range checking
	on addresses.  Improved error messages.
	* doc/c-d10v.texi: Added docs for register pairs.
1996-08-27 01:28:10 +00:00
Martin Hunt
443dbf147e Mon Aug 26 13:39:27 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.c (parallel_ok): Fix bug in parallel
	checking code.
1996-08-26 20:42:37 +00:00
Martin Hunt
f9085532dd Mon Aug 26 13:39:27 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (parallel_ok): Fix bug in parallel
	checking code.
1996-08-26 20:42:19 +00:00
Ian Lance Taylor
58275724ff * ecoff.c (init_file): Initialize fMerge to 1.
(add_file): Restore old file merging code, but only merge files if
	fMerge is set.
	(ecoff_directive_loc): Clear fMerge field of current file.
	(ecoff_generate_asm_lineno): Likewise.
1996-08-26 19:07:06 +00:00
Jeff Law
88b47a8521 * config/tc-v850.c (md_assemble): Rough cut at demanding
"ep" or "r30" in sst and sld instructions.
        (md_apply_fix3): Don't abort.  Just warn that we don't
        have relocs yet.
1996-08-23 20:58:13 +00:00
Jeff Law
29fb63b671 * gas/v850/basic.exp (move_tests): Test instruction bit patterns.
* gas/v850/move.s: Tweak constants for better testing.
1996-08-23 20:29:34 +00:00
Jeff Law
8289ed0b65 * gas/v850/basic.exp (mem_tests): Test instruction bit patterns.
xfail sst and sld tests.
        (mov_tests): Remove bogus xfail.
        * gas/v850/mem.s: sst and sld instructions can only index from
        "ep" register.
1996-08-23 19:35:05 +00:00
Jeff Law
1fa751362b * gas/v850/basic.exp (logical_tests): Test instruction bit patterns.
Update addresses.
        * gas/v850/logical.s: Tweak constants for better testing.
1996-08-23 19:13:56 +00:00
Jeff Law
5bd7d77946 * gas/v850/basic.exp (jump_tests): Test instruction bit patterns,
but not displacements (yet).
1996-08-23 19:05:52 +00:00
Jeff Law
c9f1b2d9c7 * config/tc-v850.c (CC_NAME_CNT): Define.
(cc_name): New function.
        (md_assemble): Handle V850_OPERAND_CC correctly.
setf stuff
1996-08-23 19:01:37 +00:00
Jeff Law
7be3453a1a * gas/v850/basic.exp (compare_tests): Test instruction bit patterns. 1996-08-23 18:58:09 +00:00
Martin Hunt
b1c28263c9 Fri Aug 23 11:40:47 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* doc/c-d10v.texi: Fix typo.
1996-08-23 18:43:48 +00:00
Jeff Law
78872957c4 * gas/v850/basic.exp (branch_tests): Test instruction bit patters,
but not displacements (yet).
1996-08-23 18:34:48 +00:00
Jeff Law
47183e0e38 * gas/v850/basic.exp (bit_tests): Test instruction bit patterns. 1996-08-23 18:26:59 +00:00
Jeff Law
d5974c571c * config/tc-v850.c (md_assemble): Don't forget to initialize
"insn"!
1996-08-23 18:19:08 +00:00
Jeff Law
ad9889dd59 * gas/v850/basic.exp (arith_tests): Test instruction bit patterns.
* gas/v850/arith.s: Tweak constants for better testing.
1996-08-23 18:16:02 +00:00
Jeff Law
827b80748b * gas/v850/basic.exp (misc_tests): No longer expect failures
assembling "ldsr" and "stsr" opcodes.
        * gas/v850/misc.s: Re-enable assembling of "ldsr" and "stsr"
        opcodes.
1996-08-23 17:42:00 +00:00
Jeff Law
0e8f9bd15e * config/tc-v850.c (reg_name_search): Generalize to search
any given register table.
        (register_name): Pass appropriate table and size to reg_name_search.
        (system_register_name): New function.
        (SYSREG_NAME_CNT): Define.
        (md_assemble): Handle operands which are system registers.
Still working on the parser..
1996-08-23 17:39:43 +00:00
Jeff Law
4fc797ff5c * gas/v850/basic.exp (misc_tests): No longer expect failures
assembling "trap" opcodes.
        * gas/v850/misc.s: Re-enable assembling of "trap" opcodes.
1996-08-23 17:10:41 +00:00
Jeff Law
50f7abfaed * gas/v850: New directory with v850 tests.
Beginnings of a gas testsuite for the v850.
1996-08-23 17:03:52 +00:00
Jeff Law
c9a32d6ca7 * config/tc-v850.c (md_assemble): If we find a register, but the
opcode doesn't want a register, then we don't have a match.
        (md_assemble): Get size of the instruction from the opcode table.
So we choose the right opcode and so that we get the sizes right.
1996-08-23 16:43:23 +00:00
J.T. Conklin
1510cd39b6 rework operand parsing 1996-08-23 06:33:10 +00:00
Ian Lance Taylor
8ee90d359b * configure.in: Set and substitute HLDENV.
* configure: Rebuild.
	* Makefile.in (HLDENV): New variable.
	(as.new): Use $(HLDENV).
1996-08-23 00:10:40 +00:00
Ian Lance Taylor
eeef602f20 * ecoff.c (ecoff_directive_endef): Avoid a division by zero error
if an array dimension is not known.
PR 10426.
1996-08-22 21:00:36 +00:00
Martin Hunt
d0810b2b8d Thu Aug 22 10:50:00 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* doc/c-d10v.texi: Cleanup.
1996-08-22 17:54:41 +00:00
Martin Hunt
6be9ec8d75 Thu Aug 22 10:50:00 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c: Fix a reloc bug caused by my last change.
	* doc/c-d10v.texi: Cleanup.
1996-08-22 17:53:59 +00:00
J.T. Conklin
dcf5d11760 parse [reg], lo(exp), and hi(exp) 1996-08-22 05:30:14 +00:00
J.T. Conklin
c6aa56bca9 * config/tc-v850.c: New file.
* config/tc-v850.h: New file.
* configure (v850-*-elf): New target.
* configure.in (v850-*-elf): New target.
1996-08-21 23:37:04 +00:00
Martin Hunt
337350a309 Wed Aug 21 15:50:54 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* c-d10v.texi: New file.
	* all.texi: Added D10V stuff.
	* as.texinfo: Added D10V stuff.
1996-08-21 22:53:53 +00:00
Martin Hunt
2c2e562634 Wed Aug 21 15:50:54 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* doc/c-d10v.texi: New file.
	* doc/all.texi: Added D10V stuff.
	* doc/as.texinfo: Added D10V stuff.
1996-08-21 22:53:14 +00:00
Martin Hunt
bb5638c637 Tue Aug 20 14:10:02 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.c: All references to defined symbols should
 	now use the optimal instruction.  .float and .double now work.
1996-08-20 21:15:18 +00:00
Martin Hunt
ab457c4c0b Tue Aug 20 14:10:02 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c: All references to defined symbols should
 	now use the optimal instruction.  .float and .double now work.
1996-08-20 21:15:05 +00:00
Ian Lance Taylor
d4e1b0be7b * config/obj-coff.c (fixup_segment): Adjust PC relative reloc by
section address for the i960 as is done for the i386.
PR 10344.
1996-08-19 21:42:49 +00:00
Stan Shebs
9072e640c4 * mpw-config.in: Add wildcards for config matching, add mips-*-*
case, forward-include bfd/elf-bfd.h.
1996-08-15 23:40:40 +00:00
Martin Hunt
b98b04eadb Thu Aug 15 13:24:30 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c: Add additional information to the opcode
        table to help determinine which instructions can be done
        in parallel.
1996-08-15 20:26:03 +00:00
Jackie Smith Cashion
ac5a75ae11 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.
1996-08-15 15:27:53 +00:00
Jackie Smith Cashion
3bce65a493 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.
1996-08-15 15:07:55 +00:00
Ian Lance Taylor
126436a8ca * config/tc-i386.c (tc_i386_fix_adjustable): Don't adjust relocs
against weak symbols.
1996-08-14 17:51:49 +00:00
Ian Lance Taylor
0e94336ef5 * config/tc-ppc.h (TC_FORCE_RELOCTION): Define if OBJ_XCOFF.
(ppc_force_relocation): Declare if OBJ_XCOFF.
	* config/tc-ppc.c (ppc_force_relocation): New function if
	OBJ_XCOFF.
1996-08-14 01:02:04 +00:00
Ian Lance Taylor
817e4f757f * config/tc-mips.h (BYTE_ORDER): Don't define. No longer used. 1996-08-12 23:51:25 +00:00
Martin Hunt
f494d50348 Fri Aug 9 17:48:28 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c: Fix problem with relocs.
1996-08-10 00:50:28 +00:00
Ian Lance Taylor
8d07d2c915 * config/tc-sh.c (sh_do_align): If not BFD_ASSEMBLER, always align
with nops if not in data_section or bss_section.
PR 10312.
1996-08-09 18:16:54 +00:00
Ian Lance Taylor
f649d525ed Thu Aug 8 12:32:56 1996 Klaus Kaempf <kkaempf@progis.de>
Add support for openVMS/Alpha.
	* as.h (PRINTF_LIKE): Don't define if VMS, for now.
	* config/obj-evax.c: New file.
	* config/obj-evax.h: New file.
	* config/tc-alpha.c: Add support for EVAX format if OBJ_EVAX is
	defined.
	* config/tc-alpha.h: Add support for EVAX format if OBJ_EVAX is
	defined.  Add case for bfd_target_evax_flavour.
	* config/vms-a-conf.h: New file.
	* conf-a-gas.com: New file.
	* configure.in: Add target alpha-*-*vms*.
	* configure: Rebuild.
	* makefile.vms: New file.
	* read.c (s_lcomm): Align bss_seg on 8 byte boundary if OBJ_EVAX.
	Don't call ffs on openVMS/Alpha.
1996-08-08 16:42:41 +00:00
Ian Lance Taylor
d10df990c7 * symbols.c (resolve_symbol_value): Handle addition or subtraction
by a constant before entering the main switch.  Reject attempts to
	apply an arithmetic function to non-absolute symbols, except for
	the special case of subtraction of two symbols in the same
	section.
1996-08-07 20:13:50 +00:00
Ian Lance Taylor
5cece52677 Wed Aug 7 14:19:03 1996 Philippe De Muyter <phdm@info.ucl.ac.be>
* configure.in: Make GAS_CHECK_DECL_NEEDED include <string.h> or
	<strings.h> if they exist.  Call GAS_CHECK_DECL_NEEDED on strstr
	and sbrk.
	* acconfig.h (NEED_DECLARATION_STRSTR): New macro.
	(NEED_DECLARATION_SBRK): New macro.
	* configure, conf.in: Rebuild.
	* as.h: Only include <strings.h> if HAVE_STRINGS_H.
	(strstr): Declare if NEED_DECLARATION_STRSTR.
	* as.c: If HAVE_SBRK and NEED_DECLARATION_SBRK, declare sbrk.
1996-08-07 18:23:08 +00:00
Ian Lance Taylor
cf32394d07 * config/tc-mips.c (md_section_align): Do align if OBJ_ELF, but
not to more than a 16 byte boundary.
1996-08-07 17:17:33 +00:00
Ian Lance Taylor
e592f0e63d * config/tc-i386.c (tc_gen_reloc): Accept all relocs; remove
#ifndef OBJ_ELF lines.  From Eric Valette <valette@crf.canon.fr>.
	(tc_gen_reloc): If out of memory call as_fatal rather than
	assert.  If no howto found, call as_bad_where rather than
	as_fatal.  Change the error message slightly.  Set howto to a
	non-NULL value in order to keep going.
1996-08-07 15:54:33 +00:00
Martin Hunt
e805bff71d Tue Aug 6 12:58:03 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.c: Added code to support 32-bit fixups for stabs.
1996-08-06 20:01:07 +00:00
Martin Hunt
5d9a99a79b Tue Aug 6 12:58:03 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c: Added code to support 32-bit fixups for stabs.
1996-08-06 20:00:50 +00:00
Jeff Law
94dba90cdf * 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.
1996-08-06 17:18:10 +00:00
Jeff Law
6a8e003654 * config/tc-h8300.c (get_specific): New operand "size" derived
from ".b", ".w" and ".l" extensions.  All callers changed.  If
        the base instruction has no operands, then use the size to
        determine which specific instruction to use.
Fixing eepmov instructions.
1996-08-06 17:17:34 +00:00
Ian Lance Taylor
3d7b0c499b * config/tc-i960.c (mem_fmt): Call parse_expr before emit.
PR 10274.
1996-08-05 18:21:50 +00:00
Ian Lance Taylor
10a14e3639 * config/tc-mips.c (md_section_align): Don't change addr if
OBJ_ELF.
PR 10181.
1996-08-02 15:30:09 +00:00
Jeff Law
470a679caf * config/tc-hppa.c: Revert yesterday's changes.
Trying another approach to the EH problem.
1996-08-02 05:52:41 +00:00
Martin Hunt
9971ae5941 Wed Jul 31 14:46:11 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.c: Disable range checking on 16-bit values.
1996-07-31 22:00:36 +00:00
Martin Hunt
b5cf677932 Wed Jul 31 14:46:11 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c: Disable range checking on 16-bit values.
1996-07-31 22:00:21 +00:00
Ian Lance Taylor
159eb3c0df * config/tc-m68k.c (m68k_ip): Set ok_arch for every instruction,
not just the ones that don't match.
1996-07-31 20:29:00 +00:00
Martin Hunt
f8508db7d6 Wed Jul 31 11:45:15 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.c: Fixed bugs in short relocs and range checking.
1996-07-31 18:50:12 +00:00
Martin Hunt
37e05f6443 Wed Jul 31 11:45:15 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c: Fixed bugs in short relocs and range checking.
1996-07-31 18:49:56 +00:00
David Edelsohn
1804c6a042 * gas/sparc/asi.s: Update ASI_AS_IF_USER_{PRIMARY,SECONDARY}_LITTLE. 1996-07-31 17:58:42 +00:00
Ian Lance Taylor
972636ce89 mention ColdFire support 1996-07-31 17:54:04 +00:00
Jackie Smith Cashion
338946263a "testsuite/gas/arm/arm7t.s" and "testsuite/gas/arm/arm7t.d" added. 1996-07-31 15:00:18 +00:00
Jackie Smith Cashion
c479fc62f4 oWed Jul 31 15:41:42 1996 James G. Smith <jsmith@cygnus.co.uk>
* config/tc-arm.c: Changed INSN_SIZE to variable insn_size, as
 	pre-cursor to adding Thumb support. Also added cpu_variant flag
 	information to each of the asm_flg structures.
	(md_parse_option): Updated ARM7 parsing to allow 't' for
 	thumb/halfword support, aswell as 'm' for long multiply.
	(md_show_usage): Updated help message.
	(md_assemble): Check that instruction flags are applicated to the
 	current cpu variant.
	(md_apply_fix3, tc_gen_reloc): Add BFD_RELOC_ARM_OFFSET_IMM8 and
 	BFD_RELOC_ARM_HWLITERAL relocation support for new halfword and
 	signextension instructions.
	(do_ldst): Generate halfword and signextension variants if
 	mnemonic flags match.
	(ldst_extend): Do not allow shifts in the offset field of halfword
 	or signextension instructions.
	(validate_offset_imm): Provide check on halfword and signextension
 	immediate range.
	(add_to_lit_pool): Merge identical literal pool values.

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.
1996-07-31 14:57:57 +00:00
Jeff Law
448b5aadbb * config/tc-hppa.c (selector_table): Add 'E' selector.
(cons_fix_new_hppa): Don't coke on e_esel.
        (tc_gen_reloc, SOM version): Handle R_COMP2 when used
        to help generate exception handling tables.
        (md_apply_fix): Don't try to apply fixups with an e_esel
        selector.
        (hppa_fix_adjustable): Fixups with e_esel selectors
        are not adjustable.
Another stab at EH on the PA.
1996-07-30 20:30:49 +00:00
Ian Lance Taylor
8dfb05cc95 * config/tc-sparc.c (md_pseudo_table): Add 2byte, 4byte, and 8byte
pseudo-ops.
1996-07-30 20:02:02 +00:00
Martin Hunt
a40d35898a Fri Jul 26 11:43:03 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.c: Added lots of error checking.  Added hacks
	to support accumulator shifts.
1996-07-26 18:53:03 +00:00
Martin Hunt
8544dc0329 Fri Jul 26 11:43:03 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c: Added lots of error checking.  Added hacks
	to support accumulator shifts.
1996-07-26 18:52:01 +00:00
Ian Lance Taylor
5ca547dc23 * symbols.c (S_SET_EXTERNAL): Let .weak override.
(S_CLEAR_EXTERNAL): Likewise.
	(S_SET_WEAK): Remove error; just let .weak override.
1996-07-26 15:58:57 +00:00
Martin Hunt
ef5a4085ce Thu Jul 25 15:22:51 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.c (md_assemble): Now handles multiline
	instructions.
1996-07-25 22:27:37 +00:00
Martin Hunt
35ad20a1a5 Thu Jul 25 15:22:51 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (md_assemble): Now handles multiline
	instructions.
1996-07-25 22:27:17 +00:00
Martin Hunt
ab48956f99 Thu Jul 25 12:03:33 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.c: Fix packaging bug. Added range checking.
	Added kludge for divs instruction.  Fixed minor problem with
	multiple text sections.
	* tc-d10v.h (d10v_cleanup): Change prototype.
1996-07-25 19:15:14 +00:00
Martin Hunt
7c09665202 Thu Jul 25 12:03:33 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c: Fix packaging bug. Added range checking.
	Added kludge for divs instruction.  Fixed minor problem with
	multiple text sections.
	* config/tc-d10v.h (d10v_cleanup): Change prototype.
1996-07-25 19:14:27 +00:00
Martin Hunt
9305039104 start-sanitize-d10v
Tue Jul 23 10:49:36 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>

	* config/tc-d10v.c (md_apply_fix3): Fix all instruction
	addresses to be right-shifted by 2.

end-sanitize-d10v
1996-07-23 17:59:22 +00:00
Martin Hunt
0ef325594a start-sanitize-d10v
Mon Jul 22 11:32:36 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>

	* config/tc-d10v.c: Many changes to get relocs working.
 	(register_name): No longer creates a symbol for register names.
 	(pre_defined_registers): moved to opcodes/d10v-opc.c.
	(d10v_insert_operand): Now works correctly for either container.
	* config/tc-d10v.h (d10v_cleanup): Declare.

end-sanitize-d10v
1996-07-22 18:55:27 +00:00
Ian Lance Taylor
97aca1bcdf * config/tc-mips.c (tc_gen_reloc): BFD_RELOC_PCREL_HI16_S and
BFD_RELOC_PCREL_LO16 are expected to be PC relative.
1996-07-22 18:03:41 +00:00
Ian Lance Taylor
6543a7fb68 Mon Jul 22 12:46:55 1996 Richard Henderson <rth@tamu.edu>
* tc-alpha.c: Patches to track current minimum alignment to reduce
	the number of fragments created with frag_align.
	(alpha_current_align): New static variable.
	(s_alpha_text): Reset alignment to 0.
	(s_alpha_data, s_alpha_rdata, s_alpha_sdata): Likewise.
	(s_alpha_stringer, s_alpha_space): New functions.
	(s_alpha_cons, alpha_flush_pending_output): Remove functions.
	(alpha_cons_align): New function to replace both of them.
	(emit_insn): Only align if alpha_current_align is less than 2;
	reset alpha_current_align to 2.
	(s_alpha_gprel32): Likewise.
	(s_alpha_section): New function.  Basically duplicate the other
	alpha section change hooks.  Only define for ELF.
	(s_alpha_float_cons): Simplify alignment handling.
	(md_pseudo_table): Only define "rdata" and "sdata" if OBJ_ECOFF.
	If OBJ_ELF, define "section", "section.s", "sect", and "sect.s".
	Don't define the s_alpha_cons pseudo-ops.  Do define
	s_alpha_stringer and s_alpha_space pseudo-ops.
	(alpha_align): Skip if less than current default alignment.  Set
	default alignment.
	* tc-alpha.h (md_flush_pending_output): Remove.
	(md_cons_align): Add.

	* tc-alpha.c: Add oodles of function description comments.
	(md_bignum_to_chars): Remove; there are no callers.
	(md_show_usage): Mention some more variants.
1996-07-22 17:04:04 +00:00
Ian Lance Taylor
0b27ea396a From Andrew Gierth <ANDREWG@microlise.co.uk>:
* configure.in (sparc-*-sysv4*): New target.
	* configure: Rebuild.
1996-07-18 21:38:39 +00:00
Ian Lance Taylor
8dd07a847c * config/tc-sparc.c (md_pseudo_table): Change uahalf, uaword, and
uaxword to use s_uacons.
	(sparc_no_align_cons): New static variable.
	(s_uacons): New static function.
	(sparc_cons_align): If sparc_no_align_cons is set, just clear it
	and return.
1996-07-18 20:53:32 +00:00
Ian Lance Taylor
cbe7dccbd9 * configure.in: Add mips-*-irix6* target. Handle Irix 6 like Irix
5 with regard to shared libraries.
	* configure: Rebuild.
1996-07-18 20:34:52 +00:00
Ian Lance Taylor
091221ceea * config/tc-m68k.c (m68k_ip): Use the correct length when
allocating space for the unsupported architecture error message.
1996-07-18 19:56:40 +00:00
Michael Meissner
05a8bf3325 Minor tweaks to d10v configuration 1996-07-18 16:59:15 +00:00
Martin Hunt
7be9a3121d start-sanitize-d10v
Wed Jul 17 14:25:13 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
        * config/tc-d10v.c: New file.
        * config/tc-d10v.h: New file.
        * configure (d10v-*-elf): New target.
        * configure.in (d10v-*-elf): New target.
end-sanitize-d10v
1996-07-18 00:39:03 +00:00
Michael Meissner
10c9620d4e Recognize and handle -K PIC 1996-07-13 00:54:55 +00:00
Ian Lance Taylor
0ee09671a8 Wed Jul 10 12:39:08 1996 Richard Henderson <rth@tamu.edu>
* config/tc-alpha.c (alpha_align): Change fill parameter
	to a pointer.  Take NULL as 0 or nop depending on section.  Change
	all callers.
	(s_alpha_align): Rename local variables.

	* doc/as.texinfo (.align): Document action of omitted
	fill parameter.
1996-07-10 16:51:06 +00:00
Ian Lance Taylor
3128726ccd * app.c (do_scrub_chars): Remove not_cpp_line local variable.
Instead, check state when '#' comment is seen.
PR 10073.
1996-07-10 04:30:27 +00:00
Ian Lance Taylor
996e146fd6 * config/tc-ppc.c (md_apply_fix3): Give a useful error message
when an unsupported PC relative reloc is seen, rather than calling
	abort.
PR 10073.
1996-07-10 04:26:38 +00:00
Ian Lance Taylor
a8aed9ddfb * config/tc-mips.c (mips_regmask_frag): Only define if OBJ_ELF or
OBJ_MAYBE_ELF.
	(tc_gen_reloc): If fixup was changed to be PC relative, change
 	reloc type accordingly.  Use name of reloc in error message.
1996-07-08 23:16:00 +00:00
Ian Lance Taylor
a5a781751a * as.h: Don't define const or volatile.
* flonum.h: Don't define const.
1996-07-08 21:57:07 +00:00
Ian Lance Taylor
e675c634dd Improve SCO ELF comment 1996-07-08 21:43:26 +00:00
Ian Lance Taylor
f93e43a114 At the request of Andreas Schwab:
* gas/m68k/pcrel.d: Rename from schwab.d.
	* gas/m68k/pcrel.s: Rename from schwab.s.
1996-07-08 18:37:30 +00:00
Ian Lance Taylor
d1db6a9de2 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.
1996-07-08 18:25:53 +00:00
Ian Lance Taylor
7f003b7fee * config/tc-m68k.c (tc_gen_reloc): Change the code appropriately
if fx_pcrel is set.  Correct setting the addend case in the
	OBJ_ELF case (from Andreas Schwab
	<schwab@issan.informatik.uni-dortmund.de>).
	(md_show_usage): Correct -mfc5200 to -m5200.
1996-07-08 18:15:15 +00:00
Jeff Law
cf4c2392ef No longer need to sanitize away h8s stuff. 1996-07-05 19:05:26 +00:00
Jeff Law
d78f416f84 No longer sanitize away h8s stuff 1996-07-05 18:39:32 +00:00
J.T. Conklin
910d7df246 * doc/c-m68k.texi: Document -m5200 flag.
* doc/as.texinfo: Likewise.
1996-07-05 17:47:22 +00:00
J.T. Conklin
8d20a0a883 * config/tc-m68k.c (m68k_ip): The coldfire does not support 8x
scale factor.
1996-07-05 17:35:32 +00:00
Ian Lance Taylor
c0b3470207 * symbols.c (S_SET_EXTERNAL): Change as_warn to as_bad.
(S_CLEAR_EXTERNAL, S_SET_WEAK): Likewise.
1996-07-05 15:23:59 +00:00
Ian Lance Taylor
3f5d2072fb fix screwed up sanitization 1996-07-05 15:19:30 +00:00
Ian Lance Taylor
4ff09a4980 fix screwed up sanitization 1996-07-05 14:50:28 +00:00
Ian Lance Taylor
6624477c48 * Makefile.in (VERSION): Set to cygnus-2.7.1. 1996-07-04 19:38:41 +00:00
Ian Lance Taylor
b19c462304 keep sh3e tests 1996-07-04 19:14:54 +00:00
Ian Lance Taylor
5c7bebdba4 Avoid DOS file naming problems:
* gas/h8300/branch.s: Rename from branches.s.
	* gas/h8300/branchh.s: Rename from branchesh.s.
start-sanitize-h8s
	* gas/h8300/branchs.s: Rename from branchess.s.
end-sanitize-h8s
	* gas/h8300/rotsh.s: Rename from rotshift.s.
	* gas/h8300/rotshh.s: Rename from rotshifth.s.
start-sanitize-h8s
	* gas/h8300/rotshs.s: Rename from rotshifts.s.
end-sanitize-h8s
	* gas/h8300/h8300.exp: Corresponding changes.
1996-07-04 18:26:59 +00:00
Ian Lance Taylor
fb81503c90 sanitize binutils 2.7 branch 1996-07-04 17:57:28 +00:00
Ian Lance Taylor
41c3da51ee tipo 1996-07-04 16:34:53 +00:00
Ian Lance Taylor
45c85bcb34 x 1996-07-04 16:03:09 +00:00
Jackie Smith Cashion
36e5ed4cd4 Added "keep" entries for div-ilocks.d and mul-ilocks.d 1996-07-04 15:23:57 +00:00
Jackie Smith Cashion
fc636a52d7 Thu Jul 4 10:11:33 1996 James G. Smith <jsmith@cygnus.co.uk>
* config/tc-mips.c (mips_ip): Only perform range check when
 	dealing with O_constant expressions.

Problem noticed by QMS, where "%lo(SYM + LARGEOFFSET)" would complain
about the OFFSET being greater than 16bits or not absolute, when it
should really just be taking the lo-16bits of the final address value.
1996-07-04 09:14:55 +00:00
Ian Lance Taylor
c5d8f96eff * read.h (is_it_end_of_statement): Declare.
* read.c (is_it_end_of_statement): Remove declaration.
1996-07-04 01:37:00 +00:00
J.T. Conklin
d41d2ccc63 * m68k-parse.h (m68k_register): Add new coldfile control
registers.

* config/tc-m68k.c (mcf5200_control_regs): New variable,
array of control registers for the coldfire.
(cpu_of_arch): Added mcf5200.
(archs): Added mcf5200.
(init_table): Add new control registers.
(m68k_ip): Added support for new control registers.
(m68k_init_after_args): Likewise.

* config/tc-m68k.c (md_show_usage): Add -m5200 to usage text.
1996-07-03 22:20:42 +00:00
Ian Lance Taylor
ac76c7e98c * config/tc-i386.h (AOUT_MACHTYPE): Define as 0 if TE_386BSD. 1996-07-03 21:01:25 +00:00
Ian Lance Taylor
5af96dce32 Based on patches from Tom Quiggle <quiggle@sgi.com>:
* ecoff.c (last_lineno): New static variable.
	(add_procedure): Set last_lineno.
	(ecoff_directive_loc): Likewise.
	(ecoff_generate_asm_lineno): Likewise.
	(ecoff_fix_loc): New function.
	* ecoff.h (ecoff_fix_loc): Declare.
	* config/tc-mips.c (append_insn): When inserting nops, and using
	ECOFF debugging, call ecoff_fix_loc.
1996-07-03 20:15:38 +00:00
Ian Lance Taylor
98c72b6dd7 * 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.
1996-07-03 18:23:06 +00:00
Jeff Law
b9bddc84e2 * config/tc-h8300.c (build_bytes): If an operand type is
marked as SRC_IN_DST retrieve it from the "destination" op.
Disgusting hack for shal #2,er0.  HMSE
1996-07-03 05:03:54 +00:00
Ian Lance Taylor
5cd26e22ac * gas/all/gas.exp: Add setup_xfail for vax*-*-vms* for 930509a
test.
	* gas/vax/quad.exp: Expect a nop after the movq.
1996-06-29 22:22:37 +00:00
Ian Lance Taylor
69c1de907f * configure.in (arm-*-riscix*): Set emulation to riscix.
* configure: Rebuild.
	* config/te-riscix.h: New file to define TE_RISCIX.
1996-06-29 22:20:57 +00:00
Ian Lance Taylor
379c2fb4d7 * config/tc-sh.h (SUB_SEGMENT_ALIGN): Define. 1996-06-29 17:39:19 +00:00
Ian Lance Taylor
be4931bae0 sanitize out reference to MACREG 1996-06-29 16:48:44 +00:00
Stan Shebs
c611cd82fc * mpw-config.in (TARGET_OS): Add definition to conf. 1996-06-28 18:13:47 +00:00
Ian Lance Taylor
77dea5447d various trivial cleanups 1996-06-28 16:38:05 +00:00
Ian Lance Taylor
fbf011f249 * listing.c (listing_print): Close the listing file if it is not
stdout.  Close the other files opened for the listing.
1996-06-27 22:24:37 +00:00
Ian Lance Taylor
681dbbc0aa * config/tc-sparc.h (md_cons_align): Define.
(sparc_cons_align): Declare.
	(HANDLE_ALIGN): Define.
	(sparc_handle_align): Declare.
	* config/tc-sparc.c (sparc_cons_align): New function.
	(sparc_handle_align): New function.
	* read.c (cons_worker): Call md_cons_align if it is defined.
1996-06-27 22:03:33 +00:00
Jackie Smith Cashion
5e596034ab Thu Jun 27 20:39:40 1996 James G. Smith <jsmith@cygnus.co.uk>
* config/tc-mips.c (append_insn): Parenthesize
	cop_interlocks expressions.
1996-06-27 19:45:41 +00:00
Ian Lance Taylor
7e027ce6c2 * as.h (struct frag): Remove unused align_mask and align_offset
fields.
1996-06-27 18:57:21 +00:00
Ian Lance Taylor
f9b990cd5d * listing.c (calc_hex): Offset by fr_fix when examining fr_var.
From <uddeborg@carmen.se>.
1996-06-27 16:39:46 +00:00