* 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.
* frags.c (frag_var): Change offset parameter to offsetT.
(frag_variant): Likewise.
* frags.h (frag_variant, frag_var): Update declarations.
* config/tc-m68k.c (struct m68k_it): Change foff field to
offsetT.
(add_frag): Change off parameter to offsetT.
* Several files: Add casts to calls to frag_var.
* config/te-delta.h (COFF_COMMON_ADDEND): Define.
* config/obj-coff.c (fixup_segment): Check COFF_COMMON_ADDEND when
storing the value of a common symbol.
* config/obj-elf.h (struct elf_obj_sy): Define.
(OBJ_SYMFIELD_TYPE): Define to elf_obj_sy struct. Change all
users.
* config/obj-elf.c (obj_elf_symver): Just record the name.
(obj_symbol_new_hook): Initialized versioned_name field.
(elf_frob_symbol): If there is a versioned_name, either rename the
symbol, or add an alias with that name.
start-sanitize-tic80
* config/tc-tic80.c (md_pseudo_table): Add entry for bss, which takes
an additional alignment argument.
(find_opcode): Allow O_symbol relocs for any 32 bit field, not just
base relative ones.
(build_insn): Handle O_symbol relocs for any 32 bit field, not just
base relative ones.
end-sanitize-tic80
* itbl-lex.l: Fix indentation mistakes from indent program.
* itbl-ops.h: Add include for ansidecl.h.
Add PARAMS around function arguments.
Add declaration for itbl_have_entries.
* itbl-ops.c: Add PARAMS around function arguments.
* Makefile.in: Add itbl build rules.
Add dependancies for itbl files to mips target.
* as.c: Add itbl support.
Add new option "--insttbl" for dynamically extending instruction set.
* as.h: Declare insttbl_file_name;
the name of file defining extensions to the basic instruction set
* configure.in, configure: Add itbl-parse.o, itbl-lex.o, and
itbl-ops.o to extra_objects for mips configuration.
Add include file link from itbl-cpu.h to
config/itbl-${target_cpu_type}.h.
* config/tc-mips.c: Allow copz instructions.
Add notes for future additions to the itbl support.
Add debug macros.
(macro): Call itbl_assemble to assemble itbl instructions.
See if an unknown register is specified in an itbl entry.
description.
start-sanitize-tic80
* config/tc-tic80.h (NEED_FX_R_TYPE): Define.
* config/tc-tic80.c (find_opcode): Add code to support O_symbol
operands.
(build_insn): Grab a frag early so we can use the address in
fixups. Take one's complement of BITNUM values before insertion
in opcode. Add code to support O_symbol operands.
(md_apply_fix): Replace unimplemented warning with implementation.
(md_pcrel_from): Ditto.
(tc_coff_fix2rtype): Ditto.
end-sanitize-tic80
These changes are related to Ian's gas/libgloss changes of Dec 13/Dec 18.
* tc-mips.c (mips_ip): If configured for an embedded ELF system,
don't set the section alignment to 2**4.
* mips/ddb.ld: Align the location counter before setting _gp, and
before setting edata. Remove ALIGN from _gp computation.
* mips/idt.ld, mips/pmon.ld: Before setting _gp, use ALIGN(8) instead
of ALIGN(16). Remove ALIGN from _gp computation.