Commit Graph

2040 Commits

Author SHA1 Message Date
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
Ken Raeburn
5a929558f8 * configure.in (arm-*-riscix*): Don't set emulation. 1995-07-20 17:38:59 +00:00
Ken Raeburn
9d249d343c * config/tc-m68k.c (md_convert_frag): Rename argument seg to sec, since seg is
a macro name in this file.
1995-07-20 17:17:32 +00:00
David Edelsohn
d0ac7e7039 * config/obj-coff.h (TE_PE): Delete.
* config/tc-arm.h (BYTE_ORDER): Delete.
	(TARGET_FORMAT): Provide value for OBJ_COFF and TE_PE.
	(ARM_BI_ENDIAN): Define if OBJ_COFF and TE_PE.
	* config/tc-arm.c (byte_order): Delete.
	(md_number_to_chars): Reference target_big_endian, not byte_order.
	(md_chars_to_number): Likewise.
	(md_longopts): Add -EB/-EL if ARM_BI_ENDIAN.
	(md_parse_options): Recognize -EB/-EL.
	(md_show_usage): List -EB/-EL.
1995-07-19 23:18:57 +00:00
Ian Lance Taylor
fe98e22d83 * gasp.c (process_assigns): Use toupper before comparing against
upper case letter.
	(whatcond): Likewise.
PR 7281.
1995-07-19 16:22:14 +00:00
Ian Lance Taylor
5f8cb05eef * config/tc-sh.c (sh_relax): Rename from relax, and make global.
Renamed all uses.
	(insert): Pass a size of 2, not 4.
	(build_relax): Remove unused len variable.
	(md_show_usage): Mention -little option.
	(md_convert_frag): Add segT argument.  Rewrite to generate relocs
	rather than to generate complete instructions here.
	(md_apply_fix): Adjust and clarify R_SH_PCRELIMM8BY4 case for
	changes in insert and md_pcrel_from.  Add cases for R_SH_PCDISP
	and R_SH_PCDISP8BY2.
	(md_pcrel_from): Don't subtract 1, add 2.
	(tc_coff_fix2rtype): Remove.
	(sh_coff_reloc_mangle): New function.
	* config/tc-sh.h (TC_COFF_FIX2RTYPE): Just return fx_r_type.
	(sh_relax): Declare.
	(TC_COUNT_RELOC): If relaxing, count PC relative relocs.
	(TC_RELOC_MANGLE): Define.
	(sh_coff_reloc_mangle): Declare.
	(tc_coff_sizemachdep): Declare.
	* tc.h (md_convert_frag): Add segT parameter to non BFD_ASSEMBLER
	declaration.
	* write.c (cvt_frag_to_fill): Add sec argument to non
	BFD_ASSEMBLER version.  Pass it to md_convert_frag.
	(write_object_file): Pass SEG_TEXT to cvs_frag_to_fill.
	* config/obj-coff.c (do_relocs_for): Pass segment info to
	TC_RELOC_MANGLE.
	(fixup_mdeps): Pass segment type to md_convert_frag.
	* config/tc-a29k.c (md_convert_frag): Add segT argument.
	* config/tc-h8300.c (md_convert_frag): Likewise.
	* config/tc-h8500.c (md_convert_frag): Likewise.
	* config/tc-i386.c (md_convert_frag): Likewise.
	* config/tc-i860.c (md_convert_frag): Likewise.
	* config/tc-i960.c (md_convert_frag): Likewise.
	* config/tc-m68k.c (md_convert_frag): Likewise.
	* config/tc-m88k.h (md_convert_frag): Likewise.
	* config/tc-ns32k.c (md_convert_frag): Likewise.
	* config/tc-rce.c (md_convert_frag): Likewise.
	* config/tc-tahoe.c (md_convert_frag): Likewise.
	* config/tc-vax.c (md_convert_frag): Likewise.
	* config/tc-w65.c (md_convert_frag): Likewise.
	* config/tc-z8k.c (md_convert_frag): Likewise.
	* config/tc-h8300.h (TC_RELOC_MANGLE): Add segment argument.
	* config/tc-h8500.h (TC_RELOC_MANGLE): Likewise.
	* config/tc-rce.h (TC_RELOC_MANGLE): Likewise.
	* config/tc-w65.h (TC_RELOC_MANGLE): Likewise.
	* config/tc-z8k.h (TC_RELOC_MANGLE): Likewise.
1995-07-19 16:14:49 +00:00
Ken Raeburn
4596bc7a86 vms fixes from pat rankin 1995-07-18 21:50:24 +00:00
Michael Meissner
fadd4ee1d6 Allow compiler to mark relocs that are ok for -mrelocatable. 1995-07-15 04:10:31 +00:00
Ian Lance Taylor
88f4ab5ff1 Add support for SPARC SunOS PIC:
* config/tc-sparc.h (sparc_pic_code): Always declare, not just
	when OBJ_ELF.
	(TC_RELOC_RTSYM_LOC_FIXUP): Define when OBJ_AOUT.
	(tc_fix_adjustable): New definition for OBJ_AOUT.
	* config/tc-sparc.c (sparc_pic_code): Always define, not just when
	OBJ_ELF.
	(md_apply_fix): Adjust reloc addend for OBJ_AOUT and PIC.  In
	BFD_RELOC_32_PCREL_S2 case, don't increment val for an external
	symbol when PIC.
	(tc_gen_reloc): Generate different PIC relocs when OBJ_AOUT, as
	well as when OBJ_ELF.
	(md_shortopts): If OBJ_AOUT, include `k'.
	(md_parse_option): If OBJ_AOUT, handle 'k'.
	(md_show_usage): Mention -k if OBJ_AOUT, and -KPIC if OBJ_ELF.
	(md_pcrel_from): Don't add in size for an external symbol when
	PIC.
1995-07-15 00:00:32 +00:00
David Edelsohn
2356dab3bc * config/tc-arc.c (byte_order): Provide explicit initial value. 1995-07-14 17:31:30 +00:00
David Edelsohn
403d21d28f * config/tc-arc.c (byte_order): Provide explicit initial value.
Also delete entry for reverted -m{big,little}-endian patch.
1995-07-14 17:30:38 +00:00
Jeff Law
4575a69d6b * config/tc-hppa.h (UNDEFINED_DIFFERENCE_OK): Define for SOM.
* write.c (adjust_reloc_syms): Set sy_used_in_reloc for both
        symbols in a fixup where a defined symbol is subtracted from an
        undefined symbol (when UNDEFINED_DIFFERENCE_OK is defined).
        (fixup_segment): Do nothing for the difference of two symbols if
        UNDEFINED_DIFFERENCE_OK is defined.
1995-07-14 03:19:38 +00:00
Ken Raeburn
14cffc83e7 Use "&" instead of "#" for immediate operands. 1995-07-13 22:39:38 +00:00
Jim Wilson
37ea61215c Fix debug info bugs for SGI
* ecoff.c (add_file): Don't collapse multiple .file commands into
	a single file structure.
	(ecoff_build_lineno): Set ilineBase to sum of previous file's
	ilineBase and cline.
1995-07-13 19:00:19 +00:00
Ian Lance Taylor
ac7530a895 * config/obj-coff.c (fixup_segment): Support MD_APPLY_FIX3. 1995-07-13 03:34:38 +00:00
Ken Raeburn
f7da4a99d4 fix more compilation bugs 1995-07-12 20:45:57 +00:00
Ian Lance Taylor
6804bd6c4c * doc/c-mips.texi: Document -m4010 and -mno-4010. 1995-07-11 18:32:16 +00:00
Ian Lance Taylor
e532b44c23 Tue Jul 11 14:28:55 1995 Jeff Spiegel <jeffs@lsil.com>
* config/tc-mips.c (mips_4010): New static variable.
	(interlocks): New static variable.
	(md_begin): Check for a cpu of "r4010".  Set mips_4010 correctly.
	If mips_4650 or mips_4010, set interlocks.
	(append_insn): Check interlocks, not mips_4650.
	(mips_emit_delays): Likewise.
	(mips_ip): Only permit INSN_4010 instructions if mips_4010.
	(md_longopts): Add "m4010" and "no-m4010".
	(md_parse_option): Accept -mcpu=r4010.  Handle -m4010 and
	-no-m4010.
	(md_show_usage): Document -m4010 and -no-m4010.
1995-07-11 18:30:25 +00:00
Ian Lance Taylor
e5fa3f23e8 * ecoff.c (struct efdr): Add new field fake.
(init_file): Initialize fake.
	(add_file): Add new parameter fake.  Change all callers.
	(ecoff_build_debug): Don't warn about a missing .end for a fake
	file.
PR 6509.
1995-07-11 17:26:08 +00:00
Ken Raeburn
db8e56dc13 split cpu-specific documentation out to separate files 1995-07-10 20:54:42 +00:00
Ken Raeburn
cc02a8a9c6 * read.c (po_hash): Now static. 1995-07-10 20:49:45 +00:00
Ian Lance Taylor
fb33961bff Based on patches from H.J. Lu <hjl@nynexst.com>:
* config/tc-i386.c (md_apply_fix3): Rename from md_apply_fix1.
	Accept pointer to value and segment.  Fix OBJ_ELF PCREL case to
	handle global defined symbols correctly.
	(md_apply_fix): Remove both versions.
	* config/tc-i386.h (MD_APPLY_FIX3): Define.
1995-07-10 19:01:21 +00:00
Ian Lance Taylor
84144a8f56 * configure.in: When switching on ${cpu}, use ${cpu}, not
$[target_cpu}, in default case.
	* configure: Rebuild.
1995-07-10 17:48:48 +00:00
Ian Lance Taylor
ed453d2ec4 * write.c (fixup_segment): Call resolve_symbol_value on
sub_symbolP, in case it isn't in the symbol table.
PR 7131.
1995-07-08 17:29:04 +00:00
Ian Lance Taylor
c71a604ae1 * read.c (s_lcomm): For .lcomm 1, set align to 0, not 1.
PR 5167.
1995-07-07 22:42:13 +00:00
Ian Lance Taylor
ae99a6721f * config/obj-coff.c (coff_frob_symbol): If SF_GET_FUNCTION, set
BSF_FUNCTION.
	(symbol_globalP, symbol_global_lastP): New global variables.
	(yank_symbols): Sort defined global symbols to the end, just
	before the undefined symbols.
	(glue_symbols): Add two arguments, and use them instead of
	referring directly to global variables.
	(crawl_symbols): Call glue_symbols twice, once for defined globals
	and once for undefined.  Add corresponding know calls.
PR 5491.
1995-07-07 21:29:54 +00:00
Ian Lance Taylor
6be977fb57 * app.c (do_scrub_next_char): Always accept \v. Don't make it
conditional on BACKSLASH_V.
	* read.c (next_char_of_string): Likewise.
	* config/obj-bout.h (BACKSLASH_V): Don't define.
	* config/tc-mips.h (BACKSLASH_V): Don't define.
PR 5604.
1995-07-07 20:10:27 +00:00
Ian Lance Taylor
5767cfb748 Add SPARC ELF PIC support.
* write.c (fixup_segment): Pass fixP to TC_RELOC_RTSYM_LOC_FIXUP,
	not fixP->fx_r_type.
	* config/tc-sparc.c (sparc_pic_code): New global variable.
	(md_apply_fix): If generating PIC, adjust fx_addnumber for any non
	PC relative reloc.
	(tc_gen_reloc): If generating PIC, adjust various reloc types.
	Remove fx_pcrel assert, since it is no longer true.
	(md_parse_option): Handle -K PIC.
	* config/tc-sparc.h (sparc_pic_code): Declare if OBJ_ELF.
	(TC_RELOC_RTSYM_LOC_FIXUP): Define if OBJ_ELF.
	(tc_fix_adjustable): Don't adjust PC relative relocs if PIC.
	* config/tc-i386.h (TC_RELOC_RTSYM_LOC_FIXUP): Take a fixp, not a
	reloc type.
PR 7131.
1995-07-07 17:03:21 +00:00
Ian Lance Taylor
cebf05ad1c * Makefile.in (Makefile): Add dependency on conf.in, so that conf
is rebuilt when conf.in changes.
1995-07-07 15:18:31 +00:00
Ken Raeburn
a2a5a4fa41 fsf address update 1995-07-06 21:18:08 +00:00