Commit graph

95 commits

Author SHA1 Message Date
Ken Raeburn
b79de3a178 Don't explicitly include config.h. Deleted a bunch of "#if 0" code and useless
comments.
(struct m68k_cpu): New type.
(archs, n_archs): New variables, with single list of name/enum mapping and
aliases.
(m68k_ip): Delete the table here.
(m68k_init_after_args): Use the new table here instead of open-coding it.
(md_parse_option, case 'm'): Ditto.
1995-04-11 01:03:07 +00:00
Ken Raeburn
9ad5755f7b * config/tc-m68k.c (md_apply_fix_2): Use offsetT and addressT instead of long
and unsigned long.
(md_apply_fix): Cast value before passing it.
1994-12-20 20:23:41 +00:00
David MacKenzie
f3d817d8b7 * as.c (show_usage): Remove target specific messages;
instead, call md_show_usage.
	(parse_args): Use getopt_long_only.  Take pointers to argc and
	argv.
	(main): Pass parse_args pointers.
	* as.h: Remove 3 variables that are redundant with flagseen.
	* as.c, messages.c: Change their users to use flagseen.
	Define getopt stuff.
	* tc.h: Update md_parse_option decl.  Add md_show_usage decl.
	* config/tc-*.c: Add md_shortopts, md_longopts,
	md_longopts_size, md_show_usage.  Change calling convention for
	md_parse_option.  Remove md_parse_long_option.
	* config/tc-ns32k.c: Rename `struct option' to `struct ns32k_option'.
	* config/tc-i386.h: Don't define md_parse_option.
1994-06-03 17:42:27 +00:00
Ken Raeburn
82489ea062 68060 support 1994-06-02 16:35:41 +00:00
Ian Lance Taylor
f3751617c3 * config/tc-m68k.c (md_apply_fix_2): Error if a short branch uses
an illegal offset of 0 or -1.
1993-10-26 21:58:41 +00:00
Ken Raeburn
2d4f509a1f delete some code in "#if 0" 1993-10-21 19:55:01 +00:00
Ian Lance Taylor
dff60b7d48 * config/tc-m68k.h (AOUT_MACHTYPE): Define to be external variable
m68k_aout_machtype.
	* config/tc-m68k.c (omagic): Remove obsolete and unused variable.
	(m68k_aout_machtype): New variable, if OBJ_AOUT.
	(md_assemble): Initialize m68k_aout_machtype based on
	current_architecture, if OBJ_AOUT.
	(md_parse_option): Remove obsolete reference to omagic.
1993-10-19 22:18:15 +00:00
Ken Raeburn
b80d39a01c (flag_want_pic): New variable, mostly ignored.
(md_parse_option) [TE_SUN3]: Set it for "-k".
(m68k_ip): Generate proper fixup for mode 7.3.
1993-09-27 03:55:33 +00:00
Ken Raeburn
bcb8dff8d8 Moved struct m68k_incant and related macros earlier in the file.
Make insop and add_exp functions for readability.
Whitespace/comment changes.
1993-09-25 09:32:12 +00:00
Ian Lance Taylor
ce2ad89aca * config/tc-m68k.c (m68k_ip_op): Don't decrement strend when
calculating opP->isiz; this permits the expression size to be
	determined as well, later on.

Fixes PR 2911.
1993-07-19 19:13:30 +00:00
Ken Raeburn
9d4dfbf379 fix net-equip pr 2975: tm-m68k.c(m68k_ip): adjust for pc-rel offset before using value, not after 1993-07-19 16:49:01 +00:00
Mark Eichin
025b030243 fix definitions of md_create_long_jump, md_create_short_jump,
md_number_to_chars, and md_section_align to correctly use valueT and addressT
1993-07-12 19:42:32 +00:00
Ken Raeburn
49864cfa6c read.c (s_align_bytes): Properly record alignment.
expr.c (__): Undefine before defining.
as.c (got_sig): Don't return anything; return type might be void.
Whitespace/comment cleanup in frags.c.
Some patches for `-pedantic' or `-fno-common' compilation.
(Some of these changes are from Michael Meissner; see change log.)
1993-05-27 19:42:23 +00:00
Ken Raeburn
e284846a8d Include new file config.h.
Handle some m683XX processor ids.
1993-03-12 02:39:03 +00:00
Ken Raeburn
1404ef23ee m68k_ip: for pc-rel addressing of a symbol, fix offset so +2 isn't needed 1993-02-24 11:20:58 +00:00
Ken Raeburn
355afbcd8b Ran "indent", for GNU coding style; some code & comments still need fixup.
Removed some unneeded files.

obj-coff.c (obj_coff_endef): Use as_warn, not fprintf.
tc-m68k.c (md_assemble): 68000+68881 is okay -- could be emulating.
1992-11-23 20:42:33 +00:00
Ian Lance Taylor
0069b1f670 These are actually Ken's patches--I told him I'd take move them from
p3 into devo.

	* tc-m68k.c (m68k_reg_parse): If REGISTER_PREFIX isn't defined,
	still accept (but don't require) OPTIONAL_REGISTER_PREFIX before
	the register name.
	* tc-m68k.h (OPTIONAL_REGISTER_PREFIX): Define to be "%", if not
	M68KCOFF.
1992-11-10 20:09:23 +00:00
Ian Lance Taylor
587c4264e0 These changes clean things up a bit, and improve Solaris cross
support when using /opt/SUNWspro/SC2.0/acc.

Tue Nov 10 09:50:25 1992  Ian Lance Taylor  (ian@cygnus.com)

	* obj-coffbfd.c (fill_section): set STYP_NOLOAD bit for .bss
	section.

	* atof-ieee.c, atof-ns32k.c, tc-*.c: made EXP_CHARS, FLT_CHARS,
	comment_chars, line_comment_chars and line_seperator_chars
	consistently const, and always initialized them.  Included read.h.
1992-11-10 18:17:00 +00:00
Ken Raeburn
df3768fb6c cpu32 and -mno-688?1 support from p3 1992-09-22 19:24:33 +00:00
Ian Lance Taylor
065b6303d0 Roll bask the WRS change, since it had already been applied, and the
reversed patch they sent blew my mind.
1992-09-22 15:32:03 +00:00
Ian Lance Taylor
25fb44628a Patches from WRS:
Mon Sep 21 14:44:17 1992  Ian Lance Taylor  (ian@cygnus.com)

	* tc-m68k.c (m68k_ip): fixed move16 operand handling, from WRS.
1992-09-21 22:31:41 +00:00
Steve Chamberlain
04b07d16c7 * tc-m68k.c (m68k_ip): An(disp) is not pc relative. 1992-09-18 15:03:59 +00:00
Ian Lance Taylor
3ad9ec6a7b Wed Sep 9 11:10:24 1992 Ian Lance Taylor (ian@cygnus.com)
* tc-m68k.c (m68k_ip, m68k_ip_op, get_num, try_moto_index): merge
	 Motorola and MIT syntax; gas can now assemble either type of
	 file.
	tc-m68kmote.c, tc-m68kmote.h: removed now superfluous files.
	From Steve Chamberlain:
	m68kcoff.mt: for m68k COFF.
	obj-coffbfd.c: (fixup_mdeps) added
	 (size_section) removed bad sanity check
	 (fill_section) added rs_machine_dependent case
	 (write_object_file) call fixup_mdeps
	 (fixup_segment) set fx_subsy to 0.
	obj-coffbfd.h: define WORKING_DOT_WORD (too hard to support) and
	 handle m68k.
	tc-m68k.c, config/tc-m68k.h: added m68k COFF support and Motorala
	 pseudo ops.
1992-09-09 18:38:16 +00:00
Ken Raeburn
e53ab768f4 from p3: +0.0 is a small integer, at least for moveq 1992-09-04 23:25:16 +00:00
Ken Raeburn
4134a793c7 * config/tc-m68k.c (init_table): Now const. Always include 68851
data, so that "bc" is available to 68040 cache instructions.  Added
"tt0", "tt1", and 68ec030 variants.
(md_assemble): Complain if 68000 (only) and 68881 are specified.
(enum _register): Added TT0, TT1.
(m68k_ip, cases '3' and 't'): Handle new operand type codes.  Pass
line number correctly in "internal error" messages.  Don't print
architecture-mismatch message for operand errors.

From Colin Smith (colin@wrs.com):
* config/tc-m68k.c (m68k_ip, case '_'): Use addword twice rather than
install_operand.
1992-08-26 04:08:45 +00:00
Ian Lance Taylor
148eb5dd61 Mon Aug 24 12:45:12 1992 Ian Lance Taylor (ian@cygnus.com)
* tc-m68k.c: use TARGET_CPU to choose default cpu type.

	* te-generic.h: default to LOCAL_LABELS_DOLLAR and LOCAL_LABELS_FB
	so that we can assemble hand-written libgcc code.
1992-08-24 19:48:54 +00:00
Ian Lance Taylor
c50140c86b This is for PR 628.
Wed Aug 19 11:20:59 1992  Ian Lance Taylor  (ian@cygnus.com)

	* tc-m68k.c, tc-m68kmote.c: the cas2 instruction is supposed to be
	written with indirection on the last two operands, which can be
	either data or address registers.  Added a new operand type 'r'
	which accepts either register type.  Added '(' to notend stuff in
	tc-m68kmote.c to accept (a0):(a2) in cas2 instruction.
1992-08-19 18:27:48 +00:00
Ken Raeburn
8be74775cd * config/tc-m68k.c (m68k_ip): If instruction is invalid for the
selected architecture, print a message saying so and listing what
processors support it, rather than saying "operands mismatch".
1992-08-15 02:57:12 +00:00
Per Bothner
bec66218fc * tc-m68k.c: ".align N" means align to N-byte boundary *only*
if TN_SUN3; otherwise align to 2**N-byte bounary.
1992-08-10 21:40:49 +00:00
Steve Chamberlain
9e43698e16 * config/tc-m68k.c (md_pseudo_table): fix the .align thing
the right way; for just the 68k. Sun 3 .align is nbytes, not ptwo.
1992-08-05 19:05:43 +00:00
John Gilmore
934afcd434 * tc-m68k.c (try_index): Error if index scaling specified and
assembling for an older CPU than a 68020.

This bug was found at Adobe because GAS did not diagnose incorrect
68020 code generated by GCC when compiling for 68010.  We had to debug it
in the target system as failing instructions.
1992-08-05 08:59:10 +00:00
Ken Raeburn
6d27d3a205 * config/tc-m68k.c (m68k_ip): Mismatch error could also indicate
processor/opcode mismatch, so reword the error message.
        (md_assemble): If no CPU has been set (even if FPU/PMMU
        characteristics have been), default to 68020.  Don't need extra
        quotes around error string.
1992-08-01 02:26:13 +00:00
Steve Chamberlain
a933d598b6 * expr.c (expr): allow SEG_BSS in expressions
* read.c (potable): align should be nbytes, not ptwo!
	* write.c (write_object_file): extra glue for new bss attributes
	(relax_segment): SEG_BSS is ok now
	* config/tc-m68k.c (m68k_ip_op): can now parse more @( modes
1992-07-13 21:32:05 +00:00
Steve Chamberlain
a1765cf0fe * subsegs.c (subseg_change): allow and handle a change into SEG_BSS.
* tc-m68k.c (m68kip): Fix typo so that only arch's >=68020 do
	pcrel data stuff. (md_estimate_size_before_relax): when relaxing a
	68010 bxx into a bra+6 jmpxx, put the bytes of the jmp opcode into
	the right place. (s_bss): Don't put .bss stuff into SEG_DATA, put
	it into SEG_BSS
1992-06-09 14:57:42 +00:00
Steve Chamberlain
f8701a3ff8 Thu Jun 4 11:59:13 1992 Steve Chamberlain (sac@thepub.cygnus.com)
* expr.c(expr): allow SEG_REGISTER in expressions.
	* read.c(pseudo_set): register expressions can be the source of a
	set.
	* subsegs.c (subseg_new): Now -R forces all changes to SEG_DATA to
	goto SEG_TEXT (if a.out)
	* write.c (write_object_file): If a.out don't use the old way for
	-R.
	* config/obj-a.out (s_sect): complain if the user tries to use a
	subsegment with a value which might interfere with out -R hackery.
	* config/tc-m68k.c (m68k_reg_parse): lookup names in symbol table
	rather than use ugly if tree. (init_regtable): insert register
	names into symbol table.
1992-06-04 19:21:58 +00:00
K. Richard Pixley
a87b326934 White space and comment changes, and #ifdef __STDC__ becomes #if
__STDC__ == 1.
1992-02-15 21:09:34 +00:00
K. Richard Pixley
a39116f1c9 White space and comments only. The devo tree prior to this delta is
tagged as "vanilla" for your convenience.

There are also some comment changes.
1992-02-13 08:33:54 +00:00
K. Richard Pixley
e0982afeae Copied a missing case from the fsf-gas. The case was for relaxing
floating point branches of flexible size.
1991-12-28 07:50:37 +00:00
Michael Tiemann
865a2edf64 Ensure we null-terminate the string we copy at the start of
m68k_reg_parse.
1991-11-24 17:24:52 +00:00
K. Richard Pixley
7c15cbe814 typo in a comment. 1991-10-16 04:19:14 +00:00
K. Richard Pixley
ac1ac0cd4f Abort()'s become as_fatal()'s. 1991-08-15 19:38:52 +00:00
K. Richard Pixley
a79c6033ed * no more relocation_info structures. We now squirt directly from
fixS's.

* i960-bout and i960-coff "tested" against their predecessors.
1991-08-14 00:26:06 +00:00
K. Richard Pixley
dd61f09ec8 Added -S option for 3com. Asks that jbsr always resolve to jsr. 1991-08-06 07:21:38 +00:00
K. Richard Pixley
f6e504fe91 Polishing m68k support. 1991-07-27 02:34:20 +00:00
K. Richard Pixley
fecd2382e7 Initial revision 1991-04-04 18:19:53 +00:00