Commit graph

1097 commits

Author SHA1 Message Date
Martin Hunt
fa1e3be84c Wed Dec 4 15:42:41 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.c (md_assemble, d10v_cleanup): Fix bug
	with multiple sections.
1996-12-04 23:47:30 +00:00
Ian Lance Taylor
943321c07d * config/tc-mips.c (md_longopts): Rename mips-16 to mips16, and
no-mips-16 to no-mips16.
	(s_mipsset): Accept .set mips16 and .set nomips16.
1996-12-04 18:01:48 +00:00
Michael Meissner
8b1e9f129b Allow foo@suffix+constant relocations 1996-12-04 15:42:14 +00:00
Michael Meissner
b61802e7cb Add -m{,no-}solaris support to enable/disable solaris comments & setting ppc flags 1996-12-04 04:26:04 +00:00
Ian Lance Taylor
cc5703cd74 Add support for mips16 (16 bit MIPS implementation):
* config/tc-mips.c: Extensive additions for mips16 support, not
	listed here.
	(RELAX_OLD, RELAX_NEW): Use only 7 bits each.
	(insn_uses_reg): Change last parameter to an enum.
	* config/tc-mips.h (LOCAL_LABELS_DOLLAR): Define as 0.
	(md_relax_frag): Define as mips_relax_frag.
	(mips_relax_frag): Declare.
	(struct mips_cl_insn): Add use_extend and extend fields.
	(tc_fix_adjustable): Define.
	* config/obj-elf.h (S_GET_OTHER): Define.
	(S_SET_OTHER): Define.
1996-11-26 16:44:22 +00:00
Jeff Law
f98905f13d * config/tc-mn10300.c (address_registers): Use '%' prefix for regs.
(data_registers, other_registers, md_assemble): Likewise.
1996-11-25 18:24:14 +00:00
Jeff Law
0671e7f6c6 * config/tc-mn10300.c (md_assemble): Correctly determine the
correct location and type for each relocation.
        (md_pcrel_from): Simplify.
Last week's reloc work.
1996-11-25 15:54:43 +00:00
Jeff Law
d9a9c18fad * config/tc-mn10300.h (DIFF_EXPR_OK): Don't define this.
(tc_fix_adjustable): Don't adjust relocs against weak symbols or
        pc-relative relocs.
        * config/tc-mn10300.c (md_begin): Set linkrelax.
        (md_assemble): Create fixups as needed.
        (md_apply_fix3): Gut.  It shouldn't ever get called anymore.
First stab at fixups/relocs.
1996-11-21 18:58:26 +00:00
Jeff Law
7f02192d13 * config/tc-mn10300.c (md_assemble): Handle MN10300_OPERAND_REG_LIST.
So GCC can use movm in prologue/epilogues.
1996-11-19 20:35:19 +00:00
Jeff Law
43d695a1e9 * config/tc-mn10300.c (mn10300_insert_operand): Provide prototype
via PARAMS.
        (check_operand): Likewise.
1996-11-18 23:05:06 +00:00
Michael Meissner
d39e0e6d61 Fix previous change 1996-11-18 20:36:48 +00:00
Michael Meissner
ec5e212be2 Check validity of user parallel operations 1996-11-18 20:31:30 +00:00
Michael Meissner
228835a9b6 Branch and link instructions modify r13 1996-11-18 20:24:47 +00:00
Martin Hunt
edb89bfc5b Thu Nov 14 11:17:49 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (write_2_short): Fix bug that wouldn't
	allow a branch and link in parallel with an exe instruction.
1996-11-14 19:20:02 +00:00
Jeff Law
bdd91d4f41 * config/tc-mn10300.c (mn10300_insert_operand): Shift low part
of a MN10300_OPERAND_SPLIT operand by operand->shift.
For bset, bclr & btst.
1996-11-06 21:20:56 +00:00
Jeff Law
cdde2f5cee * config/tc-mn10300.c (mn10300_insert_operand): Handle
MN10300_OPERAND_SPLIT.
For handling of 32bit operands.
1996-11-06 20:48:36 +00:00
Jeff Law
bfe5059c70 * config/tc-mn10300.c (md_assemble): Insert operands into
the extension part of the instruction if necessary.
        (mn10300_insert_operand): Accept pointer to extension word
        argument.  Make insn a pointer argument too.  Return type
        is now void.  All callers changed.
So we can correct insert operands into any instruction except those
which have 32bit operands.
1996-11-05 20:32:07 +00:00
Jeff Law
68328dc6bd * config/tc-mn10300.c (mn10300_insert_operand): Handle
repeated register operands.
For mov imm8,dn
    mov imm8,an
    cmp imm8,dn
    cmp imm8,an

The register appears twice in the bit pattern...  Egad.
1996-11-04 19:54:50 +00:00
Jeff Law
2385d90a81 * config/tc-v850.c (md_convert_frag): Make sure we insert the
fixup at the right address within the frag.
1996-10-29 20:07:13 +00:00
Jeff Law
bc49fab8ea * config/tc-v850.c (md_convert_frag): Don't set fragP->fr_fix
to an absolute value, instead increment it as needed.
1996-10-29 19:48:18 +00:00
Jeff Law
a334533c1b * config/tc-v850.h (TC_GENERIC_RELAX_TABLE): Define.
* config/tc-v850.c: Fix some indention problems.
        (md_relax_table): Define for D9->D99 branch displacement
        relaxing.
        (md_convert_frag): Do something useful instead of aborting.
        (md_estimate_size_before_relax): Likewise.
        (md_assemble): Note if the matching instruction has a relaxable
        operand.  If it does, allocate frag with frag_var and don't
        do any fixups.
So we can do 9bit displacement to 22bit displacement relaxing.
1996-10-29 19:32:56 +00:00
Jeff Law
d3bbd9dc3e * config/tc-v850.c (v850_reloc_prefix): Several disgusting
hacks to improve parsing of complex hi, lo, zda, etc
        expressions.
        (md_assemble): Don't demand and eat a trailing ')' after finding
        a v850 relocation prefix.  Sign extend the constant in a
        BFD_RELOC_LO16 expression.  Do eat a trailing ')' after a complete
        operand.
        (parse_cons_expression_v850): Don't eat a trailing ')' after
        finding a v850 relocation prefix.
Trying to get nec's sample code to assemble.  Why oh why didn't JT try
to assemble any of their code...
1996-10-25 01:14:34 +00:00
Jeff Law
10fba7f14e * config/tc-v850.h (TC_PARSE_CONS_EXPRESSION): Define.
(TC_CONS_FIX_NEW): Likewise.
        * config/tc-v850.c (parse_cons_expression_v850): New function.
        (cons_fix_new_v850): Likewise.
So we can handle ".hword lo(_foo)".
1996-10-24 22:55:22 +00:00
Jeff Law
3723a1a9f1 * config/tc-v850.h (tc_fix_adjustable): Don't adjust TDA relocs.
Fixing more tda stuff.
1996-10-24 20:32:36 +00:00
Jeff Law
7e96935e77 * config/tc-v850.c (md_pseudo_table): Add .word; allocates
4 bytes of space.
Something off the todo list.
1996-10-23 22:23:38 +00:00
Jeff Law
8ea15b863f * config/tc-v850.c (md_assemble): Handle TDAOFF relocs
differently for movea & sst/sld insns.
Working on tda for the v850.
1996-10-23 04:06:04 +00:00
Ian Lance Taylor
bf39474f15 * config/tc-mips.c (cons_fix_new_mips): Only treat 8 byte reloc
specially if not ELF.
	(md_apply_fix): Handle BFD_RELOC_64.
	(tc_gen_reloc): Handle BFD_RELOC_64.
1996-10-22 00:01:33 +00:00
Ian Lance Taylor
538034cfb5 * config/tc-mips.c (mips_ip): Accept an odd floating point
register with l.s or s.s.
1996-10-18 19:33:03 +00:00
Jeff Law
548ddc7174 * config/tc-v850.c (v850_reloc_prefix): Recognize zdaoff, tdaoff
and sdaoff expressions.
1996-10-17 04:48:07 +00:00
Jeff Law
0f8e50bb76 * write.c (fixup_segment): Don't add symbol value to addend if
TC_V850 and OBJ_ELF.
        * config/tc-v850.h (tc_fix_adjustable): Don't adjust any
        pc-relative fixups.
Fixing more failures in the g++ testsuite.
1996-10-16 17:32:39 +00:00
Jeff Law
f964b01d90 * config/tc-v850.c (md_pcrel_from): Delete unused function.
(md_pcrel_from_section): New function.
        * config/tc-v850.h (MD_PCREL_FROM_SECTION): Define.
So we don't screw up pc-relative jumps/calls from one section
into another section within the same .o file.

Fixes global ctors/dtors to work with DECL_ONE_ONLY stuff.
1996-10-16 06:21:23 +00:00
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
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
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
Jeff Law
ae1b99e42d Grrr. The mn10200 and mn10300 are _not_ similar enough to easily support
with a single generic configuration.  So break them up into two different
configurations.  See the individual ChangeLogs for additional detail.
1996-10-03 16:42:22 +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
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
Martin Hunt
3547832c08 Tue Sep 24 12:22:18 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.c (md_operand): Created.  Allows operands to
	start with '#'.
	* tc-d10v.h (md_operand): Undefined.
1996-09-24 19:24:38 +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
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
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
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
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
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
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
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
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
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
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
d5974c571c * config/tc-v850.c (md_assemble): Don't forget to initialize
"insn"!
1996-08-23 18:19:08 +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
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
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
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
Ian Lance Taylor
817e4f757f * config/tc-mips.h (BYTE_ORDER): Don't define. No longer used. 1996-08-12 23:51:25 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
d78f416f84 No longer sanitize away h8s stuff 1996-07-05 18:39:32 +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
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
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