Commit graph

617 commits

Author SHA1 Message Date
Steve Chamberlain
6613462ec3 * config/obj-coff.c (do_relocs_for): If TC_KEEP_FX_OFFSET
is defined, put the tx_offset into the r_offset.
	* config/tc-sh.c (line_comment_chars): Add #
	(tc_reloc_mangle): Deleted.
	* config/tc-sh.h (TC_KEEP_FX_OFFSET): Define.
	(TC_RELOC_MANGLE): Delete.
1994-09-13 23:53:52 +00:00
Ken Raeburn
460531dad9 Use EXIT_SUCCESS and EXIT_FAILURE in all exit calls.
Use exit rather than returning from main, for consistency on VMS.
Call as_fatal instead of as_bad or as_warn followed by exit.
1994-09-13 23:07:48 +00:00
Ian Lance Taylor
430a399719 * config/obj-coff.c (fixup_segment): After handling the difference
of two symbols from the same segment, set fx_subsy to NULL, to
	satisfy existing TC_COUNT_RELOC macros.
1994-09-13 17:06:26 +00:00
Ken Raeburn
f0b37b4ad6 * tc-i386.c (TC_RELOC): New macro.
(struct _i386_insn): New field disp_reloc.
(GOT_symbol): New variable.
(operand_special_chars): Added square-brackets and at-sign.
(reloc) [BFD_ASSEMBLER]: Added new argument OTHER; if it is not NO_RELOC, just
return it.
(reloc) [! BFD_ASSEMBLER]: Add third argument to dummy macro.
(BFD_RELOC_386_PLT32, _GOT32, _GOTOFF) [! BFD_ASSEMBLER]: More dummy macros.
(tc_i386_fix_adjustable): New function.  Returns zero if symbol in fixup is not
local, to prevent relocations against externals from being dropped.
(md_assemble): Initialize disp_reloc field to NO_RELOC.  Pass disp_reloc field
to reloc() function, and use TC_RELOC to generate value to pass to fix_new_exp.
(md_assemble): Change 32-bit reloc against GOT_symbol into a GOTPC reloc.
(i386_operand): Initialize disp_reloc field to NO_RELOC.  Handle @GOTOFF, @PLT,
@GOT operands.  For GOTOFF relocations with local symbols, force generation of
the section symbol.
(md_estimate_size_before_relax): If GOT_symbol exists, decide we're generating
PIC code, and convert relocations against undefined symbols from PCREL to
PLT32.
(md_apply_fix_1) [OBJ_ELF]: Fix up values for dynamic-linking relocs.
(md_undefined_symbol): Notice GLOBAL_OFFSET_TABLE_NAME and set and return
GOT_symbol if it matches.
(F, MAP): Move macro definitions outside function.
(tc_gen_reloc): Only switch on size and pcrel if code wasn't already supplied
as PLT32. GOT32, GOTOFF, or GOTPC.  Convert BFD_RELOC_32 using GOT_symbol into
GOTPC.

* tc-i386.h (TC_RELOC, tc_fix_adjustable, TC_RELOC_GLOBAL_OFFSET_TABLE,
TC_RELOC_RTSYM_LOC_FIXUP): New macros.
(NEED_FX_R_TYPE): Define.
(LOCAL_LABEL): Accept ".X" prefix too.
(GLOBAL_OFFSET_TABLE_NAME): Default to "_GLOBAL_OFFSET_TABLE_".
1994-09-13 02:15:23 +00:00
Stan Shebs
97e3526ee7 * mpw-make.in (ALL_CFLAGS): Add definition of HAVE_STDARG_H,
include of ::libiberty:.
	(config.h): Ifdef contents on GAS_VERSION.
	config/ho-mpw.h: Remove redefinitions of true and false.
1994-09-13 00:14:18 +00:00
Ian Lance Taylor
c1444ec48f * config/tc-mips.c (md_pseudo_table): Handle .globl and .global.
(s_mips_globl): New static function; needed for Irix 5 support.
	* ecoff.c (ecoff_build_symbols): If BSF_FUNCTION is set for an
	external symbol with no type, set the type to st_Proc rather than
	st_Global.  Don't set the index of an external st_Proc or
	st_StaticProc symbol unless it is also a local symbol.
1994-09-12 22:11:18 +00:00
Ken Raeburn
6c3bc2b8f6 keep arm files 1994-09-09 18:35:11 +00:00
Kung Hsu
ad14517d3c Modified Files:
obj-ecoff.h obj-elf.h

        * config/obj-ecoff.h : Change names to  OBJ_GENERATE_ASM_LINENO,
        and generate_asm_lineno.
        * config/obj-elf.h : ditto.
1994-09-09 01:02:48 +00:00
Ian Lance Taylor
eb4fd16f4d * config/obj-coff.c (size_section): Do an fprintf to stderr rather
than a printf.
	(fixup_segment): Use as_bad_where rather than as_bad.
1994-09-08 23:46:00 +00:00
Steve Chamberlain
351efc8130 Wed Sep 7 17:21:12 1994 Steve Chamberlain (sac@jonny.cygnus.com)
* config/tc-{h8300,sh}.[ch] (tc_coff_symbol_emit): Function doing nothing
	becomes macro doing nothing.
1994-09-08 00:38:17 +00:00
Ken Raeburn
ade614d507 (tc_gen_reloc): Use bfd_get_reloc_code_name in error message. 1994-09-07 23:58:32 +00:00
Ian Lance Taylor
8c63448afe * config/tc-mips.c (mips_cpu): New static variable.
(insns_since_cache_access): New static variable.
	(md_begin): Set mips_cpu as well as mips_isa.
	(append_insn): If mips_cpu is 4600, require four nop instructions
	between an instruction which accesses the cache and certain CACHE
	instructions.  Keep track of the number of instructions seen since
	an instruction which accesses the cache.
	(md_parse_option): Set mips_cpu as well as mips_isa.
PR 5433.
1994-09-06 15:51:09 +00:00
Ken Raeburn
aaeee55045 * config/tc-alpha.c: Added various prototypes for static functions.
(in_range): New function, tests whether a value can fit in an N-bit field.
(build_mem, build_operate_n): New functions for constructing opcode values.
(emit_sll_n, emit_ldah_num, emit_addq_r, emit_lda_n): New functions for
emitting single instructions, no longer requiring a recursive call to
md_assemble.
(emit_add64): New function for expanding a REG:=REG+CONST operation into
one or more instructions, to handle wide constants.
(clear_insn): New variable.
(md_begin): Fill it in with zeros and BFD_RELOC_NONE values.
(alpha_ip): Use it to initialize local variable insns.
(alpha_ip, label "immediate" and cases 'P', 'G'): Use emit_add64 for
calculations.
1994-08-28 03:35:40 +00:00
Ian Lance Taylor
20ae2fb832 * config/tc-mips.h (LOCAL_LABEL): Define as 0, for compatibility
with native MIPS assembler.
	* configure.in (mips-*-irix*): Don't set emulation.
	* config/te-irix.h: Remove.
With these changes, gas works with mips-tfile.
1994-08-24 23:46:53 +00:00
Ian Lance Taylor
fd4f335ccf * ecoff.c (ecoff_symbol_new_hook): Don't add a new file if we
haven't seen any input files yet.
	* config/tc-alpha.c (md_begin): Just call symbol_create, rather
	than calling symbol_new and then removing the symbol from the
	list.
With these changes, Alpha gas will work with mips-tfile.
1994-08-24 22:10:14 +00:00
Ian Lance Taylor
a2a1a548c7 gcc lint.
* as.c (main): Move a inside the #if 0 block which uses it.
	* ecoff.c (current_stabs_filename): Make const.
	* frags.h (frag_align_pattern): Declare.
	* gasp.c (new_file): Cast isp to long, and use %ld to print it.
	* config/tc-alpha.h (md_operand): Add cast to void.
	(alpha_do_align): Declare argument types.
	(tc_get_register): Declare.
	(alpha_frob_ecoff_data): Declare.
	* config/tc-alpha.c: Include <ctype.h>.
	(s_mask): Don't declare; does not exist.
	(line_comment_chars): Remove /* from descriptive comment.
	(tc_get_register): Remove unused local reg.
	(tc_gen_reloc): Don't bother to compare unsigned to zero.
	(s_base): Correct warning to actually print register number.
	(md_begin): Remove unused locals retval, lose, and i.
	(alpha_fix_adjustable): Move default case inside switch to avoid
	warning.
	(load_symbol_address): Remove unused locals reloc_addr, p, sym,
	and addend.
	(emit_byte_manip_r): Declare types for all arguments.
	(emit_extract_r, emit_insert_r, emit_mask_r): Likewise.
	(emit_sign_extend, emit_bis_r, s_proc): Likewise.
	(alpha_ip): Use sprint_value to print offsetT value.  Remove
	unused local size.  Remove unused label get_macro.
	(alpha_do_align): Make fill const.
	(md_apply_fix): Remove unused label check_zov.
1994-08-24 21:48:18 +00:00
Jeff Law
2cffb4f411 * config/tc-hppa.c (pa_comm): Set sy_resolved for the common
symbol.
1994-08-16 07:54:06 +00:00
Stu Grossman
a1dafd5511 * configure.in: Recognize ppc-*-netware.
* config/te-ppcnw.h:  New file to support Power-PC/Netware
	configurations.  Currently, it just enables the use of backslash
	escapes in string directives.
1994-08-10 02:47:48 +00:00
Ian Lance Taylor
55933a587a * config/tc-mips.c (md_parse_option): Accept -mcpu=4400, 4600, and
orion.
1994-08-09 15:18:26 +00:00
Steve Chamberlain
79b3ad4725 Fix copyright. 1994-08-08 23:37:38 +00:00
Jeff Law
fbf718862a * config/tc-hppa.c (create_new_space): Initialize sd_subspaces
field in the space chain.
1994-08-01 20:12:41 +00:00
Jeff Law
907f11fe71 * config/tc-hppa.c (tc_gen_reloc): Cast return value from
hppa_gen_reloc_type.
1994-08-01 08:44:02 +00:00
Ken Raeburn
5e0a90a8d7 * tc-sparc.c (sparc_ip): Check more carefully for conflicting architectures.
(md_parse_option) [NO_V9]: Complain if v9 was selected.
(md_show_usage): Derive architecture list in usage message from
architecture_pname array.
(cypress): Macro deleted.
(op_hash): Don't initialize.
(s_common): Use bfd_und_section_ptr instead of bfd_und_section.
(BSR): New function.
(sparc_ip): Use it for right-shift operations of 32 bits or more.
(sparc_ip): Implement new operand type 'x'.
1994-07-28 23:36:16 +00:00
Ken Raeburn
f68880ead9 ns32k files; i960xl sanitization 1994-07-26 22:20:48 +00:00
Ken Raeburn
9ca16e0e33 remove atof-ns32k.c 1994-07-15 22:28:22 +00:00
Ken Raeburn
462ab71d9b deleted atof-ns32k.c, no longer used 1994-07-14 21:58:13 +00:00
Ken Raeburn
259e35d4e9 updated ns532 support from Ian Dall 1994-07-14 18:58:06 +00:00
Ken Raeburn
6b510a40ae config/ho-sysv.h (realloc): Declare. 1994-07-13 01:28:47 +00:00
Kung Hsu
6f89cd429c Modified Files:
obj-ecoff.h obj-elf.h

        * config/obj-ecoff.h: define macro OBJ_GENERATE_ASM_LINE_STAB.
        * config/obj-elf.h: ditto.
1994-07-08 19:36:55 +00:00
Jeff Law
8fd04cbacc * config/tc-hppa.c (hppa_fix_adjustable): Reject reductions for
symbols in DLT relative relocs.
	(tc_gen_reloc): Zero out the addend field for DLT relative relocs.
1994-07-07 17:35:27 +00:00
Jeff Law
8fb99170f1 Fix thinko in last change 1994-07-05 01:18:23 +00:00
Jeff Law
655f3ef4af * config/tc-hppa.c (is_complex): New macro.
(cons_fix_new_hppa): "Handle" complex expressions.
1994-07-05 00:37:14 +00:00
Stan Shebs
6f0b87c329 * as.c (show_usage): Break long string into shorter ones.
(parse_args): Add -v, prints version id and continues.
	* config/tc-mips.c (md_show_usage): Break long string.
1994-06-30 00:55:33 +00:00
Stan Shebs
9e4eebc207 * mpw-config.in: Parse target and use to generate forward includes
to tc-, obj-, and atof- files, use te-generic.h for emulation.
	* mpw-make.in (VERSION): Define.
	(as.c): Compile with GCC.
	(TARG_OBJECTS, CLIBS): Define.
	(as.new): Use LDFLAGS, TARG_OBJECTS, CLIBS and EXTRALIBS in link
	command.
	(config.h, config-stamp): Build.
	config/ho-mpw.h (HOST_SPECIAL_INIT): Define.
1994-06-26 23:51:45 +00:00
Ken Raeburn
708e18fdc6 v9 unsanitization 1994-06-16 21:04:02 +00:00
Ken Raeburn
675ad6dc68 Fri Jun 3 17:25:08 1994 Pat Rankin (rankin@eql.caltech.edu)
* config/obj-vms.h (DBG_S_C_COMPLX4, DBG_S_C_COMPLX8): define
	these new VMS symbol-type macros for `complex float' and
	`complex double' support.  Their values come from the existing
	DSC$K_DTYPE_FC and DSC$K_DTYPE_DC macros in <descrip.h>.
	(DBG_S_C_REAL8_G, DBG_S_C_COMPLX8_G): G_float versions of
	REAL8 and COMPLX8; not used yet, because gcc outputs the same
	.stabs for `double' regardless of whether `-mg' is used.
	config/obj-vms.c (VMS_typedef_parse) [case 'r']: add entries
	for gcc2's predefined types "complex float", "complex double",
	and "complex long double" (identical to complex double).
1994-06-16 01:02:18 +00:00
Ian Lance Taylor
36a87ad7c5 * config/tc-mips.c (mips_ip): Permit non constant expressions in
'u' case: lets lui %hi(foo) work correctly.
1994-06-15 16:49:51 +00:00
Ian Lance Taylor
02d4e9238a Add weak symbols as an extension to a.out.
* read.c (pseudo_set): Only preserve external bit for OBJ_AOUT and
	OBJ_BOUT if not BFD_ASSEMBLER.
	* config/aout_gnu.h (N_WEAKU, N_WEAKA, N_WEAKT, N_WEAKD, N_WEAKB):
	Define as in ../include/aout/aout64.h.
	* config/obj-aout.h (OBJ_SYMFIELD_TYPE): If not BFD_ASSEMBLER,
	define as char.
	(S_GET_WEAK, S_SET_WEAK): Define if not BFD_ASSEMBLER.
	* config/obj-aout.c (obj_pseudo_table): Add "weak".
	(obj_emit_symbols): Adjust type of weak symbols.
	(obj_aout_weak): New static function.
1994-06-11 20:45:49 +00:00
Ian Lance Taylor
726672c5a5 * config/ho-sunos.h: Include <stdlib.h>. Don't declare malloc,
realloc, free, or atol.
1994-06-10 17:55:45 +00:00
Ian Lance Taylor
d2c71068e8 * config/tc-mips.c (RDATA_SECTION_NAME): Define.
(macro): Correct M_LI_SS SVR4_PIC/EMBEDDED_PIC case.  After M_LI_D
	or M_L_DOB or label dob, force a new frag to avoid getting
	confused in tc_gen_reloc.
	(mips_ip): Use RDATA_SECTION_NAME, not .rdata.
	(s_change_sec): Likewise.
1994-06-06 17:16:16 +00:00
David MacKenzie
baed44cd14 * as.c (show_usage), config/tc-alpha.c (md_show_usage),
config/tc-mips.c (md_show_usage): Fix up messages.
1994-06-03 21:19:02 +00:00
David MacKenzie
dbc0fdd792 improve usage message 1994-06-03 21:07:48 +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
David MacKenzie
f3d817d8b7 * as.c (show_usage): Remove target specific messages;
instead, call md_show_usage.
	(parse_args): Use getopt_long_only.  Take pointers to argc and
	argv.
	(main): Pass parse_args pointers.
	* as.h: Remove 3 variables that are redundant with flagseen.
	* as.c, messages.c: Change their users to use flagseen.
	Define getopt stuff.
	* tc.h: Update md_parse_option decl.  Add md_show_usage decl.
	* config/tc-*.c: Add md_shortopts, md_longopts,
	md_longopts_size, md_show_usage.  Change calling convention for
	md_parse_option.  Remove md_parse_long_option.
	* config/tc-ns32k.c: Rename `struct option' to `struct ns32k_option'.
	* config/tc-i386.h: Don't define md_parse_option.
1994-06-03 17:42:27 +00:00
Ken Raeburn
82489ea062 68060 support 1994-06-02 16:35:41 +00:00
Ken Raeburn
2283f8a02a (fixup_segment) [!BFD_ASSEMBLER] [DIFF_EXPR_OK]: Do conversion to pc-relative
for difference, even if pcrel is already set.
1994-06-02 16:18:33 +00:00
Ken Raeburn
0952861cab Handle EV5 (21164/66/68) PALcode support.
* config/tc-alpha.c (machine): New variable.
(load_insn): New macro.
(load_insn_table): New function.
(md_begin): Call load_insn_table, once for basic instructions and
once for appropriate PAL instruction table.
(md_parse_option): Set `machine' based on -m##### arguments.

* config/alpha-opcode.h (alpha_pal21064_opcodes): Split out from alpha_opcodes.
(alpha_pal21164_opcodes): New table.
(NUM21064OPCODES, NUM21164OPCODES): New macros.
1994-06-02 16:06:43 +00:00
Ian Lance Taylor
0221ddf71a * config/tc-mips.c (mips_ip): Force floating point values to be
aligned correctly.
1994-06-01 14:56:21 +00:00
Ken Raeburn
c06e55d99a changes from gas-2.3/binutils-2.4 dist (details in branch log msgs, changelogs) 1994-05-27 16:58:05 +00:00
Ian Lance Taylor
f9c57637e4 * config/tc-sparc.c (md_section_align): Don't change the size if
OBJ_ELF.
1994-05-19 19:44:02 +00:00