Commit graph

440 commits

Author SHA1 Message Date
Ian Lance Taylor
e0209756f8 * config/obj-coffbfd.c: Use PARAMS rather than EXFUN.
(yank_symbols): Don't call S_SET_EXTERNAL if the storage class is
	already set.  Fixes .def var; .val external_var; .scl 3; .endef.
	(adjust_stab_section): Make static.  Declare return type.  Remove
	unused variables.

	* config/tc-i386.h: Declare tc_coff_fix2rtype and
	tc_coff_sizemachdep.
1993-11-19 21:37:50 +00:00
Ken Raeburn
0669e04793 sparc-coff related changes 1993-11-19 20:04:07 +00:00
Ian Lance Taylor
29cc5816c5 Various entries. 1993-11-18 19:10:20 +00:00
Jeff Law
c5e9ccd030 * config/tc-hppa.c (pa_ip): Fix thinko in 21bit range check. 1993-11-17 04:40:15 +00:00
Jeff Law
3e330968cd * config/tc-hppa.[ch]: Fix assorted trivial indention problems. 1993-11-13 01:08:50 +00:00
Jeff Law
4a1b59ef72 * config/obj-som.c (obj_som_version): Add missing ';'.
(som_frob_file): Delete whitespace at EOL.
1993-11-13 00:54:15 +00:00
Ken Raeburn
f3b6e1f2b1 version number updated following 2.2 release 1993-11-12 23:44:55 +00:00
Jeff Law
f2eed8840d * config/tc-hppa.c (hppa_fix_struct): Use a real type for the
field selector, rather than an int.  All uses of field selectors
	fixed.
	(tc_gen_reloc): For SOM PLABELs, always set addend to zero for now.
	(md_apply_fix_1): Do not call hppa_field_adjust for any PLABEL
	field.
1993-11-12 22:54:41 +00:00
Jeff Law
a721c80b05 * config/tc-hppa.c (pa_type_args): For .import statements,
silently ignore attempt to change the symbol type for a function
        from ST_ENTRY to ST_CODE on .import
1993-11-11 23:51:20 +00:00
Ian Lance Taylor
ca16b5e55a * write.h (fixS): Rename fx_callj field to fx_tcbit.
* write.c, config/obj-coff.c, config/obj-coffbfd.c,
	config/tc-i960.c: Corresponding changes.
1993-11-10 22:06:06 +00:00
Jeff Law
7420b02b8d * Makefile.in (distclean): Delete config-stamp and config.h 1993-11-09 09:57:02 +00:00
Jeff Law
f41f3d72ec * config/tc-hppa.c (evaluate_absolute): Avoid relying on
ANSI-C features.
1993-11-09 09:52:59 +00:00
Jeff Law
48153d49ce * config/tc-hppa.c (pa_type_args): Renamed from pa_export_args.
Accept new argument "is_export".  All callers changed.  When
        processing a .export directive for a function, do not allow
        the user to set the type to "CODE", instead warn and set the
        type to "ENTRY".
1993-11-09 08:51:02 +00:00
Ian Lance Taylor
9226253a41 * config/tc-mips.c (mips_ip, printInsn): Handle 'k' (from Ted
Lemon <mellon@pepper.ncd.com>).
	(mips_ip): Permit odd numbered floating point registers if -mips3.
1993-11-08 17:09:18 +00:00
David Edelsohn
5308785003 * configure.in: Remove h8300h, we have multilib now. 1993-11-08 15:48:42 +00:00
David Henkel-Wallace
5f8a378823 netware target support. 1993-11-08 14:22:06 +00:00
Jeff Law
513f04711d * First cut at cleaning up PA instruction parsing.
* config/tc-hppa.c (pa_get_absolute_expression): Accept pointer to
	insn structure as an argument, and a pointer to a string.  All
	callers changed.  Always read any field selector here.  Call
	evaluate absolute to get a return value.
	(evaluate_absolute): Addept pointer to insn structure as its
	argument.  All callers changed.
	(INSERT_FIELD_AND_CONTINUE): New macro for inserting a bitfield
	into an instruction and continuing the main pa_ip loop.
	(CHECK_FIELD): New macro for simple range checking of fields.
	(pa_ip): Delete unused variables.  Use INSERT_FIELD_AND_CONTINUE
	and CHECK_FIELD.  All immediate fields now pass through
	pa_get_absolute_expression which will also handle field selectors.
	Delete dead code.  Simplify.
	(md_apply_fix_1): Use CHECK_FIELD to verify any fixes that are
	applied are in range.  Use bfd_put_32 rather than inserting each
	byte of the fixed instrution into the buffer ourselves.
1993-11-07 20:33:18 +00:00
Jeff Law
3e411021cc * write.c (fixup_segment): Delete {SEG,GLOBAL}_DIFF_ALLOWED code,
it was PA specific and is no longer needed (it's now handled
        within the PA backend).
        * config/tc-hppa.h (SEG_DIFF_ALLOWED): Delete definition.
        * config/tc-hppa.c (fix_new_hppa): If the subtract symbol for
        a fixup is $global$ change it to NULL as $global$ is really only
        needed long enough to determine the base type of relocation to use.
1993-11-07 20:08:19 +00:00
Jeff Law
240cbc571f * config/tc-hppa.c (create_new_subspace): Initialize subspace_defined. 1993-11-07 09:15:13 +00:00
Jeff Law
163aac84be * config/tc-hppa.c (pa-ip, case 'z'): Make field selectors work
for 'z' operands (target of ble branch).
1993-11-07 09:03:59 +00:00
Jeff Law
18c4f112b4 * config/tc-hppa.c: (update_subspace): Fix type and name of last
parameter.  All callers fixed.
        (md_begin, pa_chk_field_selector, pa_entry): Lint.
1993-11-07 07:23:52 +00:00
Jeff Law
1cc248d263 * config/tc-hppa.c (cons_fix_new_hppa): Reset field selector
to default state after it's been used.
1993-11-07 06:43:24 +00:00
Jeff Law
88eb7ea6b2 * config/obj-som.c (obj_som_init_stab_section): Change
space/subspace sort keys for the stab sections so as to avoid
        bugs in the hp linker and pxdb.
1993-11-05 20:11:19 +00:00
Jeff Law
0f894895a1 * write.c (chain_frchains_together): Update pointer to last
frag for a segment in the seginfo structure.
1993-11-05 01:01:18 +00:00
Jeffrey Wheat
de074576ce Changed RUNTESTFLAGS to RUNTEST_FLAGS 1993-11-04 17:36:24 +00:00
Jeff Law
d6e524f308 * tc-hppa.c: Add %dp and %rp as synonyms for %r27 and %r2 in the
predefined register table.
	(pa_parse_number): Handle %rp in common register shortcut code.
	Consistently set return value to -1 for an error.  Clean up error
	messages and only print them when "print_errors" is true.  Handle
	empty string case like the HP assembler -- assume a value of
	zero.
1993-11-03 06:21:14 +00:00
Ken Raeburn
25270a1ca7 log my expr.c change 1993-11-02 23:44:59 +00:00
Jeff Law
20cee6d8bd * config/ho-hpux.h: Do not include ho-sysv.h. Instead include
standard hpux include files to pick up various function decls.
1993-11-02 23:39:55 +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
Jeff Law
aa14e86394 * config/ho-hppaosf.h: Delete _IO* macros. They are defined in
stdio.h.  Delete bogus declaration of free.  Get path to
        alloca-conf.h right.
1993-11-02 23:07:54 +00:00
Jeff Law
ff852e1177 * config/obj-som.h (obj_attach_unwind_info): Define as a hook
so GAS can attach unwind descriptor information to a BFD symbol.
	* config/tc-hppa.c (fix_new_hppa): If necessary attach unwind
	descriptor information to the BFD symbol.
	(md_apply_fix): R_HPPA_ENTRY and R_HPPA_EXIT can never be "applied",
	they are simply markers.  Make R_HPPA_UNWIND_* handling OBJ_ELF
	dependent.
	(pa_build_unwind_subspace): Whole function is OBJ_ELF dependent.
	(pa_entry): Build a R_HPPA_ENTRY relocation when configured for SOM.
	(pa_exit): Likewise, but built a R_HPPA_EXIT relocation.  Do not
	build "end-of-function" symbols for SOM, they are not needed.
1993-11-02 08:06:23 +00:00
Jeff Law
a50e9b5506 * config/tc-hppa.c (process_exit): Create temporary symbols with
correct prefixes so they can be eliminated later.
1993-11-02 06:43:11 +00:00
Jeff Law
49fc68a13f * config/tc-hppa.c (call_info struct): Delete unused "frame" field.
(pa_callinfo): Insert framesize into the unwind information as
	soon as it's available.
	(pa_build_unwind_subspace): Do not insert framesize into the unwind
	information here.
1993-11-02 06:38:20 +00:00
Jeff Law
c43d56f78c * Add support for marker type relocations. These mark areas
of interest to the linker.  ENTRY/EXIT relocations for SOM are
	an example of marker relocations.
	* write.c (write_relocs): Instead of assuming size of a relocation
	is 4 bytes, pick up the size from relocation itself.
	(fixup_segment): Do not complain that a value is too small for
	marker relocations.
1993-11-02 06:31:36 +00:00
Jeff Law
009dc5e1e5 * struc-symbol.h: Add new "sy_used" field to the symbol structure.
* expr.c (operand): Set sy_used for any symbol used as an operand.
	(expr): Likewise for any symbol used in an expression.
	* config/tc-hppa.h (tc_frob_symbol): Define.  Punt imported
	symbols which are never used and absolute symbols which local scope.
1993-11-02 06:10:52 +00:00
Jeff Law
f197d7eb66 * config/obj-som.h (obj_frob_file): Define.
* config/obj-som.c (obj_som_init_stab_section): Set alignment
	of stab sections.  Make space for the special stab entry.
	(adjust_stab_sections): Adjust the special entry in the
	stabs section.
	(som_frob_file): New function.  Simply calls adjust_stab_sections
	for each section.
1993-11-02 05:37:58 +00:00
Ian Lance Taylor
bca9cf0b9e * config/tc-mips.c (PIC_CALL_REG, SP, FP): Define.
(mips_pic, mips_cprestore_offset): New static variables.
	(md_pseudo_table): Handle .abicalls, .cpload, and .cprestore.
	Ignore .bgnb and .endb.
	(gp_reference): _gp_disp is never addressed off GP.
	(macro_build): Ignore macros while searching for insn.  For cases
	i, j, and o, accept the reloc type as an argument rather than
	assuming BFD_RELOC_LO16.  Don't try to convert BFD_RELOC_LO16 to
	BFD_RELOC_MIPS_GPREL.  Added new case a.
	(set_at, load_register, macro): Changed calls to macro_build to
	pass new argument for i, j and o cases.
	(macro): Handle M_JAL_1, M_JAL_2 and M_JAL_A.  These require
	special handling when generating SVR4 PIC code.
	(mips_ip, tc_get_register, s_frame): Use macros FP, SP, GP and AT
	rather than hard coded constants.
	(md_apply_fix): Handle BFD_RELOC_MIPS_LITERAL and
	BFD_RELOC_MIPS_CALL16.
	(s_option): Set mips_pic based on .option picN.
	(s_abicalls): New function; set mips_pic to 2.
	(s_cpload): New function; handle .cpload.
	(s_cprestore): New function; handle .cprestore.

	* config/obj-ecoff.c (obj_pseudo_table): Add entries for .bgnb,
	.endb and .verstamp, setting them to s_ignore.
1993-11-01 23:27:05 +00:00
Jeff Law
47f45d6636 * config/tc-hppa.c (subspace_dictionary_chain): Add new ssd_defined
field.  Define SUBSPACE_DEFINED accessor macro.
	(pa_subspace): Allow user to override subspace attributes for
	built-in subspaces.  Set ssd_defined at the end of fcn -- that
	way the attributes can only be changed once.  Pass newly allocated
	name to is_defined_subspace, not a pointer to the input line.
	Fix typo in space/subspace rework.
	(is_defined_subspace): Delete unused 2nd arg.  All callers changed.

	* config/tc-hppa.c (pa_import): If currently in the text segment
	and a symbol is imported without type information, set BSF_FUNCTION
	for the symbol.
1993-10-31 18:49:26 +00:00
Jeff Law
20b39b6f05 * write.c (relax_and_size_seg): Correct test to determine
if the section's size was rounded up.
1993-10-31 08:06:11 +00:00
Jeff Law
e75acd689b * config/obj-som.h (obj_set_symbol_type): Define a hook so GAS
can properly set all the SOM symbol types.
	* config/tc-hppa.c (pa_symbol_type): New enum to represent the
	symbol types which can be set from an IMPORT/EXPORT statement.
	(pa_export_args): Set the pa_symbol_type type based on arguments.
	If defined, call obj_set_symbol_type to pass this information on
	to the BFD backend.
1993-10-31 07:48:41 +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
65a7f8a604 Allow backends to override the value of the "fake" label.
See ChangeLog for the details.
1993-10-31 02:19:05 +00:00
Jeff Law
6bc14195fb Rework space/subspace handling in PA code to fully support
SOM spaces/subspaces.
	* tc-hppa.c (USE_ALIASES): New object-format dependent define
	to control the use of space/subspace name aliases.
	(update_subspace): Accept space chain entry for containing space
	as a new parameter.  All callers changed.
	(pa_get_label): Use current_space rather than pa_segment_to_space.
	(pa_define_label): Likewise.
	(pa_undefine_label): Likewise.
	(md_begin): Change into the (possibly modified) text_section.
	(pa_parse_space_stmt): Create a new segment/space if create_flag
	is true, and the space name is not one of the two predefined spaces.
	(pa_subspace): Use current_space rather than a lookup via
	pa_segment_to_space.  Reset BFD section flags as required by
	the .subspace directive.  Likewise for the section alignment.
	Pass the current space to update_subspace and create_new_subspace.
	(pa_spaces_begin): Only use space/subspace aliases if USE_ALIASES
	is true.  When not using aliases, create a BFD section for each
	subspace encountered.  When not using aliases replace the default
	text, data, and bss segments with new ones.
	(create_new_subspace): When not using aliases each subspace has a
	section/segment and subsegments are not needed, so set the subsegment
	to zero.
1993-10-31 01:54:01 +00:00
Jeff Law
548ea75baa * config/tc-hppa.c (pa_parse_space_stmt): If needed, call
obj_set_section_attributes to pass space attributes to the
        BFD backend.
        (create_new_space): Likewise.
        (create_new_subspace): Likewise for subspace attributes using
        obj_set_subsection_attributes.
        (update_subspace): Likewise for subspace attributes using
        obj_set_subsection_attributes.
1993-10-30 23:11:31 +00:00
Jeff Law
0f3b419c4c * config/tc-hppa.c (pa_parse_space_stmt): Get segment and sort key
for $TEXT$ and $PRIVATE$ from the default space structure.
1993-10-30 23:00:34 +00:00
Jeff Law
9a182533aa * config/tc-hppa.c (pa_export_args): Always set BSF_FUNCTION
as appropriate for the given type.
1993-10-30 22:55:19 +00:00
Jeff Law
62f0841b9d * config/tc-hppa.c (tc_gen_reloc): Preliminary stab at handling
SOM relocations.
1993-10-30 22:35:49 +00:00
Jeff Law
d56f45f5bc * config/tc-hppa.c (pa_comm): Delete incorrect check for symbol
redefinition.
1993-10-30 22:02:53 +00:00
Jeff Law
3c87583d0a * config/obj-som.[ch]: New files for SOM support. Note SOM
support is not yet complete in GAS or BFD.
1993-10-30 21:57:16 +00:00
Jeff Law
12696e9cb5 * config/ho-hppabsd.h: Delete IO* macros, they are defined in
stdio.h.  Delete declaration of free.  Include stdlib.h, unistd.h,
        and string.h.
1993-10-30 21:29:29 +00:00
Jeff Law
53c0b9e754 Back out of last change. Instead:
* config/tc-hppa.c (md_begin): Disable "-R" option to fold
        text and data segments.  Warn user "-R" is unsupported on the
        PA.
1993-10-29 21:08:19 +00:00
Jeff Law
37ed805e49 * as.c (main): Disable "-R" option if NO_FOLD_DATA_AND_TEXT
is defined.
        * config/tc-hppa.h (NO_FOLD_DATA_AND_TEXT): Define.  Folding
        of text and data segments fails miserably on the PA.
1993-10-29 20:36:07 +00:00
Jeff Law
d33ace2e25 * config/tc-hppa.c (md_pseudo_table): Default alignment is 8 for
.align and .ALIGN directives.
1993-10-29 01:01:35 +00:00
Jeff Law
3515a504aa * config/tc-hppa.c (pa_parse_space_stmt): Advance
input_line_pointer when an invalid argument is encountered.
1993-10-28 23:14:33 +00:00
Jeff Law
48ac0c90e9 * config/tc-hppa.c (pa_space): Do not report an error for a .space
directive which does not define a "well-known" space and does
	not include a space number as an argument.

	* config/tc-hppa.c (pa_def_subspaces): Correct initialization of the
	"defined", "loadable", "code_only" and "space_index" fields.
	(pa_def_spaces): Correct initialization of the "spnum", "defined",
	and "private" fields.

	* write.h (struct fix): Add new tc_fix_data field for the various
	backends to attach machine dependent fixup information to.
	* write.c (fix_new_internal): Initialize new tc_fix_data field.
	* config/tc-hppa.c (hppa_fix_struct): Delete unnecessary fix_fixP and
	fx_next fields.
	(hppa_find_hppa_fix): Delete unnecessary function.  Fix all
	callers	to get HPPA fixup information from the tc_fix_data field
	in the GAS fixup.
	(hppa_fix_root): Delete unnecessary variable.
	(fix_new_hppa): Attach HPPA fixup data to the GAS fixup.

	* config/tc-hppa.c (pa_set_start_symbol); Delete unwanted
	function.  Fix all callers.
	(subspace_dictionary_chain): Delete unused ssd_start_sym field.

	* config/tc-hppa.c (hppa_fix_adjustable): New function to determine
	if a particular fixup is adjustable.
	* config/tc-hppa.h (tc_fix_adjustable): Call hppa_fix_adjustable to
	perform the real work.

	* config/tc-hppa.h (RELOC_EXPANSION_POSSIBLE): Move definition out
	of OBJ_XXX conditionals.
	(MAX_RELOC_EXPANSION): Likewise.

	* config/tc-hppa.c (log2): Renamed from is_power_of_2.  Fix all
	callers. Now returns log2 (N) for positive N which are an exact
	power of two or -1 for an error.

	* config/tc-hppa.c (pa_callinfo): Range check values provided for
	ENTRY_GR, ENTRY_FR and ENTRY_SR.  Properly adjust vaues before
	inserting them into the unwind table.

	* config/tc-hppa.c (NEEDS_FIXUP): Delete definition and all references.
	(hppa_gen_reloc_type): New object format dependent macro.
	(pa_ip): Delete tons of code which was either OBJ_SOM or OBJ_ELF
	conditional.  The code can (and will) be shared between SOM & ELF
	formats in the near future.
	(cons_fix_new_hppa, md_apply_fix_1): Likewise.
	(pa_build_unwind_subspace, process_exit, pa_exit): Likewise.
	(tc_gen_reloc): Use hppa_gen_reloc rather than an object format
	specific call.

	* config/tc-hppa.c (pa_comm): Set the segment for a common symbol
	to bfd_und_section.

	* config/obj-elf.h (obj_elf_version): Add extern prototype.

	* configure.in (hppa-*-bsd*): New configuration.
	BFD is always used for GAS generating SOM objects.

	* write.c (adjust_reloc_syms): Set sy_used_in_reloc if an
	adjustment is rejected by the target machine.

	* config/tc-hppa.c (pa_big_cons): Delete function and its
	declaration.  All callers changed to use pa_cons.

	* write.c (fixup_segment): Fix indention and open/close brace
	problem.

	From Pete Hoogenboom:
	* config/tc-hppa.c (md_atof): Return a NULL on success rather than
	an empty string.
1993-10-28 20:49:19 +00:00
Ian Lance Taylor
6121fb06ad * config/tc-a29k.c (md_begin): When opcodes are mashed together in
the table, require that the one without bit 0x1000000 set come
	first.  Require further that it be case 'b' or 'P'.  The a29k
	opcode table already meets these constraints.
	(machine_ip): When handling case 'i' or 'A', make sure that the
	appropriate opcode really exists by looking at the next entry in
	the opcode table.
1993-10-28 17:14:16 +00:00
Ian Lance Taylor
729f4bbaa8 * config/tc-m68k.c (m68k_ip): Adjust offsets for PC relative
fixups.  Add 6 for long 7.3 case, 2 for short 7.2 case.
1993-10-27 22:23:16 +00:00
Ian Lance Taylor
007ff46b2e * config/obj-ecoff.c (obj_ecoff_ent): Ignore an optional number
after a .ent directive.
1993-10-27 18:47:40 +00:00
Ian Lance Taylor
d1ee509baf Took case '>' out of macro_build again to avoid confusion. Use & 0x1f
on the shift count rather than % 32.
1993-10-27 16:54:54 +00:00
Ian Lance Taylor
56c96faae6 * config/tc-mips.c (macro_build): Handle '>' case (shift amount
between 32 and 63 for double shift instruction).
	(mips_ip): Likewise.
	(printInsn): Likewise.
1993-10-27 15:52:03 +00:00
Ian Lance Taylor
5694ad9319 * config/tc-ns32k.c (tc_aout_fix_to_chars): Output the symbol
number in the right place.  Untested.  Probably does not work for
	cross assembly.  From cagney@cs.adelaide.edu.au (Andrew Cagney).
1993-10-26 22:10:37 +00:00
Ian Lance Taylor
f3751617c3 * config/tc-m68k.c (md_apply_fix_2): Error if a short branch uses
an illegal offset of 0 or -1.
1993-10-26 21:58:41 +00:00
Ian Lance Taylor
fa20b8bfd5 * config/obj-elf.c (obj_elf_init_stab_section): Align .stab
section to a longword boundary.
1993-10-26 21:01:15 +00:00
Ken Raeburn
4da7942dbe Makefile.in, tc-hppa.c changes 1993-10-26 17:32:49 +00:00
Steve Chamberlain
8e5afd4f4f * config/tc-sh.c (build_Mbytes): Write the relocs to the correct
address. (md_assemble): Make error handling a bit more graceful.
	(md_apply_fix):  Don't warn on non aligned displacement.
1993-10-25 18:48:17 +00:00
Steve Chamberlain
2493403561 * config/tc-z8k.c (get_specific, built_bytes): Understand all the
aspects of lda.
1993-10-25 18:19:16 +00:00
Ken Raeburn
84678d1690 doc/Makefile.in, write.c, config/tc-sparc.* changes 1993-10-25 17:51:05 +00:00
Jim Wilson
52aa70b52d Add support for .dword pseudo op to mips port. 1993-10-24 23:52:09 +00:00
David D. Zuhn
ab0751c895 use lowercase "format" instead of Format/format 1993-10-24 05:25:35 +00:00
Ian Lance Taylor
8efed14f10 * input-scrub.c (physical_input_file, logical_input_file,
physical_input_line, logical_input_line): Made static.
	(as_where): Return current file name and line number, don't print
	them out.
	* messages.c (as_show_where): New static function.  Other
	functions use it instead of as_where.
	(as_bad_internal): New static function.
	(as_bad): Use as_bad_internal.
	(as_bad_where): New function, like as_bad but taking a file name
	and line number.
	* as.h (as_bad_where): Declare.
	(as_where): Change prototype for new arguments.
	* write.h (fixS): Added fields fx_file and fx_line.
	* write.c (fix_new_internal): Save file and line number in fix.
	(fixup_segment): Use as_bad_where, not as_bad.
	* input-file.c (f_in, file_name): Made static.
	* cond.c (struct file_line): Just use file and line fields.
	(s_else): Use as_where and as_bad_where, not get_file_line and
	set_file_line.
	(get_file_line, set_file_line): Removed.
	* listing.c (listing_newline): Use as_where.
	* config/obj-coffbfd.c (obj_coff_init_stab_section): Use as_where.
	* config/obj-ecoff.c (add_file): Use as_where.
	* config/obj-elf.c (obj_elf_init_stab_section): Use as_where.
	* config/tc-m68k.c (md_apply_fix_2): Use as_bad_where.
	* config/tc-mips.c (tc_gen_reloc): Use as_bad_where, not assert.
1993-10-22 19:15:20 +00:00
Ken Raeburn
efa0c22e67 Various arious PA changes from Utah.
V9 bugfix.
See changelog...
1993-10-21 20:03:19 +00:00
Ian Lance Taylor
7766838e96 * config/tc-sparc.c (md_parse_option): Accept and ignore -sparc
option, which is used by the SunOS make default .s.o rule.
1993-10-21 19:50:57 +00:00
Ian Lance Taylor
dff60b7d48 * config/tc-m68k.h (AOUT_MACHTYPE): Define to be external variable
m68k_aout_machtype.
	* config/tc-m68k.c (omagic): Remove obsolete and unused variable.
	(m68k_aout_machtype): New variable, if OBJ_AOUT.
	(md_assemble): Initialize m68k_aout_machtype based on
	current_architecture, if OBJ_AOUT.
	(md_parse_option): Remove obsolete reference to omagic.
1993-10-19 22:18:15 +00:00
Ian Lance Taylor
dd3f1f765f * config/tc-mips.c (md_pseudo_table): Ignore .livereg pseudo-op.
(s_option): Ignore .option O* and .option pic*.
	(s_ent): Skip whitespace between symbol and optional digit.
1993-10-14 21:06:52 +00:00
Ian Lance Taylor
5450813848 * app.c (do_scrub_next_char): Always accept 'x' and 'X' as escape
characters in state 6.
	* read.c (next_char_of_string): Accept \Xh* and \xh* where h* are
	hexidecimal digits.
1993-10-14 21:03:14 +00:00
Ian Lance Taylor
c17cd70926 * config/tc-i386.c (md_apply_fix_1): Make cross segment calls work
for ELF by hacking around bizarre bfd_perform_relocation behaviour
	that I don't dare change.
1993-10-14 20:54:09 +00:00
Ian Lance Taylor
ad660eb164 Thu Oct 14 11:33:25 1993 Michael Meissner (meissner@osf.org)
* config/tc-i386.c: (md_begin): Do not zero static arrays.  Don't
	call strchr for each character to see if it is a special char,
	instead add a second loop over special_chars.  Set alignment
	of text, data and bss sections to 4.
	(pi, te, pt, pe, ps): Add declarations so that DEBUG386 can be
	used again.
	(reloc): Don't return 8 and 16 bit non-PC relative relocations on
	ELF, since the ELF object format does not have these type of
	relocations.  Change the abort into as as_bad and return
	BFD_RELOC_NONE to silence compiler warnings.
	(md_assemble): Keep track of the instruction size.  Allow white
	space between the $ and the constant for compatibility with older
	gases and other assemblers.
	(i386_operand): Skip spaces between $ and expression.
	(tc_gen_reloc): Don't allow anything but 32 bit relocations on
	ELF.  Convert abort into an as_bad and assert into as_fatal.
1993-10-14 15:41:52 +00:00
Ken Raeburn
132239bfda obj-coffbfd change for wellfleet pic 1993-10-13 20:54:54 +00:00
Ian Lance Taylor
463b185190 * config/obj-ecoff.c (ecoff_build_symbols): Handle st_End symbol
for st_StaticProc just like st_Proc.
1993-10-13 18:53:03 +00:00
Ian Lance Taylor
b7cbb59ff6 * write.c (relax_and_size_all_segments): Moved #endif for OBJ_BOUT
so that OBJ_BOUT doesn't forget to adjust all the fragments in the
	.bss section.

Fixes critical PR 3600.
1993-10-13 18:04:53 +00:00
Ian Lance Taylor
f2a663d3a3 * config/tc-mips.c: If OBJ_ELF, include elf/mips.h.
(mips_regmask_frag): New static variable, if OBJ_ELF.
	(md_begin): If OBJ_ELF, create .reginfo section and set
	mips_regmask_frag to a frag.
	(mips_elf_final_processing): New function, if OBJ_ELF.  Set
	mips_regmask_frag to register mask information.
	* config/tc-mips.h (elf_tc_final_processing): New macro, defined
	if OBJ_ELF.
1993-10-12 21:31:29 +00:00
Ken Raeburn
2145a18385 messages.c (as_fatal): use myname in printed message 1993-10-12 15:48:22 +00:00
Ken Raeburn
9902404797 more null/empty string fixups 1993-10-12 08:45:49 +00:00
Steve Chamberlain
2dd4520949 fix for pr 3571
* config/tc-h8300.c (get_specific): Special action if 8 bit
	address seen. (check_operand): Don't complain if truncating top
	bits of an 8 bit address.  (build_bytes): Allow an immediate and
	an absolute in the same insn.
1993-10-11 23:48:55 +00:00
Ian Lance Taylor
f37449aaf3 * write.c (write_contents): Don't crash if seginfo is NULL.
* config/obj-ecoff.c (ecoff_frob_file): Write out register masks
	by modifying .reginfo section, not by directly modifying BFD
	backend data.
1993-10-11 21:40:10 +00:00
David D. Zuhn
fec552ce18 remove extern time() decl 1993-10-11 21:12:37 +00:00
Ken Raeburn
8d3be8030e * messages.c (as_fatal): Do mention that it's the assembler that
got the fatal error.
1993-10-11 20:17:28 +00:00
Ian Lance Taylor
1aa6938eb3 * config/tc-mips.c (mips_gprmask, mips_cprmask): New variables to
hold register masks.
	(md_begin): Initialize them to zero.
	(append_insn): Update mips_gprmask and mips_cprmask.  Also add
	register variables pinfo and prev_pinfo.
	* config/tc-mips.h (mips_gprmask, mips_cprmask): Declare.
	* config/obj-ecoff.c (ecoff_frob_file): If TC_MIPS, set gprmask
	and cprmask from mips_gprmask and mips_cprmask.
1993-10-08 20:01:10 +00:00
Ian Lance Taylor
8822543394 * config/tc-mips.h: Define TARGET_FORMAT if OBJ_ELF.
* config/tc-mips.c (GPOPT): Define if OBJ_ECOFF or OBJ_ELF.
	(various): Change all references to GP references to apply if
	GPOPT, not if OBJ_ECOFF.
	(s_change_sec): Rearrange somewhat.  If OBJ_ELF, use .rodata
	instead of .rdata.  If OBJ_ELF, set section flags for .rodata and
	.sdata sections.
	(s_frame, s_loc, s_mask): Comment out entire functions, rather
	than just body.  They're not used anyhow.
	* configure.in: Set cpu_type to mips for mips*.  Accept
	mips-*-elfl* and mips-*-elf*.
1993-10-08 18:24:41 +00:00
Ian Lance Taylor
17a0da33ca Thu Oct 7 18:36:29 1993 Michael Meissner (meissner@osf.org)
* config/obj-elf.c (obj_elf_common): Allow the alignment field to
	not be specified.
1993-10-08 17:15:03 +00:00
Ian Lance Taylor
abdad6bc5f * config/tc-mips.c (cons_fix_new_mips): New function. Turn
BFD_RELOC_64 into BFD_RELOC_32.
	* config/tc-mips.h (TC_CONS_FIX_NEW): Define.
	(cons_fix_new_mips): Declare.
1993-10-06 18:36:20 +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
4f5666c520 * read.c (big_cons): Handle "0" correctly.
* config/tc-mips.c (md_begin): Set target_big_endian correctly.
1993-10-04 21:13:48 +00:00
Ken Raeburn
31909d4099 configure.in: Alphabetize list of cpu type alternatives. Enable OS values of
"linux*elf*" and "linux*coff*" to select those formats, with linux emulation.
Don't bother checking for upper- or mixed-case versions of "ose".
1993-10-04 20:17:30 +00:00
Ken Raeburn
8208ab5a91 tc-m68k.c change 1993-10-04 20:10:50 +00:00
K. Richard Pixley
6cc87fbb75 correct a few mistakes found while extending the dissassembler. 1993-09-29 23:18:06 +00:00
Stan Shebs
8f3956b328 More Lynx support, plus better stabs-in-coff generation. 1993-09-28 19:22:08 +00:00
Ken Raeburn
43029a8f84 Whitespace/comment cleanup. Use PARAMS in tc-vax.c.
Make various routines return null pointer instead of empty string for
success indication.
1993-09-28 04:47:32 +00:00
Ken Raeburn
b9790da889 expr.c (expr) [DIFF_EXPR_OK]: Permit subtraction of symbols in different segs. 1993-09-27 04:23:13 +00:00
Ken Raeburn
b7318ac442 some 68k pic stuff 1993-09-27 03:57:58 +00:00
Ken Raeburn
c996b1994e minor tc-m68k.c changes 1993-09-25 09:32:32 +00:00
K. Richard Pixley
58f3e8a9db * config/tc-m88k.c (get_o6): new function.
(get_bf, get_cmp, get_cnd, get_cr, get_fcr, get_imm16, get_reg,
	  get_vec9, getval, get_pcr, calcop, match_name): make static and
	  prototype.
	  (s_file): remove extraneous forward decl.
	  (md_begin): add const to retval decl.
	  (calcop): cope with instructions without arguments.  Handle 'o'
	  type argument, the o6 field of the prot insn.
	  (md_estimate_size_before_relax): return a dummy value.
1993-09-24 19:47:59 +00:00
K. Richard Pixley
6d6b97b749 * config/m88k-opcode.h (m88k_opcodes): comment change; o6 field is
in bits 10 through 7.  flt.[dxs]s requires an r register in the
	  second argument.  New instruction lda.x.  New instruction muls
	  (alias for mul).
1993-09-24 19:41:51 +00:00
Ken Raeburn
6110df28cd obj-coffbfd relax_align change 1993-09-23 17:24:51 +00:00
Ian Lance Taylor
9bd0d6499c * read.c (get_stab_string_offset): Make non-static. Make
arguments const.  Don't align strings to 4 byte boundaries.
	* read.h: Declare get_stab_string_offset.
	* config/obj-elf.c (obj_elf_section): Set SEC_ALLOC as well as
	SEC_LOAD for progbits section.
	(obj_elf_init_stab_section): New function.
	(adjust_stab_sections): Add casts to avoid warnings.
	* config/obj-elf.h (INIT_STAB_SECTION): Call
	obj_elf_init_stab_section.
	(OBJ_PROCESS_STAB): Removed definition.
1993-09-20 23:29:42 +00:00
Ian Lance Taylor
80903ca67b * config/obj-elf.h (S_GET_SIZE): Define.
(obj_frob_forward_symbol): Define.
	* config/tc-i386.c (line_comment_chars): Initialize in all cases.
1993-09-17 22:16:29 +00:00
Ian Lance Taylor
1399802122 * tc.h: Declare tc_gen_reloc differently depending upong
RELOC_EXPANSION_POSSIBLE.
	* config/obj-elf.c (obj_elf_section): Only set flags when first
	creating the section.
1993-09-16 18:26:36 +00:00
Ian Lance Taylor
90397ff823 * config/obj-elf.c (obj_elf_data, obj_elf_text): New functions;
set previous_section and previous_subsection and then call s_data
	and s_text, respectively.
	(obj_pseudo_table): Add data and text.
	(obj_elf_section): Add SEC_LOAD to default initialization of
	flags.  Treat .rodata1 like .rodata.  Set SEC_LOAD as well as
	SEC_ALLOC for "alloc" string.  Don't bother trying to find the
	section; just use subseg_new.
1993-09-14 22:28:22 +00:00
Ian Lance Taylor
4f0bccc7d8 Some more gcc lint, and:
* read.c (change_to_section): Removed.  This is now done by
	subseg_new.
	(get_stab_string_offset): Rearranged somewhat.  Create the section
	using subseg_new.  Store the string index in seg_info, rather than
	in a static variable.  Force the first string to be empty.  Use
	frag_more rather than FRAG_APPEND_1_CHAR.
	(s_stab_generic): Rewrote.
	* subsegs.h (segment_info_type): Added stabu union.
	* subsegs.c (subseg_new): Initialize stab_string_size to 0.
	* config/obj-aout.c: Don't include aout/stab_gnu.h.
	(obj_aout_stab, obj_aout_desc): Removed.
	(obj_pseudo_table): Removed desc and stabX entries.
	* config/obj-bout.c: Same changes as config/obj-aout.c.
	* config/obj-bout.h (S_SET_TYPE): Define.
	(tc_bout_fix_to_chars): Declare.
	* config/obj-coff.c (obj_coff_stab): Removed.
	(obj_pseudo_table): Removed desc and stabX entries.
	* config/obj-coff.h (SEPARATE_STAB_SECTIONS): Define.
	* config/obj-coffbfd.c (current_stab_symbol): Removed.
	* config/obj-coffbfd.h (obj_symbol_type): Removed n_strx, n_type,
	n_other, n_desc and n_value fields.
	(S_{S,G}ET_{OFFSET,OTHER,TYPE,DESC}): Removed.
	(MAKE_STAB_SYMBOL): Removed.
	* config/obj-ecoff.c (obj_ecoff_stab): Renamed to ecoff_stab.
	Changed arguments and removed parsing code.
	(obj_pseudo_table): Removed stabX entries.
	* config/obj-ecoff.h (ecoff_stab): Declare.
	(OBJ_PROCESS_STAB): Define.
	* config/obj-elf.c: Don't include aout/stab_gnu.h.
	(obj_elf_stab, obj_elf_xstab, obj_elf_desc,
	elf_stab_symbol_string, elf_stab_symbol, obj_elf_stab_generic):
	Removed.
	(obj_pseudo_table): Removed desc, stabX and xstabs entries.
	(obj_elf_version): Use subseg_new, not bfd_make_section.  Don't
	set SEC_LOAD for .note section.
	(adjust_stab_sections): Get frag pointer from seg_info, rather
	than looking through frags.
	* config/obj-elf.h (S_{S,G}ET_{OTHER,TYPE,DESC}): Removed.
	(SEPARATE_STAB_SECTIONS, INIT_STAB_SECTION, OBJ_PROCESS_STAB):
	Define.
	* config/obj-vms.c (obj_aout_stab): Removed.
	(obj_pseudo_table): Removed stabX entries.
	* config/obj-vms.h (S_SET_TYPE): Define.
1993-09-14 17:58:35 +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
David Edelsohn
54e3e909d2 config/tc-sparc.h (LOCAL_LABEL): Remove test for name[0] == 'L'. 1993-09-13 20:16:03 +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
Ken Raeburn
892a3ff190 gcc -Wall cleanups from Utah 1993-09-09 21:53:03 +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
Ian Lance Taylor
414b2c8f7a * config/obj-elf.c (obj_elf_section): Set SEC_LOAD when using
default flag values.
1993-09-08 19:11:47 +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
81b407c990 PA and ELF changes 1993-09-03 22:38:18 +00:00
Ian Lance Taylor
ff3a5c1866 Reverted previous change, and added this one instead:
* config/tc-mips.c (macro_build): Accept 'z', and ignore it.
	(macro): Use "z,s,t" for div instructions to match corresponding
	change in opcode table.
	(mips_ip): Added 'z'--must be zero register.
1993-09-02 17:19:14 +00:00
Ian Lance Taylor
1849d6464f * config/tc-mips.c (macro): If $0 is destination of divide, just
generate the simple machine instruction, for compatibility with
	the MIPS assembler.
1993-09-02 14:46:54 +00:00
Ken Raeburn
e96d50d03c write.c, configure.in changes 1993-09-01 19:58:44 +00:00
K. Richard Pixley
56607c4e13 add an alias for data section type 1993-09-01 19:20:54 +00:00
K. Richard Pixley
37d719bb44 recognize m88110 1993-08-25 23:16:39 +00:00
Ken Raeburn
2834499323 more hppa elf support from utah 1993-08-25 20:15:17 +00:00
Ian Lance Taylor
6e8dda9c46 * config/tc-mips.c (set_at): Added unsignedp argument. Use
load_register.
	(set_at_unsigned): Removed; changed callers to use set_at.
	(load_register): Removed unused ip argument.  Changed callers.
	(append_insn): Don't swap branch and branch likely.
	(macro_build): Handle 'u'.
	(load_register): Handle 64 bit constants.
	(macro): Added M_DABS, removed M_ABSU.  Numerous changes to
	support 64 bit constants.
	(mips_ip): Use hex constants in range checks for clarity.
	(md_number_to_chars): Support 8 byte values.
1993-08-23 17:04:49 +00:00
K. Richard Pixley
1e35cd8f6d comments for tc-m88k.h change 1993-08-20 23:52:35 +00:00
Ian Lance Taylor
8358c818ff * config/tc-mips.c (mips_isa): New static variable.
(md_begin): Initialize mips_isa based on TARGET_CPU.  Don't sanity
	check macros.  Set text alignment and GP size here.
	(md_assemble): Don't set text alignment and GP size here.
	(append_insn): Don't insert NOPs for load delays if mips_isa >= 2.
	Use the right mask and shift for WRITE_FPR_T and WRITE_FPR_S.  Add
	a NOP after a branch likely.
	(mips_emit_delays): Don't insert NOPS for load delays if mips_isa
	>= 2.
	(macro): Support r6000 and r4000 macros.
	(mips_ip): Check insn ISA level against mips_isa before using it.
	Added 'x' case for ignored register.
	(md_parse_option): Handle -mipsN and -mcpu=XX.
1993-08-20 15:45:50 +00:00
Ken Raeburn
c8d4cda17c tc-i386, tc-sparc, obj-elf, tc.h changes 1993-08-20 05:29:56 +00:00
Ken Raeburn
4915cac01d obj-elf, write, symbols, read changes 1993-08-18 21:21:23 +00:00
Ian Lance Taylor
19ed896035 * config/tc-mips.c (append_insn): Don't swap branch instructions
if .set nobopt or .set volatile.
	(gp_reference): .lit8 and .lit4 are accessed via the GP register.
	(macro): Added cases M_LI_S, M_LI_SS.  Fixed M_LI_D and M_LI_DD.
	(mips_ip): Added cases 'F', 'L', 'f', 'l' for floating point.
	* config/obj-ecoff.c: Renamed some variables to avoid shadow
	warnings.
1993-08-18 19:45:17 +00:00
David D. Zuhn
ae8c28f8fc use coffbfd for z8k 1993-08-16 21:17:04 +00:00
Ian Lance Taylor
0aa07269cf * config/tc-mips.c (mips_ip): Suggested by
davidj@ICSI.Berkeley.EDU (David Johnson): Don't accept symbolic
	names for 'E' and 'G' argument types (coprocessor registers) and
	don't warn if $1 is used on the coprocessor.
1993-08-12 15:52:57 +00:00
Ken Raeburn
6a9cf6fa53 * write.c (merge_data_into_text): Define only if BFD_ASSEMBLER is
defined or BFD is not.
	(relax_and_size_all_segments): Declare local variable fragP.
1993-08-09 17:40:58 +00:00
Ken Raeburn
b114e49215 changes to write.c, obj-elf.c, tc-sparc.c 1993-08-06 19:27:43 +00:00
Ian Lance Taylor
3d2330f897 * configure.in (mips-*-riscos*, mips-*-sysv*): New (untested)
targets, using ecoff and mips-big.
1993-08-06 18:46:17 +00:00
Ian Lance Taylor
ac32a7e7df * config/tc-mips.c (mips_ip): From davidj@ICSI.Berkeley.EDU (David
Johnson): Added case for 'C' for coprocessor instruction codes.
1993-08-06 15:14:31 +00:00
Ken Raeburn
273aa9471d read.c change; yesterdays elf/sparc changes 1993-08-05 17:14:11 +00:00
Ian Lance Taylor
4573d18601 * config/obj-ecoff.c: Updated for BFD ECOFF changes. Now gets the
swapping routines and external structure sizes via the
	ecoff_backend information.  No longer includes coff/mips.h.
1993-08-03 20:25:58 +00:00
Ian Lance Taylor
4c7ff23d32 * config/obj-ecoff.c (get_tag): Save tag name in permanent memory
and in hash_ptr->string.
1993-08-02 22:28:25 +00:00
Ian Lance Taylor
b4703fa618 * app.c (do_scrub_next_char): Reset state to 0 after .appline if
file name is not seen.
1993-08-02 21:39:05 +00:00
Ian Lance Taylor
ced16de6bd * write.c: Don't use short int in a prototype. 1993-07-30 05:22:12 +00:00
Ian Lance Taylor
ab4d34cd91 * expr.c (operand): Make return value simply depend on contents of
returned expression.
1993-07-30 05:06:58 +00:00
David D. Zuhn
0ccc65ec79 fix ANSI decl conflicts 1993-07-30 01:40:25 +00:00
Ian Lance Taylor
7fe1797032 * config/tc-m68k.c (m68k_ip): If we have a normal constant when we
expect a bignum, turn it into a bignum.  Output extra zeroes
	before a short bignum, rather than after.
1993-07-28 15:36:45 +00:00
Ken Raeburn
0c2734c384 symbols.c: Use DEBUG_SYMS instead of DEBUG. 1993-07-27 19:58:39 +00:00
Ian Lance Taylor
e9f108bcba mips_optimize is also affected by -g. 1993-07-27 18:36:19 +00:00
Ian Lance Taylor
4fe45d2254 * config/tc-mips.c (mips_optimize): New static variable.
(append_insn): If ! mips_optimize, don't swap branches.
	(md_parse_option): If -Ox, set mips_optimize accordingly.
1993-07-27 15:47:11 +00:00
K. Richard Pixley
de9310b92b * Makefile.in (clean): if testsuite does not exist, then skip it. 1993-07-27 01:05:23 +00:00
Ken Raeburn
7767e7e9c8 obj-elf.c, tc-sparc.c, symbols.c changes 1993-07-23 17:18:20 +00:00
Ian Lance Taylor
2a2d3d08d6 * write.c (fix_new_exp): Handle a O_uminus expression. 1993-07-23 03:32:57 +00:00