Commit graph

2108 commits

Author SHA1 Message Date
Ian Lance Taylor
ca2329727e * read.c (s_include): In MRI mode, don't expect quotes around the
file name.
	* listing.c (listing_title): Don't require the title to be quoted.
1995-08-18 15:15:28 +00:00
Ian Lance Taylor
65d860fc28 * gasp/mri/*.out: Use ;, not !, for the comment character. 1995-08-18 15:10:35 +00:00
Ian Lance Taylor
f8d6e6cd08 * gasp.c (include_print_where_line): Always subtract 1 from
linecount before printing it.
	(process_file): In MRI mode, lines beginning with '*' or '!' are
	comments.
	(do_reg): In MRI mode, don't require parentheses.
	(do_include): In MRI mode, don't requires quotes.  If the file can
	not be found in the include path, try opening it in the current
	directory.  Print the file name correctly in the error message.
	(chartype_init): In MRI mode, set FIRSTBIT for '.'.
	(main): Set comment_char to ';' when entering MRI mode.
1995-08-18 15:09:57 +00:00
Ian Lance Taylor
b4ec75e09f * config/tc-m68k.c: Include subsegs.h.
(m68k_ip): Pass 64 rather than -1 to add_Fix in 'B' 'B' case.
	(md_pcrel_from): If fx_pcrel_adjust is 64, use -1 instead.
You can't portably store negative numbers in a char.
1995-08-18 15:02:56 +00:00
Ken Raeburn
58bd5f50cf * as.h (alloca): Use void* declaration on HP/UX. 1995-08-16 22:15:28 +00:00
Ian Lance Taylor
3a3a17b415 * gas/mri/mri.exp: Change hppa*-*-* expected failures to only
expect failure for targets which use SOM.
1995-08-16 21:57:37 +00:00
Ian Lance Taylor
a46c0ed860 * lib/gas-defs.exp (run_dump_test): If the program to run does not
exist, mark the test as untested.
1995-08-16 21:13:52 +00:00
Ian Lance Taylor
7863267c43 * gas/mri/mri.exp: Add setup_xfail for i960 b.out targets for
common test.
1995-08-16 20:43:22 +00:00
Ian Lance Taylor
a0cc993c12 * lib/gas-defs.exp (run_dump_test): Name the output file dump.o,
rather than using an implicit a.out.
1995-08-16 20:42:15 +00:00
Ian Lance Taylor
4c67b523a3 * config/tc-sparc.c (tc_gen_reloc): If PIC, only change PCREL_S2
to WPLT30 for an undefined or external symbol.  Don't consider
	PC10 or PC22 to be a PC relative reloc when choosing between
	fx_addnumber and fx_offset.
1995-08-16 20:21:49 +00:00
Ian Lance Taylor
51c7f8f3c2 * gas/mri/for.s: Add nop to round out to four byte boundary.
* gas/mri/repeat.s: Likewise.
	* gas/mri/while.s: Likewise.
	* gas/mri/for.d: Expected added nop.
	* gas/mri/repeat.d: Likewise.
	* gas/mri/while.d: Likewise.
1995-08-16 20:17:29 +00:00
Ian Lance Taylor
4decdd5669 * config/tc-z8k.c (md_number_to_chars): Don't do it here, call
number_to_chars_bigendian.
	* config/tc-z8k.h (TARGET_BYTES_BIG_ENDIAN): Define.
1995-08-16 20:05:54 +00:00
Ian Lance Taylor
d86e4acb0f * expr.c (operand): Add support for .startof. and .sizeof. by
using magic symbol names which the linker will recognize
	specially.
	* doc/as.texinfo: Take out note that .startof. and .sizeof. are
	not supported.
1995-08-16 17:18:00 +00:00
Ian Lance Taylor
983be6687c * gas/mips/*.d: Change all test names to say MIPS. 1995-08-16 16:28:00 +00:00
Ian Lance Taylor
f5cf5e17bf * gas/mri/for.d, gas/mri/for.s: New test.
* gas/mri/if.d, gas/mri/if.s: New test.
	* gas/mri/repeat.d, gas/mri/repeat.s: New test.
	* gas/mri/while.d, gas/mri/while.s: New test.
	* gas/mri/mri.exp: Run the new tests.
1995-08-15 19:44:20 +00:00
Ian Lance Taylor
c842dd375d * config/tc-m68k.c (md_pseudo_table): Add MRI structured control
directives: if, if.b, if.w, if.l, else, else.s, else.l, endi,
	break, break.s, break.l, next, next.s, next.l, for, for.b, for.w,
	for.l, endf, repeat, until, until.b, until.w, until.l, while,
	while.b, while.w, while.l, endw.
	(enum mri_control_type): Define.
	(struct mri_control_info): Define.
	(mri_control_stack): New static variable.
	(mri_control_index): New static variable.
	(mri_control_label): New static function.
	(push_mri_control, pop_mri_control): New static functions.
	(parse_mri_condition): New static function.
	(parse_mri_control_operand): New static function.
	(swap_mri_condition, reverse_mri_condition): New static functions.
	(build_mri_control_operand): New static function.
	(parse_mri_control_expression): New static function.
	(s_mri_if, s_mri_else, s_mri_endi): New static functions.
	(s_mri_break, s_mri_next): New static functions.
	(s_mri_for, s_mri_endf): New static functions.
	(s_mri_repeat, s_mri_until): New static functions.
	(s_mri_while, s_mri_endw): New static functions.
	* gasp.c (mrikinfo): Remove IF.
	* expr.c (get_symbol_end): Accept \001 as part of a name.
1995-08-15 19:42:47 +00:00
Ken Raeburn
8513c9536d * write.c (write_contents): Always do it the BFD_FAST_SECTION_FILL way.
Reformat and reindent that code to GNU standards.
(BFD_FAST_SECTION_FILL): Don't define.
1995-08-15 01:28:59 +00:00
Ian Lance Taylor
e15126c456 * gasp.c (do_align, get_any_string): Mark as static.
(do_assigna, do_assignc, new_file): Likewise.
1995-08-14 22:00:21 +00:00
Ian Lance Taylor
8e11ad0acd * config/tc-m68k.c (s_reg): Rename local op to rop to avoid
confusion with macro op.
1995-08-14 21:33:29 +00:00
Ian Lance Taylor
f2cc4ccdc3 * gas/mri/expr.d: Permit leading zeroes, in case we're using a
64-bit BFD.
1995-08-14 20:59:36 +00:00
Jeff Law
b96c75f0b8 * config/tc-hppa.c (md_apply_fix): Don't try to apply BEGIN_BRTAB
or END_BRTAB fixups.
1995-08-14 20:10:21 +00:00
Ian Lance Taylor
b2e0bd6315 * gasp/mri/*: New tests.
* gasp/gasp.exp: Run them.  Also, clean up the test names used in
	pass and fail.
1995-08-14 20:06:03 +00:00
Ian Lance Taylor
7f5adcba04 * gasp.c (strip_comments): Comment out; it's not used.
(do_end): Add parameter.  In MRI mode, print it out.
	(do_irp): New static function.
	(sub_actual): Change parameter m to formal_hash, changing type
	from macro_entryh * to hash_table *.
	(macro_expand_body): New static function, broken out of
	macro_expand.
	(macro_expand): Call macro_expand_body.
	(K_*): Fully parenthesize.
	(K_IRP, K_IRPC): Define.
	(mrikinfo): Add IRP and IRPC.
	(process_pseudo_op): In MRI mode, print out END pseudo-op.  Pass
	line to do_end.  Handle K_IRP and K_IRPC.
1995-08-14 20:03:38 +00:00
Ian Lance Taylor
9bef2324a2 * config/tc-m68k.c (s_opt): Reset *input_line_pointer even if we
don't do anything with the option.
1995-08-14 19:50:12 +00:00
Ian Lance Taylor
5c800455bf * frags.c (frag_align): Handle absolute_section.
* write.c (record_alignment): Likewise.
1995-08-13 21:19:00 +00:00
Ken Raeburn
2e00287afc fix up aug 8 log entry 1995-08-13 09:37:59 +00:00
Jeff Law
e62fb52590 * gas/sh/basic.exp: Update now that we know the right
bit patters for the new sts instructions.
1995-08-13 06:41:18 +00:00
Jeff Law
5ae218df2a * config/tc-hppa.c (md_pseudo_table): Add entries for
"begin_brtab" and "end_brtab" pseudo-ops.
	(pa_brtab): New function.
	(tc_gen_reloc, SOM version): Handle R_BEGIN_BRTAB and R_END_BRTAB.
	(hppa_force_relocation): Force relocations for BRTAB fixups
	when OBJ_SOM is defined.

More infrastructure for PA optimziations.
1995-08-13 06:39:39 +00:00
Ken Raeburn
3d0f44462f * Makefile.in (TE_OBJS): Add empty definition. 1995-08-12 00:49:19 +00:00
Ian Lance Taylor
19be7c0800 * gasp.c (change_base): Don't treat ' specially in MRI mode.
(process_file): Don't warn about missing END in MRI mode.
	(do_if): New static function.
	(get_mri_string, do_ifc): New static functions.
	(buffer_and_nest): Treat MRI mode like alternate syntax mode.
	(do_aendr): Change error message in MRI mode.
	(do_arepeat): Use REPT/ENDR in MRI mode.
	(do_formals): In MRI mode, add special NARG formal.
	(macro_expand): Various changes for MRI mode: permit a qualifier
	on the macro name; set special NARG formal; permit unnamed
	positional arguments; use && to concatenate named parameters;
	permit \d to specify an unnamed parameter; permit named parameters
	to not start with \; use == to see if a parameter exists.
	(getstring): In MRI mode, allow <> to quote a string.
	(K_IFEQ, K_IFNE, K_IFLT, K_IFLE, K_IFGE, K_IFGT): Define.
	(K_IFC, K_IFNC): Define.
	(struct keyword): Name structure used in kinfo array.
	(mrikinfo): New static array.
	(process_pseudo_op): Don't require leading '.' in MRI mode.
	Handle new MRI pseudo-op definitions.
	(add_keyword): New static function, broken out of process_init.
	(process_init): Use add_keyword.  In MRI mode, add mrikinfo table.
	(long_options): Add "mri".
	(show_usage): Mention -M/--mri.
	(main): Call process_init after processing arguments.  Handle -M.
	* doc/gasp.texi: Document -M/--mri.
1995-08-11 23:49:17 +00:00
Michael Meissner
c7d7eed0a8 Allow large addends for BFD_RELOC_{LO16,HI16,HI16_S} relocs. 1995-08-11 17:36:54 +00:00
Ken Raeburn
12a065ee7e * read.c (s_mri_sect) [BFD_ASSEMBLER]: Fix typos in choosing and setting
section flags.
1995-08-11 01:11:30 +00:00
Ian Lance Taylor
79e15b8a98 * doc/as.texinfo: Add documentation for MRI compatibility mode.
* doc/as.1: Likewise.
1995-08-10 21:18:21 +00:00
Ian Lance Taylor
336435bc4d * config/tc-m68k.c (m68k_ip): When recognizing '#', use isbyte and
iword rather than expr8 and expr16.  When recognizing 'M', use
	issbyte rather than expr8.  When recognizing 'Q' and 't', just
	check for O_constant rather than using expr8.
	* config/m68k-parse.h (expr8, expr16): Don't define.
	* Makefile.in (m68k-parse.o): Depend upon m68k-parse.h, not
	m68k-parse.y.
1995-08-10 16:43:00 +00:00
Ian Lance Taylor
e14994d980 * read.c (potable): Add spc, ttl, xcom, xref.
(s_mri_sect): New function.
	* read.h (s_mri_sect): Declare.
	* config/obj-coff.c (obj_coff_section) (both versions): In MRI
	mode, call s_mri_sect.
	(obj_pseudo_table): Add sect.s and section.s.  Move sect outside
	of ifndef BFD_ASSEMBLER.
	* config/obj-elf.c (elf_pseudo_table): Add section.s, sect,
	sect.s.
	(obj_elf_section): In MRI mode, call s_mri_sect.
	* config/tc-m68k.c (md_pseudo_table): Add restore, save.
	(struct save_opts): Define.
	(save_stack): New static variable.
	(s_save, s_restore): New static functions.
1995-08-10 16:19:34 +00:00
Ian Lance Taylor
bd59fa7505 * gas/mri/char.d: Fix for little endian machines.
* gas/mri/float.d: Likewise.
1995-08-10 04:47:20 +00:00
Ian Lance Taylor
a920b69312 * read.c (s_set): Remove unused local ptr.
(hex_float): Check target_big_endian.
	(equals): Remove unused local p.
	* config/tc-a29k.h (TARGET_BYTES_BIG_ENDIAN): Define.
	* config/tc-h8500.h (TARGET_BYTES_BIG_ENDIAN): Define.
	* config/tc-hppa.h (TARGET_BYTES_BIG_ENDIAN): Define.
	* config/tc-i860.h (TARGET_BYTES_BIG_ENDIAN): Define.
	* config/tc-m68k.h (TARGET_BYTES_BIG_ENDIAN): Define.
	* config/tc-m88k.h (TARGET_BYTES_BIG_ENDIAN): Define.
	* config/tc-tahoe.h (TARGET_BYTES_BIG_ENDIAN): Define.
	* config/tc-sh.c (little): Set target_big_endian.
	(md_begin): Likewise.
	(md_parse_option): Likewise.
	(build_relax): Check target_big_endian rather than shl.
	(build_Mytes, md_atof): Likewise.
	(md_convert_frag, md_apply_fix): Likewise.
	(md_number_to_chars): Likewise.
1995-08-10 04:44:59 +00:00
Ian Lance Taylor
6700d36e84 * config/tc-m68k.c (m68k_abspcadd): New static variable.
(m68k_quick): New static variable.
	(m68k_rel32): New static variable.
	(md_pseudo_table): Add opt and reg.
	(m68k_ip): Permit absolute symbols in 'l'/'L' recognition.  Check
	m68k_quick in 'M' and 'Q' recognition.  Check m68k_abspcadd in
	DISP handling.  Check m68k_rel32 in BASE/POST/PRE handling.
	(md_begin): In MRI mode, initialize m68k_abspcadd and m68k_rel32.
	In MRI mode, change unsized branch aliases to be variable sized.
	(struct opt_action): Define.
	(opt_table): Define.
	(s_opt): New static function.
	(skip_to_comma): New static function.
	(opt_chip): New static function.
	(opt_list): New static function.
	(opt_list_symbols): New static function.
	(s_reg): New static function.
	* as.h (flag_keep_locals): Change from unsigned char to int.
	(flag_no_warnings): Likewise.
1995-08-09 23:22:13 +00:00
Ian Lance Taylor
69e077f3c7 * read.c (mri_line_label): Make non-static.
(potable): Add nopage, page, plen.
	(s_org): Error if in MRI mode.
	* read.h (mri_line_label): Declare.
	* listing.c (listing_nopage): New function.
	* listing.h (listing_nopage): Declare.
1995-08-09 23:16:06 +00:00
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