(md_longopts): Add new OPTION_RELAX and OPTION_NO_RELAX options.
(md_parse_option): Handle new relax options.
(md_show_usage): Document new relax options.
(find_opcode): Don't use short forms of PC relative branches if
tic80_relax is set.
PR 12927
long (32 bit) PC relative offsets. Fix places that previously
misused R_MPPCR for 15 bit offsets to use the new R_MPPCR15W type.
(md_apply_fix): Add case to handle long PC relative offsets.
PR 12927
(hilo_interlocks): Added mips_4900.
(md_begin): Set default for mips_4900.
(macro_build,mips_ip): Test for INSN_4900 if mips_4900.
(md_longopts): Add "m4900" and "no-m4900".
(md_parse_option): Handle above options.
(hilo_interlocks): VR5400 has interlocks.
(md_begin): Expect mips64vr5400, not mips64r5400.
* config/tc-mips.c (mips_ip): In default case, call as_bad instead of fprintf,
to get "assembler messages:" message output before instead of after.
print out MD fields of fix.
* frags.c (frag_var, frag_variant): Use TC_FRAG_INIT macro (if
defined) to initialize MD fields in frag.
* as.h (struct frag, ns32k support): Rename ns32k to fr_ns32k.
Delete pcrel_adjust. Add fr_opcode_fragP, fr_opcode_offset.
* config/tc-ns32k.h: Add comments. Remove obsolete
BFD_FAST_SECTION_FILL definition, change prototypes for
fix_new_ns32k and fix_new_ns32k_exp to add new arguments
opcode_frag and opcode_offset and remove pcrel_adjust.
(TC_FIX_TYPE): add opcode_fragP and opcode_offset fields.
(TC_FIX_DATA_PRINT): new macro to print out TC_FIX_TYPE.
(TC_FRAG_INIT): new macro to initialize machine dependent field in
frags.
(frag_opcode_frag, frag_opcode_offset, frag_bsr): macros to access
MD fields in frag structure.
(fix_im_disp, fix_bit_fixP, fix_opcode_frag, fix_opcode_offset,
fix_bsr): macros to access MD fields in fix structure.
* config/tc-ns32k.c: Avoid overlength lines. Align comments. Don't
use struct opcode_location as these fields are now in the frag
structure.
(convert_iif): Call frag_more as it is needed instead
of trying to allocate for the whole insn. Avoid call of frag_more
with negative argument.
(md_pcrel_adjust, md_fix_pcrel_adjust, md_apply_fix,
md_estimate_size_before_relax, md_pcrel_from,
tc_aout_fix_to_chars): use accessor macros to get md fields in fix
and frag structures.
(fix_new_ns32k, fix_new_ns32k_exp): add new arguments opcode_frag and
opcode_offset and remove pcrel_adjust.
(convert_iif, cons_fix_new_ns32k): call fix_new_ns32k,
fix_new_ns32k_exp with changed arguments.
that mips_cpu depends on TARGET_CPU, and mips_opts.isa depends on
mips_cpu.
(md_parse_option): Remove all code that sets defaults; md_begin
handles all of this now.
(md_begin, md_parse_option): Handle 5400 options/names.
(macro_build, mips_ip): Check for 5400-specific instructions.
(md_longopts, OPTION_M5400, OPTION_NO_M5400): More command-line support for
5400.
* config/tc-mips.c (validate_mips_insn): New function, checks match versus mask
bits, and also verifies that all bits to be output are actually specified
somewhere.
(md_begin): Call it for 32-bit instructions, instead of doing match/mask check
here. In case of failure, print a message, but check the rest of the opcode
table before exiting.
* config/tc-sparc.c (sparc_memory_model): New variable.
(md_longopts): Add -TSO/-PSO/-RMO options.
(md_parse_options): Handle them.
(sparc_elf_final_processing): For 64 ELF, set required
memory ordering in e_flags. Default to RMO and let the user
override it through command line.
* config/tc-sparc.h (elf_tc_final_processing): Add.
(struct sparc_arch): Rename arch_size to default_arch_size.
New member user_option_p.
(sparc_arch_table): Always include v9, v9a. New entry v9-64.
(init_default_arch): Check whether default arch is valid.
Set default_arch_size in addition to sparc_arch_size.
(OPTION_32,OPTION_64): Define.
(md_longopts): New entries for -32, -64.
(md_parse_option): Handle them.
(md_show_usage): Print them. Ensure init_default_arch called.
* config/tc-sparc.c (sparc_target_format): Handle coff here.
(sparc_ip): Add %hix,%lox.
(md_apply_fix3): Call as_bad_where, not as_bad.
Add support for BFD_RELOC_SPARC_{HIX22,LOX10}.
(tc_gen_reloc): Add support for BFD_RELOC_SPARC_{HIX22,LOX10}.
* read.c (s_lcomm_internal): Renamed from s_lcomm, added arg to
flag when alignment is in bytes instead of power of 2, and code to
use that flag to convert alignment to bytes.
(s_lcomm, s_lcomm_bytes): New helpers that call s_lcomm_internal.
* read.h (s_lcomm_bytes): Add prototype.
* config/obj-coff.c (write_object_file): If ALIGNMENT_IN_S_FLAGS is
defined, write alignment to alignment bits in section header s_flags
rather than the s_align field.
start-sanitize-tic80
* config/obj-coff.h (ALIGNMENT_IN_S_FLAGS): Define for TC_TIC80.
* config/tc-tic80.c (md_pseudo_table): Use s_lcomm_bytes for bss
pseudo, instead of s_lcomm which wants a power of two for alignment.
end-sanitize-tic80
PR 12215 and PR 13061
* read.c (potable): Add sleb128 and uleb128.
(sizeof_*leb128, output_*leb128, emit_leb128_expr, s_leb128): New
functions.
* read.h: Update prototypes.
* symbols.c (resolve_symbol_value): Streamline quite a bit. Return
the symbol value, add a second FINALIZE argument that prevents
changes from being comitted. Update all callers.
* write.c (cvt_frag_to_fill, relax_segment): Handle rs_leb128.
* doc/as.texinfo: Document the new pseudos.
* acinclude.m4: New file, from old aclocal.m4.
* configure.in: Call AM_INIT_AUTOMAKE and AM_PROG_LIBTOOL. Remove
shared library handling; now handled by libtool. Replace
AC_CONFIG_HEADER with AM_CONFIG_HEADER. Call AC_PROG_YACC,
AC_PROG_LEX, and AC_DECL_YYTEXT. Call AM_MAINTAINER_MODE,
AM_CYGWIN32, and AM_EXEEXT. Don't call CY_CYGWIN32 or CY_EXEEXT.
* config.in: New file, created by autoheader.
* conf.in: Remove.
* acconfig.h: Mention PACKAGE, VERSION, and USING_CGEN.
* stamp-h.in: New file.
* as.c (print_version_id): Change GAS_VERSION to VERSION.
(parse_args): Likewise.
* config/obj-vms.c: (Write_VMS_MHD_Records): Likewise.
* Makefile.in: Now built with automake.
* aclocal.m4: Now built with aclocal.
* configure: Rebuild.
"fx" and "fxfrag". Add "ffrag". Change code to initialize and use
the right f/ffrag and fx/fxfrag pairs since instruction may be split
across frags.
PR 12899
OBJ_AOUT to ifdef OBJ_ELF.
(md_apply_fix3): When mangling 32 bit PC relative reloc for
BFD_ASSEMBLER, handle one ELF case for COFF as well, and add a PE
case.
* write.c (fixup_segment): Change special case for i386-coff to
not apply for i386-pe.
* config/obj-coff.c (coff_adjust_section_syms): Only count fixups
which were not done.
(coff_frob_file_after_relocs): Rename from coff_frob_file.
(coff_format_ops): Initialize frob_file_after_relocs field rather
than frob_file field.
* config/obj-coff.h (coff_frob_file): Don't declare.
(coff_frob_file_after_relocs): Declare.
(obj_frob_file): Don't define.
(obj_frob_file_after_relocs): Define.
* configure.in: Set bfd_gas to yes for i386-*-cygwin32.
* configure: Rebuild.
* config/tc-ppc.h (tc_fix_adjustable): Don't let the assembler
calculate relocations to any external symbol, because we might be
linking a shared object and the symbol might be overriden or moved
(for instance, moved into a static executable's .bss section).
(GLOBAL_OFFSET_TABLE_NAME): Delete. This is an i386 wierdness.
* config/tc-ppc.h (tc_fix_adjustable): GOT-based relocations can't
be calculated by the assembler.
* config/tc-ppc.c (md_apply_fix3): Handle @plt or @local branch
whose destination lies in the same file, by ignoring the @plt or
@local and aiming the branch at its destination.
signed operand, sign extend a 32 bit value to the host size.
Permits dubious usage like
addi %r6,%r6,0xfffffeff
to assemble on a 64 bit host as it does on a 32 bit host.
architecture variant in the BFD and COFF structures. This goes towards
fixing PRs 11709 and 11326 and will integrate with future updates to LD and
GCC.
M_LI_DD.
(mips_ip): For 'F', 'L', 'f', and 'l', generate a constant rather
than an address if the floating point value looks sufficiently
simple.
PR 12237.
* config/tc-mips.c (nopic_need_relax): Add new parameter
before_relaxing. Use it when testing ecoff_extern_size.
(load_address, macro, md_estimate_size_before_relax): Fix all
callers.