Commit Graph

1496 Commits

Author SHA1 Message Date
Ian Lance Taylor
0267c6c9c2 * config/tc-mips.c (load_register): Add cast to offsetT when using
a constant with &~.
1996-10-14 18:00:19 +00:00
Ian Lance Taylor
5d0cd0b87e Mon Oct 14 11:24:28 1996 Richard Henderson <rth@tamu.edu>
* config/obj-elf.c (elf_frob_file): Move ECOFF debug processing to ...
	(elf_frob_file_after_relocs): ... here.  New function.
	* config/obj-elf.h (obj_from_file_after_relocs): New macro.
	* write.c (write_object_file): Call *frob_after_relocs after the
	call to write_relocs.

	* config/tc-alpha.c: Use new BFD_RELOC_ALPHA_ELF_LITERAL reloc.

	* config/tc-alpha.c (load_expression): Don't SET_VALUE on the section
	symbol, as this messes up linking.  Instead, expand the recursive call
	inline and change up the appropriate bits to get the 0x8000 offset
	in the reloc addend.
1996-10-14 15:40:15 +00:00
Ian Lance Taylor
1491f2eaee * config/tc-sparc.h (tc_fix_adjustable): Permit the difference of
two symbols in the same segment to be adjusted.
1996-10-10 22:34:06 +00:00
Jeff Law
3ab9337b4b * config/mn10300.c (md_assemble): Pass an extra shift count
to mn10300_insert_operand based on the opcode format.
        (mn10300_insert_operand): Accept and use extra shift count
        parameter.
Matsushita
1996-10-10 22:03:16 +00:00
Ian Lance Taylor
914f899869 * configure.in: Don't get confused by CPU-VENDOR-linux-gnu.
* configure: Rebuild.
1996-10-10 21:31:27 +00:00
Michael Meissner
f8a011cfa5 Turn most warnings into errors 1996-10-10 21:26:59 +00:00
Jeff Law
778c521b85 * config/tc-mn10300.c (md_assemble): Use FMT_* macros for
formats rather than hard-coded constants.
Minor cleanup.
1996-10-10 20:33:47 +00:00
Jeff Law
1c3ae169f7 * config/tc-mn10300.c (md_assemble): Format D5 instructions
are 7 bytes long.  Write out instructions in big-endian format.

Matsushita.
1996-10-10 18:07:37 +00:00
Jeff Law
a6be605a1a * config/tc-mn10300.h (md_assemble): Tweak further so
that all instructions are parsed correctly.
1996-10-08 20:59:28 +00:00
Ian Lance Taylor
5e1e8f23cf * as.h: Include libiberty.h.
(xmalloc, xrealloc): Don't declare.
	* as.c: Don't include libiberty.h.
	* expr.c, read.c, stabs.c, config/obj-coff.c: Likewise.
	* config/tc-mips.c: Likewise.
	* messages.c: Likewise.
	(xstrerror): Don't declare.
	* xmalloc.c: Remove.
1996-10-08 17:15:20 +00:00
Jeff Law
1217102f2c * config/tc-mn10300.h (pre_defined_registers) Remove.
(system_registers, cc_names): Likewise.
        (address_registers, data_registers, other_registers): New register
        arrays.
        (register_name, system_register_name, cc_name): Remove.
        (mn10300_reloc_prefix): Likewise.
        (data_register_name): New function.
        (address_register_name, other_register_name): Likewise.
        (md_assemble): Rough cut at parsing operands.  Remove lots of
        unwanted code.
        (md_apply_fix3): Disable for now.
Checkpointing today's Matsushita work.
1996-10-07 22:59:04 +00:00
Ian Lance Taylor
99e3ccb64c Mon Oct 7 11:38:34 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* config/tc-m68k.c (select_control_regs): New function, extracted
	out of m68k_init_after_args.
	(m68k_init_after_args): Use it.
	(mri_chip): Use it here as well to update set of allowed control
	regs for movec.
1996-10-07 15:40:59 +00:00
Ian Lance Taylor
0bd28bc4f4 * config/obj-elf.c (elf_begin): New function.
(obj_elf_section): Add the section symbol to the symbol table.
	* config/obj-elf.h (obj_begin): Define.
	(elf_begin): Declare.
	* as.c (perform_an_assembly_pass): Call obj_begin if it is
	defined.
1996-10-07 15:25:58 +00:00
Ian Lance Taylor
eb0dafdc04 * config/obj-coff.c (fixup_segment): Subtract the section address
from a PC relative reloc if TC_M68K.
1996-10-04 22:38:44 +00:00
Ian Lance Taylor
76f841e600 * config/tc-sparc.c (md_pseudo_table): Make .uahalf, .uaword, and
.uaxword available even if not OBJ_ELF.
	(md_atof): Remove unused local variable wordP.
1996-10-03 19:16:36 +00:00
Jeff Law
0f91d7632c * config/tc-mn10x00.c, config/tc-mn10x00.h: New files
for Matsushita MN10x00 support.
        * configure.in: Recognize mn10x00-*-*
        * configure: Rebuilt.
More Matsushita stuff.
1996-10-03 06:19:06 +00:00
Ian Lance Taylor
7c328bc7ff Wed Oct 2 15:54:03 1996 Klaus Kaempf <kkaempf@progis.de>
* obj-evax.h: move openvms definitions from here to tc-alpha.c.
	* tc-alpha.c: add support for vms_case_hack like in vax/vms.
	(load_expression): track clobbering of base reg before jmp/jsr.
	(s_alpha_file): pass case_hack flags and source filename via
	symbol table to bfd.
	* tc-alpha.h (TC_CONS_FIX_NEW): define
1996-10-02 19:55:33 +00:00
Ian Lance Taylor
a69e5977e2 * read.c (s_macro): Warn if a macro has the same name as a
pseudo-op.
	(s_space): In m68k MRI mode, align to a word boundary.
	* macro.c (define_macro): Add namep parameter.  Change all
	callers.
	* macro.h (define_macro): Update declaration.
1996-10-01 21:51:15 +00:00
Ian Lance Taylor
fed13a5ec9 Tue Oct 1 16:16:01 1996 Joel Sherrill <joel@oarcorp.com>
* configure.in (mips-*-rtems*): New target, like mips-*-elf*.
	* configure: Rebuild.
1996-10-01 20:17:23 +00:00
Ian Lance Taylor
bfc94743ea * as.c (show_usage): Print bug report address.
(parse_args): Change version printing to match current GNU
	standards.
	* gasp.c (show_usage): Print bug report address.
	(main): Change version printing to match current GNU standards.
1996-10-01 19:31:06 +00:00
Ian Lance Taylor
0b810a6ee0 * config/tc-m68k.c (init_table): Correct access control unit
register numbers.  From Ken Rose <rose@netcom.com>.
1996-10-01 17:59:56 +00:00
Ian Lance Taylor
ffef69a368 * config/tc-alpha.c: Add some static function prototypes.
(alpha_macros): Move to top of file.  Make static.
	(alpha_num_macros): Move to top of file.
1996-10-01 16:41:19 +00:00
Stu Grossman
8940a5834f * tc-v850.h: Define LOCAL_LABEL to recognise _.L_* symbols
generated by DWARF.
1996-10-01 16:38:44 +00:00
Ian Lance Taylor
4fc2c99a4a * expr.c (expr): Change >>= to >> (fix typo). (From meissner). 1996-09-26 20:04:56 +00:00
Ian Lance Taylor
97f8e6ff76 * read.c (float_cons): Call md_flush_pending_output if it is
defined.
PR 10716.
1996-09-24 23:06:05 +00:00
Ian Lance Taylor
6e4f3f096f * config/tc-m68k.c (add_fix): Treat a width of '3' like 'B'.
(md_assemble): A fixup width of '3' means a 1 byte reloc.
1996-09-23 16:32:24 +00:00
Ian Lance Taylor
72f70020f3 * config/obj-coff.c (fixup_segment): Don't adjust PC relative
reloc for the i960 for a reloc in the same section.  This undoes
	one of the two changes made Aug 19.
PR 10672.
1996-09-19 16:25:11 +00:00
Ian Lance Taylor
ab2998440b * config/obj-coff.c (obj_coff_endef): Both versions: Move C_STAT
symbols to the position of the debugging information.
PR 10668.
1996-09-18 16:14:29 +00:00
Ian Lance Taylor
1540599959 * expr.c (expr): Always use unsigned right shifts for >>.
PR 10630.
1996-09-16 15:42:47 +00:00
Jackie Smith Cashion
f17be6588b Thu Sep 12 10:25:45 1996 James G. Smith <jsmith@cygnus.co.uk>
* config/tc-arm.c (md_apply_fix3): Update two thumb instruction
 	slots when processing BL fixups.

	* config/tc-arm.c (output_inst): Ensure Thumb BL fixup is marked
 	on the first half of the instruction.

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

	* gas/arm/thumb.s (back): Check assembly of Thumb BL.
1996-09-12 09:31:02 +00:00
Ian Lance Taylor
1decafee51 * ecoff.c (ecoff_stab): Create an expression symbol for a complex
stabs expression, rather than giving an error.
1996-09-11 18:40:25 +00:00
Ian Lance Taylor
475c826bb4 * ecoff.c (ecoff_new_file): Don't do anything if we are still in
the same file.
PR 10595.
1996-09-11 04:14:35 +00:00
Ian Lance Taylor
8a3bdc3d2a * config/tc-mips.c (append_insn): Fill in the value for a constant
jump, rather than creating a reloc.
PR 10589.
1996-09-10 15:47:16 +00:00
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
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
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
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
05631de266 * config/tc-850.c (md_assemble): Handle hi() correctly. Handle
hi0() too.
Bugfix.
1996-08-30 06:44:44 +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