Commit Graph

2122 Commits

Author SHA1 Message Date
Ken Raeburn
06997b9a10 new routine xstrerror for better vms error handling; gas fixed to use it 1995-08-22 07:34:00 +00:00
Ken Raeburn
53499500e0 vms changes 1995-08-22 07:06:13 +00:00
Ian Lance Taylor
a5e03353ae * as.c (parse_args): Accept --defsym SYM=VALUE.
* doc/as.texinfo, doc/as.1: Document --defsym.
1995-08-21 21:18:57 +00:00
Ian Lance Taylor
4026c1222f * read.c (read_a_source_file): In MRI mode, don't end the
statement inside a quotation.
	(s_space): Don't warn about a zero repeat count in MRI mode.
	* config/tc-m68k.c (crack_operand): In MRI mode, don't count
	parentheses inside quotes.
	(md_assemble): In MRI mode, anything after the operands field is a
	comment.
	(parse_mri_control_operand): Adjust start and stop to remove
	spaces.
	(s_mri_for): Likewise.
1995-08-21 21:05:06 +00:00
Ian Lance Taylor
9821fda925 * app.c (do_scrub_next_char): If LEX_IS_STRINGQUOTE or
LEX_IS_ONECHAR_QUOTE is seen in	state 10, preserve one space.
1995-08-21 21:03:50 +00:00
Ian Lance Taylor
96dbd10de8 * gas/macros/*: New tests for macros. 1995-08-21 18:45:08 +00:00
Ian Lance Taylor
d2f661bd18 * gasp/pl3.out: Update for changes in commented source output when
LOCAL is used.
1995-08-21 18:42:09 +00:00
Ian Lance Taylor
95074dc362 * doc/as.texinfo: Document irp, irpc, macro, and rept. MRI mode
now supports macros, ifc, ifnc, irp, irpc, rept, and endr, without
	using gasp.
1995-08-21 18:37:10 +00:00
Ian Lance Taylor
7e047ac2c1 Add support for macros.
* as.c: Include sb.h and macro.h.
	(max_macro_next): New global variable.
	(main): Call macro_init.
	(macro_expr): New static function.
	* as.h (max_macro_nest): Declare.
	* read.c (line_label): Rename from mri_line_label.  Change all
	uses.
	(potable): Add exitm, irp, irpc, macro, mexit, rept.
	(read_a_source_file): Always clear line_label at the start of a
	line, not just when flag_mri or LABELS_WITHOUT_COLONS.  Fixup
	MRI/LABELS_WITHOUT_COLONS handling.  In MRI mode, permit label:
	equ val.  Set line_label when calling colon.  In MRI mode, a
	leading '.' does not imply a pseudo-op.  Check for macro expansion
	before calling md_assemble.
	(s_irp): New function.
	(get_line_sb): New static function.
	(s_macro): New function.
	(s_mexit): New function.
	(s_rept): New function.
	* read.h (line_label): Rename from mri_line_label.
	(s_irp, s_rept): Declare.
	(s_macro, s_mexit): Declare.
	* input-scrub.c: Include sb.h.
	(sb_index, from_sb): New static variables.
	(macro_nest): New static variable.
	(struct input_save): Add sb_index and from_sb fields.  Change
	next_saved_file field to be struct input_save *.
	(next_saved_file): Changed to be struct input_save *.
	(input_scrub_push): Change to return type struct input_save *.
	Save sb_index and from_sb.
	(input_scrub_pop): Change parameter type to struct input_save *.
	Restore sb_index and from_sb.
	(input_scrub_include_sb): New function.
	(input_scrub_next_buffer): Handle reading from from_sb.
	(bump_line_counters): Only increment lines if not using from_sb.
	* config/tc-m68k.c (opt_table): Add nest.
	(opt_nest): New static function.
	* gasp.c: Include sb.h and macro.h.  Move all sb related functions
	and definitions to sb.h and sb.c.  Move all macro related
	functions and definitions to macro.h and macro.c.
	* sb.h, sb.c: New files, extracted from gasp.c.
	* macro.h, macro.c: Likewise.
	* Makefile.in (OBJS): Add sb.o and macro.o
	(GASPOBJS): Define.
	(gasp.new): Depend upon $(GASPOBJS).  Use $(GASPOBJS) to link.
	(TARG_CPU_DEP_m68k): Depend upon subsegs.h.
	(gasp.o): Depend upon sb.h and macro.h.
	(sb.o): New target.
	(macro.o): New target.
	(as.o): Depend upon sb.h and macro.h.
	(input-scrub.o): Depend upon sb.h.
	(read.o): Depend upon sb.h and macro.h.
1995-08-21 18:35:11 +00:00
Ian Lance Taylor
7172e2266f * app.c (do_scrub_begin): In MRI mode, set lex of ' to
LEX_IS_STRINGQUOTE.
1995-08-21 18:19:21 +00:00
Ian Lance Taylor
075e616c28 * cond.c (get_mri_string): New static function.
(s_ifc): New function.
1995-08-21 18:18:56 +00:00
Michael Meissner
840886d875 Allow @HA, @L, and @H on constant expressions. 1995-08-21 17:47:01 +00:00
Jim Wilson
c2d8063d3b * config/tc-arm.c (md_reloc_size): Add const to declaration. 1995-08-20 22:56:02 +00:00
Ian Lance Taylor
d0af548446 * gasp/gasp.exp (gasp_test): Call prune_system_crud on the output
of diff.
	* lib/gas-defs.exp: Define prune_system_crud if it is not already
	defined.
1995-08-19 21:37:43 +00:00
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