Commit graph

120 commits

Author SHA1 Message Date
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
Ken Raeburn
a2a5a4fa41 fsf address update 1995-07-06 21:18:08 +00:00
Ken Raeburn
9777b772c8 * as.h (LOCAL_LABELS_DOLLAR, LOCAL_LABELS_FB): If not already defined, define
them to zero.
* config/tc-*.h, config/te-*.h: If defining them, define them to be 1 instead
of empty.
* expr.c (integer_constant, operand): Test them at run time instead of compile
time.
* read.c (read_a_source_file): Ditto.
* symbols.c (colon): Ditto.
(dollar_*, define_dollar_label, fb_*): Define unconditionally.
* symbols.h (dollar_*, define_dollar_label, fb_*): Declare unconditionally.
1995-05-04 01:56:40 +00:00
Ken Raeburn
2209b19c4e (pop_insert): New function.
(pop_override_ok, pop_table_name): New variables.
(md_pop_insert, obj_pop_insert): New macros.
(pobegin): Use them.

(target_big_endian): If TARGET_BYTES_BIG_ENDIAN is defined, initialize to 1.
1995-05-02 19:30:17 +00:00
Ken Raeburn
931a8fab1b Support for more portable alignment handling in assembly code, based on patches
from Bryan Ford <baford@schirf.cs.utah.edu>:
* read.c (potable): Added balign and p2align, for aligning by bytes or powers
of two independent of what ".align" does for a given target.
* doc/as.texinfo: Document them.
1995-04-26 20:02:18 +00:00
Ken Raeburn
cd3b81bd4c Handle .space directive with non-constant operand:
* read.c (s_space): Rewrite to handle general expressions.  Generate rs_space
frags for non-constant values.
* write.c (cvt_frag_to_fill): Treat rs_align_code and rs_space like rs_align
and rs_org.  Verify that fr_offset is non-negative, and force frag type to
rs_fill only after assertion checks.
(relax_segment): Treat rs_align_code like rs_align.  Treat rs_space like rs_org
in the first switch; in the second, force the operand to a constant, and use it
for the growth size.
1994-12-31 00:08:40 +00:00
Ken Raeburn
f28891108c Changes from net 2.5.2 release branch:
* configure.in: Put AC_DEFINE(sparcv9) on its own line, so that the shell
variable settings associated with it are permanent.  For CPUs requiring
bfd_gas=yes, select it based on CPU only, not individual target names.  Handle
m68k-hp-hpux*, not just -hpux.

* config/tc-z8k.c (tc_coff_symbol_emit_hook): Add dummy argument to match
prototype in obj-coff.h.

* configure.in: Skip tests for defining WANT_FOPEN_BIN and IBM_COMPILER_SUX.
* acconfig.h: Deleted them.
* configure, conf.in: Rebuild with autoconf 2.0.
* config/go32.cfg, config/vms-conf.h: Updated.

* config/tc-m68k.c (md_apply_fix_2, md_convert_frag_1): Always use
IBM_COMPILER_SUX version of code, with comments indicating why.

* listing.c (file_info): Use text mode when opening file for read.  Use "r"
directly, no macro.
* input-file.c (input_file_open): Don't use FOPEN_RT, just use "r".
* read.c (s_include): Ditto.
* output-file.c (output_file_create): Try both "wb" and "w", don't bother with
FOPEN_* macros.
* as.h: Don't include fopen-*.h.

* config/alpha-opcode.h: Make "ret" with no operands equivalent to "ret
zero,(ra)", to match OSF1 and to be consistent with both one-operand forms.

Patches from DJ Delorie:
* as.h (alloca): undef alloca before defining it just in case
* config/go32.cfg: new file for autoconf values
* config/te-go32.h: new file
* configure.bat: new for autoconf

* config/tc-i386.c (md_assemble): Fix typo in GOTPC check; had = for ==.

* configure.in: If target_frag doesn't exist, use /dev/null.

* as.c (parse_args): For non-VMS systems, re-add `v' to std_shortopts.  Add
"verbose" to list of long options.

* write.c (adjust_reloc_syms): When generating an absolute section symbol as a
placeholder, don't mark it as used in a relocation entry, here.

* Makefile.in (comparison): Compare using makefile code from gcc, stripped down
to discard subdir stuff and adapted to give a non-zero exit status if either
file differs.
1994-11-03 23:15:54 +00:00
Ian Lance Taylor
f10a96cbec * read.c (read_a_source_file): The second argument to as_where is
unsigned int *, not int *.
1994-10-17 22:07:16 +00:00
Ken Raeburn
ef19887066 Combine two existing mechanisms for copying symbol attributes, and fix a bug:
* symbols.c (copy_symbol_attributes): New function.  Copies BFD symbol flags
and calls OBJ_COPY_SYMBOL_ATTRIBUTES.
(resolve_symbol_value, case O_symbol): Call it, if X_add_number is zero.  Don't
call obj_frob_forward_symbol.
* read.c (pseudo_set): Call copy_symbol_attributes, but only if X_add_number is
zero.
* config/obj-elf.h (obj_frob_forward_symbol): Deleted.
1994-09-21 22:21:25 +00:00
Ken Raeburn
80d80c640a * read.c (pseudo_set, case O_symbol): If OBJ_COPY_SYMBOL_ATTRIBUTES is defined,
invoke it.
[BFD_ASSEMBLER]: Copy BSF_FUNCTION setting too.
* config/obj-elf.h (OBJ_COPY_SYMBOL_ATTRIBUTES): Define.

Also minor VMS support from Pat Rankin.
1994-09-19 16:40:00 +00:00
Ian Lance Taylor
1b434ced73 * read.c (read_a_source_file): The second argument to as_where is
unsigned int *, not int *.
1994-09-12 21:52:43 +00:00
Kung Hsu
326d16cac7 Modified Files:
ChangeLog read.h read.c ecoff.h ecoff.c

        * read.h : ditto.
        * read.c (read_a_source_file): if no file when inst is read, set
        generate_asm_lineno to true.
        * ecoff.h : change name to generate_asm_lineno and add function
        ecoff_no_current_file.
        * ecoff.c : change name to generate_asm_lineno.
        * ecoff.c (ecoff_generate_asm_lineno) : new function, to generate
        ecoff style line for asm file.
1994-09-09 01:05:28 +00:00
Kung Hsu
daad3bbf95 Modified Files:
read.c read.h ecoff.c ecoff.h ChangeLog

        * read.c (read_a_source_file): generate line stabs for asm file.
        * read.h: add extern generate_asm_line_stab.
        * ecoff.h : add prototype for ecoff_generate_asm_line_stab().
        * ecoff.c (add_file): if there's no filename provided, set switch
        to generate line stabs for .s file.
        * ecoff.c (add_procedure): add stabs symbol for .ent directive.
        * ecoff.c (generate_ecoff_stab): creates an artificial stabs.
        * ecoff.c (generate_asm_line_stab): generate a artifitial label
        for each line and generate a stabn for the line.
1994-07-08 19:38:18 +00:00
Ian Lance Taylor
1fbfe10880 * read.c (emit_expr): Use memset to zero out memory, rather than
going through md_number_to_chars.  This permits handling symbolic
	arguments when the size is larger than sizeof (valueT), if
	TC_CONS_FIX_NEW is prepared to handle the case (as it is on MIPS).
1994-06-04 03:38:01 +00:00
David MacKenzie
def66e248c * as.h: Replace flagseen with separate variables.
* as.c (parse_args): Set them.  Don't accept -1 option, or -v
	explicitly (it's a synonym for --version).
	* as.c, input-scrub.c, messages.c, read.c, symbols.c, write.c,
	config/obj-aout.c, config/obj-aout.h, config/obj-bout.c,
	config/obj-bout.h, config/obj-coff.c, config/obj-coff.h,
	config/obj-vms.c, config/tc-hppa.c, config/tc-i386.c,
	config/tc-i960.c, config/tc-m68k.c, config/tc-mips.c,
	config/tc-vax.c: Use the new flag variables instead of flagseen.
	* config/tc-vax.c [OBJ_VMS]: Recognize -+, -1, -v, and document in
	usage.
1994-06-03 20:59:20 +00:00
Ken Raeburn
6ef37255ad (potable): Add this_gcc_requires_the_gnu_assembler in all lower-case, in case
we're ignoring case of opcodes in the input file.
1994-06-02 16:15:56 +00:00
Ian Lance Taylor
9d90491e82 * read.c (s_lcomm): Use an alignment power of 3 for 8 byte .lcomm
variables.
1994-02-22 03:49:42 +00:00
Ian Lance Taylor
9eb5f4b8c6 * read.c (read_a_source_file): Use correct arguments to memcpy
(broken 19 Jul 1993).  From kjd@pescadero.stanford.edu (Kenneth
	Duda).
1994-02-21 19:44:01 +00:00
Ian Lance Taylor
c02fd8dc3e * read.c (do_align): Don't define label just_record_alignment
unless it might be used.
1994-02-10 22:32:21 +00:00
Ian Lance Taylor
ddb393cf89 * app.c (do_scrub_next_char): If NO_STRING_ESCAPES is defined,
don't treat backslash specially inside strings.
	* read.c (next_char_of_string): Likewise.
1994-02-09 18:11:20 +00:00
Steve Chamberlain
ede7bc1c60 * read.c (s_lcomm): Align lcomm data.
* config/tc-z8k.c (tc_reloc_mangle): Don't allow subtraction
	from different sections.
1994-01-31 15:28:06 +00:00
Ken Raeburn
4075afe126 * read.c (do_align): New function, most of guts of s_align_* functions. Look
for md_do_align macro, give it a chance to bypass all but recording of section
alignment.
(s_align_bytes, s_align_ptwo): Call do_align.
(s_lcomm) [TC_ALPHA]: Align object to largest power of two that divides object
size.
1994-01-30 23:29:20 +00:00
Ian Lance Taylor
ec7a69ea23 * read.c (lex_type): No longer make '{' a valid character for
symbol names.
1994-01-27 23:10:19 +00:00
Ken Raeburn
2ef7731dee read.c (s_lcomm): Treat Alpha like MIPS in handling of .sbss section. 1994-01-24 19:17:03 +00:00
David Edelsohn
d2550c72df * read.c (emit_expr): Fix computation of mask. 1994-01-15 17:33:16 +00:00
David Edelsohn
44ce2f3221 * expr.c (integer_constant): Fix computation of too_many_digits. Variable
digit_2 renamed to start.  Fix check for whether number will fit in 32 bits.
* read.c (emit_expr): Use valueT instead of long.
1994-01-12 01:04:10 +00:00
Ken Raeburn
30d3a445c4 removed an unnecessary comment 1993-12-15 16:23:27 +00:00
Jeff Law
48c3dee6f0 Fix typo in last change. 1993-11-28 19:57:00 +00:00
Jeff Law
385ce4337d * read.c (read_a_source_file): Fix test for when to stick a colon
on the end of a label.  Make code conditional on either MRI or
        LABELS_WITHOUT_COLONS.

        * app.c (do_scrub_next_char): If a line begins with whitespace, leave
        the single whitespace character alone.  Eat all others.

        * config/tc-hppa.h (LABELS_WITHOUT_COLONS): Define.
1993-11-28 06:54:04 +00:00
Ian Lance Taylor
46b8119005 * read.c (read_a_source_file): If we find a bad pseudo-op,
do a continue to go on to the next line rather than a break.
	Removed duplicate bad pseudo-op code which was never executed.

	* read.c (s_lcomm): Do not require a comma after the name.

	* read.c (s_lcomm): Set bss flag for .sbss section if used.
1993-11-17 23:03:42 +00:00
Ian Lance Taylor
efe8ef02b2 * read.c (s_lcomm): Put small objects in .sbss for MIPS ELF as
well as MIPS ECOFF.
	(get_stab_string_offset): Remove unused variable aligned.
1993-11-02 23:15:58 +00:00
Ian Lance Taylor
ead1a4084e Fix tipo in comment. 1993-11-02 16:21:55 +00:00
Jeff Law
d191a03cf5 * read.c (get_stab_string_offset): Set SEC_DEBUGGING for any
stab section we make.
        (s_stab_generic): Likewise.
1993-10-31 07:38:33 +00:00
Jeff Law
d4c8cbd8ef * expr.c (make_expr_symbol): Delete DOT_LABEL_PREFIX code
and instead simply use the string defined by FAKE_LABEL_NAME.
        (operand): Likewise.
        * read.c (s_stab_generic): Likewise.
1993-10-31 02:13:34 +00:00
Ian Lance Taylor
80aab57939 Changes to let cons handle bignums like general expressions.
* expr.h (expressionS): New field X_unsigned.
	* expr.c (operand): Initialize X_unsigned to 1.  Set it to 0 for
	unary minus case.
	(expr) Fix typo resultP to right if missing operand.  Set
	X_unsigned to 1 when building new expression.
	* read.c (potable): Make "octa" and "quad" call cons, not
	big_cons.
	(cons): Handle bignums.  If given an O_constant (small integer) to
	fill a big space, turn it into a bignum.
	(parse_bitfield_cons): Set X_unsigned field.
	(bignum_low, bignum_limit, bignum_high, grow_bignum, big_cons):
	Removed.
	* read.h (big_cons): Remove prototype.
	* symbols.c (resolve_symbol_value): Don't give a warning if a
	symbol in expr_section can not be resolved.
	(S_SET_VALUE): Clear X_unsigned.
	* write.c (write_object_file): If resolve_symbol_value failed on a
	symbol we are writing out, give a warning.
	* config/tc-h8500.c (parse_reglist): Set X_unsigned.
	* config/tc-hppa.c (md_pseudo_table): Change "octa" and "quad" to
	call pa_cons, not pa_big_cons.
	(pa_big_cons): Remove.
	* config/tc-hppa.h (pa_big_cons): Remove declaration.
	* config/tc-i960.c (md_pseudo_table): Change "quad" to call cons,
	not big_cons.
1993-10-06 17:31:31 +00:00
Ian Lance Taylor
604633aeca * subsegs.c: Renamed non-BFD_ASSEMBLER subseg_new to subseg_set.
Wrote non-BFD_ASSEMBLER subseg_new.  Now subseg_new always takes a
	section name, and subseg_set always takes a segT.  Changed all
	callers as appropriate.
	* config/obj-coffbfd.c 	(change_to_section): Renamed to
	obj_coff_add_segment.  Corrected.  Made callers use subseg_new.
	* config/obj-coffbfd.h (obj_segment_name, obj_add_segment):
	Define.

Also some more gcc warning removal.
1993-09-13 21:32:07 +00:00
Ian Lance Taylor
58d4951d00 gcc lint. See ChangeLog for details. Also:
* config/obj-elf.h (S_SET_SIZE): Actually set the size.
1993-09-10 16:01:07 +00:00
Ian Lance Taylor
abdd08c97c * read.c (get_stab_string_offset, s_stab_generic): If
BFD_ASSEMBLER, call subseg_set rather than subseg_new.
1993-09-09 19:09:23 +00:00
Stan Shebs
1531386bca Add missing ifdef to make m68k-aout targets happy. 1993-09-08 00:20:59 +00:00
Stan Shebs
4064305ec0 Changes to support stabs-in-coff 1993-09-07 17:39:56 +00:00
Ken Raeburn
ba71c54da8 (potable): Treat "string" like "asciz". 1993-08-18 20:53:03 +00:00
Ken Raeburn
b31f2abb70 (emit_expr): Use BFD_RELOC_64 fr 8-byte expressions. 1993-08-05 17:07:22 +00:00
Ian Lance Taylor
cf897ce253 * read.c (read_a_source_file): In NO_PSEUDO_DOT case, if we find a
pseudo-op with a poc_handler field of NULL, ignore it and treat it
	as an instruction instead.
	* config/tc-m88k.c (md_pseudo_table): Add "set" with a NULL
	poc_handler field.
1993-07-23 02:55:25 +00:00
Ian Lance Taylor
8ff6f40e74 * read.c (read_a_source_file): If NO_PSEUDO_DOT is defined, look
up opcodes as pseudo-ops even if they don't start with '.'.
	* config/tc-m88k.h (NO_PSEUDO_DOT): Define.
	* config/tc-m88k.c (md_assemble): Removed special pseudo-op
	handling.
	(md_apply_fix): Set fx_offset to the upper 16 bits of the reloc.
	Output the low 16 bits for RELOC_HI16, not the high 16 bits.
	* config/obj-coffbfd.c (do_relocs_for): If TC_M88K, set the
	r_offset field of the reloc to the fixup offset.
	(fixup_segments): If TC_M88K, don't warn about fixup overflows.
	* doc/as.texinfo: Minor updates.
1993-07-21 17:19:33 +00:00
Ian Lance Taylor
5ac34ac37e * Extensive changes to permit symbols to contain any expression
type and to delay the computation of the expression until the
	value is actually needed.  This permits setting symbols to values
	calculated based on object code size.  Expressions were changed to
	no longer be in a section, to stop the overloading of segment and
	expression type that previously occurred.

	* as.c (big_section, pass1_section, diff_section, absent_section):
	Removed.
	(expr_section): Added (used for dummy symbols which hold
	intermediate expression values).
	(perform_an_assembly_pass): Create expr_section, do not create the
	sections now removed.
	* as.h (segT): Removed SEG_ABSENT, SEG_PASS1, SEG_BIG, and
	SEG_DIFFERENCE.  Added SEG_EXPR.
	(SEG_NORMAL): Corresponding changes.
	* subsegs.c (seg_name, subsegs_begin): Changed accordingly.
	* write.c (write_object_file): Ditto.
	* config/obj-aout.c (seg_N_TYPE): Ditto.
	* config/obj-bout.c (seg_N_TYPE): Ditto.
	* config/obj-coff.c (seg_N_TYPE): Ditto.
	* config/obj-coffbfd.c (seg_N_TYPE): Ditto.
	* config/obj-vms.c (seg_N_TYPE): Ditto.

	* expr.h (operatorT): Moved in from expr.c, added some values.
	(expressionS): Added X_op field, removed X_seg field; renamed
	X_subtract_symbol to X_op_symbol.
	* expr.c: Extensive changes to assign expression types rather than
	sections and to simplify the parsing.
	* write.c (fix_new_internal): New static function.
	(fix_new): Removed sub_symbol argument.
	(fix_new_exp): New function, takes expression argument.
	* write.h: Prototype changes for fix_new and fix_new_exp.
	* cond.c (s_if): Changed accordingly.
	* read.c (s_lsym, pseudo_set, emit_expr, parse_bitfield_cons,
	parse_repeat_cons, get_segmented_expression,
	get_known_segmented_expression, get_absolute_expression): Ditto.
	* symbols.c (resolve_symbol_value, S_GET_VALUE, S_SET_VALUE):
	Ditto.
	* write.c (write_object_file): Ditto.
	* config/obj-coff.c (obj_coff_def, obj_coff_val): Ditto.
	* config/obj-coffbfd.c (obj_coff_def, obj_coff_val,
	obj_coff_endef, yank_symbols): Ditto.
	* config/obj-elf.c (obj_elf_stab_generic, obj_elf_size): Ditto.
	* config/tc-a29k.c (md_assemble, parse_operand, machine_ip,
	print_insn, md_operand): Ditto.
	* config/tc-h8300.c (parse_exp, colonmod24, check_operand,
	do_a_fix_imm, build_bytes): Ditto.
	* config/tc-h8500.c (parse_exp, skip_colonthing, parse_reglist,
	get_specific, check, insert, md_convert_frag): Ditto.
	* config/tc-hppa.c (the_insn, fix_new_hppa, cons_fix_new_hppa,
	md_assemble, pa_ip, getExpression, getAbsoluteExpression,
	evaluateAbsolute, pa_build_unwind_subspace, pa_entry,
	process_exit): Ditto.
	* config/tc-hppa.h (STAB_FIXUP, is_DP_relative, is_PC_relative,
	is_complex): Ditto.
	* config/tc-i386.c (pe, md_assemble, i386_operand,
	md_estimate_size_before_relax, md_create_long_jump): Ditto.
	* config/tc-i860.c (md_assemble, getExpression, print_insn):
	Ditto.
	* config/tc-i960.c (parse_expr, subs, segs, md_convert_frag,
	get_cdisp, mem_fmt, parse_ldconst, relax_cobr, s_sysproc,
	i960_handle_align): Ditto.
	* config/tc-m68k.c (struct m68k_exp, struct m68k_it, seg, op,
	subs, add_fix, isvar, m68k_ip, md_assemble, md_convert_frag_1,
	md_estimate_size_before_relax, md_create_long_jump, get_num):
	Ditto.
	* config/tc-m88k.c (md_assemble, get_imm16, get_pcr,
	md_create_short_jump, md_create_long_jump): Ditto.
	* config/tc-mips.c (md_assemble, append_insn, gp_reference,
	macro_build, macro, my_getExpression): Ditto.  Also removed
	get_optional_absolute_expression; just use get_absolute_expression
	instead.
	* config/tc-ns32k.c (get_addr_mode, evaluate_expr, convert_iif,
	fix_new_ns32k, fix_new_ns32k_exp, cons_fix_new_ns32k): Ditto.
	* config/tc-ns32k.h (fix_new_ns32k prototype): Ditto.
	* config/tc-sh.c (parse_exp, check, insert, md_convert_frag):
	Ditto.
	* config/tc-sparc.c (md_assemble, sparc_ip, getExpression,
	print_insn): Ditto.
	* config/tc-tahoe.c (struct top, md_estimate_size_before_relax,
	tip_op, md_assemble): Ditto.
	* config/tc-vax.c (seg_of_operand, md_assemble,
	md_estimate_size_before_relax, md_create_long_jump): Ditto.
	* config/tc-z8k.c (parse_exp, check_operand, newfix): Ditto.
1993-07-21 00:41:42 +00:00
Ken Raeburn
4380166dfa (read_begin): Call obstack_begin with values closer to 1K multiples.
(read_a_source_file, big_cons, float_cons): Use memcpy instead of bcopy.
1993-07-19 20:04:25 +00:00
Ian Lance Taylor
ffffc8fb5c * expr.c (clean_up_expression): Don't cancel the subtraction of
undefined symbols.

Fixes PR 2997.

	* read.c (s_data), config/obj-coffbfd.c (obj_coff_data): If -R,
	switch to text section rather than data section.

Fixes PR 2971.
1993-07-19 18:46:39 +00:00
Ian Lance Taylor
1e9cf56586 * read.c (float_cons): Simplified parsing logic. If
REPEAT_CONS_EXPRESSIONS is defined, accept a repeat count.

	* symbols.c (colon): Rather than a special case for TC_HPPA,
	use new macro tc_frob_label.
1993-07-16 16:26:03 +00:00
Ian Lance Taylor
c978e704a9 * Preliminary support for m88k-coff.
* configure.in (m88k-*-coff*): New target.  Use coffbfd and
	m88kcoff.
	* config/m88kcoff.mt: New file.
	* read.c (lex_type): New macro LEX_AT to set lex type of '@'.
	(pseudo_set): Handle difference of symbols in different fragments
	by saving the entire expression as the value of the symbol.
	* symbols.c (resolve_symbol_value): Resolve difference
	expressions.
	* config/obj-coffbfd.c (obj_pseudo_table): If TC_M88K, accept
	"sdef" as a synonym for "def".
	* config/obj-coffbfd.h: If TC_M88K, include coff/m88k.h and set
	TARGET_FORMAT.
	(S_IS_LOCAL): Any symbol which includes \001 in the name is local.
	* config/tc-m88k.c, config/tc-m88k.h: Numerous changes to bring
	m88k port up to date, and to add COFF support.
1993-07-15 16:02:21 +00:00
Ian Lance Taylor
5868b1fe68 * Removed sy_forward and replaced it with an undefined expression
as the value of a symbol.
	* struc-symbol.h (struct symbol): Removed sy_forward field.  Added
	sy_resolved and sy_resolving single bit fields.
	* symbols.c (symbol_new): Don't initialize sy_forward field.
	(resolve_symbol_value): New function to adjust symbol value by
	fragment address, using recursion to resolve forward symbols.
	* symbols.h: Added prototype for new function.
	* read.c (pseudo_set): Set symbolP->sy_value to an undefined
	expression rather than setting symbolP->sy_forward.
	* write.c (write_object_file): Use resolve_symbol_value on
	symbols, keeping the common case (the old behaviour) inline.
	* config/obj-aout.c (obj_aout_frob_symbol): Removed sy_forward
	handling (subsumed by write.c change).
	* config/obj-coff.c, config/obj-coffbfd.c (obj_coff_val): Set
	sy_value rather than sy_forward.
	* config/obj-coffbfd.c (obj_coff_endef, yank_symbols): Check
	expression segment rather than sy_forward.
	(yank_symbols): Use resolve_symbol_value.
	(crawl_symbols): Removed extra pass over symbols.
	* config/obj-aout.c, config/obj-bout.c, config/obj-coff.c,
	config/obj-vms.c (obj_crawl_symbol_chain): Removed extra pass over
	symbols which handled sy_forward; use resolve_symbol_value
	instead.
	* config/obj-coff.h, config/obj-coffbfd.h (obj_frob_forward_symbol):
	Define.
	* config/obj-elf.c (obj_elf_stab_generic): Check expression
	segment rather than sy_forward.
	* config/obj-vms.c (VMS_Check_For_Main): Don't initialize
	sy_forward; do initialize sy_resolved and sy_resolving.
	* config/tc-hppa.h (STAB_FIXUP): Use sy_value, not sy_forward.
1993-07-14 22:21:25 +00:00
Ken Raeburn
4032436291 (s_comm): Values read are type valueT. 1993-07-07 12:37:58 +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
Ian Lance Taylor
9a7d824a26 * app.c (do_scrub_begin): Let line_comment_chars override
comment_chars.
	(do_scrub_next_char): If a line comment character is not at the
	start of a line, treat it as a comment character if it is one.
	For a CPP line comment use pseudo-op .appline rather than .line.
	* input-scrub.c (logical_input_line): Make int rather than
	unsigned.
	(input_scrub_push, input_scrub_begin): Initialize
	logical_input_line to -1 rather than 0.
	(bump_line_counters): Increment logical_input_line.
	(new_logical_line): If line_number is -2, decrement
	logical_input_line.
	(as_where): Use logical_input_line even if it is 0.
	* read.h (s_app_file prototype): Now takes an int argument.
	* read.c (potable): Make .appfile call s_app_file with 1.  New
	.appline pseudo-op calls s_app_line.
	(s_app_file): If .appfile, call new_logical_line with -2 to
	account for newline inserted by do_scrub_next_char.  If listing,
	call listing_source_file.
	(s_app_line): New function to handle fake pseudo-op .appline.
	* config/obj-coff.c (obj_pseudo_table): Make .appline call
	obj_coff_ln.
	(obj_coff_ln): Added argument to indicate whether .appline.
	* config/obj-coffbfd.c (obj_pseudo_table): Make .appline call
	obj_coff_ln.
	(obj_coff_ln): Added argument to indicate whether .appline.
	* config/tc-mips.c (s_file): Pass argument to s_app_file.
1993-05-27 19:29:38 +00:00
Ken Raeburn
9c6d3f660c (big_cons): If target_big_endian, reverse bytes being copied. (Temporary
fix -- should be cleaned up later.)
(s_ignore): Delete declaration of is_end_of_line.
(potable): Change .app-file to .appfile.
1993-03-29 21:20:04 +00:00
Steve Chamberlain
bf44929331 * read.c (s_space): Multiply repeat count by mult, not fill. 1993-03-04 19:55:59 +00:00
Ken Raeburn
9471a360d7 read.c needs ctype.h 1993-03-04 13:21:19 +00:00
Ken Raeburn
db81c5e7d5 fix goof from last change 1993-01-04 21:48:44 +00:00
Ken Raeburn
c8863a58ef (s_data): Use "data_section"; it'll map to SEG_DATA or SEG_E1 if appropriate,
as soon as I check in as.h.
(s_lcomm): Likewise with bss_section.
(s_fill): Use memset, not bzero.
whitespace/comment changes.
deleted some "#ifdef DONTDEF" sections relating to GDB symtabs.
1993-01-04 13:24:39 +00:00
Ian Lance Taylor
85825401dc Wed Dec 30 10:18:57 1992 Ian Lance Taylor (ian@cygnus.com)
* app.c, config/tc-*.c: Don't include read.h, since it is already
	included by as.h.

	* These are based on patches from Minh Tran-le
	<mtranle@paris.intellicorp.com>.
	* configure.in (i[34]86-ibm-aix*): Accept i486 for host.  Use
	obj_format coffbfd and gas_target i386coff for target.
	(i[34]86-*-isc*): New host (uses sysv).
	* config/i386aix.mt: Removed (no longer used).
	* config/mh-i386aix (RANLIB): Use true rather than /bin/true.
	(MINUS_G): Removed.
	(LDFLAGS): Added, defined as -shlib.
	* config/te-i386aix.h (REVERSE_SORT_RELOCS): Undefine.
	* config/te-sco386.h (LOCAL_LABEL): Don't define.
	(DOT_LABEL_PREFIX): Define.
	* expr.c (operand): If DOT_LABEL_PREFIX, use .L0\001 as a label
	name rather than L0\001.
	* read.c (s_lcomm): Make a frag in SEG_BSS rather than using
	local_bss_counter.
	* symbols.c, symbols.h (local_bss_counter): Removed.
	* write.c (write_object_file): bss no longer uses
	local_bss_counter.  Pass correct data and bss size to
	VMS_write_object_file.
	* config/obj-vms.c (VMS_write_object_file): Accept bss size as
	argument, rather than using local_bss_counter.
	* config/tc-m88k.c (s_bss): Don't use local_bss_counter.
	* config/tc-sparc.c (s_reserve): Don't use local_bss_counter.
	* config/obj-coffbfd.c (had_lineno, had_reloc): Removed.
	(size_section): Restored sanity check.
	(do_relocs_for): Base section address on s_paddr rather than
	computing it.  Adjust a29k R_IHIHALF special case to account for
	section paddr (used to require paddr to be zero).  If there are no
	reclos, set s_relptr to 0.  Set relocation size in object_headers.
	(fill_section): Always set s_vaddr here, removing
	ZERO_BASED_SEGMENTS case.  Force s_scnptr for bss to 0.  Don't set
	NOLOAD for i386 .bss, because it confuses the SVR3 native linker.
	Set STYP_INFO for .comment.
	(coff_header_append): Use object headers and H_{SET,GET}_* macros.
	Make aouthdr writing depend on OBJ_COFF_OMIT_OPTIONAL_HEADER.
	(crawl_symbols): Handle 8 character section name correctly.  Use
	H_{SET,GET}_* macros.
	(do_linenos_for): Set lineno size in object_headers.
	(write_object_file): Use H_{SET,GET}_* macros.  Don't bother to
	set s_vaddr here.  If string_byte_count remains 4, set it back to
	0, and only write strings out if there are some.  Call
	fill_section before do_relocs_for and do_linenos_for.
	(obj_coff_section): Handle optional quoted second argument giving
	section characteristics.
	(obj_coff_bss): Added to handle .bss.
	(obj_coff_ident): Added to handle .ident (puts string in .comment
	section).
	(obj_coff_lcomm): Put common symbols in .bss, not .data.
	(fixup_mdeps): Change to segment.  Call frag_wane after
	md_convert_frag.
	(fixup_segment): Explicitly check S_IS_COMMON before making 386
	adjustment (already happened only for common symbols, but this is
	clearer).
	* config/obj-coffbfd.h (OBJ_COFF_OMIT_OPTIONAL_HEADER): Define.
	* config/tc-i386.c (s_bss): Don't use if I386COFF.
	(md_pseudo_table): Ignore .optim and .noopt.
	(tc_coff_sizemachdep): New function.
	* config/tc-i386.h (REVERSE_SORT_RELOCS): Undef, for SVR3
	compatibility.
	(LOCAL_LABEL): Removed definition.
	(DOT_LABEL_PREFIX): Defined.
1992-12-30 20:34:14 +00:00
Ian Lance Taylor
016e0d4207 Sat Dec 12 15:26:34 1992 Ian Lance Taylor (ian@cygnus.com)
* listing.c: Call xmalloc, not malloc; don't declare malloc.

	* Changes to support SCO 3.2v4:
	* read.c (s_align_bytes, s_align_ptwo): If not SEG_DATA or
	SEG_BSS, fill with NOP_OPCODE.
	* config/i386coff.mt: Add opcode/i386.h to TARG_CPU_DEPENDENTS.
	* config/obj-coffbfd.c (do_relocs_for): Increment addr even if not
	using ZERO_BASED_SEGMENTS.
	(fill_section): If ZERO_BASED_SEGMENTS, set segment addresses, but
	never set segment address for SEG_E2 (.bss) and don't write out
	SEG_E2 contents.  Set .init and .fini sections to STYP_TEXT.
	(obj_coff_endef): Don't merge labels or symbols awaiting forward
	definitions, and don't merge tags with non-tags.  Check for .bf
	rather than just checking whether the second character is b and
	the third character is f.
	(obj_coff_val): gcc can generate values which we don't handle
	correctly; discard information for now, since it only affects the
	debugging information.
	(tag_find_or_name): Don't insert tags in the symbol table.
	(yank_symbols): Don't merge labels.
	(write_object_file): Don't define SUB_SEGMENT_ALIGN if it is
	already defined.  Fill subsegments with NOP_OPCODE, not 0.  Don't
	set segment address if ZERO_BASED_SEGMENTS.
	(obj_coff_section): Accept and ignore a trailing quoted string, as
	used in AT&T i386 syntax.
	(fixup_segment): Take segment as argument.  On the i386, adjust PC
	relative addends by the segment vaddr.
	* tc-i386.h: Define SUB_SEGMENT_ALIGN.
	* tc-a29k.h: Define ZERO_BASED_SEGMENTS.
	* tc-i386.c: (i386_operand): If I386COFF, accept any segment type.
1992-12-13 00:56:14 +00:00
Ken Raeburn
6efd877de5 Ran "indent", for GNU coding style; some code & comments still need fixup.
Removed some unneeded files.

configure.in: Don't look for te-386bsd.h, which doesn't exist...
1992-11-23 20:39:57 +00:00
Ian Lance Taylor
b53ccaacae Wed Sep 9 11:06:25 1992 Ian Lance Taylor (ian@cygnus.com)
* Makefile.in: use gas_target instead of modifying target_cpu.
	From Steve Chamberlain:
	Makefile.in: Handle m68*-*-coff*.
	read.c, read.h: add mult argument to s_space
1992-09-09 18:37:27 +00:00
Steve Chamberlain
7fd3560a6a * read.c (s_fill): make the .fill size clamped error a warn and
fix bug where 0's were always placed.
1992-08-06 19:11:19 +00:00
Steve Chamberlain
7c2d4011a4 Wed Jun 24 10:57:54 1992 Steve Chamberlain (sac@thepub.cygnus.com)
* app.c (process_escape): new function to handle escapes the right
	way, (do_scrub_next_char): use new function
	* cond.c (s_ifdef): do ifdef/ifndef right
	* read.c (s_fill): make the , expressions optional like the doc
	says
	* config/tc-h8300.[ch]: better warnings
1992-06-24 18:02:38 +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
6d5460ab89 changes from Minh Tran-Le <TRANLE@INTELLICORP.COM> to support i386
coff as it appears to be used on aix386.
1992-02-21 11:04:51 +00:00
K. Richard Pixley
542e1629fd fighting bitrot in a major way 1992-02-17 15:54:49 +00:00
K. Richard Pixley
3340f7e5fd White space and comment changes. #ifdef __STDC__ becomes #if __STDC__
== 1.  Get the declarations right in listing.[hc].
1992-02-15 21:13:03 +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
fecd2382e7 Initial revision 1991-04-04 18:19:53 +00:00