Commit graph

647 commits

Author SHA1 Message Date
Ian Lance Taylor
2f06dd5c75 Remove assertion that was not intended to be checked in. 1994-04-14 17:59:14 +00:00
Ian Lance Taylor
ecd4ca1cef * config/tc-mips.h (DIFF_EXPR_OK): Define.
* config/tc-mips.c (macro_build): Permit BFD_RELOC_PCREL_LO16 for
	certain cases of 'i', 'j' and 'o'.  Change 'u' to take an
	argument, the reloc type.
	(load_register): Pass reloc type to macro_build for 'u'.
	(macro): Likewise.  For M_LA_AB permit a difference expression
	when generating embedded PIC code between an arbitrary symbol and
	a symbol in the .text section.
	(mips_force_relocation): Force BFD_RELOC_PCREL_HI16_S and
	BFD_RELOC_PCREL_LO16 to be emitted.
	(md_apply_fix): Check that most relocs are not PC relative.
	Handle BFD_RELOC_PCREL_HI16_S and BFD_RELOC_PCREL_LO16.
	(tc_gen_reloc): Change #error to as_fatal.  Handle
	BFD_RELOC_PCREL_LO16 and BFD_RELOC_PCREL_HI16_S.
1994-04-14 17:39:55 +00:00
Jeff Law
caed9e8251 * config/tc-hppa.c (pa_procend): Handle case where label was
defined after the .proc directive.
1994-04-11 16:11:12 +00:00
Jeff Law
0521099057 * config/tc-hppa.c (pa_procend): Give an error if we encounter a
procend for a procedure without a name.
1994-04-11 16:02:12 +00:00
Ken Raeburn
38d693ff69 note deleted .mt files 1994-04-07 23:02:49 +00:00
Ian Lance Taylor
1c803e5223 * config/tc-mips.c (macro): Pass NULL for expression argument to
macro_build for nori case.
	(SWITCH_TABLE): Define.
	(mips_force_relocation): Force a relocation for a switch table
	entry.
	(md_apply_fix): Write switch table entry value into file.
	(tc_gen_reloc): Use BFD_RELOC_GPREL32 for a switch table entry,
	and set the addend to the difference between the reloc address and
	the subtrahend.
1994-04-07 18:33:09 +00:00
Jeff Law
0b503989f5 * config/tc-hppa.h (elf_tc_symbol): Delete. No longer used.
(elf_tc_make_sections): Likewise.
        (hppa_tc_make_sections, hppa_tc_symbol): Delete extern decls.

        * config/tc-hppa.c (hppa_tc_make_sections): Delete function.
        (hppa_tc_symbol): Likewise.

        * config/obj-elf.c (elf_frob_file): Delete elf_tc_symbol and
        elf_tc_make_sections stuff.  It was there to support PA braindamage
        which has been fixed, and in the case of elf_tc_make_sections is
        redundant with elf_tc_final_processing.
1994-04-07 17:39:16 +00:00
Ian Lance Taylor
f3645945cf * config/tc-mips.c (mips_ip): For case 'o', when generating
embedded PIC code, accept the difference between two local symbols
	as being constant.
	(mips_force_relocation): Only force a reloc to be generated for a
	PC relative fixup.
	(md_apply_fix): For BFD_RELOC_32 and BFD_RELOC_LO16, put the fixup
	value into the file if the fixup will not generate a reloc.
1994-04-05 19:57:32 +00:00
Ken Raeburn
a7129c48cf (s_reserve): If section passed isn't bss, don't spew remainder of input file in
error message.
(tc_gen_reloc): If bfd_reloc_type_lookup returns null, print error
message with reloc type and try to process remainder of file.
1994-04-05 18:16:37 +00:00
Jeff Law
79381848ca * config/tc-hppa.c (tc_gen_reloc): Fix thinko in ELF version. 1994-04-05 00:06:46 +00:00
Ian Lance Taylor
1e147242d7 * config/tc-ppc.c (ppc_size): New static variable.
(ppc_arch): Check for PPC_OPCODE_PPC before PPC_OPCODE_POWER.
	(md_begin): If an instruction has a size specific flag set, only
	add it if we are assembling that size.
1994-04-04 16:42:16 +00:00
Ian Lance Taylor
7ab2e983d6 * config/tc-sparc.c (tc_gen_reloc): Add a gruesome hack to get
cross section PC relative relocs right for COFF and ELF.
1994-03-31 21:54:06 +00:00
Ken Raeburn
75d20ac894 * config/obj-coff.h (SEPARATE_STAB_SECTIONS): Always define.
(OBJ_PROCESS_STAB): Don't define.
1994-03-28 19:40:53 +00:00
Ian Lance Taylor
882bdc6952 Mon Mar 28 12:35:00 1994 David Edelsohn (edelsohn@npac.syr.edu)
* config/tc-ppc.c (md_parse_option): Add -mpwrx (POWER/2 aka
	RIOS2), -mpwr (POWER aka RIOS1), -mppc (PowerPC aka MPC603/604),
	and -many (all architectures).
1994-03-28 17:38:39 +00:00
Jeff Law
de3ffc7aef * config/tc-hppa.c (tc_gen_reloc): Set addend for relocation
involving a function symbol which is not a plabel to zero.
        (md_apply_fix): Never pass a function symbol to field_adjust.
1994-03-27 22:05:21 +00:00
Ian Lance Taylor
645f842c99 * config/obj-aout.c (obj_aout_frob_symbol): If N_EXT is set for an
N_INDR symbol, set BSF_EXPORT and clear BSF_LOCAL.
1994-03-25 22:53:40 +00:00
Ian Lance Taylor
5b63f465fc * config/tc-mips.c (append_insn): If EMBEDDED_PIC, don't swap a
branch with an instruction that uses $at, in case the branch is
	later expanded.
	(macro): If EMBEDDED_PIC, case M_JAL_A may use $at.
	(md_pcrel_from): If not OBJ_AOUT, return 4 for an undefined symbol
	to make it pcrel_offset.
	(tc_gen_reloc): If not OBJ_AOUT, set the reloc addend to
	reloc->address; another gruesome hack to get gas reloc handling to
	do the right thing.
1994-03-25 22:40:44 +00:00
Ian Lance Taylor
7dfa376e9b Handle .gpword and .cpadd only for SVR4_PIC, not != NO_PIC. Still
covered by last ChangeLog entry.
1994-03-23 00:43:48 +00:00
Ian Lance Taylor
d9aba8051e * config/tc-mips.c (enum mips_pic_level): New enum.
(mips_pic): Change from int to enum mips_pic_level.  Change all
	uses (0 becomes NO_PIC, 2 becomes SVR4_PIC).
	(load_address): Handle EMBEDDED_PIC.
	(macro): Handle EMBEDDED_PIC in all PIC cases.
	(md_parse_option): Accept -membedded-pic to use EMBEDDED_PIC.  If
	OBJ_ELF, accept -KPIC and -call_shared to use SVR4_PIC and accept
	-non_shared to use NO_PIC (this is how the Irix 5 assembler
	works).  Do not permit -G with SVR4_PIC.
	(s_abicalls): Warn if -G was used, and force -G 0.
	(tc_gen_reloc): Set reloc->addend to 0 for a PC relative reloc for
	anything but a.out, not just for ELF.  For ECOFF, don't generate a
	BFD_RELOC_16_PCREL_S2 reloc unless using EMBEDDED_PIC.
1994-03-22 20:27:58 +00:00
Ken Raeburn
c37f6138d4 * Makefile.in (config-stamp): If `defs' is defined, emit a preprocessor
directive to create a macro named by this value into config.new; don't
explicitly go for BFD_ASSEMBLER.
* configure.in: Define `defs', not `BFDDEF'.  Set it to MANY_SEGMENTS for any
obj-coffbfd target.
* config/obj-coffbfd.h (BFD_HEADERS, BFD): Define.
* config/i386coff.mt (TDEFINES): Don't define BFD, MANY_SEGMENTS, BFD_HEADERS.
(LOCAL_LOADLIBES): Deleted.
* config/m68kcoff.mt (TDEFINES): Don't define those macros.
* config/m88kcoff.mt (TDEFINES): Ditto.
* config/ebmon29k.mt: Deleted.
* config/h8300hds.mt: Deleted.
* config/ic960coff.mt: Deleted.
* config/sparc.mt: Deleted.
* config/h8300.mt (LOCAL_LOADLIBES, TDEFINES): Deleted.
* config/h8500.mt (LOCAL_LOADLIBES, TDEFINES): Deleted.
* config/sh.mt (LOCAL_LOADLIBES, TDEFINES): Deleted.
* config/z8k.mt (LOCAL_LOADLIBES): Deleted.
(TDEFINES): Don't define the coffbfd macros.

* Makefile.in: Insert makefile fragments before OBJS definition.
(OBJS): Add $(TE_OBJS).
1994-03-20 21:13:59 +00:00
Ken Raeburn
a9997275f9 (TDEFINES): Fixed typo (MANY_SECTIONS, not MANY_SEGMENTS). 1994-03-19 01:26:55 +00:00
Jeff Law
49ccc55510 * config/tc-hppa.c (pa_import): Correctly handle importing of an
already defined symbol.
1994-03-17 21:37:42 +00:00
Jeff Law
c38c91dadb * config/tc-hppa.c (pa_equ): Handle both .reg and .equ correctly. 1994-03-17 00:49:30 +00:00
Jeff Law
f2ada9106d * config/tc-hppa.c (pa_callinfo): Accept "millicode" as an
argument to a .callinfo directive.  Don't loop forever on errors.
1994-03-16 22:42:51 +00:00
Ian Lance Taylor
d6e6bc1c52 * config/obj-coffbfd.c (adjust_stab_section): Initialize
stabstrseg to SEG_UNKNOWN, not -1.  After loop, check whether it
	is not SEG_UNKNOWN rather than checking whether it is >= 0.
1994-03-16 22:22:17 +00:00
Ian Lance Taylor
23dc1ae33d * config/tc-mips.c (mips_align): Take new argument, label, and use
it instead of global insn_label.
	(s_align, s_cons, s_float_cons, s_gpword): Save insn_label before
	call to mips_emit_delay and pass it to mips_align.
1994-03-16 22:16:02 +00:00
Ken Raeburn
54ce399a27 keep ic960coff.mt 1994-03-15 03:36:27 +00:00
Ken Raeburn
abf434d83d (VMS_Initialized_Data_Size): Cache symbol values to reduce number of lookups
with S_GET_VALUE.  Skip debug symbols to avoid "a really nasty bug".  (From
Holger Teutsch, holger@botbso.rhein-main.de.)
(VMS_write_object_file): For "__vt.*" symbols, set S_GET_OTHER field.  (Also
from Holger Teutsch.)  Watch for a would-be register mask that spans frags.
1994-03-15 03:05:24 +00:00
Ken Raeburn
8304c303d6 (obj_coff_line): Set symbol lnno field with this_base, not line_base. (Patch
from Andreas Arens, ari@obelix.av.rwth-aachen.de.)
1994-03-15 03:02:17 +00:00
Ken Raeburn
7d5366dd28 Include aout/stab_gnu.h.
(N_GSYM, ..., N_LENG): Deleted.
(NO_RELOC): Undefine before defining as part of enum reloc_type.
1994-03-11 23:07:26 +00:00
Ken Raeburn
c17f46667a (Close_VMS_Object_File): Add comment pointing out some code that doesn't belong
in this file.
1994-03-11 23:07:00 +00:00
Ian Lance Taylor
be22008b2c * config/tc-mips.c (mips_ip): Accept numbers between 0x8000 and
0xffff for 'j' to be compatible with MIPS assembler.  These
	numbers are actually treated as negative.
1994-03-11 23:00:17 +00:00
Ken Raeburn
40cd35fffd Handle Alpha load-immediate-FP pseudo-instructions:
* config/alpha-opcode.h (ldif, ldig, ldis, ldit): New patterns.
* config/tc-alpha.c (lit8_sec, lit4_sec, lit8_sym, lit4_sym): New variables.
(create_literal_section): New function.
(create_lita_section): Now a macro.
(get_lit8_offset, get_lit4_offset): New functions.
(maybe_set_gp): New function.
(select_gp_value): Call it.
(load_expression): Preserve addend if symbol is a section symbol.
(alpha_ip): Handle new operand type `F' for floating-point constants; store
them in .lit{4,8} sections.
(alpha_ip, case 'G'): Emit LITUSE relocations for symbol exprs.
1994-03-09 02:44:00 +00:00
Ken Raeburn
055a75ef75 * config/obj-coff.c: Minor formatting/stylistic changes, plus:
(obj_coff_section): Declare.
(obj_pseudo_table): Make it available only if MANY_SECTIONS.
(obj_symbol_to_chars) [CROSS_COMPILE]: Some attemps to make this work.  It
still doesn't.  It now fails to compile, instead of silently compiling to do
nothing.
* config/obj-coff.h (SEPARATE_STAB_SECTIONS): Define only if MANY_SECTIONS.
(OBJ_PROCESS_STAB) [! MANY_SECTIONS]: New macro, just emits a warning.
1994-03-09 02:42:57 +00:00
Ian Lance Taylor
8ea7f4e854 * config/tc-mips.c (load_address): When calling frag_grow, allow
for the (up to) two nops which may be inserted by append_insn if
	mips_optimize is 0.
	(macro): Likewise.
1994-03-07 21:12:26 +00:00
Jeff Law
fb338f1d79 * config/tc-hppa.c: Add a few casts to make HP C compiler happy.
* config/obj-som.c (obj_som_version, obj_som_copyright): Be prepared
        to handle an error from bfd_som_attach_aux_hdr.
1994-03-02 20:02:17 +00:00
Ken Raeburn
30869211ae (md_atof): Omit warning about FP values.
(line_comment_chars): Add ! to list.
(md_apply_fix): Do process 32- and 64-bit relocations.
1994-02-28 21:13:23 +00:00
Ken Raeburn
c535f6bca6 * configure.in (i960-*-coff, i960-*-vxworks5.*): Use coffbfd, and gas_target
ic960coff.
* config/ic960coff.mt: New file.
* config/obj-coffbfd.h [TC_I960]: Include coff/i960.h.
(TARGET_FORMAT) [TC_I960]: Use coff-Intel-little.
* config/te-ic960.h (CROSS_COMPILE): Don't undef this.  We'll always build
little-endian object files.
* config/tc-i960.c (md_reloc_size): Don't define at all if BFD or
BFD_ASSEMBLER is defined.
(mem_fmt): Since COFF doesn't handle callx relocations yet, treat them like
normal 32-bit relocations.
(md_apply_fix): For callx relocations, store zero.
(tc_bout_fix_to_chars): Store symbol idx for all callx relocations, regardless
of link-relax setting.
(tc_coff_fix2rtype, tc_coff_sizemachdep): New functions.
(i960_handle_align) [! OBJ_BOUT]: If link-relax option is selected, print an
error message and clear it.
* config/tc-i960.h (BFD_ARCH, COFF_FLAGS, COFF_MAGIC, TC_COUNT_RELOC,
TC_COFF_FIX2RTYPE, TC_COFF_SIZEMACHDEP, tc_fix_adjustable): New macros.
(tc_coff_fix2rtype, tc_coff_sizemachdep): Declare.
1994-02-28 21:11:17 +00:00
Ken Raeburn
442f17dc56 (obj_coff_lcomm): Put "#if 0" around the unused parts (most of the function).
(obj_coff_init_stab_section): Cast alloca result.
1994-02-28 21:06:26 +00:00
Jeff Law
e03095c9bb * config/tc-hppa.c (hppa_tc_symbol): Call PA ELF BFD version.
(hppa_tc_make_sections): Likewise.
        (pa_build_symextn_section): Delete unused function.
        (hppa_tc_make_symextn_section): Likewise.
        (pa_export): Delete call to pa_build_symextn_section.

        * config/tc-hppa.h (hppa_tc_symbol): Add extern decl.
        (elf_hppa_final_processing): Delete extern decl.
        (hppa_tc_symbol): Delete extern decl.
1994-02-26 04:57:57 +00:00
Ian Lance Taylor
3919ffeb06 * config/obj-coffbfd.c (fill_section): Correct test for whether to
fill a section (from Minh Tran-Le <TRANLE@intellicorp.com>).
1994-02-25 21:16:56 +00:00
Jeff Law
cb6af92833 * config/ho-hppaosf.h: Fix braino in test for ANSI-C. 1994-02-24 15:11:19 +00:00
Ken Raeburn
c9c45af14e this is i386-mach3 *host* support (not target like in last mistaken msg)... 1994-02-22 18:09:19 +00:00
Ken Raeburn
75ec0c908b keep te-mach.h 1994-02-22 17:57:49 +00:00
Ian Lance Taylor
380fa957e5 * config/obj-coffbfd.c (write_object_file): use bfd_get_error (),
not bfd_error.
	* config/obj-elf.c (elf_frob_file): Likewise.
1994-02-22 03:49:59 +00:00
Ian Lance Taylor
c8d02404ea * config/ho-hpux.h (BROKEN_ASSERT): Define if not __GNUC__. 1994-02-21 23:17:59 +00:00
Ken Raeburn
5efa30faad keep new te-mach.h 1994-02-18 22:04:40 +00:00
Ken Raeburn
06471862ca First attempt at i386-mach3 support.
te-mach.h: New file.
obj-aout.c (obj_aout_frob_file): New function.
obj-aout.h (obj_aout_frob_file): Declare it.
(frob_file): New macro.
tc-i386.c (md_apply_fix_1) [TE_Mach]: Don't adjust pcrel32 relocations.
tc-i386.h (TARGET_FORMAT) [TE_Mach]: Use a.out-mach3.
1994-02-18 19:57:35 +00:00
Ian Lance Taylor
4045fbb497 * config/tc-i386.c (md_pseudo_table): Remove "zero".
* config/tc-m88k.c (md_pseudo_table): Likewise.
1994-02-10 16:27:34 +00:00
Stan Shebs
66c774bb3e Wed Feb 9 09:42:45 1994 Stan Shebs (shebs@andros.cygnus.com)
* config/obj-coffbfd.c (obj_coff_init_stab_section): Use memset
	instead of memcpy to zero the initial stab symbol, duh.
	* config/obj-elf.c (obj_elf_init_stab_section): Ditto.
	* config/obj-som.c (obj_som_init_stab_section): Ditto.
1994-02-09 17:47:40 +00:00
Ken Raeburn
cf272f0244 (load_expression): Parenthesize operations in range checking, to avoid
precedence questions.

(addr32): New static variable.
(md_parse_option): Set it for "-32addr".
(load_symbol_address): If addr32 is set, use ldl instead of ldq.
1994-02-07 21:12:03 +00:00
Ken Raeburn
4a6e1a39e7 * tc-alpha.c (md_section_align): Change second argument and
return type to valueT, to agree with tc.h.
(alpha_do_align): Local static array nop_pattern is now unsigned
char, to avoid overflow warnings.
* tc-alpha.h (md_section_align): Delete declaration.

* obj-ecoff.c (ecoff_frob_file): Ensure that ecoff_data for
output bfd is non-null before indirecting through it.

Crock to get GP set right:
* tc-alpha.c (alpha_frob_ecoff_data): Renamed from alpha_frob_file.
* tc-alpha.h (tc_frob_file): Macro deleted.
* obj-ecoff.c (ecoff_frob_file) [TC_ALPHA]: Call alpha_frob_ecoff_data, then
fill in optional-header info with gp value and register masks.
1994-02-07 10:11:43 +00:00
Stan Shebs
41b5ef0f76 Sat Feb 5 12:30:32 1994 Stan Shebs (shebs@andros.cygnus.com)
* config/obj-coffbfd.c (obj_coff_init_stab_section): Zero the
	initial stab symbol after allocating it.
	* config/obj-elf.c (obj_elf_init_stab_section): Ditto.

This fixes a critical bug observed in Q4 for Lynx.
1994-02-05 21:45:51 +00:00
Ian Lance Taylor
af46c203df New files for PowerPC/POWER (RS/6000) support. 1994-02-05 05:35:11 +00:00
Ian Lance Taylor
11c0749600 Revert last change. 1994-02-04 03:17:30 +00:00
Ian Lance Taylor
fdb3408e12 * config/tc-mips.c (md_apply_fix): If this is an undefined symbol,
subtract the value from fx_addnumber to since
	bfd_perform_relocation is going to add it in.
1994-02-04 02:32:54 +00:00
Ian Lance Taylor
1051c97f63 * config/tc-mips.c (file_mips_isa): New static variable.
(md_begin): Set it.
	(s_mipsset): Add support for .set mipN to set the ISA level.
1994-02-02 17:06:24 +00:00
Ken Raeburn
5ca42ea386 * config/ho-i386aix.h: Include sys/types.h and stdlib.h, not ho-sysv.h. Based
loosely on a patch from Minh Tran-Le.
1994-02-02 00:32:10 +00:00
Ian Lance Taylor
8bbad6fda8 * config/tc-mips.c (mips_ip): Make an unsupported instruction a
warning, not an error.
1994-02-01 23:10:05 +00:00
Ian Lance Taylor
96a8876071 * config/obj-coffbfd.c (symbol_to_chars): bfd_coff_swap_aux_out
now takes more arguments.
1994-02-01 17:18:42 +00:00
Ian Lance Taylor
257df7914d * config/obj-coff.c (dot_text_symbol, dot_data_symbol,
dot_bss_symbol): Don't define if BFD_ASSEMBLER.
	(obj_symbol_to_chars): bfd_coff_swap_aux_out now takes more
	arguments.
	(coff_line_base): Renamed from line_base.  Changed all uses.
	(coff_add_linesym): Renamed from add_line_sym.  Made non-static.
	Changed all uses.
	* config/obj-coff.h: If TC_PPC, include coff/rs6000.h.
	(S_SET_STORAGE_CLASS, S_GET_STORAGE_CLASS): Declare if
	BFD_ASSEMBLER.
	(coff_line_base): Declare.
	(coff_add_linesym): Declare if BFD_ASSEMBLER.
1994-02-01 17:17:52 +00:00
Ken Raeburn
4242632039 (Already checked in write.c and config/tc-alpha.c, but no log msg went
out because $CVSROOT was wrong...)

	* write.c (write_object_file): If tc_frob_file is defined, call it
	just before calling obj_frob_file.
	* config/tc-alpha.c (alpha_gp_value): Renamed from gp_value
	(references changed), and made non-static.
	(getExpression): Return void.
	(select_gp_value): Abort if gp_value is non-zero.  Delete call to
	non-existent bfd_set_gp_value.
	(alpha_validate_fix): Function deleted.
	(alpha_frob_symbol): Function deleted.
	(alpha_local_label): Function deleted.
	(alpha_frob_file): Renamed from alpha_end.
	* config/tc-alpha.h (alpha_frob_symbol, alpha_validate_fix,
	alpha_local_label, alpha_end): Declarations deleted.
	(alpha_gp_value, alpha_frob_file): Declare.
	(tc_frob_symbol, TC_VALIDATE_FIX, md_end): Macros deleted.
	(LOCAL_LABEL): Move code here from tc-alpha.c:alpha_local_label.
	(md_convert_frag): Simplified slightly.
	(tc_frob_file): New macro.
1994-01-30 23:26:55 +00:00
Ken Raeburn
c79e67a3b7 * write.c (write_object_file): If tc_frob_file is defined, call it
just before calling obj_frob_file.
* config/tc-alpha.c (alpha_gp_value): Renamed from gp_value (refs changed), made
non-static.
(getExpression): Return void.
(select_gp_value): Abort if gp_value is non-zero.  Delete call to non-existent
bfd_set_gp_value.
(alpha_validate_fix): Function deleted.
(alpha_frob_symbol): Function deleted.
(alpha_local_label): Function deleted.
(alpha_frob_file): Renamed from alpha_end.
* config/tc-alpha.h (alpha_frob_symbol, alpha_validate_fix, alpha_local_label,
alpha_end): Declarations deleted.
(alpha_gp_value, alpha_frob_file): Declare.
(tc_frob_symbol, TC_VALIDATE_FIX, md_end): Macros deleted.
(LOCAL_LABEL): Move code here from tc-alpha.c:alpha_local_label.
(md_convert_frag): Simplified slightly.
(tc_frob_file): New macro.
1994-01-30 23:21:55 +00:00
Ian Lance Taylor
1f029792a2 * config/obj-coff.c (obj_coff_section_header_append): Do not
declare if BFD_ASSEMBLER.
	(stack_pop): Correct test for stack underflow.
	(obj_coff_endef, obj_coff_dim, obj_coff_line, obj_coff_size,
	obj_coff_scl, obj_coff_tag, obj_coff_type, obj_coff_val): Declare
	type of ignored argument to avoid gcc warning.
	(align): Removed unused function.
1994-01-28 16:30:29 +00:00
Ken Raeburn
0b233d31df removed rcs cruft 1994-01-28 05:38:41 +00:00
Ken Raeburn
5749c49700 New Alpha support files, based on files from CMU.
Still to do:
 - fix floating-point handling
 - figure out if we can adapt to using ../opcodes/alpha-opc.h
 - gcc bootstrap testing
 - 32-bit mode support?
 - test cross-assembly
1994-01-28 01:37:02 +00:00
Ken Raeburn
98c6bbbe43 * as.h: If __GNUC__ and inline are both undefined, define inline away.
* write.c (cvt_frag_to_fill): Don't assume that fr_var for rs_align or rs_org
frags will be 1.
(relax_segment): For rs_align, if fr_var is not 1, complain if
required padding is not a multiple of the size of the pad pattern.
(fixup_segment): Leave gp-relative relocations alone.  For pcrel relocations
referring to the same segment, clear fx_pcrel when clearing fx_addsy.
* as.h: Adjust comments on rs_align.

* write.c, config/obj-{aout,bout,coff*}.c, config/tc-sparc.c: Query the fx_done
field instead of fx_addsy to see if the fixup still needs to be applied.  Set
fx_done and clear fx_addsy both, for now.  If TC_HANDLES_FX_DONE isn't defined,
assume md_apply_fix will only clear fx_addsy, and set fx_done accordingly after
returning.
* config/tc-sparc.h (TC_HANDLES_FX_DONE): Define.

* config/obj-coff.c (dot_text_symbol, dot_data_symbol, dot_bss_symbol): Defined
here, static.

* config/obj-aout.c [BFD_ASSEMBLER]: Undef NO_RELOC before including aout/aout64.h.

* write.c (write_object_file): If EMIT_SECTION_SYMBOLS is false, don't write
out a section symbol even if it's used in a relocation; assume relocations will
handle section numbers somehow.  Rename "punt_it" label to "punt_it_if_unused"
to reflect it's true use.
(EMIT_SECTION_SYMBOLS): Default to 1.
(adjust_reloc_syms): Don't create a new symbol for an absolute
reference; just use the absolute section symbol.
(write_relocs): Make printout of reloc values dependent on flag DEBUG3, not
DEBUG2.
* config/obj-aout.h (EMIT_SECTION_SYMBOLS): Define as 0.
* config/obj-ecoff.h (EMIT_SECTION_SYMBOLS): Ditto.
1994-01-28 01:21:53 +00:00
Ken Raeburn
c1b625be7b whitespace/comment changes 1994-01-28 00:21:03 +00:00
Ian Lance Taylor
c6858c1be5 * ecoff.c (ecoff_frob_symbol): New function. Put undefined
symbols of known size in the undefined section.  Put small common
	symbols in a .scommon section.
	* ecoff.h (ecoff_frob_symbol): Declare.
	* config/obj-ecoff.h (obj_frob_symbol): Define.
	* config/obj-elf.c (obj_elf_write_symbol_p, obj_elf_write_symbol,
	obj_elf_frob_symbol): Removed unused functions.
	* config/obj-elf.h (obj_frob_symbol, obj_write_symbol): Removed
	unused macros.
	(obj_elf_frob_symbol, obj_elf_write_symbol): Removed declarations
	of unused functions.
	(obj_frob_symbol): Define if ECOFF_DEBUGGING.
1994-01-25 00:26:33 +00:00
Ian Lance Taylor
425625680a * tc-mips.c (g_switch_seen): New static variable.
(md_parse_option): Set g_switch_seen for -G option.
	(s_option): If creating PIC code, force the GP size to be 0.  Warn
	if -G switch used with a non-zero value.
1994-01-25 00:24:57 +00:00
Ian Lance Taylor
eb8fd0e9b4 * config/tc-mips.c (md_pseudo_table): Add all data allocation
pseudo-ops: .hword, .int, .long, .octa, .quad, .short, .single.
1994-01-20 04:18:14 +00:00
Ian Lance Taylor
13655af625 Smuggle N_WARNING symbols into BFD in obj_aout_frob_symbol. 1994-01-19 05:02:24 +00:00
Jeff Law
2f156c92bd * config/tc-hppa.c: Disable multiple $CODE$ subspace code. It
confuses GDB for some unknown reason.
        * cofnig/obj-som.c: Likewise.
1994-01-19 00:21:16 +00:00
Steve Chamberlain
ec0bcbbaa1 * config/obj-coffbfd.c (obj_coff_endef): For C_EFCN, C_BLOCK and
C_FCN assume .val has been set to .
1994-01-19 00:16:03 +00:00
Ian Lance Taylor
4bda835f61 * config/obj-aout.c (obj_aout_frob_symbol): Try to get symbols
with explicitly marked stabs through BFD: if a symbol marked
	N_UNDF | N_EXT is in the absolute section, move it to the
	undefined section; move a symbol marked N_INDR into
	bfd_ind_section and set the BSF_INDIRECT flag.
1994-01-18 22:27:26 +00:00
Ian Lance Taylor
04cb3372f3 Comment and whitespace changes. 1994-01-17 20:39:26 +00:00
Jeff Law
51517966bc * config/tc-hppa.c (pa_ip): Explicitly check for comma before 'u'
and 'f' template operand.
1994-01-17 09:30:07 +00:00
Jeff Law
d0286a2112 * config/tc-hppa.c (pa_ip): Handle 'N', 'O', 'o', '0', '1', 'u',
and '2' in copr and sfu instruction templates.
1994-01-17 08:19:56 +00:00
David Edelsohn
e79cb10bbe * config/obj-elf.c (obj_elf_section): Fix loop termination test. 1994-01-15 17:31:05 +00:00
Jeff Law
86066d063b * config/obj-som.c (som_frob_file): Call adjust_code_sections
for each section.
        (adjust_code_sections): New function.  Adjusts the VMA for all the
        $CODE$ subspaces.

        * config/tc-hppa.c (md_assemble): Also handle creating a fixup
        for the unwind descriptors if a function's label follows the
        .PROC and .ENTRY directives.
        (pa_entry): Don't set BSF_FUNCTION for the label symbol here; it
        is done elsewhere.  Don't create a fixup for the unwind
        descriptors if the function's label has not been defined yet.
        (pa_proc): For SOM, place each procedure within a new $CODE$
        subspace.  Adjust the segment and frag for the associated
        function label if it exists.
1994-01-13 20:17:39 +00:00
Jeff Law
fca59f9d42 * config/tc-hppa.c (hppa_fix_struct): Add new "segment" field.
(hppa_fix_new): Initialize segment field.
        (md_apply_fix): Do nothing for pc-relative fixup which involves
        crossing a segment boundary.
        (pa_procend): Undefine the current label after handling .PROC
        and .PROCEND directives.
        (dummy_symbol): Make type "symbolS *".  Change references as
        appropriate.
1994-01-13 06:06:35 +00:00
Ian Lance Taylor
f34e27a18a * config/obj-elf.c: If TC_MIPS, include elf/mips.h.
(special_sections): Define.
	(obj_elf_special_section): Get default types and attributes from
	list of special sections.
	* config/tc-mips.c (ELF_TC_SPECIAL_SECTIONS): Define.
1994-01-11 22:35:16 +00:00
Ian Lance Taylor
8197b58995 * config/tc-mips.c (macro): Corrected $at warnings in a couple of
spots.
1994-01-11 19:18:45 +00:00
Ian Lance Taylor
af255ca0bb * listing.c (listing_prev_line): New function.
* listing.c: Include subsegs.h.
	(listing_prev_line): New function.
	(calc_hex): Reset byte_in_frag to zero for each new frag.
	* config/tc-mips.c (append_insn): Call listing_prev_line after
	emitting nop instructions.
	* Makefile.in (listing.o): Depends upon subsegs.h.
1994-01-11 18:06:01 +00:00
Stan Shebs
2a79b2028e Set lose_these_too correctly 1994-01-11 02:55:30 +00:00
Jeff Law
4047ff1d24 * config/tc-hppa.c (pa_ip): Put check for missing label on .PROC
here.  Handle case where label may be defined after the .PROC.
        (pa_proc): It is not an error if the procedure's label isn't
        defined before the .PROC directive.
1994-01-10 17:54:01 +00:00
Ken Raeburn
34e4120b45 keep te-netbsd.h 1994-01-09 21:03:39 +00:00
Ken Raeburn
91176af626 te-netbsd.h: New file.
tc-i386.h (TARGET_FORMAT) [TE_NetBSD]: Use a.out-netbsd-386 for this config.
1994-01-09 20:49:23 +00:00
Stan Shebs
0f8cb88de1 Fri Jan 7 11:18:48 1994 Stan Shebs (shebs@andros.cygnus.com)
* mpw-make.in: Replace 8-bit chars with their names.
	* config/ho-mpw.h (LOSING_COMPILER): Define.
1994-01-07 19:22:15 +00:00
Stan Shebs
917fae09f9 Fri Jan 7 11:14:07 1994 Stan Shebs (shebs@andros.cygnus.com)
* config/tc-mips.c (macro): Add a LOSING_COMPILER ifdef that
	splits the function.
	(macro2): New function, if LOSING_COMPILER defined.
1994-01-07 19:18:16 +00:00
Steve Chamberlain
03a372ed70 * config/obj-coffbfd.c (fill_section): Don't ever fill past the
end of a section. (write_object_file): Temporary fix - setup
	stdoutput.
1994-01-07 17:42:34 +00:00
Ken Raeburn
fd0e2cf2d5 fix sparc-solaris reloc bug 1994-01-06 23:17:44 +00:00
Ian Lance Taylor
13fe1379a6 * config/tc-mips.c (mips_ip): Warn about using $1 as well as $at
without .set noat.
1994-01-06 06:09:22 +00:00
Ken Raeburn
166d9f909a (TARGET_FORMAT) [OBJ_AOUT]: Fix for new names in bfd. 1994-01-06 01:10:35 +00:00
Rob Savoye
fce98d637f * config/ho-vsta.h, configure.in, .Sanitize: Add support for VSTa
micro-kernel.
1994-01-05 05:26:47 +00:00
Stan Shebs
5a0517735a Tue Jan 4 15:12:43 1994 Stan Shebs (shebs@andros.cygnus.com)
* Makefile.in (INCLUDES): Add $(srcdir)/.. to places to search.
	* config/obj-ecoff.c: Include files as "bfd/" instead of "../bfd/".
	* app.c, flonum.h, hex-value.c (const): Change #if to be more
	portable.
1994-01-04 23:35:56 +00:00
Stan Shebs
4f5d16c7d3 fix the .Sanitize 1994-01-04 21:18:15 +00:00
Stan Shebs
ea838f998a Mon Jan 3 10:47:37 1994 Stan Shebs (shebs@andros.cygnus.com)
* config.sub:	  Add MPW-related aliases.
	* mpw-configure:  New file, MPW version of configure.
	* mpw-config.in:  New file, MPW version of configure.in.
	* mpw-xconfig.in:  New file, addon to configure.in.

Mon Jan  3 12:42:45 1994  Stan Shebs  (shebs@andros.cygnus.com)

	* mpw-xconfig.in: New file, mpw x mips configuration bits.
1994-01-04 21:14:04 +00:00
Ken Raeburn
6868afe647 * as.c (main): Only invoke md_end if it's defined as a macro.
* tc.h (md_end): Don't declare it.
* config/tc-*.[ch] (md_end): Deleted, in cases where it doesn't do anything.
* config/tc-vax.c (vip_end): Deleted null function.
* config/tc-mips.c (md_mips_end): Renamed from md_end.
* config/tc-mips.h (md_mips_end): Declare.
(md_end): New macro, calls md_mips_end.

* write.c (write_object_file): Don't close output file.
* as.c (main): Close output file (if needed) after calling listing_print, which
should be after calling write_object_file, which sets the frag addresses.
1993-12-20 16:48:00 +00:00
Ken Raeburn
7e1766ba87 whitespace 1993-12-20 16:43:37 +00:00
Ken Raeburn
c999fd9fc2 * config/tc-vax.c (tc_aout_fix_to_chars): Local variable NBYTES_R_LENGTH now
const.

* config/obj-*.c, config/tc-*.c: Omit superfluous "return" statements at ends
of functions.  Don't check for null return from hash_new, since it won't return
at all if there's no memory available.  Also, check for null return from
hash_insert, rather than zero-length string, as success indicator.
1993-12-16 21:31:22 +00:00
Jeff Law
551d2fd4cf * config/tc-hppa.c (md_apply_fix): Handle cases where no
relocation will be emitted for 32bit formats.
1993-12-15 05:41:11 +00:00
Jeff Law
9d5a9b20fe * config/tc-hppa.c (md_apply_fix): Do not call hppa_field_adjust
for any of the 'T' field selectors.
1993-12-14 07:34:37 +00:00
Steve Chamberlain
2b5936ff87 * config/tc-h8500.c (build_bytes): Get reloc type right for a
%page operation. (md_assemble): Don't modify input_line_pointer.
	(mdcoff_sizemachdep): New function.
	* config/tc-h8500.h (TC_COFF_SIZEMACHDEP): New macro.
	* config/tc-z8k.c (get_operand): Delete bogus check.
1993-12-11 19:28:41 +00:00
Jeff Law
dd2f509f3d * config/obj-som.[ch] (obj_read_begin_hook): Remove last change.
Breaks with the HP compilers.

        * config/tc-hppa.c (struct call_info): Remove fields which were
        set but never used.  Remove all code which sets those fields.
        (struct subspace_dictionary_chain): Likewise.
        (struct space_dictionary_chain): Likewise.
        (pa_desc): Delete useless function.  Delete all references.
        (hppa_tc_make_sections): No need to count the number of symbols for
        the symbol extension section.
1993-12-06 19:21:51 +00:00
Jeff Law
eb91665b4c * config/obj-som.c (obj_som_version): Pass version string to
SOM BFD backend.
        (obj_som_copyright): New function.  Much like obj_som_version.

        * config/tc-hppa.c (obj_copyright): Define as appropriate for
        SOM and ELF.
        (pa_copyright): Just a stub now.
1993-12-06 08:55:06 +00:00
Jeff Law
42ecb40985 * config/obj-som.c (obj_read_begin_hook): Delete unused function.
* config/obj-som.h (obj_read_begin_hook): Provide dummy definition.
        (TARGET_SYMBOL_FIELDS): Delete.  SOM isn't making use of them.
1993-12-06 07:19:13 +00:00
Jeff Law
4165dcc239 * config/tc-hppa.c (tc_gen_reloc, SOM version): Handle relocation
expansion due to rounding mode selectors.  Handle R_[RDSN]_MODE
        relocations for selecting the current rounding mode.
1993-12-06 03:24:49 +00:00
Jeff Law
7b624bf25c * config/tc-hppa.c (evaluate_absolute): Support e_rrsel and
e_rlsel field selectors.
1993-12-06 01:07:03 +00:00
Jeff Law
753dcbbd0b * config/tc-hppa.c (md_apply_fix): Delete old wrapper function.
(md_apply_fix_1): Rename to md_apply_fix.  Fix argument decls.
	Fix comments in various places.  Always return a value.
	Avoid dereferencing a NULL fx_addsy.
	(hppa_force_relocation): Avoid dereferencing a NULL fx_addsy.
1993-12-03 18:57:28 +00:00
Ken Raeburn
bfbfba45ba Lots of changes for:
- sparc[lite]-coff as well as sparc-lynx
 - producing coff (including debug info) under BFD_ASSEMBLER option
 - cleanup of cpu-specific code in non-cpu-specific files
   (especially write.c)
 - providing common code to avoid duplication in cpu-specific files
   (specifically, md_number_to_chars)
 - stylistic changes & misc cleanup

================

* config/tc-sparc.c (tc_gen_reloc): Make adjustment to addend be dependent on
howto fields, not on format flavour.

* struc-symbol.h (struct symbol): New fields sy_obj and sy_tc, defined as types
OBJ_SYMFIELD_TYPE and TC_SYMFIELD_TYPE, if those macros are defined.
* config/obj-coff.h (TC_SYMFIELD_TYPE, OBJ_SYMFIELD_TYPE): Define.
(TARGET_SYMBOL_FIELDS, I960_SYM_FIELDS): Don't define.
(sy_tc, sy_obj): Define so that the fields look like they used to, until all
references get changed.

* write.c (fixup_segment): Lots of variables no longer register.  Reordered
some code for easier reading.
* config/obj-coff.c (obj_coff_dim): dim_index no longer register.  Deleted
superfluous return statement.
(obj_coff_line, obj_coff_size, obj_coff_scl, obj_coff_type, obj_coff_val,
tag_init, tag_insert): Deleted superfluous return statement.
(align, obj_coff_section): Deleted debugging printfs.
* config/tc-i386.c (md_assemble): Discard some register decls.  Use assignment
rather than memcpy to copy template.
(op_hash, reg_hash, prefix_hash): Default C initialization of statics is
sufficient.
* config/tc-sparc.c (print_insn): Array Reloc is now const, and points to
const.

* config/obj-coff.h (TARGET_FORMAT): Only use coff-sparc-lynx if TE_LYNX; use
coff-sparc otherwise.
[USE_NATIVE_HEADERS]: Delete this code; it isn't used.

* write.c (fixup_segment): Call TC_VALIDATE_FIX, if defined, before processing
a fixup.  Call TC_ADJUST_RELOC_COUNT just before returning.  Remove some
i960-coff-specific code.
(TC_ADJUST_RELOC_COUNT): Default to doing nothing.
* config/tc-i960.h (TC_ADJUST_RELOC_COUNT) [OBJ_COFF]: Define.
(i960_validate_fix): Declare.
(TC_VALIDATE_FIX): Define.
* config/tc-i960.c (i960_validate_fix): New function.

* write.c (number_to_chars_littleendian): New function.  Write out bytes in
little endian order, doing size and range checking.
(number_to_chars_bigendian): New function, similar.
* write.h: Declare them.
* config/tc-*.c (md_number_to_chars): Use them.
* config/tc-vax.c (md_apply_fix): Ditto.
* config/tc-i386.c (md_apply_fix): Ditto.

* config/obj-coff.c: Rearranged code for handling line number data.
(line_fsym): Renamed from function_lineoff in BFD_ASSEMBLER case, since the
usage is different from non-BFD_ASSEMBLER case.
(in_function, clear_function, set_function): New macros, to combine some of the
functionality implemented in differnet ways in BFD_ASSEMBLER and non-... code.
Used in other functions that used to check function_lineoff &c.
(obj_emit_lineno): Split into two copies, one for BFD_ASSEMBLER, one for not.
Non-BFD_ASSEMBLER version now has temporary variable to contain char* pointer
pointed to by char** argument.  Always follow CROSS_COMPILE code; easier to
read that way.
(obj_coff_ln): Don't call add_lineno or c_line_new if appline is set.
(obj_coff_endef) [BFD_ASSEMBLER]: Don't do anything special for ".bf", it's
been done elsewhere.
(coff_frob_symbol): If ilne number data is pending, call add_linesym to flush it.
(coff_frob_file): Don't do that here.
* config/obj-coff.h (coff_frob_file): Declare.
(obj_frob_file): Define, to call it.

* config/tc-sparc.h (md_create_short_jump, md_create_long_jump,
md_estimate_size_before_relax: Define them as macros calling as_fatal.
* config/tc-sparc.c: Don't define them as functions.
1993-12-03 03:10:08 +00:00
Ken Raeburn
2713382f20 include fopen-bin.h 1993-12-01 22:53:14 +00:00
Ian Lance Taylor
4032d3f09e * config/tc-mips.c (macro): From wilson@cygnus.com: for M_L_DAB,
set coproc before doing goto ld.
1993-12-01 19:26:45 +00:00
Jeff Law
44c0de5363 * config/tc-hppa.c (hppa_elf_mark_end_of_function): New function.
(pa_process_exit, pa_procend): Call it for ELF objects.
1993-12-01 18:43:53 +00:00
Ian Lance Taylor
777ad64d69 * config/tc-mips.c (macro): Subtract 8 from offset in non PIC l.d
case.  See comment.
1993-12-01 17:13:12 +00:00
Jeff Law
335d35c8bc * write.c (TC_FORCE_RELOCATION): Provide a default definition.
(fixup_segment): Allow the target machine to specify that a
        relocation must be generated for a particular fixup.  Remove
        #ifndef TC_HPPA hack.

        * config/tc-hppa.h (TC_FORCE_RELOCATION): Define.

        * config/tc-hppa.c (md_apply_fix_1): Never change fx_addsy to
        be NULL.  Only fixup_segment is supposed to do that.
        (hppa_force_relocation): New function.
1993-11-30 21:43:15 +00:00
Jeff Law
81413fa20b * config/tc-hppa.c (fix_new_hppa): Make sure a sub_symbol
exists before trying to peek at its name.
	(pa_space): Do not call pa_align_subseg.  See hppa/unsorted/align3.s
	for testcase.
	(pa_align_subseg): Delete unused/unwanted function.
1993-11-28 20:15:21 +00:00
Jeff Law
d53253d854 * config/tc-hppa.h (LABELS_WITHOUT_COLONS): Define. 1993-11-28 06:54:22 +00:00
Jeff Law
31a385d17a * config/tc-hppa.c (pa_procend): Do not call process_exit.
(exit_processing_complete): Delete unwanted variable and all
        references.
1993-11-24 09:24:39 +00:00
Ian Lance Taylor
c5953036d8 * ecoff.c (ecoff_setup_ext): Renamed from ecoff_build_ext.
Changed to not actually build the external symbol information, as
	that is now done by the ECOFF back end.
	(ecoff_build_debug): Changed accordingly.
	* ecoff.h (obj_ecoff_set_ext): Declare.   obj-format.c function
	called by ecoff_setup_ext.
	* config/obj-ecoff.c (ecoff_frob_file): If debug_info count is 0,
	set corresponding pointer to NULL.  Don't set raw_size and
	raw_syments.
	(obj_ecoff_set_sym_index): Removed.
	(obj_ecoff_set_ext): New function.
	* config/obj-ecoff.h (obj_set_sym_index): Don't define.
	(obj_ecoff_set_sym_index): Don't declare.
	* config/obj-elf.c (obj_ecoff_set_ext, elf_get_extr,
	elf_set_index): New functions used for ECOFF_DEBUGGING.
	(elf_frob_file): Reworked ECOFF debug generation to use
	new functions in bfd/ecofflink.c.
1993-11-24 07:42:03 +00:00
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
Ian Lance Taylor
0dd2d296fc * config/tc-mips.c: Check ECOFF_DEBUGGING rather than
OBJ_ECOFF in many cases.
	(mips_any_noreorder): New variable.
	(mips_cprestore_offset): Initialize to -1.
	(mips_frame_reg): New variable.
	(RELAX_ENCODE, RELAX_OLD, RELAX_NEW, RELAX_RELOC1,
	RELAX_RELOC2, RELAX_RELOC3, RELAX_WARN): New macros.
	(md_pseudo_table): Handle "gpword" and "cpadd".
	(md_begin): Initialize ok to false.  If OBJ_ELF, set alignment
	of text, data and bss sections to 4.  Set alignment of
	.reginfo section to 2.  If ECOFF_DEBUGGING, create .mdebug
	section.
	(ALIGN_ERR, ALIGN_ERR2): Removed unused and useless alignment
	check.
	(append_insn, macro_build, macro_build_lui): Take place
	argument.  Changed all callers.
	(append_insn): If appending a nop, don't emit one.
	(macro_build): Changed assertion for 'i', 'j', 'o' case.
	(gp_reference): Removed.
	(load_address): New function.
	(macro): If mips_noreorder is used, set mips_any_noreorder.
	Extensive changes to handle GP and PIC symbols differently.
	Build both possible code choices using a variant frag, and
	make a final decision at the end of assembly when all
	information is known.  Added PIC support for all symbol
	references.
	(mips_ip): Don't permit anything but a number after $ for a
	coprocessor register.  Don't use .lit4 or .lit8 sections when
	generating PIC code.  If OBJ_ELF, set alignment of .lit4 or
	.lit8 section to 4.
	(md_apply_fix): Accept and ignore GOT16 and GPREL32 relocs.
	(s_change_sec): Set alignment of ELF .rodata or .sdata section
	to 4.
	(s_mipsset): If .set noreorder, set mips_any_noreorder.
	(s_cpload): Ignore .cpload if not generating PIC code.  Warn
	if .cpload is not in noreorder section.
	(s_cprestore): Ignore .cprestore if not generating PIC code.
	(s_gpword, s_cpadd): New functions.
	(tc_get_register): Added frame argument; if true, set
	mips_frame_reg to return value.  Changed all callers.
	(md_estimate_size_before_relax): Don't error out, but instead
	determine how much a frag should grow.
	(tc_gen_reloc): Return multiple relocs if appropriate, as
	determined by md_estimate_size_before_relax.
	(md_convert_frag): New function.
	(mips_elf_final_processing): Set ELF header flags based on
	mips_any_noreorder and mips_pic.
	* config/tc-mips.h (RELOC_EXPANSION_POSSIBLE): Define.
	(MAX_RELOC_EXPANSION): Define to be 3.
	(md_relax_frag): Define to be 0.
	(md_convert_frag): Don't define.
	(tc_get_register): Changed declaration.
1993-11-18 18:56:31 +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
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
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
Jeff Law
2598939269 * 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:07:51 +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
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
Jeff Law
5d5a6520c3 * 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:38:41 +00:00
Jeff Law
a50cf51f2e * 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:00 +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
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
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
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
b309df49dc * config/tc-i386.h (DOT_LABEL_PREFIX): Delete.
(LOCAL_LABEL, FAKE_LABEL_NAME): Define.
        * config/tc-m68k.h (DOT_LABEL_PREFIX): Delete.
        (LOCAL_LABEL, FAKE_LABEL_NAME): Define.
        * config/te-sco386.h (DOT_LABEL_PREFIX): Delete.
        (LOCAL_LABEL, FAKE_LABEL_NAME): Define.
1993-10-31 02:18:17 +00:00
Jeff Law
b89094aa91 * config/tc-hppa.h (FAKE_LABEL_NAME): Define as L$0\001 so it's
known to be a local label.
1993-10-31 02:13:49 +00:00
Jeff Law
3b9a72c53c Rework space/subspace handling in PA code to fully support
SOM spaces/subspaces.
	* config/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:53: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