Commit Graph

2069 Commits

Author SHA1 Message Date
Ian Lance Taylor
db317fe7a7 * symbols.c (symbol_begin): Set sy_frag of abs_symbol to
&zero_address_frag.
1995-08-09 23:13:30 +00:00
Ian Lance Taylor
60e36671ef * gas/all/struct.s, gas/all/struct.d: New test.
* gas/all/gas.exp: Run it.
1995-08-09 19:38:01 +00:00
Ian Lance Taylor
e28c40d725 * read.c (abs_section_offset): New global variable.
(potable): Add offset, struct.
	(do_org): New static function; handle changing the origin in the
	absolute section.
	(s_org): Use do_org.
	(s_set): Likewise.
	(equals): Likewise.
	(s_space): In absolute_section, just increase abs_section_offset.
	(s_struct): New function.
	(emit_expr): Handle absolute_section specially.
	* read.h (abs_section_offset): Declare.
	(s_struct): Declare.

	* read.c (potable): Add ifeq, ifge, ifgt, ifle, iflt, ifne.
	Change if to pass O_ne to s_if.
	(read_a_source_file): Don't define an label without a colon if
	ignore_input returns true.

	* read.c (potable): Add dcb, dcb.b, dcb.d, dcb.l, dcb.s, dcb.w,
	dcb.x, ds.d, ds.p, ds.s, ds.x, elsec, endc, fail, format, llen,
	noformat.
	(read_a_source_file): If pseudo-op handler is s_end, quit
	immediately.
	(s_end): New function.
	(s_fail): New function.
	(s_float_space): New function.
	(hex_float): New static function.
	(float_cons): Use hex_float.
	* read.h (s_fail): Declare.
	(s_float_space): Declare.
1995-08-09 19:36:25 +00:00
Ian Lance Taylor
e120d9fbcd * write.c (adjust_reloc_syms): Check that symbol is not NULL
before checking sy_mri_common.
	(fixup_segment): Likewise.
	* config/obj-coff.c (fixup_segment): Likewise.
1995-08-09 19:34:00 +00:00
Ian Lance Taylor
a2acbf8d12 * frags.c (frag_more): Warn if in absolute_section.
(frag_now_fix): In absolute_section, return abs_section_offset.
	* subsegs.c (subseg_change): If switching to absolute_section,
	just set now_seg and now_subseg.
	(subseg_set_rest): Special handling when switching to or from
	absolute_section.
1995-08-09 19:33:17 +00:00
Ian Lance Taylor
27a53b88d7 * config/tc-m68k.c (m68k_float_copnum): New static variable.
(md_pseudo_table): Add fopt and mask2.
	(m68k_ip): Use m68k_float_copnum, not COPNUM, when setting
	coprocessor register to use.  In case 'I' when checking operands,
	correct coprocessor register numbers.  In case 'I' when setting
	operands, don't add 1.
	(s_fopt): New static function.
	* config/m68k-parse.h (COPNUM): Don't define.
1995-08-09 19:32:49 +00:00
Ian Lance Taylor
51a3bc1501 * listing.c (listing_psize): Treat argument as indicating whether
a height is expected.
1995-08-09 19:32:03 +00:00
Ian Lance Taylor
99ca35f1fa Add ChangeLog entry for accidental checkin of read.c. 1995-08-09 15:44:05 +00:00
Ian Lance Taylor
286cb27aac * configure.in: Move random special target handling before
possible break.
	* configure: Rebuild.
1995-08-09 14:53:21 +00:00
Ian Lance Taylor
bf4bd1fcf0 Tue Aug 8 23:41:25 1995 Alan Modra <alan@spri.levels.unisa.edu.au>
* configure.in: Consistently use ${target_cpu_type} rather than
	${cpu_type} after the loop.
	* configure: Rebuild.
	* Makefile.in (targ-cpu.o): Use @target_cpu_type@ rather than
	@cpu_type@.
1995-08-09 03:46:15 +00:00
Ken Raeburn
14d0c9fe26 * expr.h (operatorT): Remove comma after last enumerator value. 1995-08-09 01:44:02 +00:00
Ken Raeburn
bdc82d8103 yet more vms work from pat rankin 1995-08-09 01:39:47 +00:00
Ken Raeburn
3b85367c58 * as.h (alloca): If __STDC__, declare void* instead of char*. 1995-08-09 01:16:09 +00:00
Ian Lance Taylor
e9bb39b456 * config/tc-m68k.c (archs): Add 68ec000, 68hc000, 68hc001,
68ec020, 68ec030, 68ec040, and 68330.
	(md_pseudo_table): Add chip and comline.
	(m68k_init_after_args): Use strcasecmp when comparing default_cpu
	against architectures.
	(mri_chip, s_chip): New static functions.
1995-08-08 21:46:37 +00:00
Ian Lance Taylor
b57bd74908 * gas/mri/common.s, gas/mri/common.d: New test.
* gas/mri/mri.exp: Run it.
1995-08-08 21:41:52 +00:00
Ian Lance Taylor
1356d77df3 * struc-symbol.h (struct symbol): Add sy_mri_common bit.
* read.h (mri_comon_symbol): Declare.
	(s_mri_common): Declare.
	* read.c (mri_line_label): New static variable.
	(mri_common_symbol): New global variable.
	(potable): Add "common" and "common.s".
	(read_a_source_file): In MRI mode, set mri_line_label for a label
	at the start of a line.
	(s_mri_common): New function.
	(s_space): Handle mri_common_symbol.
	* symbols.c (colon): Change return value from void to symbolS *,
	and return new symbol.  If mri_common_symbol is set, attach the
	new symbol to it.
	(resolve_symbol_value): Handle an sy_mri_common symbol.
	* symbols.h (colon): Change return value in declaration.
	* subsegs.c (subseg_set_rest): Clear mri_common_symbol.
	(subseg_set (both versions)): Likewise.
	* frags.c (frag_more): Warn if mri_common_symbol is not NULL.
	* write.c (adjust_reloc_syms): Skip sy_mri_common symbols.
	(write_object_file): Discard sy_mri_common symbols.
	(fixup_segment): Change relocations against sy_mri_common symbols
	to be against the common symbol itself.
	* config/obj-coff.c (yank_symbols): Discard sy_mri_common symbols.
	(fixup_segment): Change relocations against sy_mri_common symbols
	to be against the common symbol itself.
	* config/obj-aout.c (obj_crawl_symbol_chain): Discard
	sy_mri_common symbols.
1995-08-08 21:41:30 +00:00
Ian Lance Taylor
c266c384ee * doc/c-m68k.texi: Add documentation for CPU specific options, and
for Motorola syntax.
1995-08-08 17:12:22 +00:00
Ian Lance Taylor
48bfed03b4 * config/m68k-parse.y (motorola_operand): For (%pc), set mode to
DISP, not BASE.
1995-08-08 17:09:10 +00:00
Ken Raeburn
d4083e293a * write.c (relax_align): Add extra padding for linkrelax only if
LINKER_RELAXING_SHRINKS_ONLY is defined.
* config/tc-i960.h (LINKER_RELAXING_SHRINKS_ONLY): Define it.
* doc/internals.texi (Relaxation): Write up some stuff on linker relaxing and
LINKER_RELAXING_SHRINKS_ONLY.
1995-08-08 06:54:30 +00:00
Ian Lance Taylor
3a1902f1f0 * gas/mri/mri.exp: Add setup_xfail for a29k*-*-* for constants
test.
1995-08-08 03:48:22 +00:00
Ian Lance Taylor
0247c1c073 * gasp/crash1.out, gasp/macro.out, gasp/sfunc.out: Complete
truncated files, so that the tests pass.
1995-08-08 03:38:59 +00:00
Ian Lance Taylor
55243738ff Move testsuite ChangeLog entries to testsuite/ChangeLog. 1995-08-08 03:35:44 +00:00
Ian Lance Taylor
0d7e5327d9 * gas/mri/mri.exp: Add setup_xfail for hppa*-*-* for equ,
constants, and expr.
1995-08-08 03:22:47 +00:00
Ian Lance Taylor
59e3498dc3 * gas/m68k/all.exp: Run schwab test on hpux*, not just hpux. Run
on vxworks*, not just vxworks5.1.
1995-08-08 03:17:41 +00:00
Ian Lance Taylor
4fedeeb08c * lib/gas-defs.exp (fail_phase, pass_phase): Remove.
(run_dump_test): Just call pass or fail.
1995-08-08 02:56:44 +00:00
Ian Lance Taylor
7239c29775 * gas/m68k/operands.s, gas/m68k/operands.d: New test.
* gas/m68k/op68000.d: New test.
	* gas/m68k/cas.s, gas/m68k/cas.d: New test.
	* gas/m68k/bitfield.s, gas/m68k/bitfield.d: New test.
	* gas/m68k/schwab.d: Run objdump with -j .text.  Adjust for
	changes to disassembler.
	* gas/m68k/all.exp: Run new tests.  Run schwab test for
	m68k-*-coff*.
1995-08-08 02:43:30 +00:00
Ian Lance Taylor
a1c7c0f3ac * config/m68k-parse.y: New file: bison grammar for m68k operands,
including support for Motorola syntax.
	* config/m68k-parse.h: New file; definitions shared between
	m68k-parse.y and tc-m68k.c.
	* config/tc-m68k.c: Include m68k-parse.h.
	(enum operand_type): Move to m68k-parse.h, where it is named
	m68k_operand_type.  Rename all uses.  Rearrange somewhat.  Add
	FPREG.  Rename AOFF to DISP.  Rename AINDX to BASE.  Rename APODX
	to POST.  Rename APRDX to PRE.  Remove AMIND.  Rename MSCR to
	CONTROL.  Remove DINDR.
	(struct m68k_exp): Move to m68k-parse.h.  Remove e_beg, e_end and
	e_seg fields.  Rename e_exp to exp.  Rename e_siz to size, and
	change type to enum m68k_size.  Change all uses.
	(enum _register): Move to m68k-parse.h, where it is named
	m68k_register.  Rename all uses.  Add ZDATA0-7 and ZADDR0-7.
	(struct m68k_op): Move to m68k-parse.h.  Change all fields.
	(seg): Don't define.
	(add_exp): Remove.
	(FAIL, OK): Remove.
	(m68k_reg_parse): Move to m68k-parse.y, and rewrite.
	(SKIP_WHITE, SKIP_W): Remove.
	(try_moto_index, try_index): Remove.
	(m68k_ip_op): Move to m68k-parse.y, and rewrite to use grammar.
	(main): Remove obsolete test function.
	(m68k_ip): Extensive changes to use new grammar.
	(get_regs): Remove.
	(crack_operand): m68k_ip_op now returns 0 on success.
	(init_table): Add ssp, zd0-7 and za0-7.
	(md_assemble): Make er const.  Correct loop over operands when
	looking for error message.
	(md_begin): Set alt_notend_table for '(' and '@'.
	(get_num): Expression is already parsed.  Don't set seg.
	* configure.in: If cpu_type is m68k, put m68k-parse.o in
	extra-objects.
	* configure: Rebuild.
	* Makefile.in (DISTSTUFF): Add m68k-parse.c.
	(BISON): Use ../bison/bison if it exists.
	(BISONFLAGS): Define as empty.
	(TARG_CPU_DEP_m68k): Depend upon $(srcdir)/config/m68k-parse.h.
	(m68k-parse.c, m68k-parse.o): New targets.
1995-08-08 02:36:10 +00:00
Jeff Law
13120c031c * gas/sh/*: New tests for the hitachi-sh.
Sanitized away for now...
1995-08-07 09:04:27 +00:00
Jeff Law
68d04794f7 * config/tc-sh.c (parse_reg): Handle new FP registers.
(get_specific): Handle new operand types.

Sanitized away for now.
1995-08-07 08:58:12 +00:00
Ian Lance Taylor
86b58ca2aa * config/tc-m68k.c: Remove BREAK_UP_BIG_DECL stuff.
(struct m68k_incant): Change m_operands field to be const.
	(struct m68k_it): Change args field to be const.
	(m68k_ip): Change local variable s to be const.
	(opcode_ptr): Remove.
	(md_begin): Use m68k_numopcodes, not numopcodes.  Use
	m68k_opcodes, not removed opcode_ptr.  Use m68k_numaliases, not
	numaliases.
1995-08-02 22:42:21 +00:00
Ian Lance Taylor
9c92373a6c * gas/mri/*: New tests for MRI mode. 1995-08-01 22:10:10 +00:00
Ian Lance Taylor
064ba683c9 * config/tc-m68k.c (init_table): Add "control", "status", "iaddr",
"sfcr", and "dfcr" as synonyms for existing entries.
	(md_begin): In MRI mode, force flag_reg_prefix_optional to 1.
	(md_parse_option): Removed unused locals i and arch.  Change type
	of arch (another one) to unsigned long.
	(tc_coff_sizemachdep): Add return after abort to avoid warning.
1995-08-01 22:02:07 +00:00
Ian Lance Taylor
219deb70ce Initial support for MRI style labels and expressions.
* as.h (flag_mri): Declare/define.
	* as.c (show_usage): Mention -M and its synonym --mri.
	(parse_args): Add 'M' to std_shortopts.  Add "mri" to
	std_longopts.  Set flag_mri if -M is seen.
	(main): Call parse_args before input_scrub_begin.  Call
	expr_begin.
	* app.c (do_scrub_begin): Don't set lex for '"' or '\'' in MRI
	mode.  Do set lex for ';', '*', and '!' in MRI mode.
	(do_scrub_next_char): Remove MRI ifdef in LEX_IS_WHITESPACE case.
	In MRI mode, keep spaces between labels and colons.  Remove MRI
	ifndef around LEX_IS_ONECHAR_QUOTE case.  In MRI mode, don't use
	'!' or '*' as comment characters even if they are in
	comment_chars.
	* read.h (lex_type): No longer const.
	* read.c: Include libiberty.h.
	(lex_type): No longer const.
	(read_begin): In MRI mode, set lex_type of '?' to 3.
	(potable): Add dc, dc.b, dc.d, dc.l, dc.s, dc.w, dc.x, ds, ds.b,
	ds.l, ds.w, and xdef.
	(read_a_source_file): Change LABELS_WITHOUT_COLON ifdef to check
	for MRI mode at runtime rather than compile time.  Handle the EQU
	pseudo-op in MRI mode.  Remove bogus MRI ifdef around done_pseudo.
	Change NO_PSEUDO_DOT ifdef to also take effect for MRI mode at
	runtime.
	(cons): In MRI mode, always call parse_mri_cons rather than
	TC_PARSE_CONS_EXPRESSION.
	(parse_mri_cons): Always compile, not just when MRI is defined.
	Call TC_PARSE_CONS_EXPRESSION, not expression, when the input is
	not a string constant.  Handle A and E modifiers.
	(float_cons): Accept :xxxx, where the x's are hex digits.
	* expr.h (operatorT): Add O_eq, O_ne, O_lt, O_le, O_ge, O_gt.
	(expr_begin): Declare.
	* expr.c (integer_constant): In MRI mode, if the base was not
	specified, look for a suffix on the number to set the base.
	(mri_char_constant): New static function.
	(operand): Remove MRI ifdef.  In MRI mode, do various things: Pass
	0 as the base when calling integer_constant if there was no
	prefix.  Check for a hex constant suffix if when a leading '0' is
	seen.  Don't accept 0x or 0b as a prefix.  Check for E'chars' and
	A'chars'.  Handle MRI character constants.  Treat '"' as the
	unary bitwise not operator.  Treat $ as the program counter, or as
	the prefix for a hex constant.  Treat % as the prefix for a binary
	constant and @ as the prefix for an octal constant.  Treat : as
	the prefix for a hex constant.
	(op_encoding): Set '"' to O_bit_not, '<' to O_lt, and '>' to O_gt.
	(op_rank): No longer const.  Change rank values.
	(expr_begin): New function.
	(operator): New static function.
	(expr): Use operator.  Don't bother to mention the operator in
	warnings.  Remove bogus #if 0 code.  Handle new operatorT values.
	* atof-generic.c (atof_generic): In MRI mode, accept underscores
	around the exponent in floating point numbers.
	* symbols.h (symbols_case_sensitive): Declare.
	* symbols.c (symbols_case_sensitive): New global variable.
	(symbol_create): Check symbols_case_sensitive.
	(symbol_find_base): Likewise.
	(resolve_symbol_value): Handle new operatorT values.
	(print_expr_1): Likewise.
	(S_IS_LOCAL): In MRI mode, names beginning with two '?' characters
	are local.
1995-08-01 22:01:01 +00:00
Steve Chamberlain
a1bdcf913a * Makefile.in: Remove superfluous runtest gasp. 1995-08-01 18:41:59 +00:00
Steve Chamberlain
b97bd7d17c Tue Aug 1 11:35:18 1995 steve chamberlain <sac@slash.cygnus.com>
* tc-sh.c (md_convert_frag): Make some error messages more
	explict.
1995-08-01 18:39:08 +00:00
Steve Chamberlain
4f2f30116b * gasp.c (main): Parse -I option.
(do_include): Look through include list.
	* gasp.c (change_base): Don't modify numbers in strings.
	(pr7583)

 	* testsuite/gasp/*: New.
	* testsuite/Makefile.in: Use gasp tests.
	* testsuite/config/default.exp: Add gasp stuff.
1995-08-01 03:35:23 +00:00
Steve Chamberlain
2994850346 * testsuite/Makefile.in: Use gasp tests.
* testsuite/config/default.exp: Add gasp stuff.
1995-08-01 03:11:52 +00:00
Steve Chamberlain
e5025b18f4 Keep gasp. 1995-08-01 02:52:03 +00:00
Steve Chamberlain
fb3074e49d gasp is gone from here. 1995-08-01 02:51:01 +00:00
Steve Chamberlain
2c904b3e4e moved. 1995-08-01 02:49:34 +00:00
Steve Chamberlain
f12cc9ca72 moved. 1995-08-01 02:48:52 +00:00
Steve Chamberlain
06c3153964 new file. 1995-08-01 02:45:00 +00:00
Steve Chamberlain
b74e86ecf5 New order. 1995-08-01 02:39:21 +00:00
Ken Raeburn
ac24997f36 yet more vms work 1995-08-01 01:41:53 +00:00
Steve Chamberlain
5f57cea3f6 * gasp.c (change_base): Don't modify numbers in strings. (pr7583)
* testsuite/gas/gasp/*: New.
1995-08-01 01:31:42 +00:00
Ken Raeburn
f641906be5 remove local variables, change-log-mode does all of that 1995-07-31 21:09:39 +00:00
Ken Raeburn
5700b874e4 more vms changes 1995-07-28 00:45:53 +00:00
Ken Raeburn
0b41507734 more vms work from pat 1995-07-25 00:31:20 +00:00
Ken Raeburn
a619d6d906 fix more compilation problems 1995-07-25 00:14:47 +00:00
Ian Lance Taylor
a91c6b0885 * config/tc-sh.c (md_pseudo_table): Add "uses".
(s_uses): New static function.
	(sh_coff_frob_file): New function.
	(md_convert_frag): Call subseg_change before calling fix_new.
	(sh_handle_align): New function.
	(SWITCH_TABLE): Define.
	(sh_force_relocation): New function.
	(md_apply_fix): Handle R_SH_USES, R_SH_COUNT and R_SH_ALIGN.
	(sh_coff_reloc_mangle): Likewise.  Also handle switch table
	entries.
	* config/tc-sh.h (HANDLE_ALIGN): Define.
	(sh_handle_align): Declare.
	(TC_FORCE_RELOCATION): Define.
	(sh_force_relocation): Declare.
	(TC_COUNT_RELOC): Simplify; rely on TC_FORCE_RELOCATION instead.
	(tc_frob_file): Define.
	(sh_coff_frob_file): Declare.
	* config/obj-coff.c (write_object_file): Call tc_frob_file if it
	is defined.
	(fixup_mdeps): Call HANDLE_ALIGN if it is defined.
	(TC_FORCE_RELOCATION): Define if not defined.
	(fixup_segment): Use TC_FORCE_RELOCATION to decide whether to
	clear the symbol fields of fixP.
1995-07-24 18:18:39 +00:00