From 8bfb6b2bf11cfbc445239158ec28d0988f8fa947 Mon Sep 17 00:00:00 2001 From: Han Shen Date: Tue, 17 Nov 2015 16:29:47 -0800 Subject: Create an unified binutils source tree for both Android and ChromiumOS. About source code - The base version of this binutils is newer than that of aosp/binutils-2.25, it is based on the binutils that is used to build google products and ChromiumOS. And it contains *all* local Android patches as well as all patches that are cherry-picked from upstream for aosp/binutils-2.25 tree (up to Nov. 5 - 932d71b85). You may find the detailed development history for this binutils tree here - https://chromium.googlesource.com/chromiumos/third_party/binutils/+log/unification (This CL is a combination of all the CLs in it. After this CL is submitted the tree will be identical to https://chromium.googlesource.com/chromiumos/third_party/binutils/+log/unification at 2865a3615d80bd5f82d14d7e0484e84dc052596a) About testing - We tested this binutils for both ChromiumOS and Android. For android, we tested building N4, N5X, N6, N7, N9 using new binutils, we also did a full-build of toolchain (by build.py) and built a N5X image; for ChromiumOS - it passed ChromiumOS toolchain release tests on all 4 platforms (x86, x86_64, arm32 and arm64). Change-Id: I2bb2cf579f9458d0a8bc9612331dc7d5043e3d82 --- binutils-2.25/ChangeLog | 18 + binutils-2.25/MAINTAINERS | 5 +- binutils-2.25/README.google | 270 + binutils-2.25/bfd/.gitignore | 40 + binutils-2.25/bfd/ChangeLog | 429 +- binutils-2.25/bfd/Makefile.in | 2 +- binutils-2.25/bfd/archures.c | 1 + binutils-2.25/bfd/bfd-in2.h | 1 + binutils-2.25/bfd/configure | 20 +- binutils-2.25/bfd/cpu-mips.c | 2 + binutils-2.25/bfd/development.sh | 2 +- binutils-2.25/bfd/doc/Makefile.in | 2 +- binutils-2.25/bfd/elf-attrs.c | 4 + binutils-2.25/bfd/elf32-arm.c | 41 +- binutils-2.25/bfd/elf32-avr.c | 39 +- binutils-2.25/bfd/elf32-i386.c | 2 + binutils-2.25/bfd/elf32-spu.c | 14 +- binutils-2.25/bfd/elf64-ppc.c | 4 +- binutils-2.25/bfd/elf64-x86-64.c | 32 +- binutils-2.25/bfd/elfxx-mips.c | 34 +- binutils-2.25/bfd/version.h | 2 +- binutils-2.25/bfd/version.m4 | 2 +- binutils-2.25/binutils/.gitignore | 58 + binutils-2.25/binutils/ChangeLog | 93 +- binutils-2.25/binutils/Makefile.in | 2 +- binutils-2.25/binutils/bfdtest2.c | 210 +- binutils-2.25/binutils/configure | 20 +- binutils-2.25/binutils/cxxfilt.c | 1 + binutils-2.25/binutils/doc/Makefile.am | 2 +- binutils-2.25/binutils/doc/Makefile.in | 4 +- binutils-2.25/binutils/dwarf.c | 926 ++- binutils-2.25/binutils/dwarf.h | 3 + binutils-2.25/binutils/readelf.c | 6 +- binutils-2.25/compile | 236 +- binutils-2.25/config.guess | 11 +- binutils-2.25/config.sub | 11 +- binutils-2.25/configure | 2 +- binutils-2.25/configure.ac | 2 +- binutils-2.25/depcomp | 544 +- binutils-2.25/djunpack.bat | 52 - binutils-2.25/elfcpp/ChangeLog | 4 + binutils-2.25/elfcpp/arm.h | 5 +- binutils-2.25/elfcpp/dwarf.h | 22 +- binutils-2.25/gas/.gitignore | 9 + binutils-2.25/gas/ChangeLog | 250 +- binutils-2.25/gas/Makefile.in | 2 +- binutils-2.25/gas/app.c | 6 +- binutils-2.25/gas/as.c | 17 +- binutils-2.25/gas/as.h | 3 + binutils-2.25/gas/config/bfin-aux.h | 0 binutils-2.25/gas/config/m68k-parse.y | 12 +- binutils-2.25/gas/config/obj-elf.c | 4 +- binutils-2.25/gas/config/tc-aarch64.c | 38 +- binutils-2.25/gas/config/tc-alpha.c | 2 +- binutils-2.25/gas/config/tc-bfin.c | 2 +- binutils-2.25/gas/config/tc-d10v.c | 4 +- binutils-2.25/gas/config/tc-d30v.c | 6 +- binutils-2.25/gas/config/tc-epiphany.c | 0 binutils-2.25/gas/config/tc-epiphany.h | 0 binutils-2.25/gas/config/tc-i386-intel.c | 4 +- binutils-2.25/gas/config/tc-i386.c | 63 +- binutils-2.25/gas/config/tc-i860.c | 2 +- binutils-2.25/gas/config/tc-m68hc11.c | 2 +- binutils-2.25/gas/config/tc-m68k.c | 24 +- binutils-2.25/gas/config/tc-mips.c | 6 +- binutils-2.25/gas/config/tc-mn10200.c | 2 +- binutils-2.25/gas/config/tc-nios2.c | 1115 ++- binutils-2.25/gas/config/tc-s390.c | 4 +- binutils-2.25/gas/config/tc-sh.c | 2 +- binutils-2.25/gas/config/tc-sparc.c | 4 +- binutils-2.25/gas/config/tc-tic30.c | 2 +- binutils-2.25/gas/config/tc-tic4x.c | 4 +- binutils-2.25/gas/config/tc-z80.c | 4 + binutils-2.25/gas/configure | 20 +- binutils-2.25/gas/doc/Makefile.am | 2 +- binutils-2.25/gas/doc/Makefile.in | 4 +- binutils-2.25/gas/doc/as.texinfo | 2 + binutils-2.25/gas/doc/c-aarch64.texi | 4 +- binutils-2.25/gas/doc/c-mips.texi | 1 + binutils-2.25/gas/dwarf2dbg.c | 817 +- binutils-2.25/gas/dwarf2dbg.h | 19 +- binutils-2.25/gas/ecoff.c | 102 +- binutils-2.25/gas/expr.c | 2 +- binutils-2.25/gas/frags.c | 10 +- binutils-2.25/gas/input-file.c | 4 +- binutils-2.25/gas/input-scrub.c | 6 +- binutils-2.25/gas/po/gas.pot | 8105 ++++++++++---------- binutils-2.25/gas/read.c | 22 +- binutils-2.25/gas/subsegs.c | 2 +- binutils-2.25/gas/symbols.c | 18 +- binutils-2.25/gas/testsuite/ChangeLog | 54 +- binutils-2.25/gas/testsuite/gas/aarch64/mapmisc.d | 2 +- binutils-2.25/gas/testsuite/gas/all/cond.l | 3 + binutils-2.25/gas/testsuite/gas/all/cond.s | 11 + binutils-2.25/gas/testsuite/gas/all/incbin.d | 2 +- binutils-2.25/gas/testsuite/gas/epiphany/sample.s | 0 binutils-2.25/gas/testsuite/gas/i386/reloc64.d | 2 + binutils-2.25/gas/testsuite/gas/i386/reloc64.l | 10 + binutils-2.25/gas/testsuite/gas/i386/reloc64.s | 16 + .../gas/testsuite/gas/i386/x86-64-mpx-branch-1.d | 16 +- .../gas/testsuite/gas/i386/x86-64-mpx-branch-2.d | 16 +- binutils-2.25/gas/testsuite/gas/mips/mips.exp | 4 + binutils-2.25/gas/testsuite/gas/mips/octeon3.d | 20 + binutils-2.25/gas/testsuite/gas/mips/octeon3.s | 22 + binutils-2.25/gas/testsuite/gas/pe/pe.exp | 0 binutils-2.25/gas/write.c | 4 +- binutils-2.25/gold/ChangeLog | 602 +- binutils-2.25/gold/Makefile.am | 4 +- binutils-2.25/gold/Makefile.in | 242 +- binutils-2.25/gold/NEWS | 2 +- binutils-2.25/gold/README | 2 +- binutils-2.25/gold/aarch64-reloc-property.cc | 2 +- binutils-2.25/gold/aarch64-reloc-property.h | 2 +- binutils-2.25/gold/aarch64-reloc.def | 4 +- binutils-2.25/gold/aarch64.cc | 199 +- binutils-2.25/gold/archive.cc | 2 +- binutils-2.25/gold/archive.h | 2 +- binutils-2.25/gold/arm-reloc-property.cc | 2 +- binutils-2.25/gold/arm-reloc-property.h | 2 +- binutils-2.25/gold/arm-reloc.def | 2 +- binutils-2.25/gold/arm.cc | 103 +- binutils-2.25/gold/attributes.cc | 2 +- binutils-2.25/gold/attributes.h | 2 +- binutils-2.25/gold/binary.cc | 2 +- binutils-2.25/gold/binary.h | 2 +- binutils-2.25/gold/common.cc | 2 +- binutils-2.25/gold/common.h | 2 +- binutils-2.25/gold/compressed_output.cc | 2 +- binutils-2.25/gold/compressed_output.h | 2 +- binutils-2.25/gold/configure | 40 +- binutils-2.25/gold/configure.ac | 23 +- binutils-2.25/gold/configure.tgt | 2 +- binutils-2.25/gold/copy-relocs.cc | 2 +- binutils-2.25/gold/copy-relocs.h | 2 +- binutils-2.25/gold/cref.cc | 2 +- binutils-2.25/gold/cref.h | 2 +- binutils-2.25/gold/debug.h | 7 +- binutils-2.25/gold/defstd.cc | 2 +- binutils-2.25/gold/defstd.h | 2 +- binutils-2.25/gold/descriptors.cc | 2 +- binutils-2.25/gold/descriptors.h | 2 +- binutils-2.25/gold/dirsearch.cc | 2 +- binutils-2.25/gold/dirsearch.h | 2 +- binutils-2.25/gold/dwarf_reader.cc | 503 +- binutils-2.25/gold/dwarf_reader.h | 39 +- binutils-2.25/gold/dwp.cc | 74 +- binutils-2.25/gold/dwp.h | 2 +- binutils-2.25/gold/dynobj.cc | 13 +- binutils-2.25/gold/dynobj.h | 2 +- binutils-2.25/gold/ehframe.cc | 20 +- binutils-2.25/gold/ehframe.h | 12 +- binutils-2.25/gold/errors.cc | 5 +- binutils-2.25/gold/errors.h | 2 +- binutils-2.25/gold/expression.cc | 2 +- binutils-2.25/gold/ffsll.c | 2 +- binutils-2.25/gold/fileread.cc | 2 +- binutils-2.25/gold/fileread.h | 2 +- binutils-2.25/gold/freebsd.h | 2 +- binutils-2.25/gold/ftruncate.c | 2 +- binutils-2.25/gold/gc.cc | 2 +- binutils-2.25/gold/gc.h | 2 +- binutils-2.25/gold/gdb-index.cc | 2 +- binutils-2.25/gold/gdb-index.h | 2 +- binutils-2.25/gold/gold-threads.cc | 6 +- binutils-2.25/gold/gold-threads.h | 2 +- binutils-2.25/gold/gold.cc | 68 +- binutils-2.25/gold/gold.h | 2 +- binutils-2.25/gold/i386.cc | 2 +- binutils-2.25/gold/icf.cc | 2 +- binutils-2.25/gold/icf.h | 2 +- binutils-2.25/gold/incremental-dump.cc | 2 +- binutils-2.25/gold/incremental.cc | 2 +- binutils-2.25/gold/incremental.h | 2 +- binutils-2.25/gold/int_encoding.cc | 2 +- binutils-2.25/gold/int_encoding.h | 2 +- binutils-2.25/gold/layout.cc | 129 +- binutils-2.25/gold/layout.h | 8 +- binutils-2.25/gold/main.cc | 2 +- binutils-2.25/gold/mapfile.cc | 2 +- binutils-2.25/gold/mapfile.h | 2 +- binutils-2.25/gold/merge.cc | 2 +- binutils-2.25/gold/merge.h | 2 +- binutils-2.25/gold/mips.cc | 2 +- binutils-2.25/gold/mremap.c | 2 +- binutils-2.25/gold/nacl.cc | 2 +- binutils-2.25/gold/nacl.h | 2 +- binutils-2.25/gold/object.cc | 31 +- binutils-2.25/gold/object.h | 118 +- binutils-2.25/gold/options.cc | 37 +- binutils-2.25/gold/options.h | 42 +- binutils-2.25/gold/output.cc | 2 +- binutils-2.25/gold/output.h | 2 +- binutils-2.25/gold/parameters.cc | 2 +- binutils-2.25/gold/parameters.h | 2 +- binutils-2.25/gold/plugin.cc | 2 +- binutils-2.25/gold/plugin.h | 2 +- binutils-2.25/gold/po/Make-in | 2 +- binutils-2.25/gold/powerpc.cc | 53 +- binutils-2.25/gold/pread.c | 2 +- binutils-2.25/gold/readsyms.cc | 2 +- binutils-2.25/gold/readsyms.h | 2 +- binutils-2.25/gold/reduced_debug_output.cc | 2 +- binutils-2.25/gold/reduced_debug_output.h | 2 +- binutils-2.25/gold/reloc-types.h | 2 +- binutils-2.25/gold/reloc.cc | 2 +- binutils-2.25/gold/reloc.h | 2 +- binutils-2.25/gold/resolve.cc | 2 +- binutils-2.25/gold/script-c.h | 4 +- binutils-2.25/gold/script-sections.cc | 2 +- binutils-2.25/gold/script-sections.h | 2 +- binutils-2.25/gold/script.cc | 7 +- binutils-2.25/gold/script.h | 2 +- binutils-2.25/gold/sparc.cc | 2 +- binutils-2.25/gold/stringpool.cc | 6 +- binutils-2.25/gold/stringpool.h | 2 +- binutils-2.25/gold/symtab.cc | 35 +- binutils-2.25/gold/symtab.h | 8 +- binutils-2.25/gold/system.h | 2 +- binutils-2.25/gold/target-reloc.h | 2 +- binutils-2.25/gold/target-select.cc | 2 +- binutils-2.25/gold/target-select.h | 2 +- binutils-2.25/gold/target.cc | 2 +- binutils-2.25/gold/target.h | 9 +- binutils-2.25/gold/testsuite/Makefile.am | 72 +- binutils-2.25/gold/testsuite/Makefile.in | 5174 +++++++------ binutils-2.25/gold/testsuite/arm_abs_global.sh | 2 +- binutils-2.25/gold/testsuite/arm_attr_merge.sh | 2 +- .../gold/testsuite/arm_branch_in_range.sh | 2 +- .../gold/testsuite/arm_branch_out_of_range.sh | 2 +- binutils-2.25/gold/testsuite/arm_branch_range.t | 2 +- binutils-2.25/gold/testsuite/arm_cortex_a8.sh | 2 +- binutils-2.25/gold/testsuite/arm_exidx_test.sh | 2 +- .../gold/testsuite/arm_farcall_arm_arm.sh | 2 +- .../gold/testsuite/arm_farcall_arm_thumb.sh | 2 +- .../gold/testsuite/arm_farcall_thumb_arm.sh | 2 +- .../gold/testsuite/arm_farcall_thumb_thumb.sh | 2 +- binutils-2.25/gold/testsuite/arm_fix_1176.sh | 2 +- binutils-2.25/gold/testsuite/arm_fix_v4bx.sh | 2 +- binutils-2.25/gold/testsuite/arm_thm_jump11.t | 2 +- binutils-2.25/gold/testsuite/arm_thm_jump8.t | 2 +- .../gold/testsuite/arm_unaligned_reloc.sh | 2 +- binutils-2.25/gold/testsuite/basic_test.cc | 2 +- binutils-2.25/gold/testsuite/binary_test.cc | 2 +- binutils-2.25/gold/testsuite/binary_unittest.cc | 2 +- binutils-2.25/gold/testsuite/common_test_1.c | 2 +- binutils-2.25/gold/testsuite/common_test_1_v1.c | 2 +- binutils-2.25/gold/testsuite/common_test_1_v2.c | 2 +- binutils-2.25/gold/testsuite/common_test_2.c | 2 +- binutils-2.25/gold/testsuite/common_test_3.c | 2 +- binutils-2.25/gold/testsuite/constructor_test.cc | 2 +- binutils-2.25/gold/testsuite/copy_test.cc | 2 +- binutils-2.25/gold/testsuite/copy_test_1.cc | 2 +- binutils-2.25/gold/testsuite/copy_test_2.cc | 2 +- binutils-2.25/gold/testsuite/copy_test_v1.cc | 2 +- binutils-2.25/gold/testsuite/debug_msg.cc | 2 +- binutils-2.25/gold/testsuite/debug_msg.sh | 14 +- binutils-2.25/gold/testsuite/defsym_test.sh | 2 +- .../gold/testsuite/disable_pie_unsafe_size_test.cc | 29 + .../gold/testsuite/disable_pie_unsafe_size_test.sh | 32 + .../testsuite/discard_locals_relocatable_test.c | 2 +- binutils-2.25/gold/testsuite/discard_locals_test.c | 2 +- .../gold/testsuite/discard_locals_test.sh | 2 +- binutils-2.25/gold/testsuite/dwp_test.h | 2 +- binutils-2.25/gold/testsuite/dwp_test_1.cc | 2 +- binutils-2.25/gold/testsuite/dwp_test_1.sh | 2 +- binutils-2.25/gold/testsuite/dwp_test_1b.cc | 2 +- binutils-2.25/gold/testsuite/dwp_test_2.cc | 2 +- binutils-2.25/gold/testsuite/dwp_test_2.sh | 2 +- binutils-2.25/gold/testsuite/dwp_test_main.cc | 2 +- binutils-2.25/gold/testsuite/dyn_weak_ref.sh | 2 +- binutils-2.25/gold/testsuite/dyn_weak_ref_1.c | 2 +- binutils-2.25/gold/testsuite/dyn_weak_ref_2.c | 2 +- binutils-2.25/gold/testsuite/dynamic_list.sh | 2 +- binutils-2.25/gold/testsuite/dynamic_list_2.cc | 2 +- binutils-2.25/gold/testsuite/dynamic_list_2.t | 2 +- binutils-2.25/gold/testsuite/dynamic_list_lib1.cc | 2 +- binutils-2.25/gold/testsuite/dynamic_list_lib2.cc | 2 +- binutils-2.25/gold/testsuite/ehdr_start_def.cc | 2 +- binutils-2.25/gold/testsuite/ehdr_start_test.cc | 2 +- binutils-2.25/gold/testsuite/ehdr_start_test.t | 2 +- binutils-2.25/gold/testsuite/ehdr_start_test_4.sh | 2 +- binutils-2.25/gold/testsuite/exception_test.h | 2 +- binutils-2.25/gold/testsuite/exception_test_1.cc | 2 +- binutils-2.25/gold/testsuite/exception_test_2.cc | 2 +- .../gold/testsuite/exception_test_main.cc | 2 +- binutils-2.25/gold/testsuite/exclude_libs_test.sh | 2 +- binutils-2.25/gold/testsuite/final_layout.cc | 2 +- binutils-2.25/gold/testsuite/final_layout.sh | 2 +- binutils-2.25/gold/testsuite/gc_comdat_test.sh | 2 +- binutils-2.25/gold/testsuite/gc_comdat_test_1.cc | 2 +- binutils-2.25/gold/testsuite/gc_comdat_test_2.cc | 2 +- .../gold/testsuite/gc_dynamic_list_test.c | 2 +- .../gold/testsuite/gc_dynamic_list_test.sh | 2 +- .../gold/testsuite/gc_dynamic_list_test.t | 2 +- .../gold/testsuite/gc_orphan_section_test.cc | 2 +- .../gold/testsuite/gc_orphan_section_test.sh | 2 +- binutils-2.25/gold/testsuite/gc_tls_test.cc | 2 +- binutils-2.25/gold/testsuite/gc_tls_test.sh | 2 +- binutils-2.25/gold/testsuite/gdb_index_test.cc | 2 +- binutils-2.25/gold/testsuite/gdb_index_test_1.sh | 2 +- binutils-2.25/gold/testsuite/gdb_index_test_2.sh | 2 +- binutils-2.25/gold/testsuite/gdb_index_test_3.c | 2 +- binutils-2.25/gold/testsuite/gdb_index_test_3.sh | 2 +- binutils-2.25/gold/testsuite/gdb_index_test_4.sh | 2 +- .../gold/testsuite/gdb_index_test_comm.sh | 2 +- binutils-2.25/gold/testsuite/hidden_test.sh | 2 +- binutils-2.25/gold/testsuite/hidden_test_1.c | 2 +- binutils-2.25/gold/testsuite/hidden_test_main.c | 2 +- .../gold/testsuite/icf_keep_unique_test.cc | 2 +- .../gold/testsuite/icf_keep_unique_test.sh | 2 +- .../testsuite/icf_preemptible_functions_test.cc | 2 +- .../testsuite/icf_preemptible_functions_test.sh | 2 +- binutils-2.25/gold/testsuite/icf_safe_so_test.cc | 2 +- binutils-2.25/gold/testsuite/icf_safe_so_test.sh | 2 +- binutils-2.25/gold/testsuite/icf_safe_test.cc | 2 +- binutils-2.25/gold/testsuite/icf_safe_test.sh | 2 +- .../gold/testsuite/icf_sht_rel_addend_test.sh | 2 +- .../gold/testsuite/icf_sht_rel_addend_test_1.cc | 2 +- .../gold/testsuite/icf_sht_rel_addend_test_2.cc | 2 +- .../gold/testsuite/icf_string_merge_test.cc | 2 +- .../gold/testsuite/icf_string_merge_test.sh | 2 +- binutils-2.25/gold/testsuite/icf_test.cc | 2 +- binutils-2.25/gold/testsuite/icf_test.sh | 2 +- .../testsuite/icf_virtual_function_folding_test.cc | 2 +- binutils-2.25/gold/testsuite/incr_comdat_test_1.cc | 2 +- .../gold/testsuite/incr_comdat_test_2_v1.cc | 2 +- .../gold/testsuite/incr_comdat_test_2_v2.cc | 2 +- .../gold/testsuite/incr_comdat_test_2_v3.cc | 2 +- binutils-2.25/gold/testsuite/incremental_test.sh | 2 +- binutils-2.25/gold/testsuite/incremental_test_1.c | 2 +- binutils-2.25/gold/testsuite/incremental_test_2.c | 2 +- binutils-2.25/gold/testsuite/initpri1.c | 2 +- binutils-2.25/gold/testsuite/initpri2.c | 2 +- binutils-2.25/gold/testsuite/initpri3.c | 2 +- binutils-2.25/gold/testsuite/justsyms.t | 2 +- binutils-2.25/gold/testsuite/justsyms_1.cc | 2 +- binutils-2.25/gold/testsuite/justsyms_2.cc | 2 +- binutils-2.25/gold/testsuite/justsyms_exec.c | 2 +- binutils-2.25/gold/testsuite/justsyms_lib.c | 2 +- binutils-2.25/gold/testsuite/large.c | 2 +- .../gold/testsuite/large_symbol_alignment.cc | 2 +- binutils-2.25/gold/testsuite/leb128_unittest.cc | 2 +- binutils-2.25/gold/testsuite/many_sections_test.cc | 2 +- binutils-2.25/gold/testsuite/memory_test.sh | 2 +- binutils-2.25/gold/testsuite/memory_test_inc.t | 28 + .../gold/testsuite/memory_test_inc_1.t.src | 1 + .../gold/testsuite/memory_test_inc_2.t.src | 1 + .../gold/testsuite/memory_test_inc_3.t.src | 1 + .../gold/testsuite/merge_string_literals.sh | 2 +- .../gold/testsuite/merge_string_literals_1.cc | 2 +- .../gold/testsuite/merge_string_literals_2.cc | 2 +- binutils-2.25/gold/testsuite/missing_key_func.cc | 2 +- binutils-2.25/gold/testsuite/missing_key_func.sh | 2 +- binutils-2.25/gold/testsuite/no_version_test.c | 2 +- binutils-2.25/gold/testsuite/no_version_test.sh | 2 +- binutils-2.25/gold/testsuite/object_unittest.cc | 2 +- .../gold/testsuite/pie_copyrelocs_shared_test.cc | 2 +- .../gold/testsuite/pie_copyrelocs_test.cc | 2 +- .../gold/testsuite/plugin_common_test_1.c | 2 +- .../gold/testsuite/plugin_common_test_2.c | 2 +- .../gold/testsuite/plugin_final_layout.cc | 2 +- .../gold/testsuite/plugin_final_layout.sh | 2 +- .../gold/testsuite/plugin_section_order.c | 2 +- binutils-2.25/gold/testsuite/plugin_test.c | 2 +- binutils-2.25/gold/testsuite/plugin_test_1.sh | 2 +- binutils-2.25/gold/testsuite/plugin_test_10.sh | 2 +- binutils-2.25/gold/testsuite/plugin_test_11.sh | 0 binutils-2.25/gold/testsuite/plugin_test_2.sh | 2 +- binutils-2.25/gold/testsuite/plugin_test_3.sh | 2 +- binutils-2.25/gold/testsuite/plugin_test_4.sh | 2 +- binutils-2.25/gold/testsuite/plugin_test_6.sh | 2 +- binutils-2.25/gold/testsuite/plugin_test_7.sh | 2 +- binutils-2.25/gold/testsuite/plugin_test_7_1.c | 2 +- binutils-2.25/gold/testsuite/plugin_test_7_2.c | 2 +- binutils-2.25/gold/testsuite/plugin_test_tls.sh | 2 +- binutils-2.25/gold/testsuite/pr12826.sh | 2 +- binutils-2.25/gold/testsuite/pr14265.sh | 2 +- binutils-2.25/gold/testsuite/protected_1.cc | 2 +- binutils-2.25/gold/testsuite/protected_2.cc | 2 +- binutils-2.25/gold/testsuite/protected_3.cc | 2 +- binutils-2.25/gold/testsuite/protected_4.cc | 2 +- binutils-2.25/gold/testsuite/protected_main_1.cc | 2 +- binutils-2.25/gold/testsuite/protected_main_2.cc | 2 +- binutils-2.25/gold/testsuite/protected_main_3.cc | 2 +- binutils-2.25/gold/testsuite/relro_script_test.t | 2 +- binutils-2.25/gold/testsuite/relro_test.cc | 2 +- binutils-2.25/gold/testsuite/relro_test.sh | 2 +- binutils-2.25/gold/testsuite/relro_test_main.cc | 2 +- .../gold/testsuite/retain_symbols_file_test.sh | 2 +- binutils-2.25/gold/testsuite/script_test_1.cc | 2 +- binutils-2.25/gold/testsuite/script_test_1.t | 2 +- binutils-2.25/gold/testsuite/script_test_10.sh | 2 +- binutils-2.25/gold/testsuite/script_test_10.t | 2 +- binutils-2.25/gold/testsuite/script_test_2.cc | 2 +- binutils-2.25/gold/testsuite/script_test_2.t | 2 +- binutils-2.25/gold/testsuite/script_test_2a.cc | 2 +- binutils-2.25/gold/testsuite/script_test_2b.cc | 2 +- binutils-2.25/gold/testsuite/script_test_3.sh | 2 +- binutils-2.25/gold/testsuite/script_test_3.t | 2 +- binutils-2.25/gold/testsuite/script_test_4.sh | 2 +- binutils-2.25/gold/testsuite/script_test_4.t | 2 +- binutils-2.25/gold/testsuite/script_test_5.cc | 2 +- binutils-2.25/gold/testsuite/script_test_5.sh | 2 +- binutils-2.25/gold/testsuite/script_test_5.t | 2 +- binutils-2.25/gold/testsuite/script_test_6.sh | 2 +- binutils-2.25/gold/testsuite/script_test_6.t | 2 +- binutils-2.25/gold/testsuite/script_test_7.sh | 2 +- binutils-2.25/gold/testsuite/script_test_7.t | 2 +- binutils-2.25/gold/testsuite/script_test_8.sh | 2 +- binutils-2.25/gold/testsuite/script_test_9.cc | 2 +- binutils-2.25/gold/testsuite/script_test_9.sh | 2 +- binutils-2.25/gold/testsuite/searched_file_test.cc | 2 +- .../gold/testsuite/searched_file_test_lib.cc | 2 +- .../gold/testsuite/section_sorting_name.cc | 2 +- .../gold/testsuite/section_sorting_name.sh | 2 +- binutils-2.25/gold/testsuite/split_i386.sh | 2 +- binutils-2.25/gold/testsuite/split_x32.sh | 0 binutils-2.25/gold/testsuite/split_x86_64.sh | 2 +- binutils-2.25/gold/testsuite/start_lib_test_1.c | 2 +- binutils-2.25/gold/testsuite/start_lib_test_2.c | 2 +- binutils-2.25/gold/testsuite/start_lib_test_3.c | 2 +- binutils-2.25/gold/testsuite/start_lib_test_main.c | 2 +- .../gold/testsuite/strong_ref_weak_def.sh | 2 +- .../gold/testsuite/strong_ref_weak_def_1.c | 2 +- .../gold/testsuite/strong_ref_weak_def_2.c | 2 +- binutils-2.25/gold/testsuite/test.cc | 2 +- binutils-2.25/gold/testsuite/test.h | 2 +- binutils-2.25/gold/testsuite/testfile.cc | 2 +- binutils-2.25/gold/testsuite/testfile.h | 2 +- binutils-2.25/gold/testsuite/testmain.cc | 2 +- .../gold/testsuite/text_section_grouping.cc | 2 +- .../gold/testsuite/text_section_grouping.sh | 2 +- binutils-2.25/gold/testsuite/thin_archive_main.cc | 2 +- .../gold/testsuite/thin_archive_test_1.cc | 2 +- .../gold/testsuite/thin_archive_test_2.cc | 2 +- .../gold/testsuite/thin_archive_test_3.cc | 2 +- .../gold/testsuite/thin_archive_test_4.cc | 2 +- binutils-2.25/gold/testsuite/thumb2_branch_range.t | 2 +- binutils-2.25/gold/testsuite/thumb_branch_range.t | 2 +- binutils-2.25/gold/testsuite/tls_pie_test.sh | 58 + binutils-2.25/gold/testsuite/tls_test.cc | 2 +- binutils-2.25/gold/testsuite/tls_test.h | 2 +- binutils-2.25/gold/testsuite/tls_test_c.c | 2 +- binutils-2.25/gold/testsuite/tls_test_file2.cc | 2 +- binutils-2.25/gold/testsuite/tls_test_main.cc | 2 +- binutils-2.25/gold/testsuite/two_file_shared.sh | 2 +- binutils-2.25/gold/testsuite/two_file_test.h | 2 +- binutils-2.25/gold/testsuite/two_file_test_1.cc | 2 +- binutils-2.25/gold/testsuite/two_file_test_1_v1.cc | 2 +- binutils-2.25/gold/testsuite/two_file_test_1b.cc | 2 +- .../gold/testsuite/two_file_test_1b_v1.cc | 2 +- binutils-2.25/gold/testsuite/two_file_test_2.cc | 2 +- .../gold/testsuite/two_file_test_2_tls.cc | 2 +- binutils-2.25/gold/testsuite/two_file_test_2_v1.cc | 2 +- binutils-2.25/gold/testsuite/two_file_test_main.cc | 2 +- binutils-2.25/gold/testsuite/two_file_test_tls.cc | 2 +- binutils-2.25/gold/testsuite/undef_symbol.cc | 2 +- binutils-2.25/gold/testsuite/undef_symbol.sh | 2 +- binutils-2.25/gold/testsuite/undef_symbol_main.cc | 2 +- binutils-2.25/gold/testsuite/ver_matching_def.cc | 2 +- binutils-2.25/gold/testsuite/ver_matching_test.sh | 2 +- binutils-2.25/gold/testsuite/ver_test.h | 2 +- binutils-2.25/gold/testsuite/ver_test_1.cc | 2 +- binutils-2.25/gold/testsuite/ver_test_1.sh | 2 +- binutils-2.25/gold/testsuite/ver_test_10.script | 2 +- binutils-2.25/gold/testsuite/ver_test_10.sh | 2 +- binutils-2.25/gold/testsuite/ver_test_2.cc | 2 +- binutils-2.25/gold/testsuite/ver_test_2.script | 2 +- binutils-2.25/gold/testsuite/ver_test_2.sh | 2 +- binutils-2.25/gold/testsuite/ver_test_3.cc | 2 +- binutils-2.25/gold/testsuite/ver_test_4.cc | 2 +- binutils-2.25/gold/testsuite/ver_test_4.script | 2 +- binutils-2.25/gold/testsuite/ver_test_4.sh | 2 +- binutils-2.25/gold/testsuite/ver_test_5.cc | 2 +- binutils-2.25/gold/testsuite/ver_test_5.script | 2 +- binutils-2.25/gold/testsuite/ver_test_5.sh | 2 +- binutils-2.25/gold/testsuite/ver_test_6.c | 2 +- binutils-2.25/gold/testsuite/ver_test_7.cc | 2 +- binutils-2.25/gold/testsuite/ver_test_7.sh | 2 +- binutils-2.25/gold/testsuite/ver_test_8.script | 2 +- binutils-2.25/gold/testsuite/ver_test_9.cc | 2 +- binutils-2.25/gold/testsuite/ver_test_main.cc | 2 +- binutils-2.25/gold/testsuite/ver_test_main_2.cc | 2 +- binutils-2.25/gold/testsuite/weak_alias_test_1.cc | 2 +- binutils-2.25/gold/testsuite/weak_alias_test_2.cc | 2 +- binutils-2.25/gold/testsuite/weak_alias_test_3.cc | 2 +- binutils-2.25/gold/testsuite/weak_alias_test_4.cc | 2 +- binutils-2.25/gold/testsuite/weak_alias_test_5.cc | 2 +- .../gold/testsuite/weak_alias_test_main.cc | 2 +- binutils-2.25/gold/testsuite/weak_plt.sh | 2 +- binutils-2.25/gold/testsuite/weak_plt_main.cc | 2 +- binutils-2.25/gold/testsuite/weak_plt_shared.cc | 2 +- binutils-2.25/gold/testsuite/weak_test.cc | 2 +- binutils-2.25/gold/testsuite/weak_undef.h | 2 +- binutils-2.25/gold/testsuite/weak_undef_file1.cc | 2 +- binutils-2.25/gold/testsuite/weak_undef_file2.cc | 2 +- binutils-2.25/gold/testsuite/weak_undef_file3.cc | 2 +- binutils-2.25/gold/testsuite/weak_undef_file4.cc | 2 +- binutils-2.25/gold/testsuite/weak_undef_test.cc | 2 +- binutils-2.25/gold/testsuite/weak_undef_test_2.cc | 2 +- .../gold/testsuite/weak_unresolved_symbols_test.cc | 45 + binutils-2.25/gold/tilegx.cc | 2 +- binutils-2.25/gold/timer.cc | 2 +- binutils-2.25/gold/timer.h | 2 +- binutils-2.25/gold/tls.h | 2 +- binutils-2.25/gold/token.h | 2 +- binutils-2.25/gold/version.cc | 2 +- binutils-2.25/gold/workqueue-internal.h | 2 +- binutils-2.25/gold/workqueue-threads.cc | 2 +- binutils-2.25/gold/workqueue.cc | 2 +- binutils-2.25/gold/workqueue.h | 2 +- binutils-2.25/gold/x86_64.cc | 8 +- binutils-2.25/gold/yyscript.y | 45 +- binutils-2.25/gprof/.gitignore | 8 + binutils-2.25/gprof/ChangeLog | 2 +- binutils-2.25/gprof/Makefile.am | 2 +- binutils-2.25/gprof/Makefile.in | 4 +- binutils-2.25/gprof/configure | 20 +- binutils-2.25/include/ChangeLog | 9 +- binutils-2.25/include/bfdlink.h | 3 - binutils-2.25/include/dwarf2.def | 2 + binutils-2.25/include/dwarf2.h | 24 +- binutils-2.25/include/elf/ChangeLog | 12 + binutils-2.25/include/elf/arm.h | 17 + binutils-2.25/include/elf/epiphany.h | 0 binutils-2.25/include/elf/mips.h | 1 + binutils-2.25/include/elf/sparc.h | 2 +- binutils-2.25/include/elf/x86-64.h | 3 +- binutils-2.25/include/opcode/ChangeLog | 59 + binutils-2.25/include/opcode/bfin.h | 0 binutils-2.25/include/opcode/mips.h | 5 + binutils-2.25/include/opcode/nios2.h | 421 +- binutils-2.25/include/opcode/nios2r1.h | 474 ++ binutils-2.25/include/opcode/sparc.h | 2 +- binutils-2.25/install-sh | 385 +- binutils-2.25/ld/.gitignore | 16 + binutils-2.25/ld/ChangeLog | 60 +- binutils-2.25/ld/Makefile.am | 2 +- binutils-2.25/ld/Makefile.in | 4 +- binutils-2.25/ld/config.in | 3 + binutils-2.25/ld/configure | 40 +- binutils-2.25/ld/configure.ac | 10 + binutils-2.25/ld/emulparams/aarch64elf32.sh | 0 binutils-2.25/ld/emulparams/aarch64elf32b.sh | 0 binutils-2.25/ld/emulparams/aarch64linux32.sh | 0 binutils-2.25/ld/emulparams/aarch64linux32b.sh | 0 binutils-2.25/ld/emulparams/elf32lppclinux.sh | 0 binutils-2.25/ld/emulparams/elf_x86_64.sh | 5 +- binutils-2.25/ld/emulparams/nios2linux.sh | 0 binutils-2.25/ld/emultempl/elf32.em | 15 - binutils-2.25/ld/emultempl/lnk960.em | 66 +- binutils-2.25/ld/emultempl/spu_icache.o_c | 50 +- binutils-2.25/ld/emultempl/spu_ovl.o_c | 44 +- binutils-2.25/ld/ld.h | 7 + binutils-2.25/ld/ld.texinfo | 21 +- binutils-2.25/ld/ldexp.c | 8 +- binutils-2.25/ld/ldfile.c | 20 + binutils-2.25/ld/ldlang.c | 187 +- binutils-2.25/ld/ldlang.h | 8 +- binutils-2.25/ld/ldlex.h | 3 + binutils-2.25/ld/ldmain.c | 7 + binutils-2.25/ld/lexsup.c | 24 + binutils-2.25/ld/scripttempl/avrtiny.sc | 60 +- binutils-2.25/ld/scripttempl/elf.sc | 3 +- binutils-2.25/ld/testsuite/ChangeLog | 82 +- .../ld/testsuite/ld-arm/attr-merge-2.attr | 1 + binutils-2.25/ld/testsuite/ld-arm/attr-merge-2a.s | 1 + binutils-2.25/ld/testsuite/ld-arm/attr-merge-2b.s | 1 + .../ld/testsuite/ld-arm/attr-merge-4.attr | 2 + binutils-2.25/ld/testsuite/ld-arm/attr-merge-4a.s | 3 + binutils-2.25/ld/testsuite/ld-arm/attr-merge-4b.s | 3 + .../ld/testsuite/ld-arm/attr-merge-6.attr | 1 + binutils-2.25/ld/testsuite/ld-arm/attr-merge-6a.s | 2 + binutils-2.25/ld/testsuite/ld-arm/attr-merge-6b.s | 2 + binutils-2.25/ld/testsuite/ld-avr/relax-02.d | 64 + binutils-2.25/ld/testsuite/ld-avr/relax-02.s | 65 + binutils-2.25/ld/testsuite/ld-avr/relax-03.d | 26 + binutils-2.25/ld/testsuite/ld-avr/relax-03.s | 18 + binutils-2.25/ld/testsuite/ld-pe/longsecn-1.d | 0 binutils-2.25/ld/testsuite/ld-pe/longsecn-2.d | 0 binutils-2.25/ld/testsuite/ld-pe/longsecn-3.d | 0 binutils-2.25/ld/testsuite/ld-pe/longsecn-4.d | 0 binutils-2.25/ld/testsuite/ld-pe/longsecn-5.d | 0 binutils-2.25/ld/testsuite/ld-pe/longsecn.d | 0 binutils-2.25/ld/testsuite/ld-pe/non-c-lang-syms.s | 0 binutils-2.25/ld/testsuite/ld-pe/pe-compile.exp | 0 binutils-2.25/ld/testsuite/ld-pe/pe-run.exp | 0 binutils-2.25/ld/testsuite/ld-unique/unique.exp | 2 +- binutils-2.25/ld/testsuite/ld-unique/unique.s | 2 +- .../ld/testsuite/ld-unique/unique_shared.s | 2 +- binutils-2.25/ld/testsuite/ld-x86-64/bnd-ifunc-1.d | 2 +- binutils-2.25/ld/testsuite/ld-x86-64/bnd-ifunc-2.d | 2 +- binutils-2.25/ld/testsuite/ld-x86-64/bnd-plt-1.d | 18 +- binutils-2.25/ld/testsuite/ld-x86-64/gotplt1.d | 6 + binutils-2.25/ld/testsuite/ld-x86-64/gotplt1.s | 5 + binutils-2.25/ld/testsuite/ld-x86-64/mpx.exp | 15 - binutils-2.25/ld/testsuite/ld-x86-64/mpx1a.rd | 2 +- binutils-2.25/ld/testsuite/ld-x86-64/mpx1c.rd | 2 +- binutils-2.25/ld/testsuite/ld-x86-64/mpx2a.rd | 2 +- binutils-2.25/ld/testsuite/ld-x86-64/mpx2c.rd | 2 +- binutils-2.25/ld/testsuite/ld-x86-64/mpx3.dd | 35 - binutils-2.25/ld/testsuite/ld-x86-64/mpx3a.s | 16 - binutils-2.25/ld/testsuite/ld-x86-64/mpx3b.s | 11 - binutils-2.25/ld/testsuite/ld-x86-64/mpx4.dd | 24 - binutils-2.25/ld/testsuite/ld-x86-64/mpx4a.s | 6 - binutils-2.25/ld/testsuite/ld-x86-64/mpx4b.s | 5 - binutils-2.25/ld/testsuite/ld-x86-64/start.o | Bin 0 -> 824 bytes binutils-2.25/ld/testsuite/ld-x86-64/x86-64.exp | 1 + binutils-2.25/ld/testsuite/lib/ld-lib.exp | 9 +- binutils-2.25/libiberty/.gitignore | 2 + binutils-2.25/libiberty/ChangeLog | 54 + binutils-2.25/libiberty/ChangeLog.jit | 23 + binutils-2.25/libiberty/Makefile.in | 46 +- binutils-2.25/libiberty/choose-temp.c | 1 - binutils-2.25/libiberty/config.in | 31 + binutils-2.25/libiberty/configure | 122 +- binutils-2.25/libiberty/configure.ac | 14 +- binutils-2.25/libiberty/d-demangle.c | 10 +- binutils-2.25/libiberty/filename_cmp.c | 29 + binutils-2.25/libiberty/functions.texi | 49 +- binutils-2.25/libiberty/make-temp-file.c | 4 +- binutils-2.25/libiberty/sigsetmask.c | 1 - binutils-2.25/libiberty/strtoll.c | 175 + binutils-2.25/libiberty/strtoull.c | 122 + binutils-2.25/libiberty/testsuite/Makefile.in | 12 +- binutils-2.25/libiberty/testsuite/test-strtol.c | 185 + binutils-2.25/missing | 461 +- binutils-2.25/mkinstalldirs | 4 +- binutils-2.25/move-if-change | 6 +- binutils-2.25/opcodes/.gitignore | 2 + binutils-2.25/opcodes/ChangeLog | 65 +- binutils-2.25/opcodes/Makefile.in | 2 +- binutils-2.25/opcodes/configure | 20 +- binutils-2.25/opcodes/mips-dis.c | 5 + binutils-2.25/opcodes/mips-opc.c | 13 +- binutils-2.25/opcodes/nios2-dis.c | 308 +- binutils-2.25/opcodes/nios2-opc.c | 706 +- binutils-2.25/opcodes/sparc-opc.c | 50 +- binutils-2.25/ylwrap | 202 +- 639 files changed, 16354 insertions(+), 11704 deletions(-) create mode 100644 binutils-2.25/README.google create mode 100644 binutils-2.25/bfd/.gitignore create mode 100644 binutils-2.25/binutils/.gitignore delete mode 100755 binutils-2.25/djunpack.bat create mode 100644 binutils-2.25/gas/.gitignore mode change 100644 => 100755 binutils-2.25/gas/config/bfin-aux.h mode change 100644 => 100755 binutils-2.25/gas/config/tc-epiphany.c mode change 100644 => 100755 binutils-2.25/gas/config/tc-epiphany.h mode change 100755 => 100644 binutils-2.25/gas/testsuite/gas/epiphany/sample.s create mode 100644 binutils-2.25/gas/testsuite/gas/mips/octeon3.d create mode 100644 binutils-2.25/gas/testsuite/gas/mips/octeon3.s mode change 100644 => 100755 binutils-2.25/gas/testsuite/gas/pe/pe.exp create mode 100644 binutils-2.25/gold/testsuite/disable_pie_unsafe_size_test.cc create mode 100755 binutils-2.25/gold/testsuite/disable_pie_unsafe_size_test.sh create mode 100644 binutils-2.25/gold/testsuite/memory_test_inc.t create mode 100644 binutils-2.25/gold/testsuite/memory_test_inc_1.t.src create mode 100644 binutils-2.25/gold/testsuite/memory_test_inc_2.t.src create mode 100644 binutils-2.25/gold/testsuite/memory_test_inc_3.t.src mode change 100755 => 100644 binutils-2.25/gold/testsuite/plugin_test_11.sh mode change 100755 => 100644 binutils-2.25/gold/testsuite/split_x32.sh create mode 100755 binutils-2.25/gold/testsuite/tls_pie_test.sh create mode 100644 binutils-2.25/gold/testsuite/weak_unresolved_symbols_test.cc create mode 100644 binutils-2.25/gprof/.gitignore mode change 100644 => 100755 binutils-2.25/include/elf/epiphany.h mode change 100644 => 100755 binutils-2.25/include/opcode/bfin.h create mode 100644 binutils-2.25/include/opcode/nios2r1.h create mode 100644 binutils-2.25/ld/.gitignore mode change 100644 => 100755 binutils-2.25/ld/emulparams/aarch64elf32.sh mode change 100644 => 100755 binutils-2.25/ld/emulparams/aarch64elf32b.sh mode change 100644 => 100755 binutils-2.25/ld/emulparams/aarch64linux32.sh mode change 100644 => 100755 binutils-2.25/ld/emulparams/aarch64linux32b.sh mode change 100644 => 100755 binutils-2.25/ld/emulparams/elf32lppclinux.sh mode change 100644 => 100755 binutils-2.25/ld/emulparams/nios2linux.sh create mode 100644 binutils-2.25/ld/testsuite/ld-avr/relax-02.d create mode 100644 binutils-2.25/ld/testsuite/ld-avr/relax-02.s create mode 100644 binutils-2.25/ld/testsuite/ld-avr/relax-03.d create mode 100644 binutils-2.25/ld/testsuite/ld-avr/relax-03.s mode change 100644 => 100755 binutils-2.25/ld/testsuite/ld-pe/longsecn-1.d mode change 100644 => 100755 binutils-2.25/ld/testsuite/ld-pe/longsecn-2.d mode change 100644 => 100755 binutils-2.25/ld/testsuite/ld-pe/longsecn-3.d mode change 100644 => 100755 binutils-2.25/ld/testsuite/ld-pe/longsecn-4.d mode change 100644 => 100755 binutils-2.25/ld/testsuite/ld-pe/longsecn-5.d mode change 100644 => 100755 binutils-2.25/ld/testsuite/ld-pe/longsecn.d mode change 100644 => 100755 binutils-2.25/ld/testsuite/ld-pe/non-c-lang-syms.s mode change 100644 => 100755 binutils-2.25/ld/testsuite/ld-pe/pe-compile.exp mode change 100644 => 100755 binutils-2.25/ld/testsuite/ld-pe/pe-run.exp create mode 100644 binutils-2.25/ld/testsuite/ld-x86-64/gotplt1.d create mode 100644 binutils-2.25/ld/testsuite/ld-x86-64/gotplt1.s delete mode 100644 binutils-2.25/ld/testsuite/ld-x86-64/mpx3.dd delete mode 100644 binutils-2.25/ld/testsuite/ld-x86-64/mpx3a.s delete mode 100644 binutils-2.25/ld/testsuite/ld-x86-64/mpx3b.s delete mode 100644 binutils-2.25/ld/testsuite/ld-x86-64/mpx4.dd delete mode 100644 binutils-2.25/ld/testsuite/ld-x86-64/mpx4a.s delete mode 100644 binutils-2.25/ld/testsuite/ld-x86-64/mpx4b.s create mode 100644 binutils-2.25/ld/testsuite/ld-x86-64/start.o create mode 100644 binutils-2.25/libiberty/.gitignore create mode 100644 binutils-2.25/libiberty/ChangeLog.jit create mode 100644 binutils-2.25/libiberty/strtoll.c create mode 100644 binutils-2.25/libiberty/strtoull.c create mode 100644 binutils-2.25/libiberty/testsuite/test-strtol.c create mode 100644 binutils-2.25/opcodes/.gitignore diff --git a/binutils-2.25/ChangeLog b/binutils-2.25/ChangeLog index 32b3c15..473702b 100644 --- a/binutils-2.25/ChangeLog +++ b/binutils-2.25/ChangeLog @@ -1,3 +1,21 @@ +2014-11-16 Jan-Benedict Glaw + + * config.guess: Update from upstream config repo. + * config.sub: Ditto. + +2014-11-16 Jan-Benedict Glaw + + * move-if-change: Update from upstream gnulib. + +2014-11-16 Jan-Benedict Glaw + + * compile: Sync with upstream Automake. + * depcomp: Ditto. + * install-sh: Ditto. + * missing: Ditto. + * mkinstalldirs: Ditto. + * ylwrap: Ditto. + 2014-10-15 Tristan Gingold * src-release.sh (do_proto_toplev): Configure with --target. diff --git a/binutils-2.25/MAINTAINERS b/binutils-2.25/MAINTAINERS index dd8601b..b09fbc0 100644 --- a/binutils-2.25/MAINTAINERS +++ b/binutils-2.25/MAINTAINERS @@ -47,7 +47,10 @@ gdb/; readline/; sim/; GDB's part of include/ See also gdb/MAINTAINERS and sim/MAINTAINERS. include/ - See binutils/, gdb/, sid/, gcc/, libiberty/ etc. + The rule is that if the file exists in the gcc tree + then gcc owns it. Thus you have to look at the gcc tree + to know whether any particular file is owned by gcc. + See also binutils/, gdb/, sid/, gcc/, libiberty/ etc. intl/; config.rhost; libiberty/; libiberty's part of include/; compile; depcomp; install-sh; missing; ylwrap; config/ diff --git a/binutils-2.25/README.google b/binutils-2.25/README.google new file mode 100644 index 0000000..a7bf0dc --- /dev/null +++ b/binutils-2.25/README.google @@ -0,0 +1,270 @@ +Patches applied to binutils-20141117: + +Please include a change to this file with each patch, *and* each +subsequent modification of the patch. Do NOT combine patch +checkins, keep them separate. + +Append new entries to the end of this file. Each entry shall include: + * The list of files modified by the patch, + * The status of the patch (whether it's been checked in upstream, + or is a local patch), + * The local 'owner' responsible for the patch, and + * A description of the patch (preferably including bug numbers). + +Please include entries for both local patches and for patches which +have been checked in to (or back-ported from) the upstream sources. +When checking in changes made upstream, add an entry to this file but +DO NOT add entries to the GNU ChangeLog files. + +gas/as.c +gas/as.h +gas/doc/as.texinfo +gas/read.c +gas/testsuite/gas/all/incbin.d + Status: google local + Owner: aaw + Disable .incbin, unless explicitly enabled with new flag --allow-incbin. + +binutils/doc/Makefile.am +binutils/doc/Makefile.in +gas/doc/Makefile.am +gas/doc/Makefile.in +gprof/Makefile.am +gprof/Makefile.in +ld/Makefile.am +ld/Makefile.in + Status: local + Owner: bmoses + Pass --date=" " to pod2man to avoid including build dates when formatting + manual and info pages. + +gas/testsuite/gas/aarch64/mapmisc.d + Status: local + Owner: bmoses + Add "--allow-incbin" directive to avoid errors with .incbin patch. + +gold/configure.ac +gold/configure +gold/Makefile.am +gold/Makefile.in +gold/testsuite/Makefile.am +gold/testsuite/Makefile.in + Status: local + Owner: bmoses + Add a Gold configure option to run tests using the native + build tools, even if we are building for a non-native + target. + +gold/errors.cc + Status: local + Owner: ccoutant + Add local go/keymethod link to missing vtable error message. + +gold/options.h + Status: local + Owner: ccoutant + Make --disable-new-dtags the default. See b/12844098. + +gold/layout.cc + Status: Local + Owner: tmsriram + Integrated from binutils-2.24. + Map input section name prefixes "_function_patch_prologue." and + "_function_patch_epilogue." to output section names + "_function_patch_prologue" and "_function_patch_epilogue". + The compiler patch that creates these sections: + http://gcc.gnu.org/ml/gcc-patches/2013-04/msg01835.html + +gold/powerpc.cc +bfd/elf64-ppc.c + Status: backport + Owner: shenhan + Backport upstream patches to fix overflow detection for PPC. + See cl/80502043. + +gold/powerpc.cc + Status: backport + Owner: shenhan + Backport upstream patch for PowerPC relaxation corner case. + See https://sourceware.org/ml/binutils/2014-11/msg00340.html. + +gold/aarch64.cc + Status: backport + Owner: shenhan + Backport upstream patch for tlsdesc linking error under -pie. + See https://sourceware.org/ml/binutils/2014-11/msg00343.html. + +gold/powerpc.cc + Status: backport + Owner: jingyu + Backport 2 upstream patches to retry powerpc gold stub grouping when + groups prove too large. + See https://sourceware.org/ml/binutils/2014-11/msg00342.html + and https://sourceware.org/ml/binutils/2014-12/msg00054.html + +gold/aarch64.cc + Status: backport + Owner: jingyu + Backport upstream patch to print informative error message for + stub-group-size. + See https://sourceware.org/ml/binutils/2014-12/msg00108.html + +gold/aarch64.cc + Status: backport + Owner: jingyu + Backport upstream patch to fix a print bug in 32bit mode. + See https://sourceware.org/ml/binutils/2014-12/msg00137.html + +bfd/elf64-ppc.c +gold/powerpc.cc +gold/symtab.cc + Status: backport + Owner: jingyu + Backport 5 upstream patches for PPC. + See https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=f9dffbf0863b9010a5eece87bd6b36e38c09ffb0 + https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=1f98a0748c4dfae57a76c408501c938480c1173c + https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=1611bc4afb0f08f0aff64ec355b8d68e9f4f0a73 + https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=e30880c2eeee3b43897161344bbbffd03f3a1c91 + https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=b01a4b043a5b08e1208b1fedd61a6f3d65a328e0 + +gold/powerpc.cc + Status: backport + Owner: jingyu + Backport upstream patch to correct PPC TLSLD linker optimization. + See https://sourceware.org/ml/binutils/2015-01/msg00322.html + +gold/aarch64-reloc.def +gold/aarch64.cc + Status: backport + Owner: jingyu + Backport upstream patch to support missing TLSLE relocations. + see https://sourceware.org/ml/binutils/2015-02/msg00140.html + +gold/parameters.cc + Status: backport + Owner: ccoutant + Fix a race condition when setting default target for ARM targets. + https://sourceware.org/ml/binutils-cvs/2015-03/msg00023.html + +binutils/dwarf.h +binutils/readelf.c +include/dwarf2.def +include/dwarf2.h + Status: local + Owner: ccoutant + Backport two-level line table support for readelf from upstream binutils + branch users/ccoutant/two-level-line-150331. + +gas/dwarf2dbg.c +gas/dwarf2dbg.h +gas/config/obj-elf.c + Status: local + Owner: ccoutant + Backport two-level line table support for GAS from upstream binutils + branch users/ccoutant/two-level-line-150331. + +elfcpp/dwarf.h +gold/debug.h +gold/dwarf_reader.cc +gold/dwarf_reader.h + Status: local + Owner: ccoutant + Backport two-level line table support for gold from upstream binutils + branch users/ccoutant/two-level-line-150331. + +gold/dwp.cc +gold/dynobj.cc +gold/object.cc +gold/object.h + Status: backport + Owner: ccoutant + Backport upstream patch to add gold support for reading compressed + debug info in shared object and dwp files. + +gold/aarch64-reloc.def +gold/aarch64.cc + Status: backport + Owner: jingyu + Add support to 2 AARCH64 TLSLD relocations. Change _TLS_MODULE_BASE_. + https://sourceware.org/ml/binutils/2015-03/msg00420.html + +gold/ehframe.h +gold/gold.cc +gold/layout.cc +gold/layout.h +gold/options.cc +gold/testsuite/Makefile.am +gold/testsuite/Makefile.in + Status: backport + Owner: ccoutant + Fix gold testsuite failures when using newer versions of GCC. + https://sourceware.org/ml/binutils-cvs/2015-03/msg00048.html + https://sourceware.org/ml/binutils-cvs/2015-03/msg00075.html + https://sourceware.org/ml/binutils-cvs/2015-03/msg00146.html + +gold/aarch.cc + Status: backport + Owner: jingyu + Fix virtual function signature to match the one in the parent class. + https://sourceware.org/ml/binutils/2015-04/msg00045.html + +gold/debug.h +gold/dwarf_reader.cc +gold/symtab.cc +gold/testsuite/debug_msg.sh + Status: backport + Owner: ccoutant + Improve ODR checking in gold, to tolerate slight differences in + line numbers between clang and gcc. + https://sourceware.org/ml/binutils-cvs/2015-04/msg00095.html + +gold/layout.cc +gold/target.h +gold/x86_64.cc + Status: local + Owner: tmsriram + With PIE links, check the size of the data segment and warn when it is + greater than a safe value (128MB for x86_64) to prevent the problem described + in go/unsafe-pie. + +gold/options.h +gold/symtab.cc +gold/symtab.h +gold/testsuite/Makefile.am +gold/testsuite/Makefile.in +gold/testsuite/weak_unresolved_symbols_test.cc + Status: backport + Owner: tmsriram + Backport upstream patch that adds option --warn-unresolved-symbols to gold + that treats unresolved symbol references as weak. Details here: + https://sourceware.org/ml/binutils/2015-04/msg00358.html + +gold/gold.cc +gold/options.h +gold/testsuite/Makefile.am +gold/testsuite/Makefile.in +gold/testsuite/disable_pie_unsafe_size_test.cc +gold/testsuite/disable_pie_unsafe_size_test.sh + Status: local + Owner: tmsriram + With PIE links, check the size of the data segment and disable PIE when it + is greater than a safe value (128MB for x86_64) to prevent the problem described + in go/unsafe-pie. Allow this to be overridden with + --no-disable-pie-when-unsafe-data-size + +gold/powerpc.cc + Status: backport + Owner: saugustine + Backport upstream patches that disable assertion when building powerpc symbol + tables. + https://sourceware.org/ml/binutils/2015-04/msg00428.html + https://sourceware.org/ml/binutils/2015-04/msg00429.html + +gold/symtab.cc +gold/testsuite/Makefile.am +gold/testsuite/tls_pie_test.sh + Status: backport + Owner: tmsriram + Backport upstream patch that allows gold to resolve defined TLS symbols in a + PIE link. + https://sourceware.org/ml/binutils-cvs/2015-04/msg00098.html diff --git a/binutils-2.25/bfd/.gitignore b/binutils-2.25/bfd/.gitignore new file mode 100644 index 0000000..3316133 --- /dev/null +++ b/binutils-2.25/bfd/.gitignore @@ -0,0 +1,40 @@ +/bfd-in3.h +/bfd.h +/bfd_stdint.h +/bfdver.h +/elf32-ia64.c +/elf32-target.h +/elf64-ia64.c +/elf64-target.h +/libtool-soversion +/ofiles +/peigen.c +/pepigen.c +/pex64igen.c +/stmp-bfd-h +/targmatch.h + +/doc/aoutx.texi +/doc/archive.texi +/doc/archures.texi +/doc/bfdio.texi +/doc/bfdt.texi +/doc/bfdver.texi +/doc/bfdwin.texi +/doc/cache.texi +/doc/chew +/doc/coffcode.texi +/doc/core.texi +/doc/elf.texi +/doc/elfcode.texi +/doc/format.texi +/doc/hash.texi +/doc/init.texi +/doc/libbfd.texi +/doc/linker.texi +/doc/mmo.texi +/doc/opncls.texi +/doc/reloc.texi +/doc/section.texi +/doc/syms.texi +/doc/targets.texi diff --git a/binutils-2.25/bfd/ChangeLog b/binutils-2.25/bfd/ChangeLog index c66bb1a..f124354 100644 --- a/binutils-2.25/bfd/ChangeLog +++ b/binutils-2.25/bfd/ChangeLog @@ -1,51 +1,185 @@ +2014-12-25 Thomas Preud'homme + + * elf32-arm.c (elf32_arm_merge_eabi_attributes): Handle new + Tag_ABI_VFP_args value and replace hardcoded values by enum values. + (elf32_arm_post_process_headers): Set e_flags in ELF header as hard + float only when Tag_ABI_VFP_args is 1, using new enum value + AEABI_VFP_args_vfp to check that. + 2015-07-23 Joseph Myers * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections) : Add target address to host address difference, not to host pointer. - 2015-02-24 Nick Clifton +2015-04-01 Tejas Belagod + Marcus Shawcroft + Jiong Wang - * configure.ac (AC_CHECK_HEADERS): Add wctype.h. - * configure: Regenerate. - * config.in: Regenerate. - * peXXigen.c: Include wctype.h if HAVE_WCTYPE_H is defined. - (u16_mbtowc): Use wint_t types if HAVE_WCTYPE_H is defined. - (rsrc_cmp): Use towlower instead of wcsncasecmp if HAVE_WCTYPE_H - is defined. + * bfd-in.h (bfd_elf64_aarch64_set_options) + (bfd_elf32_aarch64_set_options): Add parameter. + * bfd-in2.h: Regenerated. + * elfnn-aarch64.c (aarch64_erratum_843419_stub) + (_bfd_aarch64_adrp_p, _bfd_aarch64_erratum_843419_sequence_p) + (_bfd_aarch64_erratum_843419_stub_name) + (_bfd_aarch64_erratum_843419_fixup) + (_bfd_aarch64_erratum_843419_scan) + (_bfd_aarch64_erratum_843419_branch_to_stub) + (_bfd_aarch64_erratum_843419_p): Define. + (enum elf_aarch64_stub_type): Define + aarch64_stub_erratum_843419_veneer. + (struct elf_aarch64_stub_hash_entry): Define adrp_offset. + (struct elf_aarch64_link_hash_table): Define fix_erratum_843419 + and fix_erratum_843419_adr. + (stub_hash_newfunc): Initialize adrp_offset; + (_bfd_aarch64_add_stub_entry_after): Define. + (aarch64_map_one_stub, aarch64_build_one_stub) + (aarch64_size_one_stub): Handle + aarch64_stub_erratum_843419_veneer. + (_bfd_aarch64_resize_stubs): Round stub section size. + (elfNN_aarch64_size_stubs): Add scan for 843419. + (bfd_elfNN_aarch64_set_options): Add parameter. Initialize + fix_erratum_843419 and fix_erratum_843419_adr. + (struct erratum_835769_branch_to_stub_data): Add info. + (elfNN_aarch64_write_section): Initialise info. Handle 843419. + (elfNN_aarch64_size_dynamic_sections): Handle 843419. + * elfxx-aarch64.c (_bfd_aarch64_decode_adrp_imm) + (_bfd_aarch64_sign_extend): Define. + (reencode_adr_imm): Remove static. Rename to: + (_bfd_aarch64_reencode_adr_imm): Define. + (_bfd_aarch64_elf_put_addend): Call _bfd_aarch64_reencode_adr_imm. + * elfxx-aarch64.h (AARCH64_ADR_OP, AARCH64_ADRP_OP) + (AARCH64_ADRP_OP_MASK, _bfd_aarch64_sign_extend) + (_bfd_aarch64_decode_adrp_imm, _bfd_aarch64_reencode_adr_imm): + Define. + +2015-03-25 Marcus Shawcroft + + * elfnn-aarch64.c (_bfd_aarch64_resize_stubs): Adjust stub section + size for initial branch. + (elfNN_aarch64_build_stubs): Write initial branch. + _bfd_aarch64_decode_(elfNN_aarch64_output_arch_local_syms): Write + mapping symbol on initial branch. + +2015-03-25 Marcus Shawcroft + + * elfnn-aarch64.c (_bfd_aarch64_erratum_835769_scan): + Update erratum count. + +2015-03-24 Marcus Shawcroft + + * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Factor + code into: + (_bfd_aarch64_get_stub_for_link_section): Define. + +2015-03-24 Marcus Shawcroft + + * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Adjust + update of section_group[].stub_sec. + +2015-03-24 Marcus Shawcroft + + * elfnn-aarch64.c (struct aarch64_erratum_835769_fix) Remove. + (erratum_835769_scan) Drop fix_table_size_p and fixes_p arguments. + Delete fixes, fix_table_size and associated code. Call + _bfd_aarch64_add_stub_entry_in_group. Rename to... + (bfd_aarch64_erratum_835769_scan): Define. + (elfNN_aarch64_size_stubs): Delete erratum_835769_fixes, + erratum_835769_fix_table_size, i and associated code. Relocate + call to _bfd_aarch64_erratum_835769_scan. Delete adhoc stub size + correction. Delete construction of stub entry from + erratum_835769_fixes array. + +2015-03-24 Marcus Shawcroft + + * elfnn-aarch64.c (elfNN_aarch64_size_stubs): Use + _bfd_aarch64_add_stub_entry_in_group. + +2015-03-23 Keith Seitz + + * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Add + missing ';'. + +2015-03-23 Marcus Shawcroft + + * elfnn-aarch64.c (elfNN_aarch64_size_stubs): Factor out + stub resize code into... + (bfd_aarch64_resize_stubs): Define. + +2015-03-23 Marcus Shawcroft + + * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Factor stub + creation code into... + (bfd_aarch64_create_stub_section): Define. + +2015-03-23 Marcus Shawcroft + + * elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Rename + from elf_aarch64_create_or_find_stub_sec. + (_bfd_aarch64_add_stub_entry_in_group): Rename from + elfNN_aarch64_add_stub. Call + _bfd_aarch64_create_or_find_stub_sec. + (elfNN_aarch64_size_stubs, elfNN_aarch64_size_stubs): Call + _bfd_aarch64_add_stub_entry_in_group. + +2015-03-23 Marcus Shawcroft + + * elfnn-aarch64.c (erratum_835769_scan) Add comment. Reverse + sense of boolean return. + (elfNN_aarch64_size_stubs): Adjust for above. + +2015-03-23 Marcus Shawcroft + + * elfnn-aarch64.c (elf_aarch64_create_or_find_stub_sec): + Remove unused parameter. + (elfNN_aarch64_size_stubs): Adjust for above. + +2015-03-23 Marcus Shawcroft -2014-11-18 Igor Zamyatin + * elfnn-aarch64.c (elfNN_aarch64_size_stubs): Remove bfd_indx. - * elf64-x86-64.c (elf_x86_64_check_relocs): Enable MPX PLT only - for -z bndplt. +2015-03-23 Marcus Shawcroft -2014-11-17 Nick Clifton + * elfnn-aarch64.c (aarch64_erratum_835769_fixes) + (num_aarch64_erratum_835769_fixes): Remove. + (elfNN_aarch64_size_stubs): Remove assignments to above. - Apply trunk patches: +2015-03-04 Marcus Shawcroft - 2014-11-14 Nick Clifton + * elfxx-aarch64.c (decode_add_imm, decode_movw_imm) + (decode_tst_branch_ofs_14, decode_ld_lit_ofs_19) + (decode_cond_branch_ofs_19, decode_branch_ofs_26): Remove. + +2014-11-14 Nick Clifton PR binutils/17597 * opncls.c (bfd_get_debug_link_info): Avoid reading off the end of the section. (bfd_get_alt_debug_link_info): Likewise. - 2014-11-14 Nick Clifton +2014-11-14 Nick Clifton PR binutils/17512 * ieee.c (ieee_archive_p) Skip processing if no bytes are read at all. (ieee_object_p): Likewise. - 2014-11-13 H.J. Lu +2014-11-13 H.J. Lu * coffcode.h (coff_slurp_line_table): Add cast to unsigned int. - 2014-11-13 H.J. Lu +2014-11-13 H.J. Lu * coffcode.h (coff_pointerize_aux_hook): Fix a typo. - 2014-11-13 Nick Clifton +2014-11-13 H.J. Lu + + PR gas/17598 + * elf64-x86-64.c (elf_x86_64_check_relocs): Treat + R_X86_64_GOTPLT64 the same as R_X86_64_GOT64. + (elf_x86_64_relocate_section): Likewise. + +2014-11-13 Nick Clifton PR binutils/17512 * coffcode.h (coff_ptr_struct): Add is_sym field. @@ -79,7 +213,7 @@ * libcoff.h: Regenerate. * libcoff-in.h: Regenerate. - 2014-11-12 Nick Clifton +2014-11-12 Nick Clifton PR binutils/17512 * coffcode.h (coff_slurp_line_table): Set the line number of @@ -92,13 +226,13 @@ * peXXigen.c (pe_print_idata): Add range checking displaying member names. - 2014-11-12 Alan Modra +2014-11-12 Alan Modra PR binutils/17512 * coffcode.h (coff_slurp_line_table): Drop line number info not preceded by a valid function entry. Revert last change. - 2014-11-11 Nick Clifton +2014-11-11 Nick Clifton PR binutils/17512 * coffcode.h (coff_slurp_line_table): Initialise the parts of the @@ -117,13 +251,13 @@ structure are initialised. (pe_print_edata): Avoid reading off the end of the data buffer. - 2014-11-11 Alan Modra +2014-11-11 Alan Modra PR binutils/17512 * coffcode.h (coff_slurp_line_table): Use updated lineno_count when building func_table. - 2014-11-11 Alan Modra +2014-11-11 Alan Modra PR binutils/17512 * coffcode.h (coff_slurp_line_table): Don't bfd_zalloc, just @@ -135,7 +269,17 @@ copied, and free n_lineno_cache. * pe-mips.c (NUM_HOWTOS): Typo fix. - 2014-11-10 Nick Clifton +2014-11-11 Alan Modra + + * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Adjust section + size check to account for possible zero terminator. + +2014-11-10 James Cowgill + + * elfxx-mips.c (_bfd_mips_elf_section_processing): don't force small + data sections to be PROGBITS + +2014-11-10 Nick Clifton PR binutils/17521 * coff-i386.c (NUM_HOWTOS): New define. @@ -172,20 +316,26 @@ (pe_bfd_object_p): Allocate and initialize enough space to hold a PEAOUTHDR, even if the opt_hdr field specified less. - 2014-11-08 Alan Modra +2014-11-08 Alan Modra * peXXigen.c (pe_print_idata): Revert last patch, cast lhs instead. - 2014-11-07 H.J. Lu +2014-11-07 H.J. Lu * peXXigen.c (pe_print_idata): Cast to unsigned long in range checks. - 2014-11-07 Alan Modra +2014-11-07 H.J. Lu + + PR ld/17482 + * elf64-x86-64.c (elf_x86_64_relocate_section): Update comments + for IE->LE transition. + +2014-11-07 Alan Modra * tekhex.c (tekhex_set_arch_mach): Ignore unknown arch errors. - 2014-11-07 Alan Modra +2014-11-07 Alan Modra * tekhex.c (CHUNK_SPAN): Define. (struct data_struct ): Use one byte per span, update @@ -201,11 +351,11 @@ (tekhex_set_section_contents): Don't create initial chunks. (tekhex_write_object_contents): Use CHUNK_SPAN. - 2014-11-07 Alan Modra +2014-11-07 Alan Modra * aoutx.h (aout_get_external_symbols): Tidy allocation of symbol buffer. - 2014-11-07 Alan Modra +2014-11-07 Alan Modra * archive.c (_bfd_slurp_extended_name_table): Revert bfd_get_size check. * coffcode.h (coff_set_alignment_hook): Likewise. @@ -215,7 +365,7 @@ * elf.c (bfd_elf_get_str_section): Likewise. * tekhex.c (first_phase): Likewise. - 2014-11-06 Nick Clifton +2014-11-06 Nick Clifton * aoutx.h (slurp_symbol_table): Revert previous delta. (slurp_reloc_table): Likewise. @@ -224,7 +374,12 @@ * coffgen.c (coff_get_normalized_symtab): Allow zero-sized symtabs and do not complain about linker generated files. - 2014-11-04 Nick Clifton +2014-11-06 Will Newton + + * elf-attrs.c (_bfd_elf_parse_attributes): Handle zero + length sections and sub-sections. + +2014-11-04 Nick Clifton PR binutils/17512 * coffcode.h (handle_COMDAT): Replace abort with BFD_ASSERT. @@ -232,7 +387,17 @@ (coff_slurp_line_table): Add more range checking. * peXXigen.c (pe_print_debugdata): Add range checking. - 2014-11-05 Nick Clifton +2014-11-05 James Cowgill + + * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections): Fix segfault + when creating a dso with discarded dynsym section. + +2014-11-05 Matthew Fortune + + * elfxx-mips.c (update_mips_abiflags_isa): Add E_MIPS_ARCH_32R6 + and E_MIPS_ARCH_64R6 support. + +2014-11-05 Nick Clifton PR binutils/17512 * coffcode.h (coff_set_alignment_hook): Warn if the file lies @@ -250,7 +415,7 @@ (rsrc_count_entries): Add range checking. (rsrc_parse_entry): Likewise. - 2014-11-04 Nick Clifton +2014-11-04 Nick Clifton PR binutils/17512 * compress.c (bfd_get_full_section_contents): Improve test for @@ -260,7 +425,23 @@ * archive.c (_bfd_slurp_extended_name_table): Handle archives with corrupt extended name tables. - 2014-11-03 Nick Clifton +2014-11-04 Alan Modra + + * elf32-spu.c (ovl_mgr_stat): New function. + (spu_elf_open_builtin_lib): Pass to bfd_openr_iovec. + +2014-11-03 Andrew Burgess + + * elf32-avr.c (elf32_avr_relax_delete_bytes): During linker + relaxation, reduce the size of symbols that span the deleted + bytes. + +2014-11-03 Andrew Burgess + + * elf32-avr.c (elf32_avr_relax_delete_bytes): Modify symbols + located at the very end of the section. + +2014-11-03 Nick Clifton PR binutils/17512 * aoutx.h (slurp_symbol_table): Check that computed table size is @@ -292,7 +473,26 @@ * xcofflink.c (xcoff_link_input_bfd): Check offset against length of string table. - 2014-10-31 Nick Clifton +2014-11-03 Nick Clifton + + * po/fi.po: Updated Finnish translation. + +2014-10-31 Andrew Pinski + Naveen H.S + + * archures.c: Add octeon3 for mips target. + * bfd-in2.h: Regenerate. + * bfd/cpu-mips.c: Define I_mipsocteon3. + nfo_struct): Add octeon3 support. + * bfd/elfxx-mips.c: (_bfd_elf_mips_mach): Add support for + octeon3. + (mips_set_isa_flags): Add support for octeon3. + (bfd_mips_isa_ext): Add bfd_mach_mips_octeon3. + (mips_mach_extensions): Make bfd_mach_mips_octeon3 an + extension of bfd_mach_mips_octeon2. + (print_mips_isa_ext): Print the value of Octeon3. + +2014-10-31 Nick Clifton PR binutils/17512 * coffgen.c (_bfd_coff_get_external_symbols): Do not try to load a @@ -301,78 +501,39 @@ table bigger than the file. * tekhex.c (first_phase): Check that the section range is sane. -2014-11-11 Alan Modra - - * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Adjust section - size check to account for possible zero terminator. - -2014-11-10 Matthew Fortune - - Apply trunk patch: - * elfxx-mips.c (update_mips_abiflags_isa): Add E_MIPS_ARCH_32R6 - and E_MIPS_ARCH_64R6 support. - -2014-11-07 H.J. Lu - - Apply trunk patch: - 2014-11-07 H.J. Lu - - PR ld/17482 - * elf64-x86-64.c (elf_x86_64_relocate_section): Update comments - for IE->LE transition. - -2014-11-04 Tristan Gingold - - * development.sh: Set development to false. - -2014-11-03 Nick Clifton - - * po/fi.po: Updated Finnish translation. - -2014-10-31 Nick Clifton - - Apply trunk patch: +2014-10-30 Nick Clifton - 2014-10-30 Nick Clifton PR binutils/17512 * ihex.c (ihex_scan): Fix typo in invocation of ihex_bad_byte. * coffgen.c (coff_get_normalized_symtab): Prevent buffer overrun. -2014-10-30 Nick Clifton - - Appy trunk patch: +2014-10-29 Nick Clifton - 2014-10-29 Nick Clifton * elf.c (bfd_section_from_shdr): Fix heap use after free memory leak. -2014-10-28 Matthew Fortune - - Apply trunk patches: +2014-10-29 Dennis Brueni - 2014-10-22 Matthew Fortune - * elfxx-mips.c (print_mips_ases): Print unknown ASEs. - (print_mips_isa_ext): Print the value of an unknown extension. + * elf.c (elfcore_write_lwpstatus): Fix typo in call to memcpy. 2014-10-28 Nick Clifton - Apply trunk patches: - - 2014-10-28 Nick Clifton PR binutils/17512 * elf.c (bfd_section_from_shdr): Allocate and free the recursion detection table on a per-bfd basis. * peXXigen.c (pe_print_edata): Handle binaries with a truncated export table. - 2014-10-28 Andreas Schwab - Nick Clifton +2014-10-28 Andreas Schwab + Nick Clifton + PR binutils/17510 * srec.c (srec_bad_byte): Increase size of buf to allow for negative values. (srec_scan): Use an unsigned char buffer to hold header bytes. - 2014-10-27 Nick Clifton +2014-10-27 Nick Clifton + PR binutils/17512 * elf.c (bfd_section_from_shdr): Detect and warn about ELF binaries with a group of sections linked by the string table @@ -386,26 +547,68 @@ * elf.c (setup_group): Improve handling of corrupt group sections. -2014-10-28 Alan Modra +2014-10-24 Tejas Belagod + + * bfd-in.h (bfd_elf64_aarch64_set_options): Add a parameter. + * bfd-in2.h (bfd_elf64_aarch64_set_options): Likewise. + * elfnn-aarch64.c (aarch64_erratum_835769_stub): New. + (elf_aarch64_stub_type): Add new type + aarch64_stub_erratum_835769_veneer. + (elf_aarch64_stub_hash_entry): New fields for erratum 835769. + (aarch64_erratum_835769_fix): New data struct to record erratum + 835769. + (elf_aarch64_link_hash_table: Global flags for 835769. + (aarch64_build_one_stub): Add case for 835769. + (aarch64_size_one_stub): Likewise. + (aarch64_mem_op_p, aarch64_mlxl_p, + aarch64_erratum_sequence,erratum_835769_scan): + New. Decode and scan functions for erratum 835769. + (elf_aarch64_create_or_find_stub_sec): New. + (elfNN_aarch64_size_stubs): Look for erratum 835769 and record + them. + (bfd_elfNN_aarch64_set_options: Set global flag for 835769. + (erratum_835769_branch_to_stub_data, + make_branch_to_erratum_835769_stub):New. Connect up all the + erratum stubs to occurances by branches. + (elfNN_aarch64_write_section): New hook. + (aarch64_map_one_stub): Output erratum stub symbol. + (elfNN_aarch64_size_dynamic_sections): Init mapping symbol + information for erratum 835769. + (elf_backend_write_section): Define. + +2014-10-23 Victor Kamensky + + * elf32-arm.c (read_code32): New function to read 32 bit + arm instruction. + (read_code16): New function to read 16 bit thumb instrution. + (elf32_arm_plt0_size, elf32_arm_plt_size): Use read_code32 + and read_code16 to read instructions. + +2014-10-22 Matthew Fortune - Apply trunk patches: + * elfxx-mips.c (print_mips_ases): Print unknown ASEs. + (print_mips_isa_ext): Print the value of an unknown extension. + +2014-10-21 Alan Modra - 2014-10-21 Alan Modra * elf64-ppc.c (ppc64_elf_tls_optimize): Ignore relocs against toc entries that aren't a multiple of 8 rather than failing assertion. - 2014-10-21 Alan Modra +2014-10-21 Alan Modra + * elf64-ppc.c (ppc64_elf_size_stubs): Add gcc-4.9 libgomp functions to thread_starter. - 2014-10-18 Alan Modra +2014-10-18 Alan Modra + * elf64-ppc.c (ppc64_elf_add_symbol_hook): If function code section for function symbols defined in .opd is discarded, let the symbol appear to be undefined. (opd_entry_value): Ensure the result section is that for the function code section in the same object as the OPD entry. - 2014-10-16 Alan Modra +2014-10-16 Alan Modra + PR 17492 * elf32-arm.c (elf32_arm_add_symbol_hook): Only set has_gnu_symbols on ELF output bfd. @@ -420,12 +623,14 @@ * elf-s390-common.c (elf_s390_add_symbol_hook): Likewise. Handle STB_GNU_UNIQUE too. - 2014-10-16 Alan Modra +2014-10-16 Alan Modra + * elf64-ppc.c (ppc64_elf_before_check_relocs): Do .opd processing even when output is not ppc64 ELF. Remove redundant tests on type of input bfd. - 2014-10-15 Alan Modra +2014-10-15 Alan Modra + PR 17481 * aoutx.h (NAME (aout, find_nearest_line)): Add "discriminator_ptr" param, group "section" and "offset" params. Zero discriminator. @@ -502,7 +707,8 @@ * libbfd.h: Regenerate. * libcoff.h: Regenerate. - 2014-10-15 Alan Modra +2014-10-15 Alan Modra + * targets.c (BFD_JUMP_TABLE_SYMBOLS): Use NAME##_find_line. * aout-adobe.c (aout_32_find_line): Define. (aout_32_bfd_make_debug_symbol, aout_32_bfd_reloc_type_lookup, @@ -546,39 +752,16 @@ * libbfd.h: Regenerate. * libcoff.h: Regenerate. -2014-10-24 Tejas Belagod +2014-10-15 Tristan Gingold - * bfd-in.h (bfd_elf64_aarch64_set_options): Add a parameter. - * bfd-in2.h (bfd_elf64_aarch64_set_options): Likewise. - * elfnn-aarch64.c (aarch64_erratum_835769_stub): New. - (elf_aarch64_stub_type): Add new type - aarch64_stub_erratum_835769_veneer. - (elf_aarch64_stub_hash_entry): New fields for erratum 835769. - (aarch64_erratum_835769_fix): New data struct to record erratum - 835769. - (elf_aarch64_link_hash_table: Global flags for 835769. - (aarch64_build_one_stub): Add case for 835769. - (aarch64_size_one_stub): Likewise. - (aarch64_mem_op_p, aarch64_mlxl_p, - aarch64_erratum_sequence,erratum_835769_scan): - New. Decode and scan functions for erratum 835769. - (elf_aarch64_create_or_find_stub_sec): New. - (elfNN_aarch64_size_stubs): Look for erratum 835769 and record - them. - (bfd_elfNN_aarch64_set_options: Set global flag for 835769. - (erratum_835769_branch_to_stub_data, - make_branch_to_erratum_835769_stub):New. Connect up all the - erratum stubs to occurances by branches. - (elfNN_aarch64_write_section): New hook. - (aarch64_map_one_stub): Output erratum stub symbol. - (elfNN_aarch64_size_dynamic_sections): Init mapping symbol - information for erratum 835769. - (elf_backend_write_section): Define. + * version.m4: Bump version to 2.25.51 + * configure: Regenerate. -2014-10-14 Tristan Gingold +2014-10-14 H.J. Lu - * version.m4: Bump version to 2.24.90 - * configure: Regenerate. + * elf32-i386.c (elf_i386_convert_mov_to_lea): Skip if relocation + offset is less than 2. + * elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Likewise. 2014-10-14 Alan Modra diff --git a/binutils-2.25/bfd/Makefile.in b/binutils-2.25/bfd/Makefile.in index 2c385d5..5ee1650 100644 --- a/binutils-2.25/bfd/Makefile.in +++ b/binutils-2.25/bfd/Makefile.in @@ -16,7 +16,7 @@ @SET_MAKE@ # -# Copyright (C) 2012-2014 Free Software Foundation, Inc. +# Copyright (C) 2012-2015 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/binutils-2.25/bfd/archures.c b/binutils-2.25/bfd/archures.c index c9fd6c8..5e069b2 100644 --- a/binutils-2.25/bfd/archures.c +++ b/binutils-2.25/bfd/archures.c @@ -179,6 +179,7 @@ DESCRIPTION .#define bfd_mach_mips_octeon 6501 .#define bfd_mach_mips_octeonp 6601 .#define bfd_mach_mips_octeon2 6502 +.#define bfd_mach_mips_octeon3 6503 .#define bfd_mach_mips_xlr 887682 {* decimal 'XLR' *} .#define bfd_mach_mipsisa32 32 .#define bfd_mach_mipsisa32r2 33 diff --git a/binutils-2.25/bfd/bfd-in2.h b/binutils-2.25/bfd/bfd-in2.h index 5f7879f..97f0142 100644 --- a/binutils-2.25/bfd/bfd-in2.h +++ b/binutils-2.25/bfd/bfd-in2.h @@ -1966,6 +1966,7 @@ enum bfd_architecture #define bfd_mach_mips_octeon 6501 #define bfd_mach_mips_octeonp 6601 #define bfd_mach_mips_octeon2 6502 +#define bfd_mach_mips_octeon3 6503 #define bfd_mach_mips_xlr 887682 /* decimal 'XLR' */ #define bfd_mach_mipsisa32 32 #define bfd_mach_mipsisa32r2 33 diff --git a/binutils-2.25/bfd/configure b/binutils-2.25/bfd/configure index ea5d50d..b70a6d0 100755 --- a/binutils-2.25/bfd/configure +++ b/binutils-2.25/bfd/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.64 for bfd 2.24.90. +# Generated by GNU Autoconf 2.64 for bfd 2.25.51. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software @@ -556,8 +556,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='bfd' PACKAGE_TARNAME='bfd' -PACKAGE_VERSION='2.24.90' -PACKAGE_STRING='bfd 2.24.90' +PACKAGE_VERSION='2.25.51' +PACKAGE_STRING='bfd 2.25.51' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1349,7 +1349,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures bfd 2.24.90 to adapt to many kinds of systems. +\`configure' configures bfd 2.25.51 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1420,7 +1420,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bfd 2.24.90:";; + short | recursive ) echo "Configuration of bfd 2.25.51:";; esac cat <<\_ACEOF @@ -1541,7 +1541,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -bfd configure 2.24.90 +bfd configure 2.25.51 generated by GNU Autoconf 2.64 Copyright (C) 2009 Free Software Foundation, Inc. @@ -2183,7 +2183,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by bfd $as_me 2.24.90, which was +It was created by bfd $as_me 2.25.51, which was generated by GNU Autoconf 2.64. Invocation command line was $ $0 $@ @@ -3991,7 +3991,7 @@ fi # Define the identity of the package. PACKAGE='bfd' - VERSION='2.24.90' + VERSION='2.25.51' cat >>confdefs.h <<_ACEOF @@ -16567,7 +16567,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by bfd $as_me 2.24.90, which was +This file was extended by bfd $as_me 2.25.51, which was generated by GNU Autoconf 2.64. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -16631,7 +16631,7 @@ Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -bfd config.status 2.24.90 +bfd config.status 2.25.51 configured by $0, generated by GNU Autoconf 2.64, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/binutils-2.25/bfd/cpu-mips.c b/binutils-2.25/bfd/cpu-mips.c index b617aaa..a376944 100644 --- a/binutils-2.25/bfd/cpu-mips.c +++ b/binutils-2.25/bfd/cpu-mips.c @@ -102,6 +102,7 @@ enum I_mipsocteon, I_mipsocteonp, I_mipsocteon2, + I_mipsocteon3, I_xlr, I_micromips }; @@ -152,6 +153,7 @@ static const bfd_arch_info_type arch_info_struct[] = N (64, 64, bfd_mach_mips_octeon,"mips:octeon", FALSE, NN(I_mipsocteon)), N (64, 64, bfd_mach_mips_octeonp,"mips:octeon+", FALSE, NN(I_mipsocteonp)), N (64, 64, bfd_mach_mips_octeon2,"mips:octeon2", FALSE, NN(I_mipsocteon2)), + N (64, 64, bfd_mach_mips_octeon3, "mips:octeon3", FALSE, NN(I_mipsocteon3)), N (64, 64, bfd_mach_mips_xlr, "mips:xlr", FALSE, NN(I_xlr)), N (64, 64, bfd_mach_mips_micromips,"mips:micromips",FALSE,0) }; diff --git a/binutils-2.25/bfd/development.sh b/binutils-2.25/bfd/development.sh index 416ec8c..4c0f5b9 100644 --- a/binutils-2.25/bfd/development.sh +++ b/binutils-2.25/bfd/development.sh @@ -16,4 +16,4 @@ # along with this program. If not, see . # Controls whether to enable development-mode features by default. -development=false +development=true diff --git a/binutils-2.25/bfd/doc/Makefile.in b/binutils-2.25/bfd/doc/Makefile.in index 65ad42d..3be6a5e 100644 --- a/binutils-2.25/bfd/doc/Makefile.in +++ b/binutils-2.25/bfd/doc/Makefile.in @@ -16,7 +16,7 @@ @SET_MAKE@ # -# Copyright (C) 2012-2014 Free Software Foundation, Inc. +# Copyright (C) 2012-2015 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/binutils-2.25/bfd/elf-attrs.c b/binutils-2.25/bfd/elf-attrs.c index e74176f..14420f2 100644 --- a/binutils-2.25/bfd/elf-attrs.c +++ b/binutils-2.25/bfd/elf-attrs.c @@ -455,6 +455,8 @@ _bfd_elf_parse_attributes (bfd *abfd, Elf_Internal_Shdr * hdr) section_len = bfd_get_32 (abfd, p); p += 4; + if (section_len == 0) + break; if (section_len > len) section_len = len; len -= section_len; @@ -487,6 +489,8 @@ _bfd_elf_parse_attributes (bfd *abfd, Elf_Internal_Shdr * hdr) p += n; subsection_len = bfd_get_32 (abfd, p); p += 4; + if (subsection_len == 0) + break; if (subsection_len > section_len) subsection_len = section_len; section_len -= subsection_len; diff --git a/binutils-2.25/bfd/elf32-arm.c b/binutils-2.25/bfd/elf32-arm.c index c507e4f..bbda298 100644 --- a/binutils-2.25/bfd/elf32-arm.c +++ b/binutils-2.25/bfd/elf32-arm.c @@ -11746,10 +11746,14 @@ elf32_arm_merge_eabi_attributes (bfd *ibfd, bfd *obfd) /* This needs to happen before Tag_ABI_FP_number_model is merged. */ if (in_attr[Tag_ABI_VFP_args].i != out_attr[Tag_ABI_VFP_args].i) { - /* Ignore mismatches if the object doesn't use floating point. */ - if (out_attr[Tag_ABI_FP_number_model].i == 0) + /* Ignore mismatches if the object doesn't use floating point or is + floating point ABI independent. */ + if (out_attr[Tag_ABI_FP_number_model].i == AEABI_FP_number_model_none + || (in_attr[Tag_ABI_FP_number_model].i != AEABI_FP_number_model_none + && out_attr[Tag_ABI_VFP_args].i == AEABI_VFP_args_compatible)) out_attr[Tag_ABI_VFP_args].i = in_attr[Tag_ABI_VFP_args].i; - else if (in_attr[Tag_ABI_FP_number_model].i != 0) + else if (in_attr[Tag_ABI_FP_number_model].i != AEABI_FP_number_model_none + && in_attr[Tag_ABI_VFP_args].i != AEABI_VFP_args_compatible) { _bfd_error_handler (_("error: %B uses VFP register arguments, %B does not"), @@ -14713,7 +14717,7 @@ elf32_arm_post_process_headers (bfd * abfd, struct bfd_link_info * link_info ATT && ((i_ehdrp->e_type == ET_DYN) || (i_ehdrp->e_type == ET_EXEC))) { int abi = bfd_elf_get_obj_attr_int (abfd, OBJ_ATTR_PROC, Tag_ABI_VFP_args); - if (abi) + if (abi == AEABI_VFP_args_vfp) i_ehdrp->e_flags |= EF_ARM_ABI_FLOAT_HARD; else i_ehdrp->e_flags |= EF_ARM_ABI_FLOAT_SOFT; @@ -15958,6 +15962,26 @@ const struct elf_size_info elf32_arm_size_info = bfd_elf32_swap_reloca_out }; +static bfd_vma +read_code32 (const bfd *abfd, const bfd_byte *addr) +{ + /* V7 BE8 code is always little endian. */ + if ((elf_elfheader (abfd)->e_flags & EF_ARM_BE8) != 0) + return bfd_getl32 (addr); + + return bfd_get_32 (abfd, addr); +} + +static bfd_vma +read_code16 (const bfd *abfd, const bfd_byte *addr) +{ + /* V7 BE8 code is always little endian. */ + if ((elf_elfheader (abfd)->e_flags & EF_ARM_BE8) != 0) + return bfd_getl16 (addr); + + return bfd_get_16 (abfd, addr); +} + /* Return size of plt0 entry starting at ADDR or (bfd_vma) -1 if size can not be determined. */ @@ -15967,7 +15991,7 @@ elf32_arm_plt0_size (const bfd *abfd, const bfd_byte *addr) bfd_vma first_word; bfd_vma plt0_size; - first_word = H_GET_32 (abfd, addr); + first_word = read_code32 (abfd, addr); if (first_word == elf32_arm_plt0_entry[0]) plt0_size = 4 * ARRAY_SIZE (elf32_arm_plt0_entry); @@ -15992,17 +16016,17 @@ elf32_arm_plt_size (const bfd *abfd, const bfd_byte *start, bfd_vma offset) const bfd_byte *addr = start + offset; /* PLT entry size if fixed on Thumb-only platforms. */ - if (H_GET_32(abfd, start) == elf32_thumb2_plt0_entry[0]) + if (read_code32 (abfd, start) == elf32_thumb2_plt0_entry[0]) return 4 * ARRAY_SIZE (elf32_thumb2_plt_entry); /* Respect Thumb stub if necessary. */ - if (H_GET_16(abfd, addr) == elf32_arm_plt_thumb_stub[0]) + if (read_code16 (abfd, addr) == elf32_arm_plt_thumb_stub[0]) { plt_size += 2 * ARRAY_SIZE(elf32_arm_plt_thumb_stub); } /* Strip immediate from first add. */ - first_insn = H_GET_32(abfd, addr + plt_size) & 0xffffff00; + first_insn = read_code32 (abfd, addr + plt_size) & 0xffffff00; #ifdef FOUR_WORD_PLT if (first_insn == elf32_arm_plt_entry[0]) @@ -16219,6 +16243,7 @@ elf32_arm_get_synthetic_symtab (bfd *abfd, becaus elf32_arm_plt_entry isn't defined when FOUR_WORD_PLT isn't defined where elf32_arm_plt_entry_short and elf32_arm_plt_entry_long are defined instead. */ + #undef elf_backend_plt_sym_val #define elf_backend_plt_sym_val elf32_arm_plt_sym_val diff --git a/binutils-2.25/bfd/elf32-avr.c b/binutils-2.25/bfd/elf32-avr.c index 54d67bf..5aa3cf6 100644 --- a/binutils-2.25/bfd/elf32-avr.c +++ b/binutils-2.25/bfd/elf32-avr.c @@ -1881,10 +1881,22 @@ elf32_avr_relax_delete_bytes (bfd *abfd, isymend = isym + symtab_hdr->sh_info; for (; isym < isymend; isym++) { - if (isym->st_shndx == sec_shndx - && isym->st_value > addr - && isym->st_value < toaddr) - isym->st_value -= count; + if (isym->st_shndx == sec_shndx) + { + if (isym->st_value > addr + && isym->st_value <= toaddr) + isym->st_value -= count; + + if (isym->st_value <= addr + && isym->st_value + isym->st_size > addr) + { + /* If this assert fires then we have a symbol that ends + part way through an instruction. Does that make + sense? */ + BFD_ASSERT (isym->st_value + isym->st_size >= addr + count); + isym->st_size -= count; + } + } } } @@ -1898,11 +1910,22 @@ elf32_avr_relax_delete_bytes (bfd *abfd, struct elf_link_hash_entry *sym_hash = *sym_hashes; if ((sym_hash->root.type == bfd_link_hash_defined || sym_hash->root.type == bfd_link_hash_defweak) - && sym_hash->root.u.def.section == sec - && sym_hash->root.u.def.value > addr - && sym_hash->root.u.def.value < toaddr) + && sym_hash->root.u.def.section == sec) { - sym_hash->root.u.def.value -= count; + if (sym_hash->root.u.def.value > addr + && sym_hash->root.u.def.value <= toaddr) + sym_hash->root.u.def.value -= count; + + if (sym_hash->root.u.def.value <= addr + && (sym_hash->root.u.def.value + sym_hash->size > addr)) + { + /* If this assert fires then we have a symbol that ends + part way through an instruction. Does that make + sense? */ + BFD_ASSERT (sym_hash->root.u.def.value + sym_hash->size + >= addr + count); + sym_hash->size -= count; + } } } diff --git a/binutils-2.25/bfd/elf32-i386.c b/binutils-2.25/bfd/elf32-i386.c index ad8b557..64cdece 100644 --- a/binutils-2.25/bfd/elf32-i386.c +++ b/binutils-2.25/bfd/elf32-i386.c @@ -2580,6 +2580,7 @@ elf_i386_convert_mov_to_lea (bfd *abfd, asection *sec, /* STT_GNU_IFUNC must keep R_386_GOT32 relocation. */ if (ELF_ST_TYPE (isym->st_info) != STT_GNU_IFUNC + && irel->r_offset >= 2 && bfd_get_8 (input_bfd, contents + irel->r_offset - 2) == 0x8b) { @@ -2609,6 +2610,7 @@ elf_i386_convert_mov_to_lea (bfd *abfd, asection *sec, && h->type != STT_GNU_IFUNC && h != htab->elf.hdynamic && SYMBOL_REFERENCES_LOCAL (link_info, h) + && irel->r_offset >= 2 && bfd_get_8 (input_bfd, contents + irel->r_offset - 2) == 0x8b) { diff --git a/binutils-2.25/bfd/elf32-spu.c b/binutils-2.25/bfd/elf32-spu.c index 13806ad..ebc9e6a 100644 --- a/binutils-2.25/bfd/elf32-spu.c +++ b/binutils-2.25/bfd/elf32-spu.c @@ -1828,6 +1828,18 @@ ovl_mgr_pread (struct bfd *abfd ATTRIBUTE_UNUSED, return count; } +static int +ovl_mgr_stat (struct bfd *abfd ATTRIBUTE_UNUSED, + void *stream, + struct stat *sb) +{ + struct _ovl_stream *os = (struct _ovl_stream *) stream; + + memset (sb, 0, sizeof (*sb)); + sb->st_size = (const char *) os->end - (const char *) os->start; + return 0; +} + bfd_boolean spu_elf_open_builtin_lib (bfd **ovl_bfd, const struct _ovl_stream *stream) { @@ -1837,7 +1849,7 @@ spu_elf_open_builtin_lib (bfd **ovl_bfd, const struct _ovl_stream *stream) (void *) stream, ovl_mgr_pread, NULL, - NULL); + ovl_mgr_stat); return *ovl_bfd != NULL; } diff --git a/binutils-2.25/bfd/elf64-ppc.c b/binutils-2.25/bfd/elf64-ppc.c index 0b65ab1..0245a2c 100644 --- a/binutils-2.25/bfd/elf64-ppc.c +++ b/binutils-2.25/bfd/elf64-ppc.c @@ -11805,7 +11805,7 @@ group_sections (struct ppc_link_hash_table *htab, bfd_boolean suppress_size_errors; suppress_size_errors = FALSE; - stub14_group_size = stub_group_size; + stub14_group_size = stub_group_size >> 10; if (stub_group_size == 1) { /* Default values. */ @@ -11979,6 +11979,8 @@ ppc64_elf_size_stubs (struct bfd_link_info *info) "GOMP_parallel_loop_runtime_start", "GOMP_parallel_sections", "GOMP_parallel_sections_start", + /* libgo */ + "__go_go", }; unsigned i; diff --git a/binutils-2.25/bfd/elf64-x86-64.c b/binutils-2.25/bfd/elf64-x86-64.c index 3881f60..f2b13e7 100644 --- a/binutils-2.25/bfd/elf64-x86-64.c +++ b/binutils-2.25/bfd/elf64-x86-64.c @@ -1629,16 +1629,11 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info, case R_X86_64_PC32_BND: case R_X86_64_PLT32_BND: - case R_X86_64_PC32: - case R_X86_64_PLT32: - case R_X86_64_32: - case R_X86_64_64: /* MPX PLT is supported only if elf_x86_64_arch_bed is used in 64-bit mode. */ if (ABI_64_P (abfd) - && info->bndplt - && (get_elf_x86_64_backend_data (abfd) - == &elf_x86_64_arch_bed)) + && (get_elf_x86_64_backend_data (abfd) + == &elf_x86_64_arch_bed)) { elf_x86_64_hash_entry (h)->has_bnd_reloc = TRUE; @@ -1680,7 +1675,11 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info, } case R_X86_64_32S: + case R_X86_64_32: + case R_X86_64_64: + case R_X86_64_PC32: case R_X86_64_PC64: + case R_X86_64_PLT32: case R_X86_64_GOTPCREL: case R_X86_64_GOTPCREL64: if (htab->elf.dynobj == NULL) @@ -1753,14 +1752,6 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info, if (h != NULL) { - if (r_type == R_X86_64_GOTPLT64) - { - /* This relocation indicates that we also need - a PLT entry, as this is a function. We don't need - a PLT entry for local symbols. */ - h->needs_plt = 1; - h->plt.refcount += 1; - } h->got.refcount += 1; old_tls_type = elf_x86_64_hash_entry (h)->tls_type; } @@ -2182,8 +2173,6 @@ elf_x86_64_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info, case R_X86_64_GOTPLT64: if (h != NULL) { - if (r_type == R_X86_64_GOTPLT64 && h->plt.refcount > 0) - h->plt.refcount -= 1; if (h->got.refcount > 0) h->got.refcount -= 1; if (h->type == STT_GNU_IFUNC) @@ -2825,6 +2814,7 @@ elf_x86_64_convert_mov_to_lea (bfd *abfd, asection *sec, /* STT_GNU_IFUNC must keep R_X86_64_GOTPCREL relocation. */ if (ELF_ST_TYPE (isym->st_info) != STT_GNU_IFUNC + && irel->r_offset >= 2 && bfd_get_8 (input_bfd, contents + irel->r_offset - 2) == 0x8b) { @@ -2855,6 +2845,7 @@ elf_x86_64_convert_mov_to_lea (bfd *abfd, asection *sec, && h->type != STT_GNU_IFUNC && h != htab->elf.hdynamic && SYMBOL_REFERENCES_LOCAL (link_info, h) + && irel->r_offset >= 2 && bfd_get_8 (input_bfd, contents + irel->r_offset - 2) == 0x8b) { @@ -3719,12 +3710,7 @@ elf_x86_64_relocate_section (bfd *output_bfd, case R_X86_64_GOTPCREL64: /* Use global offset table entry as symbol value. */ case R_X86_64_GOTPLT64: - /* This is the same as GOT64 for relocation purposes, but - indicates the existence of a PLT entry. The difficulty is, - that we must calculate the GOT slot offset from the PLT - offset, if this symbol got a PLT entry (it was global). - Additionally if it's computed from the PLT entry, then that - GOT offset is relative to .got.plt, not to .got. */ + /* This is obsolete and treated the the same as GOT64. */ base_got = htab->elf.sgot; if (htab->elf.sgot == NULL) diff --git a/binutils-2.25/bfd/elfxx-mips.c b/binutils-2.25/bfd/elfxx-mips.c index cb6fd21..998549d 100644 --- a/binutils-2.25/bfd/elfxx-mips.c +++ b/binutils-2.25/bfd/elfxx-mips.c @@ -6607,6 +6607,9 @@ _bfd_elf_mips_mach (flagword flags) case E_MIPS_MACH_LS3A: return bfd_mach_mips_loongson_3a; + case E_MIPS_MACH_OCTEON3: + return bfd_mach_mips_octeon3; + case E_MIPS_MACH_OCTEON2: return bfd_mach_mips_octeon2; @@ -7002,20 +7005,11 @@ _bfd_mips_elf_section_processing (bfd *abfd, Elf_Internal_Shdr *hdr) if (strcmp (name, ".sdata") == 0 || strcmp (name, ".lit8") == 0 || strcmp (name, ".lit4") == 0) - { - hdr->sh_flags |= SHF_ALLOC | SHF_WRITE | SHF_MIPS_GPREL; - hdr->sh_type = SHT_PROGBITS; - } + hdr->sh_flags |= SHF_ALLOC | SHF_WRITE | SHF_MIPS_GPREL; else if (strcmp (name, ".srdata") == 0) - { - hdr->sh_flags |= SHF_ALLOC | SHF_MIPS_GPREL; - hdr->sh_type = SHT_PROGBITS; - } + hdr->sh_flags |= SHF_ALLOC | SHF_MIPS_GPREL; else if (strcmp (name, ".compact_rel") == 0) - { - hdr->sh_flags = 0; - hdr->sh_type = SHT_PROGBITS; - } + hdr->sh_flags = 0; else if (strcmp (name, ".rtproc") == 0) { if (hdr->sh_addralign != 0 && hdr->sh_entsize == 0) @@ -11480,9 +11474,11 @@ _bfd_mips_elf_finish_dynamic_sections (bfd *output_bfd, name = ".dynsym"; elemsize = MIPS_ELF_SYM_SIZE (output_bfd); s = bfd_get_section_by_name (output_bfd, name); - BFD_ASSERT (s != NULL); - dyn.d_un.d_val = s->size / elemsize; + if (s != NULL) + dyn.d_un.d_val = s->size / elemsize; + else + dyn.d_un.d_val = 0; break; case DT_MIPS_HIPAGENO: @@ -11906,6 +11902,10 @@ mips_set_isa_flags (bfd *abfd) val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_OCTEON; break; + case bfd_mach_mips_octeon3: + val = E_MIPS_ARCH_64R2 | E_MIPS_MACH_OCTEON3; + break; + case bfd_mach_mips_xlr: val = E_MIPS_ARCH_64 | E_MIPS_MACH_XLR; break; @@ -13959,6 +13959,8 @@ bfd_mips_isa_ext (bfd *abfd) return AFL_EXT_OCTEON; case bfd_mach_mips_octeonp: return AFL_EXT_OCTEONP; + case bfd_mach_mips_octeon3: + return AFL_EXT_OCTEON3; case bfd_mach_mips_octeon2: return AFL_EXT_OCTEON2; case bfd_mach_mips_xlr: @@ -14792,6 +14794,7 @@ struct mips_mach_extension static const struct mips_mach_extension mips_mach_extensions[] = { /* MIPS64r2 extensions. */ + { bfd_mach_mips_octeon3, bfd_mach_mips_octeon2 }, { bfd_mach_mips_octeon2, bfd_mach_mips_octeonp }, { bfd_mach_mips_octeonp, bfd_mach_mips_octeon }, { bfd_mach_mips_octeon, bfd_mach_mipsisa64r2 }, @@ -15588,6 +15591,9 @@ print_mips_isa_ext (FILE *file, unsigned int isa_ext) case AFL_EXT_XLR: fputs ("RMI XLR", file); break; + case AFL_EXT_OCTEON3: + fputs ("Cavium Networks Octeon3", file); + break; case AFL_EXT_OCTEON2: fputs ("Cavium Networks Octeon2", file); break; diff --git a/binutils-2.25/bfd/version.h b/binutils-2.25/bfd/version.h index ec0bedc..7c349d6 100644 --- a/binutils-2.25/bfd/version.h +++ b/binutils-2.25/bfd/version.h @@ -1,4 +1,4 @@ -#define BFD_VERSION_DATE 20141119 +#define BFD_VERSION_DATE 20141117 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@ #define REPORT_BUGS_TO @report_bugs_to@ diff --git a/binutils-2.25/bfd/version.m4 b/binutils-2.25/bfd/version.m4 index c92d143..0f2f235 100644 --- a/binutils-2.25/bfd/version.m4 +++ b/binutils-2.25/bfd/version.m4 @@ -1 +1 @@ -m4_define([BFD_VERSION], [2.24.90]) +m4_define([BFD_VERSION], [2.25.51]) diff --git a/binutils-2.25/binutils/.gitignore b/binutils-2.25/binutils/.gitignore new file mode 100644 index 0000000..1934ea0 --- /dev/null +++ b/binutils-2.25/binutils/.gitignore @@ -0,0 +1,58 @@ +/addr2line +/ar +/bin2c +/coffdump +/cxxfilt +/dlltool +/dllwrap +/elfedit +/nlmconv +/nm-new +/objcopy +/objdump +/ranlib +/readelf +/size +/srconv +/strings +/strip-new +/sysdump +/sysinfo +/windmc +/windres + +/arlex.c +/arparse.c +/arparse.h +/deflex.c +/defparse.c +/defparse.h +/mcparse.c +/mcparse.h +/nlmheader.c +/nlmheader.h +/rcparse.c +/rcparse.h +/sysinfo.c +/sysinfo.h +/syslex.c +/sysroff.c +/sysroff.h + +/doc/addr2line.1 +/doc/ar.1 +/doc/c++filt.1 +/doc/cxxfilt.man +/doc/dlltool.1 +/doc/elfedit.1 +/doc/nlmconv.1 +/doc/nm.1 +/doc/objcopy.1 +/doc/objdump.1 +/doc/ranlib.1 +/doc/readelf.1 +/doc/size.1 +/doc/strings.1 +/doc/strip.1 +/doc/windmc.1 +/doc/windres.1 diff --git a/binutils-2.25/binutils/ChangeLog b/binutils-2.25/binutils/ChangeLog index c2f69e9..9f7e17c 100644 --- a/binutils-2.25/binutils/ChangeLog +++ b/binutils-2.25/binutils/ChangeLog @@ -1,8 +1,8 @@ -2014-11-17 Nick Clifton +2014-12-25 Thomas Preud'homme - Apply trunk patches: + * readelf.c (arm_attr_tag_ABI_VFP_args): Add "compatible". - 2014-11-14 Nick Clifton +2014-11-14 Nick Clifton PR binutils/17512 * dwarf.c (get_encoded_value): Add an 'end' parameter. Change the @@ -16,7 +16,7 @@ read. Update call to get_encoded_value. Warn if the read CFA expressions are too big. - 2014-11-13 Nick Clifton +2014-11-13 Nick Clifton PR binutils/17531 * readelf.c (process_version_sections): If the read of the version @@ -30,7 +30,7 @@ (print_gnu_note): Do not print the note if the descsz is too small. - 2014-11-12 Nick Clifton +2014-11-12 Nick Clifton PR binutils/17512 * dwarf.c (read_and_display_attr_value): Check that we do not read @@ -50,7 +50,7 @@ string table. Avoid walking off the end of the stabs data. * stabs.c (parse_stab_string): Add check for a NULL name. - 2014-11-11 Nick Clifton +2014-11-11 Nick Clifton PR binutils/17531 * binutils/readelf.c (dynamic_nent): Change type to size_t. @@ -77,17 +77,21 @@ size_t. Skip processing of sections headers if there are none. Improve out of memory error messages. - 2014-11-11 Nick Clifton +2014-11-11 Nick Clifton + + * po/fr.po: Updated French translation. + +2014-11-11 Nick Clifton PR binutils/17531 * readelf.c (display_arm_attribute): Avoid reading off the end of the buffer when processing a Tag_nodefaults. - 2014-11-10 Nick Clifton +2014-11-10 Nick Clifton PR binutils/17531 - * readelf.c (ia64_process_unwind): Replace assertion with an error - message. Add range checking for group section indicies. + * (ia64_process_unwind): Replace assertion with an error message. + Add range checking for group section indicies. (hppa_process_unwind): Replace assertion with an error message. (process_syminfo): Likewise. (decode_arm_unwind_bytecode): Add range checking. @@ -98,13 +102,18 @@ (display_tic6x_attribute): Likewise. (display_msp430x_attribute): Likewise. - 2014-11-10 Nick Clifton +2014-11-10 Nick Clifton PR binutils/17552 - * objcopy.c (copy_archive): Clean up temporary files even if an - error occurs. + * (copy_archive): Clean up temporary files even if an error + occurs. + +2014-11-07 H.J. Lu + + * readelf.c (process_dynamic_section): Cast time value to unsigned + long to print. - 2014-11-07 Nick Clifton +2014-11-07 Nick Clifton PR binutils/17531 * readelf.c (get_data): Avoid allocating memory when we know that @@ -124,7 +133,7 @@ (display_msp430x_attribute): Likewise. (process_mips_specific): Add range check. - 2014-11-06 Nick Clifton +2014-11-06 Nick Clifton PR binutils/17552, binutils/17533 * bucomm.c (is_valid_archive_path): New function. Returns false @@ -136,7 +145,7 @@ * doc/binutils.texi: Update documentation to mention the limitation on pathname of archive members. - 2014-11-05 Nick Clifton +2014-11-05 Nick Clifton PR binutils/17531 * readelf.c (printable_section_name): New function. @@ -158,7 +167,7 @@ small. (process_mips_specific): Check for a corrupt GOT symbol offset. - 2014-11-05 Nick Clifton +2014-11-05 Nick Clifton PR binutils/17533 * bucomm.c (is_valid_archive_path): New function. @@ -167,7 +176,15 @@ member filename before extracting it. * objcopy.c (copy_archive): Likewise. - 2014-11-04 Nick Clifton +2014-11-05 Jan-Benedict Glaw + + * readelf.c (process_mips_specific): Fix format string warning. + +2014-11-04 Matthew Fortune + + * readelf.c (process_mips_specific): Rename index to idx. + +2014-11-04 Nick Clifton PR binutils/17531 * readelf.c (get_data): If the reason parameter is null, do not @@ -179,6 +196,7 @@ (get_file_header): Pass TRUE to get_section_headers. (process_dynamic_section): Change an assert to an error message. (process_symbol_table): Handle corrupt histograms. + (get_32bit_program_headers): Verify program header entry size before reading in the program headers. (get_64bit_program_headers): Likewise. @@ -190,27 +208,44 @@ the section before attempting to read the length of the next attribute. - 2014-11-03 Nick Clifton +2014-11-03 Nick Clifton PR binutils/17512 * objdump.c (slurp_symtab): Fail gracefully if the table could not be read. (dump_relocs_in_section): Likewise. -2014-11-11 Nick Clifton - - * po/fr.po: Updated French translation. - 2014-11-03 Nick Clifton * po/fi.po: Updated Finnish translation. * po/sv.po: Updated Swedish translation. +2014-11-01 Hans-Peter Nilsson + + * readelf.c (get_32bit_elf_symbols): Cast error + parameters of bfd_size_type with the %lx format to + unsigned long. + +2014-10-31 Andrew Pinski + Naveen H.S + + * readelf.c (print_mips_isa_ext): Print the value of Octeon3. + +2014-10-31 Iain Buclaw + + * cxxfilt.c (main): Add case for dlang_demangling style. + 2014-10-31 Nick Clifton - Apply trunk patch: + PR binutils/17512 + * readelf.c (process_program_headers): Avoid memory exhaustion due + to corrupt values in a dynamis segment header. + (get_32bit_elf_symbols): Do not attempt to read an over-large + section. + (get_64bit_elf_symbols): Likewise. + +2014-10-31 Nick Clifton - 2014-10-31 Nick Clifton * strings.c: Add new command line option --data to only scan the initialized, loadable data secions of binaries. Choose the default behaviour of --all or --data based upon a configure @@ -226,9 +261,6 @@ 2014-10-30 Nick Clifton - Apply trunk patch: - - 2014-10-30 Nick Clifton * readelf.c (CHECK_ENTSIZE_VALUES): Rewrite error message so that there is a single string for translation. (dynamic_section_mips_val): Likewise. @@ -239,11 +271,8 @@ * po/sr.po: New Serbian translation. * po/sv.po: Updated Swedish translation. -2014-10-28 Matthew Fortune - - Apply trunk patch: +2014-10-22 Matthew Fortune - 2014-10-22 Matthew Fortune * readelf.c (print_mips_ases): Print unknown ASEs. (print_mips_isa_ext): Print the value of an unknown extension. diff --git a/binutils-2.25/binutils/Makefile.in b/binutils-2.25/binutils/Makefile.in index c6e0003..aaf4d51 100644 --- a/binutils-2.25/binutils/Makefile.in +++ b/binutils-2.25/binutils/Makefile.in @@ -16,7 +16,7 @@ @SET_MAKE@ # -# Copyright (C) 2012-2014 Free Software Foundation, Inc. +# Copyright (C) 2012-2015 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/binutils-2.25/binutils/bfdtest2.c b/binutils-2.25/binutils/bfdtest2.c index a791080..8b54765 100644 --- a/binutils-2.25/binutils/bfdtest2.c +++ b/binutils-2.25/binutils/bfdtest2.c @@ -1,106 +1,106 @@ -/* A program to test BFD. +/* A program to test BFD. Copyright (C) 2012-2014 Free Software Foundation, Inc. - - This file is part of the GNU Binutils. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, - MA 02110-1301, USA. */ - -#include "sysdep.h" -#include "bfd.h" - -static void -die (const char *s) -{ - printf ("oops: %s\n", s); - exit (1); -} - -static void * -iovec_open (struct bfd *nbfd ATTRIBUTE_UNUSED, void *open_closure) -{ - return open_closure; -} - -static file_ptr iovec_read (struct bfd *nbfd ATTRIBUTE_UNUSED, - void *stream, void *buf, file_ptr nbytes, - file_ptr offset) -{ - FILE* file = (FILE*) stream; - - if (fseek(file, offset, SEEK_SET) != 0) - die ("fseek error"); - - return fread (buf, 1, nbytes, file); -} - -static int -iovec_stat (struct bfd *abfd ATTRIBUTE_UNUSED, - void *stream, struct stat *sb) -{ - return fstat (fileno ((FILE*) stream), sb); -} - -static bfd_boolean -check_format_any (struct bfd *abfd, bfd_format format) -{ - char** targets = NULL; - - if (bfd_check_format_matches (abfd, format, &targets)) - return TRUE; - - if (targets) - { - bfd_find_target (targets[0], abfd); - - return bfd_check_format (abfd, format); - } - - return FALSE; -} - -int -main (int argc, const char** argv) -{ - FILE* file; - bfd *abfd, *mbfd; - - if (argc < 2) - die ("Usage: test archivefile"); - - file = fopen(argv[1], "rb"); - if (!file) - die ("file not found"); - - abfd = bfd_openr_iovec (argv[1], 0, iovec_open, file, - iovec_read, NULL, iovec_stat); - if (!abfd) - die ("error opening file"); - - if (!check_format_any (abfd, bfd_archive)) - die ("not an archive"); - - mbfd = bfd_openr_next_archived_file (abfd, 0); - if (!mbfd) - die ("error opening archive member"); - - if (!bfd_close (mbfd)) - die ("error closing archive member"); - - if (!bfd_close (abfd)) - die ("error closing archive"); - - return 0; -} + + This file is part of the GNU Binutils. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + +#include "sysdep.h" +#include "bfd.h" + +static void +die (const char *s) +{ + printf ("oops: %s\n", s); + exit (1); +} + +static void * +iovec_open (struct bfd *nbfd ATTRIBUTE_UNUSED, void *open_closure) +{ + return open_closure; +} + +static file_ptr iovec_read (struct bfd *nbfd ATTRIBUTE_UNUSED, + void *stream, void *buf, file_ptr nbytes, + file_ptr offset) +{ + FILE* file = (FILE*) stream; + + if (fseek(file, offset, SEEK_SET) != 0) + die ("fseek error"); + + return fread (buf, 1, nbytes, file); +} + +static int +iovec_stat (struct bfd *abfd ATTRIBUTE_UNUSED, + void *stream, struct stat *sb) +{ + return fstat (fileno ((FILE*) stream), sb); +} + +static bfd_boolean +check_format_any (struct bfd *abfd, bfd_format format) +{ + char** targets = NULL; + + if (bfd_check_format_matches (abfd, format, &targets)) + return TRUE; + + if (targets) + { + bfd_find_target (targets[0], abfd); + + return bfd_check_format (abfd, format); + } + + return FALSE; +} + +int +main (int argc, const char** argv) +{ + FILE* file; + bfd *abfd, *mbfd; + + if (argc < 2) + die ("Usage: test archivefile"); + + file = fopen(argv[1], "rb"); + if (!file) + die ("file not found"); + + abfd = bfd_openr_iovec (argv[1], 0, iovec_open, file, + iovec_read, NULL, iovec_stat); + if (!abfd) + die ("error opening file"); + + if (!check_format_any (abfd, bfd_archive)) + die ("not an archive"); + + mbfd = bfd_openr_next_archived_file (abfd, 0); + if (!mbfd) + die ("error opening archive member"); + + if (!bfd_close (mbfd)) + die ("error closing archive member"); + + if (!bfd_close (abfd)) + die ("error closing archive"); + + return 0; +} diff --git a/binutils-2.25/binutils/configure b/binutils-2.25/binutils/configure index 07551c3..70387ea 100755 --- a/binutils-2.25/binutils/configure +++ b/binutils-2.25/binutils/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.64 for binutils 2.24.90. +# Generated by GNU Autoconf 2.64 for binutils 2.25.51. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software @@ -556,8 +556,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='binutils' PACKAGE_TARNAME='binutils' -PACKAGE_VERSION='2.24.90' -PACKAGE_STRING='binutils 2.24.90' +PACKAGE_VERSION='2.25.51' +PACKAGE_STRING='binutils 2.25.51' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1333,7 +1333,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures binutils 2.24.90 to adapt to many kinds of systems. +\`configure' configures binutils 2.25.51 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1404,7 +1404,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of binutils 2.24.90:";; + short | recursive ) echo "Configuration of binutils 2.25.51:";; esac cat <<\_ACEOF @@ -1525,7 +1525,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -binutils configure 2.24.90 +binutils configure 2.25.51 generated by GNU Autoconf 2.64 Copyright (C) 2009 Free Software Foundation, Inc. @@ -1935,7 +1935,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by binutils $as_me 2.24.90, which was +It was created by binutils $as_me 2.25.51, which was generated by GNU Autoconf 2.64. Invocation command line was $ $0 $@ @@ -3743,7 +3743,7 @@ fi # Define the identity of the package. PACKAGE='binutils' - VERSION='2.24.90' + VERSION='2.25.51' cat >>confdefs.h <<_ACEOF @@ -14850,7 +14850,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by binutils $as_me 2.24.90, which was +This file was extended by binutils $as_me 2.25.51, which was generated by GNU Autoconf 2.64. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -14914,7 +14914,7 @@ Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -binutils config.status 2.24.90 +binutils config.status 2.25.51 configured by $0, generated by GNU Autoconf 2.64, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/binutils-2.25/binutils/cxxfilt.c b/binutils-2.25/binutils/cxxfilt.c index 157ebe0..03c4d0c 100644 --- a/binutils-2.25/binutils/cxxfilt.c +++ b/binutils-2.25/binutils/cxxfilt.c @@ -239,6 +239,7 @@ main (int argc, char **argv) case edg_demangling: case gnat_demangling: case gnu_v3_demangling: + case dlang_demangling: case auto_demangling: valid_symbols = standard_symbol_characters (); break; diff --git a/binutils-2.25/binutils/doc/Makefile.am b/binutils-2.25/binutils/doc/Makefile.am index e7a38c2..1c9b989 100644 --- a/binutils-2.25/binutils/doc/Makefile.am +++ b/binutils-2.25/binutils/doc/Makefile.am @@ -28,7 +28,7 @@ MANCONF = -Dman TEXI2POD = perl $(top_srcdir)/../etc/texi2pod.pl $(AM_MAKEINFOFLAGS) POD2MAN = pod2man --center="GNU Development Tools" \ - --release="binutils-$(VERSION)" --section=1 + --release="binutils-$(VERSION)" --section=1 --date=" " # List of man pages generated from binutils.texi man_MANS = \ diff --git a/binutils-2.25/binutils/doc/Makefile.in b/binutils-2.25/binutils/doc/Makefile.in index 2b172e1..21079c5 100644 --- a/binutils-2.25/binutils/doc/Makefile.in +++ b/binutils-2.25/binutils/doc/Makefile.in @@ -16,7 +16,7 @@ @SET_MAKE@ # -# Copyright (C) 2012-2014 Free Software Foundation, Inc. +# Copyright (C) 2012-2015 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -289,7 +289,7 @@ CONFIG = all MANCONF = -Dman TEXI2POD = perl $(top_srcdir)/../etc/texi2pod.pl $(AM_MAKEINFOFLAGS) POD2MAN = pod2man --center="GNU Development Tools" \ - --release="binutils-$(VERSION)" --section=1 + --release="binutils-$(VERSION)" --section=1 --date=" " # List of man pages generated from binutils.texi diff --git a/binutils-2.25/binutils/dwarf.c b/binutils-2.25/binutils/dwarf.c index 84e628a..4777bab 100644 --- a/binutils-2.25/binutils/dwarf.c +++ b/binutils-2.25/binutils/dwarf.c @@ -365,6 +365,9 @@ typedef struct State_Machine_Registers unsigned int file; unsigned int line; unsigned int column; + unsigned int discriminator; + unsigned int context; + unsigned int subprogram; int is_stmt; int basic_block; unsigned char op_index; @@ -384,19 +387,65 @@ reset_state_machine (int is_stmt) state_machine_regs.file = 1; state_machine_regs.line = 1; state_machine_regs.column = 0; + state_machine_regs.discriminator = 0; + state_machine_regs.context = 0; + state_machine_regs.subprogram = 0; state_machine_regs.is_stmt = is_stmt; state_machine_regs.basic_block = 0; state_machine_regs.end_sequence = 0; state_machine_regs.last_file_entry = 0; } +/* Build a logicals table for reference when reading the actuals table. */ + +static SMR *logicals_table = NULL; +static unsigned int logicals_allocated = 0; +static unsigned int logicals_count = 0; + +static void +free_logicals (void) +{ + free (logicals_table); + logicals_allocated = 0; + logicals_count = 0; + logicals_table = NULL; +} + +static void +append_logical (void) +{ + if (logicals_allocated == 0) + { + logicals_allocated = 4; + logicals_table = (SMR *) xmalloc (logicals_allocated * sizeof (SMR)); + } + if (logicals_count >= logicals_allocated) + { + logicals_allocated *= 2; + logicals_table = (SMR *) + xrealloc (logicals_table, logicals_allocated * sizeof (SMR)); + } + logicals_table[logicals_count++] = state_machine_regs; + printf (_("\t\tLogical %u: 0x%s[%u] file %u line %u discrim %u context %u subprog %u is_stmt %d\n"), + logicals_count, + dwarf_vmatoa ("x", state_machine_regs.address), + state_machine_regs.op_index, + state_machine_regs.file, + state_machine_regs.line, + state_machine_regs.discriminator, + state_machine_regs.context, + state_machine_regs.subprogram, + state_machine_regs.is_stmt); +} + /* Handled an extend line op. Returns the number of bytes read. */ static int process_extended_line_op (unsigned char * data, int is_stmt, - unsigned char * end) + unsigned char * end, + int is_logical) { unsigned char op_code; unsigned int bytes_read; @@ -423,6 +472,8 @@ process_extended_line_op (unsigned char * data, { case DW_LNE_end_sequence: printf (_("End of Sequence\n\n")); + if (is_logical) + append_logical (); reset_state_machine (is_stmt); break; @@ -453,8 +504,14 @@ process_extended_line_op (unsigned char * data, break; case DW_LNE_set_discriminator: - printf (_("set Discriminator to %s\n"), - dwarf_vmatoa ("u", read_uleb128 (data, & bytes_read, end))); + { + unsigned int discrim; + + discrim = read_uleb128 (data, & bytes_read, end); + data += bytes_read; + printf (_("set Discriminator to %u\n"), discrim); + state_machine_regs.discriminator = discrim; + } break; /* HP extensions. */ @@ -567,7 +624,7 @@ fetch_indirect_string (dwarf_vma offset) if (section->start == NULL) return (const unsigned char *) _(""); - if (offset > section->size) + if (offset >= section->size) { warn (_("DW_FORM_strp offset too big: %s\n"), dwarf_vmatoa ("x", offset)); @@ -577,6 +634,24 @@ fetch_indirect_string (dwarf_vma offset) return (const unsigned char *) section->start + offset; } +static const unsigned char * +fetch_indirect_line_string (dwarf_vma offset) +{ + struct dwarf_section *section = &debug_displays [line_str].section; + + if (section->start == NULL) + return (const unsigned char *) _(""); + + if (offset >= section->size) + { + warn (_("DW_FORM_line_strp offset too big: %s\n"), + dwarf_vmatoa ("x", offset)); + return (const unsigned char *) _(""); + } + + return (const unsigned char *) section->start + offset; +} + static const char * fetch_indexed_string (dwarf_vma idx, struct cu_tu_set *this_set, dwarf_vma offset_size, int dwo) @@ -594,7 +669,7 @@ fetch_indexed_string (dwarf_vma idx, struct cu_tu_set *this_set, if (this_set != NULL) index_offset += this_set->section_offsets [DW_SECT_STR_OFFSETS]; - if (index_offset > index_section->size) + if (index_offset + offset_size > index_section->size) { warn (_("DW_FORM_GNU_str_index offset too big: %s\n"), dwarf_vmatoa ("x", index_offset)); @@ -607,7 +682,7 @@ fetch_indexed_string (dwarf_vma idx, struct cu_tu_set *this_set, str_offset = byte_get (index_section->start + index_offset, offset_size); str_offset -= str_section->address; - if (str_offset > str_section->size) + if (str_offset >= str_section->size) { warn (_("DW_FORM_GNU_str_index indirect offset too big: %s\n"), dwarf_vmatoa ("x", str_offset)); @@ -2616,6 +2691,10 @@ load_debug_info (void * file) return 0; } +/* Experimental DWARF 5 extensions. + See http://wiki.dwarfstd.org/index.php?title=TwoLevelLineTables. */ +#define DWARF2_LINE_EXPERIMENTAL_VERSION 0xf006 + /* Read a DWARF .debug_line section header starting at DATA. Upon success returns an updated DATA pointer and the LINFO structure and the END_OF_SEQUENCE pointer will be filled in. @@ -2626,7 +2705,9 @@ read_debug_line_header (struct dwarf_section * section, unsigned char * data, unsigned char * end, DWARF2_Internal_LineInfo * linfo, - unsigned char ** end_of_sequence) + unsigned char ** end_of_sequence, + unsigned int * pinitial_length_size, + unsigned int * poffset_size) { unsigned char *hdrptr; unsigned int offset_size; @@ -2651,6 +2732,8 @@ read_debug_line_header (struct dwarf_section * section, offset_size = 4; initial_length_size = 4; } + *pinitial_length_size = initial_length_size; + *poffset_size = offset_size; if (linfo->li_length + initial_length_size > section->size) { @@ -2673,15 +2756,30 @@ read_debug_line_header (struct dwarf_section * section, /* Get and check the version number. */ SAFE_BYTE_GET_AND_INC (linfo->li_version, hdrptr, 2, end); + /* Version 0xf006 is for experimental two-level line tables. */ if (linfo->li_version != 2 && linfo->li_version != 3 - && linfo->li_version != 4) + && linfo->li_version != 4 + && linfo->li_version != 5 + && linfo->li_version != DWARF2_LINE_EXPERIMENTAL_VERSION) { - warn (_("Only DWARF version 2, 3 and 4 line info is currently supported.\n")); + warn (_("Only DWARF versions 2-5 line info are currently supported.\n")); return NULL; } + if (linfo->li_version < 5) + { + linfo->li_address_size = 0; + linfo->li_segment_size = 0; + } + else if (linfo->li_version != DWARF2_LINE_EXPERIMENTAL_VERSION) + { + SAFE_BYTE_GET_AND_INC (linfo->li_address_size, hdrptr, 1, end); + SAFE_BYTE_GET_AND_INC (linfo->li_segment_size, hdrptr, 1, end); + } + SAFE_BYTE_GET_AND_INC (linfo->li_prologue_length, hdrptr, offset_size, end); + SAFE_BYTE_GET_AND_INC (linfo->li_min_insn_length, hdrptr, 1, end); if (linfo->li_version >= 4) @@ -2706,12 +2804,473 @@ read_debug_line_header (struct dwarf_section * section, return hdrptr; } +static void +display_directory_table_v4 (unsigned char *start, unsigned char *end, + unsigned char **pdata) +{ + unsigned char *data = *pdata; + unsigned int last_dir_entry = 0; + + if (*data == 0) + printf (_("\n The Directory Table is empty.\n")); + else + { + printf (_("\n The Directory Table (offset 0x%lx):\n"), + (long)(data - start)); + + while (data < end && *data != 0) + { + printf (" %d\t%.*s\n", ++last_dir_entry, (int) (end - data), data); + + data += strnlen ((char *) data, end - data) + 1; + } + } + + /* Skip the NUL at the end of the table. */ + *pdata = data + 1; +} + +static void +display_file_name_table_v4 (unsigned char *start, unsigned char *end, + unsigned char **pdata) +{ + unsigned char *data = *pdata; + + if (*data == 0) + printf (_("\n The File Name Table is empty.\n")); + else + { + printf (_("\n The File Name Table (offset 0x%lx):\n"), + (long)(data - start)); + printf (_(" Entry\tDir\tTime\tSize\tName\n")); + + while (data < end && *data != 0) + { + unsigned char *name; + unsigned int bytes_read; + + printf (" %d\t", ++state_machine_regs.last_file_entry); + name = data; + data += strnlen ((char *) data, end - data) + 1; + + printf ("%s\t", + dwarf_vmatoa ("u", read_uleb128 (data, & bytes_read, end))); + data += bytes_read; + printf ("%s\t", + dwarf_vmatoa ("u", read_uleb128 (data, & bytes_read, end))); + data += bytes_read; + printf ("%s\t", + dwarf_vmatoa ("u", read_uleb128 (data, & bytes_read, end))); + data += bytes_read; + printf ("%.*s\n", (int)(end - name), name); + + if (data == end) + { + warn (_("Corrupt file name table entry\n")); + break; + } + } + } + + /* Skip the NUL at the end of the table. */ + *pdata = data + 1; +} + +static int +display_dir_file_table_v5 (unsigned char *start, unsigned char *end, + unsigned char **pdata, char *table_name, + unsigned int offset_size) +{ + unsigned char *data = *pdata; + unsigned int bytes_read; + unsigned int format_count; + unsigned int *content_types; + unsigned int *content_forms; + unsigned int entry_count; + unsigned int i, j; + const unsigned char *name; + dwarf_vma offset; + unsigned int val; + + format_count = read_uleb128 (data, & bytes_read, end); + data += bytes_read; + content_types = (unsigned int *) xmalloc (format_count * + sizeof (unsigned int)); + content_forms = (unsigned int *) xmalloc (format_count * + sizeof (unsigned int)); + for (j = 0; j < format_count; j++) + { + content_types[j] = read_uleb128 (data, & bytes_read, end); + data += bytes_read; + content_forms[j] = read_uleb128 (data, & bytes_read, end); + data += bytes_read; + } + + entry_count = read_uleb128 (data, & bytes_read, end); + data += bytes_read; + + if (entry_count == 0) + printf (_("\n The %s Table is empty.\n"), table_name); + else + { + printf (_("\n The %s Table (offset 0x%lx):\n"), + table_name, (long)(data - start)); + + printf (_(" Entry")); + for (j = 0; j < format_count; j++) + { + printf ("\t"); + switch (content_types[j]) + { + case DW_LNCT_path: + printf (_("Path")); + break; + case DW_LNCT_subprogram_name: + printf (_("Name")); + break; + case DW_LNCT_directory_index: + printf (_("Dir")); + break; + case DW_LNCT_decl_file: + printf (_("File")); + break; + case DW_LNCT_decl_line: + printf (_("Line")); + break; + } + } + printf ("\n"); + } + + for (i = 0; i < entry_count; i++) + { + printf (" %d", i + 1); + for (j = 0; j < format_count; j++) + { + if (data >= end) + break; + switch (content_forms[j]) + { + case DW_FORM_string: + printf ("\t%.*s", (int) (end - data), data); + data += strnlen ((char *) data, end - data) + 1; + break; + case DW_FORM_line_strp: + SAFE_BYTE_GET_AND_INC (offset, data, offset_size, end); + name = fetch_indirect_line_string (offset); + printf ("\t%s", name); + break; + case DW_FORM_udata: + val = read_uleb128 (data, & bytes_read, end); + data += bytes_read; + printf ("\t%u", val); + break; + default: + printf ("\t%s", _("(unrecognized FORM code)")); + data = end; + break; + } + } + printf ("\n"); + + /* PR 17512: file: 002-132094-0.004. */ + if (data >= end - 1) + break; + } + + free (content_types); + free (content_forms); + + *pdata = data; + return entry_count; +} + +static void +display_line_program (unsigned char *start, unsigned char *end, + unsigned char **pdata, char *table_name, + DWARF2_Internal_LineInfo *linfo, + unsigned char *standard_opcodes, + int is_logical) +{ + unsigned char *data = *pdata; + + if (data >= end) + { + printf (_(" No %s.\n"), table_name); + return; + } + + printf (" %s:\n", table_name); + + while (data < end) + { + unsigned char op_code; + dwarf_signed_vma adv; + dwarf_vma uladv; + unsigned int bytes_read; + unsigned int logical; + int i; + + printf (" [0x%08lx]", (long)(data - start)); + + op_code = *data++; + + if (op_code >= linfo->li_opcode_base) + { + op_code -= linfo->li_opcode_base; + uladv = (op_code / linfo->li_line_range); + if (linfo->li_max_ops_per_insn == 1) + { + uladv *= linfo->li_min_insn_length; + state_machine_regs.address += uladv; + printf (_(" Special opcode %d: " + "advance Address by %s to 0x%s"), + op_code, dwarf_vmatoa ("u", uladv), + dwarf_vmatoa ("x", state_machine_regs.address)); + } + else + { + state_machine_regs.address + += ((state_machine_regs.op_index + uladv) + / linfo->li_max_ops_per_insn) + * linfo->li_min_insn_length; + state_machine_regs.op_index + = (state_machine_regs.op_index + uladv) + % linfo->li_max_ops_per_insn; + printf (_(" Special opcode %d: " + "advance Address by %s to 0x%s[%d]"), + op_code, dwarf_vmatoa ("u", uladv), + dwarf_vmatoa ("x", state_machine_regs.address), + state_machine_regs.op_index); + } + adv = (op_code % linfo->li_line_range) + linfo->li_line_base; + state_machine_regs.line += adv; + printf (_(" and Line by %s to %d\n"), + dwarf_vmatoa ("d", adv), state_machine_regs.line); + if (is_logical) + append_logical (); + state_machine_regs.discriminator = 0; + } + else + { + switch (op_code) + { + case DW_LNS_extended_op: + data += process_extended_line_op (data, linfo->li_default_is_stmt, + end, is_logical); + break; + + case DW_LNS_copy: + printf (_(" Copy\n")); + if (is_logical) + append_logical (); + state_machine_regs.discriminator = 0; + break; + + case DW_LNS_advance_pc: + uladv = read_uleb128 (data, & bytes_read, end); + data += bytes_read; + if (linfo->li_max_ops_per_insn == 1) + { + uladv *= linfo->li_min_insn_length; + state_machine_regs.address += uladv; + printf (_(" Advance PC by %s to 0x%s\n"), + dwarf_vmatoa ("u", uladv), + dwarf_vmatoa ("x", state_machine_regs.address)); + } + else + { + state_machine_regs.address + += ((state_machine_regs.op_index + uladv) + / linfo->li_max_ops_per_insn) + * linfo->li_min_insn_length; + state_machine_regs.op_index + = (state_machine_regs.op_index + uladv) + % linfo->li_max_ops_per_insn; + printf (_(" Advance PC by %s to 0x%s[%d]\n"), + dwarf_vmatoa ("u", uladv), + dwarf_vmatoa ("x", state_machine_regs.address), + state_machine_regs.op_index); + } + break; + + case DW_LNS_advance_line: + adv = read_sleb128 (data, & bytes_read, end); + data += bytes_read; + state_machine_regs.line += adv; + printf (_(" Advance Line by %s to %d\n"), + dwarf_vmatoa ("d", adv), + state_machine_regs.line); + break; + + case DW_LNS_set_file: + adv = read_uleb128 (data, & bytes_read, end); + data += bytes_read; + printf (_(" Set File Name to entry %s in the File Name Table\n"), + dwarf_vmatoa ("d", adv)); + state_machine_regs.file = adv; + break; + + case DW_LNS_set_column: + uladv = read_uleb128 (data, & bytes_read, end); + data += bytes_read; + printf (_(" Set column to %s\n"), + dwarf_vmatoa ("u", uladv)); + state_machine_regs.column = uladv; + break; + + case DW_LNS_negate_stmt: + adv = state_machine_regs.is_stmt; + adv = ! adv; + printf (_(" Set is_stmt to %s\n"), dwarf_vmatoa ("d", adv)); + state_machine_regs.is_stmt = adv; + break; + + case DW_LNS_set_basic_block: + printf (_(" Set basic block\n")); + state_machine_regs.basic_block = 1; + break; + + case DW_LNS_const_add_pc: + uladv = ((255 - linfo->li_opcode_base) / linfo->li_line_range); + if (linfo->li_max_ops_per_insn) + { + uladv *= linfo->li_min_insn_length; + state_machine_regs.address += uladv; + printf (_(" Advance PC by constant %s to 0x%s\n"), + dwarf_vmatoa ("u", uladv), + dwarf_vmatoa ("x", state_machine_regs.address)); + } + else + { + state_machine_regs.address + += ((state_machine_regs.op_index + uladv) + / linfo->li_max_ops_per_insn) + * linfo->li_min_insn_length; + state_machine_regs.op_index + = (state_machine_regs.op_index + uladv) + % linfo->li_max_ops_per_insn; + printf (_(" Advance PC by constant %s to 0x%s[%d]\n"), + dwarf_vmatoa ("u", uladv), + dwarf_vmatoa ("x", state_machine_regs.address), + state_machine_regs.op_index); + } + break; + + case DW_LNS_fixed_advance_pc: + SAFE_BYTE_GET_AND_INC (uladv, data, 2, end); + state_machine_regs.address += uladv; + state_machine_regs.op_index = 0; + printf (_(" Advance PC by fixed size amount %s to 0x%s\n"), + dwarf_vmatoa ("u", uladv), + dwarf_vmatoa ("x", state_machine_regs.address)); + break; + + case DW_LNS_set_prologue_end: + printf (_(" Set prologue_end to true\n")); + break; + + case DW_LNS_set_epilogue_begin: + printf (_(" Set epilogue_begin to true\n")); + break; + + case DW_LNS_set_isa: + uladv = read_uleb128 (data, & bytes_read, end); + data += bytes_read; + printf (_(" Set ISA to %s\n"), dwarf_vmatoa ("u", uladv)); + break; + + case DW_LNS_set_subprogram: + /* This opcode is aliased with: */ + /* case DW_LNS_set_address_from_logical: */ + if (is_logical) + { + /* DW_LNS_set_subprogram */ + state_machine_regs.context = 0; + state_machine_regs.subprogram = read_uleb128 (data, & bytes_read, end); + data += bytes_read; + printf (_(" Set subprogram to %u and reset context to 0\n"), + state_machine_regs.subprogram); + } + else + { + /* DW_LNS_set_address_from_logical */ + adv = read_sleb128 (data, & bytes_read, end); + data += bytes_read; + state_machine_regs.line += adv; + logical = state_machine_regs.line; + if (logical - 1 < logicals_count) + { + state_machine_regs.address = logicals_table[logical - 1].address; + state_machine_regs.op_index = logicals_table[logical - 1].op_index; + } + else + warn (_("Logical row number outside range of logicals table\n")); + printf (_(" Advance Line by %s to %u and set address from logical to 0x%s[%u]\n"), + dwarf_vmatoa ("d", adv), + logical, + dwarf_vmatoa ("x", state_machine_regs.address), + state_machine_regs.op_index); + } + break; + + case DW_LNS_inlined_call: + adv = read_sleb128 (data, & bytes_read, end); + data += bytes_read; + state_machine_regs.context = logicals_count + adv; + state_machine_regs.subprogram = read_uleb128 (data, & bytes_read, end); + data += bytes_read; + printf (_(" Set context to %u and subprogram to %u\n"), + state_machine_regs.context, + state_machine_regs.subprogram); + break; + + case DW_LNS_pop_context: + logical = state_machine_regs.context; + printf (_(" Pop context to logical %u\n"), logical); + if (logical - 1 < logicals_count) + { + state_machine_regs.file = logicals_table[logical - 1].file; + state_machine_regs.line = logicals_table[logical - 1].line; + state_machine_regs.column = logicals_table[logical - 1].column; + state_machine_regs.discriminator = logicals_table[logical - 1].discriminator; + state_machine_regs.is_stmt = logicals_table[logical - 1].is_stmt; + state_machine_regs.context = logicals_table[logical - 1].context; + state_machine_regs.subprogram = logicals_table[logical - 1].subprogram; + } + else + warn (_("Context register outside range of logicals table\n")); + break; + + default: + printf (_(" Unknown opcode %d with operands: "), op_code); + + if (standard_opcodes != NULL) + for (i = standard_opcodes[op_code - 1]; i > 0 ; --i) + { + printf ("0x%s%s", dwarf_vmatoa ("x", read_uleb128 (data, + &bytes_read, end)), + i == 1 ? "" : ", "); + data += bytes_read; + } + putchar ('\n'); + break; + } + } + } + + putchar ('\n'); + *pdata = data; +} + static int display_debug_lines_raw (struct dwarf_section *section, unsigned char *data, unsigned char *end) { unsigned char *start = section->start; + unsigned int initial_length_size; + unsigned int offset_size; printf (_("Raw dump of debug contents of section %s:\n\n"), section->name); @@ -2720,10 +3279,15 @@ display_debug_lines_raw (struct dwarf_section *section, { static DWARF2_Internal_LineInfo saved_linfo; DWARF2_Internal_LineInfo linfo; + unsigned int logicals_table_offset = 0; + unsigned int actuals_table_offset = 0; + unsigned char *end_of_header_length; unsigned char *standard_opcodes; + unsigned char *start_of_line_program; + unsigned char *end_of_logicals; unsigned char *end_of_sequence; - unsigned int last_dir_entry = 0; int i; + unsigned char *hdrptr = NULL; if (const_strneq (section->name, ".debug_line.") /* Note: the following does not apply to .debug_line.dwo sections. @@ -2740,22 +3304,30 @@ display_debug_lines_raw (struct dwarf_section *section, Since the section is a fragment it does not have the details needed to fill out a LineInfo structure, so instead we use the details from the last full debug_line section that we processed. */ + start_of_line_program = data; end_of_sequence = end; + end_of_logicals = end; standard_opcodes = NULL; linfo = saved_linfo; reset_state_machine (linfo.li_default_is_stmt); } else { - unsigned char * hdrptr; - if ((hdrptr = read_debug_line_header (section, data, end, & linfo, - & end_of_sequence)) == NULL) + & end_of_sequence, + & initial_length_size, + & offset_size)) == NULL) return 0; printf (_(" Offset: 0x%lx\n"), (long)(data - start)); printf (_(" Length: %ld\n"), (long) linfo.li_length); printf (_(" DWARF Version: %d\n"), linfo.li_version); + if (linfo.li_version >= 5 + && linfo.li_version != DWARF2_LINE_EXPERIMENTAL_VERSION) + { + printf (_(" Address Size: %u\n"), linfo.li_address_size); + printf (_(" Segment Size: %u\n"), linfo.li_segment_size); + } printf (_(" Prologue Length: %d\n"), linfo.li_prologue_length); printf (_(" Minimum Instruction Length: %d\n"), linfo.li_min_insn_length); if (linfo.li_version >= 4) @@ -2765,6 +3337,13 @@ display_debug_lines_raw (struct dwarf_section *section, printf (_(" Line Range: %d\n"), linfo.li_line_range); printf (_(" Opcode Base: %d\n"), linfo.li_opcode_base); + end_of_header_length = data + initial_length_size + 2 + offset_size; + if (linfo.li_version >= 5 + && linfo.li_version != DWARF2_LINE_EXPERIMENTAL_VERSION) + end_of_header_length += 2; + start_of_line_program = end_of_header_length + linfo.li_prologue_length; + end_of_logicals = end; + reset_state_machine (linfo.li_default_is_stmt); /* Display the contents of the Opcodes table. */ @@ -2775,261 +3354,100 @@ display_debug_lines_raw (struct dwarf_section *section, for (i = 1; i < linfo.li_opcode_base; i++) printf (_(" Opcode %d has %d args\n"), i, standard_opcodes[i - 1]); - /* Display the contents of the Directory table. */ data = standard_opcodes + linfo.li_opcode_base - 1; - if (*data == 0) - printf (_("\n The Directory Table is empty.\n")); - else + if (linfo.li_version == DWARF2_LINE_EXPERIMENTAL_VERSION) { - printf (_("\n The Directory Table (offset 0x%lx):\n"), - (long)(data - start)); + /* Skip the fake directory and filename table. */ + data += 2; - while (*data != 0) - { - printf (" %d\t%s\n", ++last_dir_entry, data); + /* Skip the fake extended opcode that wraps the rest + of the section. */ + data += 5; - data += strnlen ((char *) data, end - data) + 1; - } - } + /* Read the logicals table offset and actuals table offset. */ + SAFE_BYTE_GET_AND_INC (logicals_table_offset, data, offset_size, end); + SAFE_BYTE_GET_AND_INC (actuals_table_offset, data, offset_size, end); - /* Skip the NUL at the end of the table. */ - data++; + start_of_line_program = end_of_header_length + logicals_table_offset; - /* Display the contents of the File Name table. */ - if (*data == 0) - printf (_("\n The File Name Table is empty.\n")); - else - { - printf (_("\n The File Name Table (offset 0x%lx):\n"), - (long)(data - start)); - printf (_(" Entry\tDir\tTime\tSize\tName\n")); + if (actuals_table_offset > 0) + end_of_logicals = end_of_header_length + actuals_table_offset; - while (*data != 0) - { - unsigned char *name; - unsigned int bytes_read; + putchar ('\n'); + printf (_(" Logicals Table Offset: 0x%x\n"), logicals_table_offset); + printf (_(" Actuals Table Offset: 0x%x\n"), actuals_table_offset); + } - printf (" %d\t", ++state_machine_regs.last_file_entry); - name = data; - data += strnlen ((char *) data, end - data) + 1; + /* Display the contents of the Directory table. */ + if (linfo.li_version >= 5) + display_dir_file_table_v5 (start, end, &data, _("Directory"), + offset_size); + else + display_directory_table_v4 (start, end, &data); - printf ("%s\t", - dwarf_vmatoa ("u", read_uleb128 (data, & bytes_read, end))); - data += bytes_read; - printf ("%s\t", - dwarf_vmatoa ("u", read_uleb128 (data, & bytes_read, end))); - data += bytes_read; - printf ("%s\t", - dwarf_vmatoa ("u", read_uleb128 (data, & bytes_read, end))); - data += bytes_read; - printf ("%s\n", name); + /* PR 17512: file: 002-132094-0.004. */ + if (data >= end - 1) + break; - if (data == end) - { - warn (_("Corrupt file name table entry\n")); - break; - } - } + /* Display the contents of the File Name table. */ + if (linfo.li_version >= 5) + { + unsigned int count; + + count = display_dir_file_table_v5 (start, end, &data, + _("File Name"), offset_size); + state_machine_regs.last_file_entry = count - 1; } + else + display_file_name_table_v4 (start, end, &data); + + /* Display the contents of the Subprogram table. */ + if (linfo.li_version == DWARF2_LINE_EXPERIMENTAL_VERSION) + display_dir_file_table_v5 (start, end, &data, _("Subprogram"), + offset_size); - /* Skip the NUL at the end of the table. */ - data++; putchar ('\n'); saved_linfo = linfo; } - /* Now display the statements. */ - if (data >= end_of_sequence) - printf (_(" No Line Number Statements.\n")); - else - { - printf (_(" Line Number Statements:\n")); + if (data > start_of_line_program) + warn (_("Line table header is longer than header_length indicates\n")); + else if (data < start_of_line_program) + warn (_("Line table header is shorter than header_length indicates\n")); + data = start_of_line_program; - while (data < end_of_sequence) + if (linfo.li_version == DWARF2_LINE_EXPERIMENTAL_VERSION + && hdrptr != NULL + && actuals_table_offset > 0) + { + if (end_of_logicals > end) { - unsigned char op_code; - dwarf_signed_vma adv; - dwarf_vma uladv; - unsigned int bytes_read; - - printf (" [0x%08lx]", (long)(data - start)); - - op_code = *data++; - - if (op_code >= linfo.li_opcode_base) - { - op_code -= linfo.li_opcode_base; - uladv = (op_code / linfo.li_line_range); - if (linfo.li_max_ops_per_insn == 1) - { - uladv *= linfo.li_min_insn_length; - state_machine_regs.address += uladv; - printf (_(" Special opcode %d: " - "advance Address by %s to 0x%s"), - op_code, dwarf_vmatoa ("u", uladv), - dwarf_vmatoa ("x", state_machine_regs.address)); - } - else - { - state_machine_regs.address - += ((state_machine_regs.op_index + uladv) - / linfo.li_max_ops_per_insn) - * linfo.li_min_insn_length; - state_machine_regs.op_index - = (state_machine_regs.op_index + uladv) - % linfo.li_max_ops_per_insn; - printf (_(" Special opcode %d: " - "advance Address by %s to 0x%s[%d]"), - op_code, dwarf_vmatoa ("u", uladv), - dwarf_vmatoa ("x", state_machine_regs.address), - state_machine_regs.op_index); - } - adv = (op_code % linfo.li_line_range) + linfo.li_line_base; - state_machine_regs.line += adv; - printf (_(" and Line by %s to %d\n"), - dwarf_vmatoa ("d", adv), state_machine_regs.line); - } - else switch (op_code) - { - case DW_LNS_extended_op: - data += process_extended_line_op (data, linfo.li_default_is_stmt, end); - break; - - case DW_LNS_copy: - printf (_(" Copy\n")); - break; - - case DW_LNS_advance_pc: - uladv = read_uleb128 (data, & bytes_read, end); - data += bytes_read; - if (linfo.li_max_ops_per_insn == 1) - { - uladv *= linfo.li_min_insn_length; - state_machine_regs.address += uladv; - printf (_(" Advance PC by %s to 0x%s\n"), - dwarf_vmatoa ("u", uladv), - dwarf_vmatoa ("x", state_machine_regs.address)); - } - else - { - state_machine_regs.address - += ((state_machine_regs.op_index + uladv) - / linfo.li_max_ops_per_insn) - * linfo.li_min_insn_length; - state_machine_regs.op_index - = (state_machine_regs.op_index + uladv) - % linfo.li_max_ops_per_insn; - printf (_(" Advance PC by %s to 0x%s[%d]\n"), - dwarf_vmatoa ("u", uladv), - dwarf_vmatoa ("x", state_machine_regs.address), - state_machine_regs.op_index); - } - break; - - case DW_LNS_advance_line: - adv = read_sleb128 (data, & bytes_read, end); - data += bytes_read; - state_machine_regs.line += adv; - printf (_(" Advance Line by %s to %d\n"), - dwarf_vmatoa ("d", adv), - state_machine_regs.line); - break; - - case DW_LNS_set_file: - adv = read_uleb128 (data, & bytes_read, end); - data += bytes_read; - printf (_(" Set File Name to entry %s in the File Name Table\n"), - dwarf_vmatoa ("d", adv)); - state_machine_regs.file = adv; - break; - - case DW_LNS_set_column: - uladv = read_uleb128 (data, & bytes_read, end); - data += bytes_read; - printf (_(" Set column to %s\n"), - dwarf_vmatoa ("u", uladv)); - state_machine_regs.column = uladv; - break; - - case DW_LNS_negate_stmt: - adv = state_machine_regs.is_stmt; - adv = ! adv; - printf (_(" Set is_stmt to %s\n"), dwarf_vmatoa ("d", adv)); - state_machine_regs.is_stmt = adv; - break; - - case DW_LNS_set_basic_block: - printf (_(" Set basic block\n")); - state_machine_regs.basic_block = 1; - break; - - case DW_LNS_const_add_pc: - uladv = ((255 - linfo.li_opcode_base) / linfo.li_line_range); - if (linfo.li_max_ops_per_insn) - { - uladv *= linfo.li_min_insn_length; - state_machine_regs.address += uladv; - printf (_(" Advance PC by constant %s to 0x%s\n"), - dwarf_vmatoa ("u", uladv), - dwarf_vmatoa ("x", state_machine_regs.address)); - } - else - { - state_machine_regs.address - += ((state_machine_regs.op_index + uladv) - / linfo.li_max_ops_per_insn) - * linfo.li_min_insn_length; - state_machine_regs.op_index - = (state_machine_regs.op_index + uladv) - % linfo.li_max_ops_per_insn; - printf (_(" Advance PC by constant %s to 0x%s[%d]\n"), - dwarf_vmatoa ("u", uladv), - dwarf_vmatoa ("x", state_machine_regs.address), - state_machine_regs.op_index); - } - break; - - case DW_LNS_fixed_advance_pc: - SAFE_BYTE_GET_AND_INC (uladv, data, 2, end); - state_machine_regs.address += uladv; - state_machine_regs.op_index = 0; - printf (_(" Advance PC by fixed size amount %s to 0x%s\n"), - dwarf_vmatoa ("u", uladv), - dwarf_vmatoa ("x", state_machine_regs.address)); - break; - - case DW_LNS_set_prologue_end: - printf (_(" Set prologue_end to true\n")); - break; - - case DW_LNS_set_epilogue_begin: - printf (_(" Set epilogue_begin to true\n")); - break; - - case DW_LNS_set_isa: - uladv = read_uleb128 (data, & bytes_read, end); - data += bytes_read; - printf (_(" Set ISA to %s\n"), dwarf_vmatoa ("u", uladv)); - break; - - default: - printf (_(" Unknown opcode %d with operands: "), op_code); - - if (standard_opcodes != NULL) - for (i = standard_opcodes[op_code - 1]; i > 0 ; --i) - { - printf ("0x%s%s", dwarf_vmatoa ("x", read_uleb128 (data, - &bytes_read, end)), - i == 1 ? "" : ", "); - data += bytes_read; - } - putchar ('\n'); - break; - } + warn (_("Actuals table offset %s extends beyond end of section\n"), + dwarf_vmatoa ("u", actuals_table_offset)); + end_of_logicals = end; } - putchar ('\n'); - } + display_line_program (start, end_of_logicals, &data, + _("Logicals Statements"), + &linfo, standard_opcodes, 1); + if (data > end_of_logicals) + warn (_("Logicals table is longer than actuals_table_offset indicates\n")); + else if (data < end_of_logicals) + warn (_("Line table header is shorter than actuals_table_offset indicates\n")); + data = end_of_logicals; + reset_state_machine (linfo.li_default_is_stmt); + display_line_program (start, end_of_sequence, &data, + _("Actuals Statements"), + &linfo, standard_opcodes, 0); + free_logicals (); + } + else + { + display_line_program (start, end_of_sequence, &data, + _("Line Number Statements"), + &linfo, standard_opcodes, 0); + } + } return 1; @@ -3051,6 +3469,8 @@ display_debug_lines_decoded (struct dwarf_section *section, unsigned char *end) { static DWARF2_Internal_LineInfo saved_linfo; + unsigned int initial_length_size; + unsigned int offset_size; printf (_("Decoded dump of debug contents of section %s:\n\n"), section->name); @@ -3083,7 +3503,9 @@ display_debug_lines_decoded (struct dwarf_section *section, unsigned char *hdrptr; if ((hdrptr = read_debug_line_header (section, data, end, & linfo, - & end_of_sequence)) == NULL) + & end_of_sequence, + & initial_length_size, + & offset_size)) == NULL) return 0; reset_state_machine (linfo.li_default_is_stmt); @@ -3501,7 +3923,7 @@ display_debug_lines_decoded (struct dwarf_section *section, } static int -display_debug_lines (struct dwarf_section *section, void *file ATTRIBUTE_UNUSED) +display_debug_lines (struct dwarf_section *section, void *file) { unsigned char *data = section->start; unsigned char *end = data + section->size; @@ -3511,6 +3933,8 @@ display_debug_lines (struct dwarf_section *section, void *file ATTRIBUTE_UNUSED) if (do_debug_lines == 0) do_debug_lines |= FLAG_DEBUG_LINES_RAW; + load_debug_section (line_str, file); + if (do_debug_lines & FLAG_DEBUG_LINES_RAW) retValRaw = display_debug_lines_raw (section, data, end); @@ -7045,6 +7469,8 @@ struct dwarf_section_display debug_displays[] = display_debug_macro, &do_debug_macinfo, 1 }, { { ".debug_str", ".zdebug_str", NULL, NULL, 0, 0, 0 }, display_debug_str, &do_debug_str, 0 }, + { { ".debug_line_str", ".zdebug_line_str", NULL, NULL, 0, 0, 0 }, + display_debug_str, &do_debug_str, 0 }, { { ".debug_loc", ".zdebug_loc", NULL, NULL, 0, 0, 0 }, display_debug_loc, &do_debug_loc, 1 }, { { ".debug_pubtypes", ".zdebug_pubtypes", NULL, NULL, 0, 0, 0 }, diff --git a/binutils-2.25/binutils/dwarf.h b/binutils-2.25/binutils/dwarf.h index 124d9d6..2a71083 100644 --- a/binutils-2.25/binutils/dwarf.h +++ b/binutils-2.25/binutils/dwarf.h @@ -40,6 +40,8 @@ typedef struct { dwarf_vma li_length; unsigned short li_version; + unsigned char li_address_size; + unsigned char li_segment_size; unsigned int li_prologue_length; unsigned char li_min_insn_length; unsigned char li_max_ops_per_insn; @@ -123,6 +125,7 @@ enum dwarf_section_display_enum macinfo, macro, str, + line_str, loc, pubtypes, gnu_pubtypes, diff --git a/binutils-2.25/binutils/readelf.c b/binutils-2.25/binutils/readelf.c index d630684..83518c7 100644 --- a/binutils-2.25/binutils/readelf.c +++ b/binutils-2.25/binutils/readelf.c @@ -5319,6 +5319,7 @@ process_section_headers (FILE * file) || (do_debug_macinfo && const_strneq (name, "macinfo")) || (do_debug_macinfo && const_strneq (name, "macro")) || (do_debug_str && const_strneq (name, "str")) + || (do_debug_str && const_strneq (name, "line_str")) || (do_debug_loc && const_strneq (name, "loc")) || (do_debug_addr && const_strneq (name, "addr")) || (do_debug_cu_index && const_strneq (name, "cu_index")) @@ -11903,7 +11904,7 @@ static const char * arm_attr_tag_ABI_enum_size[] = static const char * arm_attr_tag_ABI_HardFP_use[] = {"As Tag_FP_arch", "SP only", "DP only", "SP and DP"}; static const char * arm_attr_tag_ABI_VFP_args[] = - {"AAPCS", "VFP registers", "custom"}; + {"AAPCS", "VFP registers", "custom", "compatible"}; static const char * arm_attr_tag_ABI_WMMX_args[] = {"AAPCS", "WMMX registers", "custom"}; static const char * arm_attr_tag_ABI_optimization_goals[] = @@ -13162,6 +13163,9 @@ print_mips_isa_ext (unsigned int isa_ext) case AFL_EXT_XLR: fputs ("RMI XLR", stdout); break; + case AFL_EXT_OCTEON3: + fputs ("Cavium Networks Octeon3", stdout); + break; case AFL_EXT_OCTEON2: fputs ("Cavium Networks Octeon2", stdout); break; diff --git a/binutils-2.25/compile b/binutils-2.25/compile index ec64c62..a85b723 100755 --- a/binutils-2.25/compile +++ b/binutils-2.25/compile @@ -1,10 +1,9 @@ #! /bin/sh -# Wrapper for compilers which do not understand `-c -o'. +# Wrapper for compilers which do not understand '-c -o'. -scriptversion=2009-04-28.21; # UTC +scriptversion=2012-10-14.11; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software -# Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify @@ -29,21 +28,224 @@ scriptversion=2009-04-28.21; # UTC # bugs to or send patches to # . +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + case $1 in '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] -Wrapper for compilers which do not understand `-c -o'. -Remove `-o dest.o' from ARGS, run PROGRAM with the remaining +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the -right script to run: please start by reading the file `INSTALL'. +right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF @@ -53,11 +255,13 @@ EOF echo "compile $scriptversion" exit $? ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; esac ofile= cfile= -eat= for arg do @@ -66,8 +270,8 @@ do else case $1 in -o) - # configure might choose to run compile as `compile cc -o foo foo.c'. - # So we strip `-o arg' only if arg is an object. + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) @@ -94,10 +298,10 @@ do done if test -z "$ofile" || test -z "$cfile"; then - # If no `-o' option was seen then we might have been invoked from a + # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no - # `.c' file was seen then we are probably linking. That is also + # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi @@ -106,7 +310,7 @@ fi cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. -# Note: use `[/\\:.-]' here to ensure that we don't use the same name +# Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d @@ -124,9 +328,9 @@ trap "rmdir '$lockdir'; exit 1" 1 2 15 ret=$? if test -f "$cofile"; then - mv "$cofile" "$ofile" + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then - mv "${cofile}bj" "$ofile" + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" diff --git a/binutils-2.25/config.guess b/binutils-2.25/config.guess index 1f5c50c..6c32c86 100755 --- a/binutils-2.25/config.guess +++ b/binutils-2.25/config.guess @@ -2,7 +2,7 @@ # Attempt to guess a canonical system name. # Copyright 1992-2014 Free Software Foundation, Inc. -timestamp='2014-03-23' +timestamp='2014-11-04' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -24,12 +24,12 @@ timestamp='2014-03-23' # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # -# Originally written by Per Bothner. +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . me=`echo "$0" | sed -e 's,.*/,,'` @@ -579,8 +579,9 @@ EOF else IBM_ARCH=powerpc fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi diff --git a/binutils-2.25/config.sub b/binutils-2.25/config.sub index 88a0cb4..7cc68ba 100755 --- a/binutils-2.25/config.sub +++ b/binutils-2.25/config.sub @@ -2,7 +2,7 @@ # Configuration validation subroutine script. # Copyright 1992-2014 Free Software Foundation, Inc. -timestamp='2014-07-28' +timestamp='2014-09-26' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -25,7 +25,7 @@ timestamp='2014-07-28' # of the GNU General Public License, version 3 ("GPLv3"). -# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. @@ -302,6 +302,7 @@ case $basic_machine in | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ + | riscv32 | riscv64 \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ @@ -326,6 +327,9 @@ case $basic_machine in c6x) basic_machine=tic6x-unknown ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none @@ -773,6 +777,9 @@ case $basic_machine in basic_machine=m68k-isi os=-sysv ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; m68knommu) basic_machine=m68k-unknown os=-linux diff --git a/binutils-2.25/configure b/binutils-2.25/configure index 87677bc..b86cfe6 100755 --- a/binutils-2.25/configure +++ b/binutils-2.25/configure @@ -2972,7 +2972,7 @@ case "${ENABLE_GOLD}" in # Check for target supported by gold. case "${target}" in i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* \ - | aarch64*-*-* | tilegx*-*-*) + | aarch64*-*-* | tilegx*-*-* | mips*-*-*) configdirs="$configdirs gold" if test x${ENABLE_GOLD} = xdefault; then default_ld=gold diff --git a/binutils-2.25/configure.ac b/binutils-2.25/configure.ac index 4bb4865..9316eb9 100644 --- a/binutils-2.25/configure.ac +++ b/binutils-2.25/configure.ac @@ -332,7 +332,7 @@ case "${ENABLE_GOLD}" in # Check for target supported by gold. case "${target}" in i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* \ - | aarch64*-*-* | tilegx*-*-*) + | aarch64*-*-* | tilegx*-*-* | mips*-*-*) configdirs="$configdirs gold" if test x${ENABLE_GOLD} = xdefault; then default_ld=gold diff --git a/binutils-2.25/depcomp b/binutils-2.25/depcomp index df8eea7..4e70ff0 100755 --- a/binutils-2.25/depcomp +++ b/binutils-2.25/depcomp @@ -1,10 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2009-04-28.21; # UTC +scriptversion=2013-05-30.07; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free -# Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -28,9 +27,9 @@ scriptversion=2009-04-28.21; # UTC case $1 in '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 - exit 1; - ;; + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] @@ -40,11 +39,11 @@ as side-effects. Environment variables: depmode Dependency tracking mode. - source Source file read by `PROGRAMS ARGS'. - object Object file output by `PROGRAMS ARGS'. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. - tmpdepfile Temporary file to use when outputing dependencies. + tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . @@ -57,6 +56,66 @@ EOF ;; esac +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 @@ -69,6 +128,9 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" +# Avoid interferences from the environment. +gccflag= dashmflag= + # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case @@ -80,18 +142,32 @@ if test "$depmode" = hp; then fi if test "$depmode" = dashXmstdout; then - # This is just like dashmstdout with a different argument. - dashmflag=-xM - depmode=dashmstdout + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then - # This is just like msvisualcpp but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u="sed s,\\\\\\\\,/,g" - depmode=msvisualcpp + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc fi case "$depmode" in @@ -114,8 +190,7 @@ gcc3) done "$@" stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi @@ -123,13 +198,17 @@ gcc3) ;; gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like -## -MM, not -M (despite what the docs say). +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then @@ -137,31 +216,31 @@ gcc) fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" - alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -## The second -e expression handles DOS-style file names with drive letters. + # The second -e expression handles DOS-style file names with drive + # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the `deleted header file' problem. +## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. - tr ' ' ' -' < "$tmpdepfile" | -## Some versions of gcc put a space before the `:'. On the theory +## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as -## well. +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -172,59 +251,21 @@ hp) exit 1 ;; -sgi) - if test "$libtool" = yes; then - "$@" "-Wp,-MDupdate,$tmpdepfile" - else - "$@" -MDupdate "$tmpdepfile" - fi - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - - if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files - echo "$object : \\" > "$depfile" - - # Clip off the initial element (the dependent). Don't try to be - # clever and replace this with sed code, as IRIX sed won't handle - # lines with more than a fixed number of characters (4096 in - # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like `#:fec' to the end of the - # dependency line. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> "$depfile" - echo >> "$depfile" - - # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ - | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ - >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts `$object:' at the + # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + set_dir_from "$object" + set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u @@ -237,9 +278,7 @@ aix) "$@" -M fi stat=$? - - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi @@ -248,44 +287,100 @@ aix) do test -f "$tmpdepfile" && break done - if test -f "$tmpdepfile"; then - # Each line is of the form `foo.o: dependent.h'. - # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - # The sourcefile does not contain any dependencies, so just - # store a dummy comment line, to avoid errors with the Makefile - # "include basename.Plo" scheme. - echo "#dummy" > "$depfile" + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; -icc) - # Intel's C compiler understands `-MD -MF file'. However on - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c - # ICC 7.0 will fill foo.d with something like - # foo.o: sub/foo.c - # foo.o: sub/foo.h - # which is wrong. We want: - # sub/foo.o: sub/foo.c - # sub/foo.o: sub/foo.h - # sub/foo.c: - # sub/foo.h: - # ICC 7.1 will output +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using \ : + # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi - "$@" -MD -MF "$tmpdepfile" - stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi @@ -297,8 +392,8 @@ icc) sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | - sed -e 's/$/ :/' >> "$depfile" + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -309,9 +404,8 @@ hp2) # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + set_dir_from "$object" + set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d @@ -322,8 +416,7 @@ hp2) "$@" +Maked fi stat=$? - if test $stat -eq 0; then : - else + if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi @@ -333,77 +426,107 @@ hp2) test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" - # Add `dependent.h:' lines. + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. sed -ne '2,${ - s/^ *// - s/ \\*$// - s/$/:/ - p - }' "$tmpdepfile" >> "$depfile" + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" else - echo "#dummy" > "$depfile" + make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) - # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. - # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in `foo.d' instead, so we check for that too. - # Subdirectories are respected. - dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` - test "x$dir" = "x$object" && dir= - base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` - - if test "$libtool" = yes; then - # With Tru64 cc, shared objects can also be used to make a - # static library. This mechanism is used in libtool 1.4 series to - # handle both shared and static libraries in a single compilation. - # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. - # - # With libtool 1.5 this exception was removed, and libtool now - # generates 2 separate objects for the 2 libraries. These two - # compilations output dependencies in $dir.libs/$base.o.d and - # in $dir$base.o.d. We have to check for both files, because - # one of the two compilations can be disabled. We should prefer - # $dir$base.o.d over $dir.libs/$base.o.d because the latter is - # automatically cleaned when .libs/ is deleted, while ignoring - # the former would cause a distcleancheck panic. - tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 - tmpdepfile2=$dir$base.o.d # libtool 1.5 - tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 - tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 - "$@" -Wc,-MD - else - tmpdepfile1=$dir$base.o.d - tmpdepfile2=$dir$base.d - tmpdepfile3=$dir$base.d - tmpdepfile4=$dir$base.d - "$@" -MD - fi - - stat=$? - if test $stat -eq 0; then : - else - rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - exit $stat - fi - - for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" - do - test -f "$tmpdepfile" && break - done - if test -f "$tmpdepfile"; then - sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" - else - echo "#dummy" > "$depfile" - fi - rm -f "$tmpdepfile" - ;; + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; #nosideeffect) # This comment above is used by automake to tell side-effect @@ -422,7 +545,7 @@ dashmstdout) shift fi - # Remove `-o $object'. + # Remove '-o $object'. IFS=" " for arg do @@ -442,18 +565,18 @@ dashmstdout) done test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for `:' + # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: - # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | - sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -503,12 +626,15 @@ makedepend) touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" - cat < "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' ' -' | \ -## Some versions of the HPUX 10.20 sed can't process this invocation -## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; @@ -525,7 +651,7 @@ cpp) shift fi - # Remove `-o $object'. + # Remove '-o $object'. IFS=" " for arg do @@ -544,10 +670,10 @@ cpp) esac done - "$@" -E | - sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ - -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | - sed '$ s: \\$::' > "$tmpdepfile" + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" @@ -579,23 +705,23 @@ msvisualcpp) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") - set fnord "$@" - shift - shift - ;; + set fnord "$@" + shift + shift + ;; *) - set fnord "$@" "$arg" - shift - shift - ;; + set fnord "$@" "$arg" + shift + shift + ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; diff --git a/binutils-2.25/djunpack.bat b/binutils-2.25/djunpack.bat deleted file mode 100755 index 5c6e9b2..0000000 --- a/binutils-2.25/djunpack.bat +++ /dev/null @@ -1,52 +0,0 @@ -@echo off -Rem -Rem WARNING WARNING WARNING: This file needs to have DOS CRLF end-of-line -Rem format, or else stock DOS/Windows shells will refuse to run it. -Rem -Rem This batch file unpacks the GDB distribution while simultaneously -Rem renaming some of the files whose names are invalid on DOS or conflict -Rem with other file names after truncation to DOS 8+3 namespace. -Rem -Rem Invoke like this: -Rem -Rem djunpack gdb-XYZ.tar -Rem -Rem where XYZ is the version number. If the argument includes leading -Rem directories, it MUST use backslashes, not forward slashes. -Rem -Rem The following 2 lines need to be changed with each new GDB release, to -Rem be identical to the name of the top-level directory where the GDB -Rem distribution unpacks itself. -set GDBVER=gdb-5.0 -if "%GDBVER%"=="gdb-5.0" GoTo EnvOk -Rem If their environment space is too small, re-exec with a larger one -command.com /e:4096 /c %0 %1 -GoTo End -:EnvOk -if not exist %1 GoTo NoArchive -djtar -x -p -o %GDBVER%/gdb/config/djgpp/fnchange.lst %1 > fnchange.tmp -Rem The following uses a feature of COPY whereby it does not copy -Rem empty files. We need that because the previous line will create -Rem an empty fnchange.tmp even if the command failed for some reason. -copy fnchange.tmp junk.tmp > nul -if not exist junk.tmp GoTo NoDjTar -del junk.tmp -sed -e "s,@V@,%GDBVER%,g" < fnchange.tmp > fnchange.lst -Rem See the comment above about the reason for using COPY. -copy fnchange.lst junk.tmp > nul -if not exist junk.tmp GoTo NoSed -del junk.tmp -djtar -x -n fnchange.lst %1 -GoTo End -:NoSed -echo FAIL: Sed is not available. -GoTo End -:NoDjTar -echo FAIL: DJTAR is not available or no fnchange.lst file in %1. -GoTo End -:NoArchive -echo FAIL: the file %1 does not seem to exist. -echo Remember that %1 cannot use forward slashes, only backslashes. -GoTo End -:End -set GDBVER= diff --git a/binutils-2.25/elfcpp/ChangeLog b/binutils-2.25/elfcpp/ChangeLog index bc5681a..5f0e5f3 100644 --- a/binutils-2.25/elfcpp/ChangeLog +++ b/binutils-2.25/elfcpp/ChangeLog @@ -1,3 +1,7 @@ +2015-04-07 HC Yen + + * arm.h: Add TAG_CPU_ARCH_V8 in Tag_CPU_arch EABI attribute. + 2014-09-17 Han Shen * aarch64.h (R_AARCH64_TLS_DTPREL64): Switch enum value with ... diff --git a/binutils-2.25/elfcpp/arm.h b/binutils-2.25/elfcpp/arm.h index b333676..b0438e3 100644 --- a/binutils-2.25/elfcpp/arm.h +++ b/binutils-2.25/elfcpp/arm.h @@ -192,7 +192,7 @@ enum R_ARM_PRIVATE_14 = 126, R_ARM_PRIVATE_15 = 127, R_ARM_ME_TOO = 128, // Obsolete - R_ARM_THM_TLS_DESCSEQ16 = 129,// Static Thumb16 + R_ARM_THM_TLS_DESCSEQ16 = 129,// Static Thumb16 R_ARM_THM_TLS_DESCSEQ32 = 130,// Static Thumb32 // 131 - 139 Unallocated // 140 - 159 Dynamic Reserved for future allocation @@ -248,7 +248,8 @@ enum TAG_CPU_ARCH_V6_M, TAG_CPU_ARCH_V6S_M, TAG_CPU_ARCH_V7E_M, - MAX_TAG_CPU_ARCH = TAG_CPU_ARCH_V7E_M, + TAG_CPU_ARCH_V8, + MAX_TAG_CPU_ARCH = TAG_CPU_ARCH_V8, // Pseudo-architecture to allow objects to be compatible with the subset of // armv4t and armv6-m. This value should never be stored in object files. TAG_CPU_ARCH_V4T_PLUS_V6_M = (MAX_TAG_CPU_ARCH + 1) diff --git a/binutils-2.25/elfcpp/dwarf.h b/binutils-2.25/elfcpp/dwarf.h index 331ec40..bb622ec 100644 --- a/binutils-2.25/elfcpp/dwarf.h +++ b/binutils-2.25/elfcpp/dwarf.h @@ -147,7 +147,13 @@ enum DW_LINE_OPS // DWARF 3. DW_LNS_set_prologue_end = 10, DW_LNS_set_epilogue_begin = 11, - DW_LNS_set_isa = 12 + DW_LNS_set_isa = 12, + /* Experimental DWARF 5 extensions. + See http://wiki.dwarfstd.org/index.php?title=TwoLevelLineTables. */ + DW_LNS_set_address_from_logical = 13, /* Actuals table only. */ + DW_LNS_set_subprogram = 13, /* Logicals table only. */ + DW_LNS_inlined_call = 14, /* Logicals table only. */ + DW_LNS_pop_context = 15 /* Logicals table only. */ }; // Line number extended opcodes. @@ -241,6 +247,20 @@ enum DW_SECT DW_SECT_MAX = DW_SECT_MACRO, }; +enum DW_LNCT +{ + DW_LNCT_path = 1, + DW_LNCT_directory_index = 2, + DW_LNCT_timestamp = 3, + DW_LNCT_size = 4, + DW_LNCT_MD5 = 5, + /* Experimental DWARF 5 extensions. + See http://wiki.dwarfstd.org/index.php?title=TwoLevelLineTables. */ + DW_LNCT_subprogram_name = 6, + DW_LNCT_decl_file = 7, + DW_LNCT_decl_line = 8 +}; + } // End namespace elfcpp. #endif // !defined(ELFCPP_DWARF_H) diff --git a/binutils-2.25/gas/.gitignore b/binutils-2.25/gas/.gitignore new file mode 100644 index 0000000..27d4887 --- /dev/null +++ b/binutils-2.25/gas/.gitignore @@ -0,0 +1,9 @@ +/as-new + +/itbl-cpu.h +/obj-format.h +/targ-cpu.h +/targ-env.h + +/doc/as.1 +/doc/asconfig.texi diff --git a/binutils-2.25/gas/ChangeLog b/binutils-2.25/gas/ChangeLog index 684098d..3b1d034 100644 --- a/binutils-2.25/gas/ChangeLog +++ b/binutils-2.25/gas/ChangeLog @@ -1,50 +1,3 @@ -2014-11-18 Igor Zamyatin - - * config/tc-i386-intel.c (i386_operator): Remove last argument - from lex_got call. - * config/tc-i386.c (reloc): Remove bnd_prefix from parameters' - list. Return always BFD_RELOC_32_PCREL. - * (output_branch): Remove condition for BFD_RELOC_X86_64_PC32_BND. - * (output_jump): Update call to reloc accordingly. - * (output_interseg_jump): Likewise. - * (output_disp): Likewise. - * (output_imm): Likewise. - * (x86_cons_fix_new): Likewise. - * (lex_got): Remove bnd_prefix from parameters' list in macro and - declarations. Don't use BFD_RELOC_X86_64_PLT32_BND. - * (x86_cons): Update call to lex_got accordingly. - * (i386_immediate): Likewise. - * (i386_displacement): Likewise. - * (md_apply_fix): Don't use BFD_RELOC_X86_64_PLT32_BND nor - BFD_RELOC_X86_64_PC32_BND. - * (tc_gen_reloc): Likewise. - -2014-11-17 Philipp Tomsich - - * config/tc-aarch64.c (aarch64_cpus): Add "xgene2". - * doc/c-aarch64.texi: Document it. - -2014-11-17 Philipp Tomsich - - * config/tc-aarch64.c (aarch64_cpus): Add "xgene1". - * doc/c-aarch64.texi: Rename xgene-1 to xgene1. - -2014-11-18 Marcus Shawcroft - - Apply trunk patch: - * config/tc-aarch64.c (aarch64_cpus): Add CRC feature for - cortex-A53 and cortex-A57. - -2014-11-17 Nick Clifton - - Apply trunk patches: - - 2014-11-13 Nick Clifton - - PR binutils/17512 - * config/obj-coff.c (coff_obj_symbol_new_hook): Set the is_sym - field. - 2014-11-17 Ilya Tocar * config/tc-i386.c (cpu_arch): Add .avx512vbmi. @@ -73,6 +26,30 @@ * doc/c-i386.texi: Re-arrange avx512* and xsave*. Add clflushopt and se1. Remove duplicated entries. +2014-11-13 Marcus Shawcroft + + * config/tc-aarch64.c (aarch64_cpus): Add CRC feature for + cortex-A53 and cortex-A57. + +2014-11-13 H.J. Lu + + PR gas/17598 + * config/tc-i386.c (reloc): Support BFD_RELOC_X86_64_GOTPLT64. + +2014-11-13 Nick Clifton + + PR binutils/17512 + * config/obj-coff.c (coff_obj_symbol_new_hook): Set the is_sym + field. + +2014-11-13 Marcus Shawcroft + + * config/tc-aarch64.c (aarch64_cpus): Remove example-1 and example-2. + +2014-11-12 Alan Modra + + * config/tc-z80.c (parse_exp_not_indexed, parse_exp): Warning fixes. + 2014-11-12 Alan Modra PR ld/17482 @@ -83,32 +60,75 @@ * po/uk.po: Updated Ukranian translation. -2014-11-10 Matthew Fortune - - Apply trunk patch: - * config/tc-mips.c (mips_elf_final_processing): Add INSN_ISA32R6 - and INSN_ISA64R6 support. - 2014-11-07 H.J. Lu - Apply trunk patch: - 2014-11-07 H.J. Lu - PR ld/17482 * config/tc-i386.c (output_insn): Add a dummy REX_OPCODE prefix - for structions with R_X86_64_GOTTPOFF relocation for x32 if needed. + for instructions with R_X86_64_GOTTPOFF relocation for x32 if + needed. + +2014-11-06 Sandra Loosemore + + * config/tc-nios2.c (nios2_diagnose_overflow): Adjust call to + nios2_find_opcode_hash. + +2014-11-05 Matthew Fortune + + * config/tc-mips.c (mips_elf_final_processing): Add INSN_ISA32R6 + and INSN_ISA64R6 support. + +2014-11-04 Alan Modra + + * expr.c (expr_symbol_where): Don't use register keyword. + * app.c (app_push, app_pop, do_scrub_chars): Likewise. + * ecoff.c (add_string, add_ecoff_symbol, add_aux_sym_symint, + add_aux_sym_rndx, add_aux_sym_tir, add_procedure, add_file, + ecoff_build_lineno, ecoff_setup_ext, allocate_cluster. + allocate_scope, allocate_vlinks, allocate_shash, + allocate_thash, allocate_tag, allocate_forward, allocate_thead, + allocate_lineno_list): Likewise. + * frags.c (frag_more, frag_var, frag_variant, frag_wane): Likewise. + * input-file.c (input_file_push, input_file_pop): Likewise. + * input-scrub.c (input_scrub_push, input_scrub_next_buffer): Likewise. + * subsegs.c (subseg_change): Likewise. + * symbols.c (colon, symbol_table_insert, symbol_find_or_make) + (dollar_label_name, fb_label_name): Likewise. + * write.c (relax_align): Likewise. + * config/tc-alpha.c (s_alpha_pdesc): Likewise. + * config/tc-bfin.c (bfin_s_bss): Likewise. + * config/tc-i860.c (md_estimate_size_before_relax): Likewise. + * config/tc-m68hc11.c (md_convert_frag): Likewise. + * config/tc-m68k.c (m68k_ip, crack_operand): Likewise. + (md_convert_frag_1, s_even): Likewise. + * config/tc-mips.c (mips_clear_insn_labels): Likewise. + * config/tc-mn10200.c (md_begin): Likewise. + * config/tc-s390.c (s390_setup_opcodes, md_begin): Likewise. + * config/tc-sh.c (sh_elf_cons): Likewise. + * config/tc-tic4x.c (tic4x_cons, tic4x_stringer): Likewise. + * config/m68k-parse.y (m68k_reg_parse): Likewise. Convert from K&R. + (yylex, m68k_ip_op, yyerror): Convert from K&R. + +2014-11-04 Alan Modra + + * config/tc-d10v.c (find_opcode): Call frag_now_fix_octets rather + than equivalent obstack_next_free expression. + * config/tc-d30v.c (find_format): Likewise. 2014-11-03 Nick Clifton - Apply trunk patch: - 2014-11-03 Nick Clifton * config/tc-msp430.c (msp430_srcoperand): Fix range test for 20-bit values. -2014-10-30 Nick Clifton +2014-10-31 Andrew Pinski + Naveen H.S + + * config/tc-mips.c (CPU_IS_OCTEON): Handle CPU_OCTEON3. + (mips_cpu_info_table): Octeon3 enables virt ase. + * doc/c-mips.texi: Document octeon3 as an acceptable value for + -march=. + +2014-10-30 Dr Philipp Tomsich - Apply trunk patches - 2014-10-30 Dr Philipp Tomsich * config/tc-aarch64.h (MAX_MEM_FOR_RS_ALIGN_CODE): Define to 7. * config/tc-aarch64.c (aarch64_handle_align): Rewrite to handle large alignments with a constant fragment size of @@ -118,41 +138,117 @@ * po/uk.po: New Ukranian translation. -2014-10-28 Matthew Fortune +2014-10-23 Sandra Loosemore + + * config/tc-nios2.c (nios2_insn_infoS): Add constant_bits field. + (nios2_arg_infoS, nios2_arg_hash, nios2_arg_lookup): Delete. + (nios2_control_register_arg_p): Delete. + (nios2_coproc_reg): Delete. + (nios2_relax_frag): Remove hard-coded instruction size. + (md_convert_frag): Use new insn accessor macros. + (nios2_diagnose_overflow): Remove hard-coded instruction size. + (md_apply_fix): Likewise. + (bad_opcode): New. + (nios2_parse_reg): New. + (nios2_assemble_expression): Remove prev_reloc parameter. Adjust + uses and callers. + (nios2_assemble_arg_c): New. + (nios2_assemble_arg_d): New. + (nios2_assemble_arg_s): New. + (nios2_assemble_arg_t): New. + (nios2_assemble_arg_i): New. + (nios2_assemble_arg_u): New. + (nios2_assemble_arg_o): New. + (nios2_assemble_arg_j): New. + (nios2_assemble_arg_l): New. + (nios2_assemble_arg_m): New. + (nios2_assemble_args): New. + (nios2_assemble_args_dst): Delete. + (nios2_assemble_args_tsi): Delete. + (nios2_assemble_args_tsu): Delete. + (nios2_assemble_args_sto): Delete. + (nios2_assemble_args_o): Delete. + (nios2_assemble_args_is): Delete. + (nios2_assemble_args_m): Delete. + (nios2_assemble_args_s): Delete. + (nios2_assemble_args_tis): Delete. + (nios2_assemble_args_dc): Delete. + (nios2_assemble_args_cs): Delete. + (nios2_assemble_args_ds): Delete. + (nios2_assemble_args_ldst): Delete. + (nios2_assemble_args_none): Delete. + (nios2_assemble_args_dsj): Delete. + (nios2_assemble_args_d): Delete. + (nios2_assemble_args_b): Delete. + (nios2_arg_info_structs): Delete. + (NIOS2_NUM_ARGS): Delete. + (nios2_consume_arg): Remove insn parameter. Use new macros. + Don't check register arguments here. Remove 'b' case. + (nios2_consume_separator): Move check for missing separators to... + (nios2_parse_args): ...here. Remove special case for optional + arguments. + (output_insn): Avoid using hard-coded insn size. + (output_ubranch): Likewise. + (output_cbranch): Likewise. + (output_call): Use new macros. + (output_addi): Likewise. + (output_ori): Likewise. + (output_xori): Likewise. + (output_movia): Likewise. + (md_begin): Remove nios2_arg_info_structs initialization. + (md_assemble): Initialize constant_bits field. Use + nios2_parse_args instead of looking up parse function in hash table. + +2014-10-22 Matthew Fortune - Apply trunk patches - 2014-10-22 Matthew Fortune * doc/as.texinfo: Update the MIPS FP ABI descriptions. * doc/c-mips.texi: Spell check and correct throughout. -2014-10-28 Matthew Fortune +2014-10-21 Maciej W. Rozycki - Apply trunk patches - 2014-10-21 Maciej W. Rozycki * config/tc-mips.c (s_insn): Set file options. -2014-10-28 Matthew Fortune +2014-10-21 Andrew Pinski - Apply trunk patches - 2014-10-17 Matthew Fortune - * doc/c-mips.texi: Fix bad @value references. + * config/tc-aarch64.c (aarch64_cpus): + Add thunderx. + * doc/c-aarch64.texi: Document that thunderx + is a valid processor name. + +2014-10-21 Jan Beulich + + * read.c (HANDLE_CONDITIONAL_ASSEMBLY): New parameter "num_read". + (read_a_source_file): Adjust HANDLE_CONDITIONAL_ASSEMBLY + invocations. + (_find_end_of_line): Don't issue "stray '\\'" warning when in + false branch of conditional. + +2014-10-21 Jan Beulich + + * config/tc-aarch64.c (output_operand_error_record): Move down + assertion of idx being non-negative. Use local variables when + available. + +2014-10-18 Alan Modra -2014-10-28 Alan Modra - Apply trunk patches - 2014-10-18 Alan Modra PR 17493 * write.c (adjust_reloc_syms): Don't allow symbols in reg_section to be reduced to reg_section section symbol. * gas/config/tc-i386.c (i386_finalize_immediate): Reject all reg_section immediates. - 2014-10-15 Chen Gang - * config/tc-tic4x.c (md_assemble): Correct strncat size. +2014-10-17 Matthew Fortune + + * doc/c-mips.texi: Fix bad @value references. 2014-10-15 Tristan Gingold * configure: Regenerate. +2014-10-15 Chen Gang + + * config/tc-tic4x.c (md_assemble): Correct strncat size. + 2014-10-14 Tristan Gingold * NEWS: Add marker for 2.25. diff --git a/binutils-2.25/gas/Makefile.in b/binutils-2.25/gas/Makefile.in index 5dc250f..01a797a 100644 --- a/binutils-2.25/gas/Makefile.in +++ b/binutils-2.25/gas/Makefile.in @@ -16,7 +16,7 @@ @SET_MAKE@ # -# Copyright (C) 2012-2014 Free Software Foundation, Inc. +# Copyright (C) 2012-2015 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/binutils-2.25/gas/app.c b/binutils-2.25/gas/app.c index 32a172f..d5a10c1 100644 --- a/binutils-2.25/gas/app.c +++ b/binutils-2.25/gas/app.c @@ -247,7 +247,7 @@ struct app_save char * app_push (void) { - register struct app_save *saved; + struct app_save *saved; saved = (struct app_save *) xmalloc (sizeof (*saved)); saved->state = state; @@ -284,7 +284,7 @@ app_push (void) void app_pop (char *arg) { - register struct app_save *saved = (struct app_save *) arg; + struct app_save *saved = (struct app_save *) arg; /* There is no do_scrub_end (). */ state = saved->state; @@ -360,7 +360,7 @@ do_scrub_chars (size_t (*get) (char *, size_t), char *tostart, size_t tolen) char *from; char *fromend; size_t fromlen; - register int ch, ch2 = 0; + int ch, ch2 = 0; /* Character that started the string we're working on. */ static char quotechar; diff --git a/binutils-2.25/gas/as.c b/binutils-2.25/gas/as.c index 85a04a3..3d43dae 100644 --- a/binutils-2.25/gas/as.c +++ b/binutils-2.25/gas/as.c @@ -96,6 +96,9 @@ int debug_memory = 0; /* Enable verbose mode. */ int verbose = 0; +/* Enable incbin directive. */ +int allow_incbin_directive = 1; + /* Keep the output file. */ static int keep_it = 0; @@ -455,7 +458,9 @@ parse_args (int * pargc, char *** pargv) OPTION_REDUCE_MEMORY_OVERHEADS, OPTION_WARN_FATAL, OPTION_COMPRESS_DEBUG, - OPTION_NOCOMPRESS_DEBUG + OPTION_NOCOMPRESS_DEBUG, + OPTION_ALLOW_INCBIN, + OPTION_NOALLOW_INCBIN /* When you add options here, check that they do not collide with OPTION_MD_BASE. See as.h. */ }; @@ -473,6 +478,8 @@ parse_args (int * pargc, char *** pargv) ,{"a", optional_argument, NULL, 'a'} /* Handle -al=. */ ,{"al", optional_argument, NULL, OPTION_AL} + ,{"allow-incbin", optional_argument, NULL, OPTION_ALLOW_INCBIN} + ,{"noallow-incbin", optional_argument, NULL, OPTION_NOALLOW_INCBIN} ,{"compress-debug-sections", no_argument, NULL, OPTION_COMPRESS_DEBUG} ,{"nocompress-debug-sections", no_argument, NULL, OPTION_NOCOMPRESS_DEBUG} ,{"debug-prefix-map", required_argument, NULL, OPTION_DEBUG_PREFIX_MAP} @@ -668,6 +675,14 @@ This program has absolutely no warranty.\n")); flag_compress_debug = 0; break; + case OPTION_ALLOW_INCBIN: + allow_incbin_directive = 1; + break; + + case OPTION_NOALLOW_INCBIN: + allow_incbin_directive = 0; + break; + case OPTION_DEBUG_PREFIX_MAP: add_debug_prefix_map (optarg); break; diff --git a/binutils-2.25/gas/as.h b/binutils-2.25/gas/as.h index df04dce..f614187 100644 --- a/binutils-2.25/gas/as.h +++ b/binutils-2.25/gas/as.h @@ -423,6 +423,9 @@ extern int max_macro_nest; /* Verbosity level. */ extern int verbose; +/* Enable incbin directive. */ +extern int allow_incbin_directive; + /* Obstack chunk size. Keep large for efficient space use, make small to increase malloc calls for monitoring memory allocation. */ extern int chunksize; diff --git a/binutils-2.25/gas/config/bfin-aux.h b/binutils-2.25/gas/config/bfin-aux.h old mode 100644 new mode 100755 diff --git a/binutils-2.25/gas/config/m68k-parse.y b/binutils-2.25/gas/config/m68k-parse.y index d5c59a1..3c7051c 100644 --- a/binutils-2.25/gas/config/m68k-parse.y +++ b/binutils-2.25/gas/config/m68k-parse.y @@ -685,8 +685,7 @@ static char *strorig; *CCP. Otherwise don't change *CCP, and return 0. */ static enum m68k_register -m68k_reg_parse (ccp) - register char **ccp; +m68k_reg_parse (char **ccp) { char *start = *ccp; char c; @@ -748,7 +747,7 @@ m68k_reg_parse (ccp) /* The lexer. */ static int -yylex () +yylex (void) { enum m68k_register reg; char *s; @@ -1091,9 +1090,7 @@ yylex () from outside this file. */ int -m68k_ip_op (s, oparg) - char *s; - struct m68k_op *oparg; +m68k_ip_op (char *s, struct m68k_op *oparg) { memset (oparg, 0, sizeof *oparg); oparg->error = NULL; @@ -1111,8 +1108,7 @@ m68k_ip_op (s, oparg) /* The error handler. */ static void -yyerror (s) - const char *s; +yyerror (const char *s) { op->error = s; } diff --git a/binutils-2.25/gas/config/obj-elf.c b/binutils-2.25/gas/config/obj-elf.c index e2ef99e..50a5d1c 100644 --- a/binutils-2.25/gas/config/obj-elf.c +++ b/binutils-2.25/gas/config/obj-elf.c @@ -125,8 +125,10 @@ static const pseudo_typeS elf_pseudo_table[] = {"8byte", cons, 8}, /* These are used for dwarf2. */ { "file", (void (*) (int)) dwarf2_directive_file, 0 }, - { "loc", dwarf2_directive_loc, 0 }, + { "loc", dwarf2_directive_loc, 0 }, { "loc_mark_labels", dwarf2_directive_loc_mark_labels, 0 }, + { "lloc", dwarf2_directive_loc, 1 }, + { "subprog", dwarf2_directive_subprog, 0 }, /* We need to trap the section changing calls to handle .previous. */ {"data", obj_elf_data, 0}, diff --git a/binutils-2.25/gas/config/tc-aarch64.c b/binutils-2.25/gas/config/tc-aarch64.c index 0e58764..4f3fe47 100644 --- a/binutils-2.25/gas/config/tc-aarch64.c +++ b/binutils-2.25/gas/config/tc-aarch64.c @@ -3939,11 +3939,11 @@ output_info (const char *format, ...) static void output_operand_error_record (const operand_error_record *record, char *str) { - int idx = record->detail.index; + const aarch64_operand_error *detail = &record->detail; + int idx = detail->index; const aarch64_opcode *opcode = record->opcode; - enum aarch64_opnd opd_code = (idx != -1 ? opcode->operands[idx] + enum aarch64_opnd opd_code = (idx >= 0 ? opcode->operands[idx] : AARCH64_OPND_NIL); - const aarch64_operand_error *detail = &record->detail; switch (detail->kind) { @@ -3955,20 +3955,22 @@ output_operand_error_record (const operand_error_record *record, char *str) case AARCH64_OPDE_RECOVERABLE: case AARCH64_OPDE_FATAL_SYNTAX_ERROR: case AARCH64_OPDE_OTHER_ERROR: - gas_assert (idx >= 0); /* Use the prepared error message if there is, otherwise use the operand description string to describe the error. */ if (detail->error != NULL) { - if (detail->index == -1) + if (idx < 0) as_bad (_("%s -- `%s'"), detail->error, str); else as_bad (_("%s at operand %d -- `%s'"), - detail->error, detail->index + 1, str); + detail->error, idx + 1, str); } else - as_bad (_("operand %d should be %s -- `%s'"), idx + 1, + { + gas_assert (idx >= 0); + as_bad (_("operand %d should be %s -- `%s'"), idx + 1, aarch64_get_operand_desc (opd_code), str); + } break; case AARCH64_OPDE_INVALID_VARIANT: @@ -4073,28 +4075,28 @@ output_operand_error_record (const operand_error_record *record, char *str) if (detail->data[0] != detail->data[1]) as_bad (_("%s out of range %d to %d at operand %d -- `%s'"), detail->error ? detail->error : _("immediate value"), - detail->data[0], detail->data[1], detail->index + 1, str); + detail->data[0], detail->data[1], idx + 1, str); else as_bad (_("%s expected to be %d at operand %d -- `%s'"), detail->error ? detail->error : _("immediate value"), - detail->data[0], detail->index + 1, str); + detail->data[0], idx + 1, str); break; case AARCH64_OPDE_REG_LIST: if (detail->data[0] == 1) as_bad (_("invalid number of registers in the list; " "only 1 register is expected at operand %d -- `%s'"), - detail->index + 1, str); + idx + 1, str); else as_bad (_("invalid number of registers in the list; " "%d registers are expected at operand %d -- `%s'"), - detail->data[0], detail->index + 1, str); + detail->data[0], idx + 1, str); break; case AARCH64_OPDE_UNALIGNED: as_bad (_("immediate value should be a multiple of " "%d at operand %d -- `%s'"), - detail->data[0], detail->index + 1, str); + detail->data[0], idx + 1, str); break; default: @@ -7184,20 +7186,10 @@ static const struct aarch64_cpu_option_table aarch64_cpus[] = { AARCH64_FEATURE_CRC), "Cortex-A53"}, {"cortex-a57", AARCH64_FEATURE(AARCH64_ARCH_V8, AARCH64_FEATURE_CRC), "Cortex-A57"}, - /* The 'xgene-1' name is an older name for 'xgene1', which was used - in earlier releases and is superseded by 'xgene1' in all - tools. */ + {"thunderx", AARCH64_ARCH_V8, "Cavium ThunderX"}, {"xgene-1", AARCH64_ARCH_V8, "APM X-Gene 1"}, - {"xgene1", AARCH64_ARCH_V8, "APM X-Gene 1"}, - {"xgene2", AARCH64_FEATURE(AARCH64_ARCH_V8, - AARCH64_FEATURE_CRC), "APM X-Gene 2"}, {"generic", AARCH64_ARCH_V8, NULL}, - /* These two are example CPUs supported in GCC, once we have real - CPUs they will be removed. */ - {"example-1", AARCH64_ARCH_V8, NULL}, - {"example-2", AARCH64_ARCH_V8, NULL}, - {NULL, AARCH64_ARCH_NONE, NULL} }; diff --git a/binutils-2.25/gas/config/tc-alpha.c b/binutils-2.25/gas/config/tc-alpha.c index ea6aa19..f91c4ca 100644 --- a/binutils-2.25/gas/config/tc-alpha.c +++ b/binutils-2.25/gas/config/tc-alpha.c @@ -4482,7 +4482,7 @@ s_alpha_pdesc (int ignore ATTRIBUTE_UNUSED) { char *name; char name_end; - register char *p; + char *p; expressionS exp; symbolS *entry_sym; const char *entry_sym_name; diff --git a/binutils-2.25/gas/config/tc-bfin.c b/binutils-2.25/gas/config/tc-bfin.c index 447a477..6646482 100644 --- a/binutils-2.25/gas/config/tc-bfin.c +++ b/binutils-2.25/gas/config/tc-bfin.c @@ -111,7 +111,7 @@ bfin_pic_ptr (int nbytes) static void bfin_s_bss (int ignore ATTRIBUTE_UNUSED) { - register int temp; + int temp; temp = get_absolute_expression (); subseg_set (bss_section, (subsegT) temp); diff --git a/binutils-2.25/gas/config/tc-d10v.c b/binutils-2.25/gas/config/tc-d10v.c index 8e3d171..dacfeb7 100644 --- a/binutils-2.25/gas/config/tc-d10v.c +++ b/binutils-2.25/gas/config/tc-d10v.c @@ -1226,9 +1226,7 @@ find_opcode (struct d10v_opcode *opcode, expressionS myops[]) sym_frag = symbol_get_frag (myops[opnum].X_add_symbol); found_symbol = FALSE; - current_position = - obstack_next_free (&frchain_now->frch_obstack) - - frag_now->fr_literal; + current_position = frag_now_fix_octets (); symbol_position = S_GET_VALUE (myops[opnum].X_add_symbol); for (f = frchain_now->frch_root; f; f = f->fr_next) diff --git a/binutils-2.25/gas/config/tc-d30v.c b/binutils-2.25/gas/config/tc-d30v.c index 9076e41..a73f9b1 100644 --- a/binutils-2.25/gas/config/tc-d30v.c +++ b/binutils-2.25/gas/config/tc-d30v.c @@ -1242,12 +1242,10 @@ find_format (struct d30v_opcode *opcode, /* Calculate the current address by running through the previous frags and adding our current offset. */ - value = 0; + value = frag_now_fix_octets (); for (f = frchain_now->frch_root; f; f = f->fr_next) value += f->fr_fix + f->fr_offset; - value = (S_GET_VALUE (myops[j].X_add_symbol) - value - - (obstack_next_free (&frchain_now->frch_obstack) - - frag_now->fr_literal)); + value = S_GET_VALUE (myops[j].X_add_symbol) - value; if (check_range (value, bits, flags)) match = 0; } diff --git a/binutils-2.25/gas/config/tc-epiphany.c b/binutils-2.25/gas/config/tc-epiphany.c old mode 100644 new mode 100755 diff --git a/binutils-2.25/gas/config/tc-epiphany.h b/binutils-2.25/gas/config/tc-epiphany.h old mode 100644 new mode 100755 diff --git a/binutils-2.25/gas/config/tc-i386-intel.c b/binutils-2.25/gas/config/tc-i386-intel.c index 86b96eb..b55d985 100644 --- a/binutils-2.25/gas/config/tc-i386-intel.c +++ b/binutils-2.25/gas/config/tc-i386-intel.c @@ -141,7 +141,9 @@ operatorT i386_operator (const char *name, unsigned int operands, char *pc) int adjust = 0; char *gotfree_input_line = lex_got (&i.reloc[this_operand], &adjust, - &intel_state.reloc_types); + &intel_state.reloc_types, + (i.bnd_prefix != NULL + || add_bnd_prefix)); if (!gotfree_input_line) break; diff --git a/binutils-2.25/gas/config/tc-i386.c b/binutils-2.25/gas/config/tc-i386.c index 6f7a1ae..97e326c 100644 --- a/binutils-2.25/gas/config/tc-i386.c +++ b/binutils-2.25/gas/config/tc-i386.c @@ -2830,6 +2830,7 @@ static bfd_reloc_code_real_type reloc (unsigned int size, int pcrel, int sign, + int bnd_prefix, bfd_reloc_code_real_type other) { if (other != NO_RELOC) @@ -2842,6 +2843,9 @@ reloc (unsigned int size, case BFD_RELOC_X86_64_GOT32: return BFD_RELOC_X86_64_GOT64; break; + case BFD_RELOC_X86_64_GOTPLT64: + return BFD_RELOC_X86_64_GOTPLT64; + break; case BFD_RELOC_X86_64_PLTOFF64: return BFD_RELOC_X86_64_PLTOFF64; break; @@ -2905,7 +2909,9 @@ reloc (unsigned int size, { case 1: return BFD_RELOC_8_PCREL; case 2: return BFD_RELOC_16_PCREL; - case 4: return BFD_RELOC_32_PCREL; + case 4: return (bnd_prefix && object_64bit + ? BFD_RELOC_X86_64_PC32_BND + : BFD_RELOC_32_PCREL); case 8: return BFD_RELOC_64_PCREL; } as_bad (_("cannot do %u byte pc-relative relocation"), size); @@ -6770,7 +6776,13 @@ output_branch (void) /* 1 possible extra opcode + 4 byte displacement go in var part. Pass reloc in fr_var. */ - frag_var (rs_machine_dependent, 5, i.reloc[0], subtype, sym, off, p); + frag_var (rs_machine_dependent, 5, + ((!object_64bit + || i.reloc[0] != NO_RELOC + || (i.bnd_prefix == NULL && !add_bnd_prefix)) + ? i.reloc[0] + : BFD_RELOC_X86_64_PC32_BND), + subtype, sym, off, p); } static void @@ -6846,7 +6858,10 @@ output_jump (void) } fixP = fix_new_exp (frag_now, p - frag_now->fr_literal, size, - i.op[0].disps, 1, reloc (size, 1, 1, i.reloc[0])); + i.op[0].disps, 1, reloc (size, 1, 1, + (i.bnd_prefix != NULL + || add_bnd_prefix), + i.reloc[0])); /* All jumps handled here are signed, but don't use a signed limit check for 32 and 16 bit jumps as we want to allow wrap around at @@ -6912,7 +6927,7 @@ output_interseg_jump (void) } else fix_new_exp (frag_now, p - frag_now->fr_literal, size, - i.op[1].imms, 0, reloc (size, 0, 0, i.reloc[1])); + i.op[1].imms, 0, reloc (size, 0, 0, 0, i.reloc[1])); if (i.op[0].imms->X_op != O_constant) as_bad (_("can't handle non absolute segment in `%s'"), i.tm.name); @@ -7191,7 +7206,10 @@ output_disp (fragS *insn_start_frag, offsetT insn_start_off) } p = frag_more (size); - reloc_type = reloc (size, pcrel, sign, i.reloc[n]); + reloc_type = reloc (size, pcrel, sign, + (i.bnd_prefix != NULL + || add_bnd_prefix), + i.reloc[n]); if (GOT_symbol && GOT_symbol == i.op[n].disps->X_add_symbol && (((reloc_type == BFD_RELOC_32 @@ -7282,7 +7300,7 @@ output_imm (fragS *insn_start_frag, offsetT insn_start_off) sign = 0; p = frag_more (size); - reloc_type = reloc (size, 0, sign, i.reloc[n]); + reloc_type = reloc (size, 0, sign, 0, i.reloc[n]); /* This is tough to explain. We end up with this one if we * have operands that look like @@ -7375,7 +7393,7 @@ void x86_cons_fix_new (fragS *frag, unsigned int off, unsigned int len, expressionS *exp, bfd_reloc_code_real_type r) { - r = reloc (len, 0, cons_sign, r); + r = reloc (len, 0, cons_sign, 0, r); #ifdef TE_PE if (exp->X_op == O_secrel) @@ -7401,7 +7419,7 @@ x86_address_bytes (void) #if !(defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF) || defined (OBJ_MACH_O)) \ || defined (LEX_AT) -# define lex_got(reloc, adjust, types) NULL +# define lex_got(reloc, adjust, types, bnd_prefix) NULL #else /* Parse operands of the form @GOTOFF+ @@ -7415,7 +7433,8 @@ x86_address_bytes (void) static char * lex_got (enum bfd_reloc_code_real *rel, int *adjust, - i386_operand_type *types) + i386_operand_type *types, + int bnd_prefix) { /* Some of the relocations depend on the size of what field is to be relocated. But in our callers i386_immediate and i386_displacement @@ -7550,6 +7569,8 @@ lex_got (enum bfd_reloc_code_real *rel, *adjust = len; memcpy (tmpbuf + first, past_reloc, second); tmpbuf[first + second] = '\0'; + if (bnd_prefix && *rel == BFD_RELOC_X86_64_PLT32) + *rel = BFD_RELOC_X86_64_PLT32_BND; return tmpbuf; } @@ -7582,7 +7603,8 @@ lex_got (enum bfd_reloc_code_real *rel, static char * lex_got (enum bfd_reloc_code_real *rel ATTRIBUTE_UNUSED, int *adjust ATTRIBUTE_UNUSED, - i386_operand_type *types) + i386_operand_type *types, + int bnd_prefix ATTRIBUTE_UNUSED) { static const struct { @@ -7683,7 +7705,7 @@ x86_cons (expressionS *exp, int size) int adjust = 0; save = input_line_pointer; - gotfree_input_line = lex_got (&got_reloc, &adjust, NULL); + gotfree_input_line = lex_got (&got_reloc, &adjust, NULL, 0); if (gotfree_input_line) input_line_pointer = gotfree_input_line; @@ -7917,7 +7939,9 @@ i386_immediate (char *imm_start) save_input_line_pointer = input_line_pointer; input_line_pointer = imm_start; - gotfree_input_line = lex_got (&i.reloc[this_operand], NULL, &types); + gotfree_input_line = lex_got (&i.reloc[this_operand], NULL, &types, + (i.bnd_prefix != NULL + || add_bnd_prefix)); if (gotfree_input_line) input_line_pointer = gotfree_input_line; @@ -8174,7 +8198,9 @@ i386_displacement (char *disp_start, char *disp_end) *displacement_string_end = '0'; } #endif - gotfree_input_line = lex_got (&i.reloc[this_operand], NULL, &types); + gotfree_input_line = lex_got (&i.reloc[this_operand], NULL, &types, + (i.bnd_prefix != NULL + || add_bnd_prefix)); if (gotfree_input_line) input_line_pointer = gotfree_input_line; @@ -9134,7 +9160,8 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) && (fixP->fx_r_type == BFD_RELOC_32_PCREL || fixP->fx_r_type == BFD_RELOC_64_PCREL || fixP->fx_r_type == BFD_RELOC_16_PCREL - || fixP->fx_r_type == BFD_RELOC_8_PCREL) + || fixP->fx_r_type == BFD_RELOC_8_PCREL + || fixP->fx_r_type == BFD_RELOC_X86_64_PC32_BND) && !use_rela_relocations) { /* This is a hack. There should be a better way to handle this. @@ -9203,6 +9230,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) { case BFD_RELOC_386_PLT32: case BFD_RELOC_X86_64_PLT32: + case BFD_RELOC_X86_64_PLT32_BND: /* Make the jump instruction point to the address of the operand. At runtime we merely add the offset to the actual PLT entry. */ value = -4; @@ -10326,6 +10354,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) #endif case BFD_RELOC_X86_64_PLT32: + case BFD_RELOC_X86_64_PLT32_BND: case BFD_RELOC_X86_64_GOT32: case BFD_RELOC_X86_64_GOTPCREL: case BFD_RELOC_386_PLT32: @@ -10386,7 +10415,10 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) break; case 1: code = BFD_RELOC_8_PCREL; break; case 2: code = BFD_RELOC_16_PCREL; break; - case 4: code = BFD_RELOC_32_PCREL; break; + case 4: + code = (fixp->fx_r_type == BFD_RELOC_X86_64_PC32_BND + ? fixp-> fx_r_type : BFD_RELOC_32_PCREL); + break; #ifdef BFD64 case 8: code = BFD_RELOC_64_PCREL; break; #endif @@ -10479,6 +10511,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp) switch (code) { case BFD_RELOC_X86_64_PLT32: + case BFD_RELOC_X86_64_PLT32_BND: case BFD_RELOC_X86_64_GOT32: case BFD_RELOC_X86_64_GOTPCREL: case BFD_RELOC_X86_64_TLSGD: diff --git a/binutils-2.25/gas/config/tc-i860.c b/binutils-2.25/gas/config/tc-i860.c index 1b55b80..dd51c26 100644 --- a/binutils-2.25/gas/config/tc-i860.c +++ b/binutils-2.25/gas/config/tc-i860.c @@ -1028,7 +1028,7 @@ md_number_to_chars (char *buf, valueT val, int n) /* This should never be called for i860. */ int -md_estimate_size_before_relax (register fragS *fragP ATTRIBUTE_UNUSED, +md_estimate_size_before_relax (fragS *fragP ATTRIBUTE_UNUSED, segT segtype ATTRIBUTE_UNUSED) { as_fatal (_("relaxation not supported\n")); diff --git a/binutils-2.25/gas/config/tc-m68hc11.c b/binutils-2.25/gas/config/tc-m68hc11.c index 3641912..9026ff4 100644 --- a/binutils-2.25/gas/config/tc-m68hc11.c +++ b/binutils-2.25/gas/config/tc-m68hc11.c @@ -3958,7 +3958,7 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, asection *sec ATTRIBUTE_UNUSED, char *buffer_address = fragP->fr_literal; /* Address in object code of the displacement. */ - register int object_address = fragP->fr_fix + fragP->fr_address; + int object_address = fragP->fr_fix + fragP->fr_address; buffer_address += fragP->fr_fix; diff --git a/binutils-2.25/gas/config/tc-m68k.c b/binutils-2.25/gas/config/tc-m68k.c index 7fc4efe..dbcd87b 100644 --- a/binutils-2.25/gas/config/tc-m68k.c +++ b/binutils-2.25/gas/config/tc-m68k.c @@ -1395,11 +1395,11 @@ static struct hash_control *op_hash; static void m68k_ip (char *instring) { - register char *p; - register struct m68k_op *opP; - register const struct m68k_incant *opcode; - register const char *s; - register int tmpreg = 0, baseo = 0, outro = 0, nextword; + char *p; + struct m68k_op *opP; + const struct m68k_incant *opcode; + const char *s; + int tmpreg = 0, baseo = 0, outro = 0, nextword; char *pdot, *pdotmove; enum m68k_size siz1, siz2; char c; @@ -3955,9 +3955,9 @@ install_gen_operand (int mode, int val) static char * crack_operand (char *str, struct m68k_op *opP) { - register int parens; - register int c; - register char *beg_str; + int parens; + int c; + char *beg_str; int inquote = 0; if (!str) @@ -5033,12 +5033,12 @@ md_convert_frag_1 (fragS *fragP) fixS *fixP = NULL; /* Address in object code of the displacement. */ - register int object_address = fragP->fr_fix + fragP->fr_address; + int object_address = fragP->fr_fix + fragP->fr_address; /* Address in gas core of the place to store the displacement. */ /* This convinces the native rs6000 compiler to generate the code we want. */ - register char *buffer_address = fragP->fr_literal; + char *buffer_address = fragP->fr_literal; buffer_address += fragP->fr_fix; /* End ibm compiler workaround. */ @@ -5663,8 +5663,8 @@ s_bss (int ignore ATTRIBUTE_UNUSED) static void s_even (int ignore ATTRIBUTE_UNUSED) { - register int temp; - register long temp_fill; + int temp; + long temp_fill; temp = 1; /* JF should be 2? */ temp_fill = get_absolute_expression (); diff --git a/binutils-2.25/gas/config/tc-mips.c b/binutils-2.25/gas/config/tc-mips.c index 0f7e0c5..59f7a73 100644 --- a/binutils-2.25/gas/config/tc-mips.c +++ b/binutils-2.25/gas/config/tc-mips.c @@ -510,7 +510,8 @@ static int mips_32bitmode = 0; #define CPU_HAS_ROR(CPU) CPU_HAS_DROR (CPU) /* True if CPU is in the Octeon family */ -#define CPU_IS_OCTEON(CPU) ((CPU) == CPU_OCTEON || (CPU) == CPU_OCTEONP || (CPU) == CPU_OCTEON2) +#define CPU_IS_OCTEON(CPU) ((CPU) == CPU_OCTEON || (CPU) == CPU_OCTEONP \ + || (CPU) == CPU_OCTEON2 || (CPU) == CPU_OCTEON3) /* True if CPU has seq/sne and seqi/snei instructions. */ #define CPU_HAS_SEQ(CPU) (CPU_IS_OCTEON (CPU)) @@ -1878,7 +1879,7 @@ static void mips_compressed_mark_labels (void); static inline void mips_clear_insn_labels (void) { - register struct insn_label_list **pl; + struct insn_label_list **pl; segment_info_type *si; if (now_seg) @@ -18825,6 +18826,7 @@ static const struct mips_cpu_info mips_cpu_info_table[] = { "octeon", 0, 0, ISA_MIPS64R2, CPU_OCTEON }, { "octeon+", 0, 0, ISA_MIPS64R2, CPU_OCTEONP }, { "octeon2", 0, 0, ISA_MIPS64R2, CPU_OCTEON2 }, + { "octeon3", 0, ASE_VIRT | ASE_VIRT64, ISA_MIPS64R5, CPU_OCTEON3 }, /* RMI Xlr */ { "xlr", 0, 0, ISA_MIPS64, CPU_XLR }, diff --git a/binutils-2.25/gas/config/tc-mn10200.c b/binutils-2.25/gas/config/tc-mn10200.c index f76fb08..7462d93 100644 --- a/binutils-2.25/gas/config/tc-mn10200.c +++ b/binutils-2.25/gas/config/tc-mn10200.c @@ -686,7 +686,7 @@ void md_begin (void) { char *prev_name = ""; - register const struct mn10200_opcode *op; + const struct mn10200_opcode *op; mn10200_hash = hash_new (); diff --git a/binutils-2.25/gas/config/tc-nios2.c b/binutils-2.25/gas/config/tc-nios2.c index 21f4288..7691fd1 100644 --- a/binutils-2.25/gas/config/tc-nios2.c +++ b/binutils-2.25/gas/config/tc-nios2.c @@ -139,6 +139,10 @@ typedef struct nios2_insn_info { /* Assembled instruction. */ unsigned long insn_code; + + /* Constant bits masked into insn_code for self-check mode. */ + unsigned long constant_bits; + /* Pointer to the relevant bit of the opcode table. */ const struct nios2_opcode *insn_nios2_opcode; /* After parsing ptrs to the tokens in the instruction fill this array @@ -152,15 +156,6 @@ typedef struct nios2_insn_info nios2_insn_relocS *insn_reloc; } nios2_insn_infoS; -/* This struct associates an argument assemble function with - an argument syntax string. Used by the assembler to find out - how to parse and assemble a set of instruction operands and - return the instruction field values. */ -typedef struct nios2_arg_info -{ - const char *args; - void (*assemble_args_func) (nios2_insn_infoS *insn_info); -} nios2_arg_infoS; /* This struct is used to convert Nios II pseudo-ops into the corresponding real op. */ @@ -196,10 +191,6 @@ static struct hash_control *nios2_reg_hash = NULL; #define nios2_reg_lookup(NAME) \ ((struct nios2_reg *) hash_find (nios2_reg_hash, (NAME))) -/* Parse args hash table. */ -static struct hash_control *nios2_arg_hash = NULL; -#define nios2_arg_lookup(NAME) \ - ((nios2_arg_infoS *) hash_find (nios2_arg_hash, (NAME))) /* Pseudo-op hash table. */ static struct hash_control *nios2_ps_hash = NULL; @@ -303,27 +294,6 @@ md_atof (int type, char *litP, int *sizeP) #define strprefix(STR, PREFIX) \ (strncmp ((STR), PREFIX, strlen (PREFIX)) == 0) -/* Return true if STR is prefixed with a control register name. */ -static int -nios2_control_register_arg_p (const char *str) -{ - return (strprefix (str, "ctl") - || strprefix (str, "cpuid") - || strprefix (str, "status") - || strprefix (str, "estatus") - || strprefix (str, "bstatus") - || strprefix (str, "ienable") - || strprefix (str, "ipending") - || strprefix (str, "exception") - || strprefix (str, "pteaddr") - || strprefix (str, "tlbacc") - || strprefix (str, "tlbmisc") - || strprefix (str, "eccinj") - || strprefix (str, "config") - || strprefix (str, "mpubase") - || strprefix (str, "mpuacc") - || strprefix (str, "badaddr")); -} /* Return true if STR is prefixed with a special relocation operator. */ static int @@ -345,24 +315,6 @@ nios2_special_relocation_p (const char *str) || strprefix (str, "%gotoff")); } -/* Checks whether the register name is a coprocessor - register - returns TRUE if it is, FALSE otherwise. */ -static bfd_boolean -nios2_coproc_reg (const char *reg_name) -{ - gas_assert (reg_name != NULL); - - /* Check that we do have a valid register name and that it is a - coprocessor register. - It must begin with c, not be a control register, and be a valid - register name. */ - if (strprefix (reg_name, "c") - && !strprefix (reg_name, "ctl") - && hash_find (nios2_reg_hash, reg_name) != NULL) - return TRUE; - else - return FALSE; -} /* nop fill pattern for text section. */ static char const nop[4] = { 0x3a, 0x88, 0x01, 0x00 }; @@ -816,9 +768,9 @@ nios2_relax_frag (segT segment, fragS *fragp, long stretch) target = fragp->fr_next->fr_address + stretch; } - /* We subtract 4 because all pc relative branches are - from the next instruction. */ - offset = target - fragp->fr_address - fragp->fr_fix - 4; + /* We subtract fr_var (4 for 32-bit insns) because all pc relative + branches are from the next instruction. */ + offset = target - fragp->fr_address - fragp->fr_fix - fragp->fr_var; if (offset >= -32768 && offset <= 32764) /* Fits in PC-relative branch. */ n = 0; @@ -902,6 +854,7 @@ md_convert_frag (bfd *headers ATTRIBUTE_UNUSED, segT segment ATTRIBUTE_UNUSED, if (IS_CBRANCH (subtype)) { unsigned int br_opcode; + unsigned int old_op, new_op; int nbytes; /* Account for the nextpc and jmp in the pc-relative case, or the two @@ -912,25 +865,26 @@ md_convert_frag (bfd *headers ATTRIBUTE_UNUSED, segT segment ATTRIBUTE_UNUSED, nbytes = 12; br_opcode = md_chars_to_number (buffer, 4); - switch (br_opcode & OP_MASK_OP) + old_op = GET_IW_R1_OP (br_opcode); + switch (old_op) { - case OP_MATCH_BEQ: - br_opcode = (br_opcode & ~OP_MASK_OP) | OP_MATCH_BNE; + case R1_OP_BEQ: + new_op = R1_OP_BNE; break; - case OP_MATCH_BNE: - br_opcode = (br_opcode & ~OP_MASK_OP) | OP_MATCH_BEQ ; + case R1_OP_BNE: + new_op = R1_OP_BEQ; break; - case OP_MATCH_BGE: - br_opcode = (br_opcode & ~OP_MASK_OP) | OP_MATCH_BLT ; + case R1_OP_BGE: + new_op = R1_OP_BLT; break; - case OP_MATCH_BGEU: - br_opcode = (br_opcode & ~OP_MASK_OP) | OP_MATCH_BLTU ; + case R1_OP_BGEU: + new_op = R1_OP_BLTU; break; - case OP_MATCH_BLT: - br_opcode = (br_opcode & ~OP_MASK_OP) | OP_MATCH_BGE ; + case R1_OP_BLT: + new_op = R1_OP_BGE; break; - case OP_MATCH_BLTU: - br_opcode = (br_opcode & ~OP_MASK_OP) | OP_MATCH_BGEU ; + case R1_OP_BLTU: + new_op = R1_OP_BGEU; break; default: as_bad_where (fragp->fr_file, fragp->fr_line, @@ -938,7 +892,8 @@ md_convert_frag (bfd *headers ATTRIBUTE_UNUSED, segT segment ATTRIBUTE_UNUSED, abort (); } - br_opcode = br_opcode | (nbytes << OP_SH_IMM16); + br_opcode = (br_opcode & ~IW_R1_OP_SHIFTED_MASK) | SET_IW_R1_OP (new_op); + br_opcode = br_opcode | SET_IW_I_IMM16 (nbytes); md_number_to_chars (buffer, br_opcode, 4); fragp->fr_fix += 4; buffer += 4; @@ -949,7 +904,7 @@ md_convert_frag (bfd *headers ATTRIBUTE_UNUSED, segT segment ATTRIBUTE_UNUSED, { /* Insert the nextpc instruction. */ md_number_to_chars (buffer, - OP_MATCH_NEXTPC | (AT_REGNUM << OP_SH_RRD), 4); + MATCH_R1_NEXTPC | SET_IW_R_C (AT_REGNUM), 4); fragp->fr_fix += 4; buffer += 4; @@ -960,12 +915,12 @@ md_convert_frag (bfd *headers ATTRIBUTE_UNUSED, segT segment ATTRIBUTE_UNUSED, addend = 32767; else addend = -32768; - addend_mask = (((unsigned int)addend) & 0xffff) << OP_SH_IMM16; + addend_mask = SET_IW_I_IMM16 ((unsigned int)addend); /* Insert n-1 addi instructions. */ - addi_mask = (OP_MATCH_ADDI - | (AT_REGNUM << OP_SH_IRD) - | (AT_REGNUM << OP_SH_IRS)); + addi_mask = (MATCH_R1_ADDI + | SET_IW_I_B (AT_REGNUM) + | SET_IW_I_A (AT_REGNUM)); for (i = 0; i < n - 1; i ++) { md_number_to_chars (buffer, addi_mask | addend_mask, 4); @@ -976,7 +931,7 @@ md_convert_frag (bfd *headers ATTRIBUTE_UNUSED, segT segment ATTRIBUTE_UNUSED, /* Insert the last addi instruction to hold the remainder. */ remainder = offset - addend * (n - 1); gas_assert (remainder >= -32768 && remainder <= 32767); - addend_mask = (((unsigned int)remainder) & 0xffff) << OP_SH_IMM16; + addend_mask = SET_IW_I_IMM16 ((unsigned int)remainder); md_number_to_chars (buffer, addi_mask | addend_mask, 4); fragp->fr_fix += 4; buffer += 4; @@ -985,12 +940,18 @@ md_convert_frag (bfd *headers ATTRIBUTE_UNUSED, segT segment ATTRIBUTE_UNUSED, /* Load at for the absolute case. */ else { - md_number_to_chars (buffer, OP_MATCH_ORHI | 0x00400000, 4); + md_number_to_chars (buffer, + (MATCH_R1_ORHI | SET_IW_I_B (AT_REGNUM) + | SET_IW_I_A (0)), + 4); fix_new (fragp, fragp->fr_fix, 4, fragp->fr_symbol, fragp->fr_offset, 0, BFD_RELOC_NIOS2_HI16); fragp->fr_fix += 4; buffer += 4; - md_number_to_chars (buffer, OP_MATCH_ORI | 0x08400000, 4); + md_number_to_chars (buffer, + (MATCH_R1_ORI | SET_IW_I_B (AT_REGNUM) + | SET_IW_I_A (AT_REGNUM)), + 4); fix_new (fragp, fragp->fr_fix, 4, fragp->fr_symbol, fragp->fr_offset, 0, BFD_RELOC_NIOS2_LO16); fragp->fr_fix += 4; @@ -998,7 +959,7 @@ md_convert_frag (bfd *headers ATTRIBUTE_UNUSED, segT segment ATTRIBUTE_UNUSED, } /* Insert the jmp instruction. */ - md_number_to_chars (buffer, OP_MATCH_JMP | (AT_REGNUM << OP_SH_RRS), 4); + md_number_to_chars (buffer, MATCH_R1_JMP | SET_IW_R_A (AT_REGNUM), 4); fragp->fr_fix += 4; buffer += 4; } @@ -1071,9 +1032,10 @@ nios2_diagnose_overflow (valueT fixup, reloc_howto_type *howto, unsigned int range_min; unsigned int range_max; unsigned int address; - gas_assert (fixP->fx_size == 4); - opcode = nios2_find_opcode_hash (value); + + opcode = nios2_find_opcode_hash (value, bfd_get_mach (stdoutput)); gas_assert (opcode); + gas_assert (fixP->fx_size == opcode->size); overflow_msg_type = opcode->overflow_msg; switch (overflow_msg_type) { @@ -1240,7 +1202,8 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) FIXME : for some reason fixP->fx_pcrel isn't 1 when it should be so I'm using the howto structure instead to determine this. */ if (howto->pc_relative == 1) - fixup = fixup - (fixP->fx_frag->fr_address + fixP->fx_where + 4); + fixup = fixup - (fixP->fx_frag->fr_address + fixP->fx_where + + fixP->fx_size); /* Get the instruction or data to be fixed up. */ buf = fixP->fx_frag->fr_literal + fixP->fx_where; @@ -1297,6 +1260,16 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED) /** Instruction parsing support. */ +/* General internal error routine. */ + +static void +bad_opcode (const struct nios2_opcode *op) +{ + fprintf (stderr, _("internal error: broken opcode descriptor for `%s %s'\n"), + op->name, op->args); + as_fatal (_("Broken assembler. No assembly attempted.")); +} + /* Special relocation directive strings. */ struct nios2_special_relocS @@ -1363,6 +1336,54 @@ nios2_insn_reloc_destroy (nios2_insn_relocS *reloc) } #endif +/* Look up a register name and validate it for the given regtype. + Return the register mapping or NULL on failure. */ +static struct nios2_reg * +nios2_parse_reg (const char *token, unsigned long regtype) +{ + struct nios2_reg *reg = nios2_reg_lookup (token); + + if (reg == NULL) + { + as_bad (_("unknown register %s"), token); + return NULL; + } + + /* Matched a register, but is it the wrong type? */ + if (!(regtype & reg->regtype)) + { + if (regtype & REG_CONTROL) + as_bad (_("expecting control register")); + else if (reg->regtype & REG_CONTROL) + as_bad (_("illegal use of control register")); + else if (reg->regtype & REG_COPROCESSOR) + as_bad (_("illegal use of coprocessor register")); + else + as_bad (_("invalid register %s"), token); + return NULL; + } + + /* Warn for explicit use of special registers. */ + if (reg->regtype & REG_NORMAL) + { + if (!nios2_as_options.noat && reg->index == 1) + as_warn (_("Register at (r1) can sometimes be corrupted by " + "assembler optimizations.\n" + "Use .set noat to turn off those optimizations " + "(and this warning).")); + if (!nios2_as_options.nobreak && reg->index == 25) + as_warn (_("The debugger will corrupt bt (r25).\n" + "If you don't need to debug this " + "code use .set nobreak to turn off this warning.")); + if (!nios2_as_options.nobreak && reg->index == 30) + as_warn (_("The debugger will corrupt sstatus/ba (r30).\n" + "If you don't need to debug this " + "code use .set nobreak to turn off this warning.")); + } + + return reg; +} + /* The various nios2_assemble_* functions call this function to generate an expression from a string representing an expression. It then tries to evaluate the expression, and if it can, returns its value. @@ -1371,7 +1392,6 @@ nios2_insn_reloc_destroy (nios2_insn_relocS *reloc) static unsigned long nios2_assemble_expression (const char *exprstr, nios2_insn_infoS *insn, - nios2_insn_relocS *prev_reloc, bfd_reloc_code_real_type reloc_type, unsigned int pcrel) { @@ -1407,10 +1427,8 @@ nios2_assemble_expression (const char *exprstr, /* We potentially have a relocation. */ reloc = nios2_insn_reloc_new (reloc_type, pcrel); - if (prev_reloc != NULL) - prev_reloc->reloc_next = reloc; - else - insn->insn_reloc = reloc; + reloc->reloc_next = insn->insn_reloc; + insn->insn_reloc = reloc; /* Parse the expression string. */ saved_line_ptr = input_line_pointer; @@ -1429,480 +1447,310 @@ nios2_assemble_expression (const char *exprstr, return (unsigned long) value; } -/* Argument assemble functions. - All take an instruction argument string, and a pointer - to an instruction opcode. Upon return the insn_opcode - has the relevant fields filled in to represent the arg - string. The return value is NULL if successful, or - an error message if an error was detected. - - The naming conventions for these functions match the args template - in the nios2_opcode structure, as documented in include/opcode/nios2.h. - For example, nios2_assemble_args_dst is used for instructions with - "d,s,t" args. - See nios2_arg_info_structs below for the exact correspondence. */ -static void -nios2_assemble_args_dst (nios2_insn_infoS *insn_info) +/* Argument assemble functions. */ +static void +nios2_assemble_arg_c (const char *token, nios2_insn_infoS *insn) { - if (insn_info->insn_tokens[1] != NULL - && insn_info->insn_tokens[2] != NULL - && insn_info->insn_tokens[3] != NULL) - { - struct nios2_reg *dst = nios2_reg_lookup (insn_info->insn_tokens[1]); - struct nios2_reg *src1 = nios2_reg_lookup (insn_info->insn_tokens[2]); - struct nios2_reg *src2 = nios2_reg_lookup (insn_info->insn_tokens[3]); - - if (dst == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[1]); - else - SET_INSN_FIELD (RRD, insn_info->insn_code, dst->index); + struct nios2_reg *reg = nios2_parse_reg (token, REG_CONTROL); + const struct nios2_opcode *op = insn->insn_nios2_opcode; - if (src1 == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[2]); - else - SET_INSN_FIELD (RRS, insn_info->insn_code, src1->index); - - if (src2 == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[3]); - else - SET_INSN_FIELD (RRT, insn_info->insn_code, src2->index); + if (reg == NULL) + return; - nios2_check_assembly (insn_info->insn_code, insn_info->insn_tokens[4]); + switch (op->format) + { + case iw_r_type: + insn->insn_code |= SET_IW_R_IMM5 (reg->index); + break; + default: + bad_opcode (op); } } -static void -nios2_assemble_args_tsi (nios2_insn_infoS *insn_info) +static void +nios2_assemble_arg_d (const char *token, nios2_insn_infoS *insn) { - if (insn_info->insn_tokens[1] != NULL && - insn_info->insn_tokens[2] != NULL && insn_info->insn_tokens[3] != NULL) - { - struct nios2_reg *dst = nios2_reg_lookup (insn_info->insn_tokens[1]); - struct nios2_reg *src1 = nios2_reg_lookup (insn_info->insn_tokens[2]); - unsigned int src2 - = nios2_assemble_expression (insn_info->insn_tokens[3], insn_info, - insn_info->insn_reloc, BFD_RELOC_NIOS2_S16, - 0); - - if (dst == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[1]); - else - SET_INSN_FIELD (IRT, insn_info->insn_code, dst->index); - - if (src1 == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[2]); - else - SET_INSN_FIELD (IRS, insn_info->insn_code, src1->index); + const struct nios2_opcode *op = insn->insn_nios2_opcode; + unsigned long regtype = REG_NORMAL; + struct nios2_reg *reg; - SET_INSN_FIELD (IMM16, insn_info->insn_code, src2); - nios2_check_assembly (insn_info->insn_code, insn_info->insn_tokens[4]); - SET_INSN_FIELD (IMM16, insn_info->insn_code, 0); - } -} + if (op->format == iw_custom_type) + regtype |= REG_COPROCESSOR; + reg = nios2_parse_reg (token, regtype); + if (reg == NULL) + return; -static void -nios2_assemble_args_tsu (nios2_insn_infoS *insn_info) -{ - if (insn_info->insn_tokens[1] != NULL - && insn_info->insn_tokens[2] != NULL - && insn_info->insn_tokens[3] != NULL) + switch (op->format) { - struct nios2_reg *dst = nios2_reg_lookup (insn_info->insn_tokens[1]); - struct nios2_reg *src1 = nios2_reg_lookup (insn_info->insn_tokens[2]); - unsigned int src2 - = nios2_assemble_expression (insn_info->insn_tokens[3], insn_info, - insn_info->insn_reloc, BFD_RELOC_NIOS2_U16, - 0); - - if (dst == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[1]); - else - SET_INSN_FIELD (IRT, insn_info->insn_code, dst->index); - - if (src1 == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[2]); + case iw_r_type: + insn->insn_code |= SET_IW_R_C (reg->index); + break; + case iw_custom_type: + insn->insn_code |= SET_IW_CUSTOM_C (reg->index); + if (reg->regtype & REG_COPROCESSOR) + insn->insn_code |= SET_IW_CUSTOM_READC (0); else - SET_INSN_FIELD (IRS, insn_info->insn_code, src1->index); - - SET_INSN_FIELD (IMM16, insn_info->insn_code, src2); - nios2_check_assembly (insn_info->insn_code, insn_info->insn_tokens[4]); - SET_INSN_FIELD (IMM16, insn_info->insn_code, 0); + insn->insn_code |= SET_IW_CUSTOM_READC (1); + break; + default: + bad_opcode (op); } } -static void -nios2_assemble_args_sto (nios2_insn_infoS *insn_info) +static void +nios2_assemble_arg_s (const char *token, nios2_insn_infoS *insn) { - if (insn_info->insn_tokens[1] != NULL - && insn_info->insn_tokens[2] != NULL - && insn_info->insn_tokens[3] != NULL) - { - struct nios2_reg *dst = nios2_reg_lookup (insn_info->insn_tokens[1]); - struct nios2_reg *src1 = nios2_reg_lookup (insn_info->insn_tokens[2]); - unsigned int src2 - = nios2_assemble_expression (insn_info->insn_tokens[3], insn_info, - insn_info->insn_reloc, BFD_RELOC_16_PCREL, - 1); - - if (dst == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[1]); - else - SET_INSN_FIELD (IRS, insn_info->insn_code, dst->index); + const struct nios2_opcode *op = insn->insn_nios2_opcode; + unsigned long regtype = REG_NORMAL; + struct nios2_reg *reg; - if (src1 == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[2]); - else - SET_INSN_FIELD (IRT, insn_info->insn_code, src1->index); + if (op->format == iw_custom_type) + regtype |= REG_COPROCESSOR; + reg = nios2_parse_reg (token, regtype); + if (reg == NULL) + return; - SET_INSN_FIELD (IMM16, insn_info->insn_code, src2); - nios2_check_assembly (insn_info->insn_code, insn_info->insn_tokens[4]); - SET_INSN_FIELD (IMM16, insn_info->insn_code, 0); - } -} - -static void -nios2_assemble_args_o (nios2_insn_infoS *insn_info) -{ - if (insn_info->insn_tokens[1] != NULL) + switch (op->format) { - unsigned long immed - = nios2_assemble_expression (insn_info->insn_tokens[1], insn_info, - insn_info->insn_reloc, BFD_RELOC_16_PCREL, - 1); - SET_INSN_FIELD (IMM16, insn_info->insn_code, immed); - nios2_check_assembly (insn_info->insn_code, insn_info->insn_tokens[2]); - SET_INSN_FIELD (IMM16, insn_info->insn_code, 0); + case iw_r_type: + insn->insn_code |= SET_IW_R_A (reg->index); + break; + case iw_i_type: + insn->insn_code |= SET_IW_I_A (reg->index); + break; + case iw_custom_type: + insn->insn_code |= SET_IW_CUSTOM_A (reg->index); + if (reg->regtype & REG_COPROCESSOR) + insn->insn_code |= SET_IW_CUSTOM_READA (0); + else + insn->insn_code |= SET_IW_CUSTOM_READA (1); + break; + default: + bad_opcode (op); } } -static void -nios2_assemble_args_is (nios2_insn_infoS *insn_info) +static void +nios2_assemble_arg_t (const char *token, nios2_insn_infoS *insn) { - if (insn_info->insn_tokens[1] != NULL && insn_info->insn_tokens[2] != NULL) - { - struct nios2_reg *addr_src = nios2_reg_lookup (insn_info->insn_tokens[2]); - unsigned long immed - = nios2_assemble_expression (insn_info->insn_tokens[1], insn_info, - insn_info->insn_reloc, BFD_RELOC_NIOS2_S16, - 0); + const struct nios2_opcode *op = insn->insn_nios2_opcode; + unsigned long regtype = REG_NORMAL; + struct nios2_reg *reg; - SET_INSN_FIELD (IMM16, insn_info->insn_code, immed); + if (op->format == iw_custom_type) + regtype |= REG_COPROCESSOR; + reg = nios2_parse_reg (token, regtype); + if (reg == NULL) + return; - if (addr_src == NULL) - as_bad (_("unknown base register %s"), insn_info->insn_tokens[2]); + switch (op->format) + { + case iw_r_type: + insn->insn_code |= SET_IW_R_B (reg->index); + break; + case iw_i_type: + insn->insn_code |= SET_IW_I_B (reg->index); + break; + case iw_custom_type: + insn->insn_code |= SET_IW_CUSTOM_B (reg->index); + if (reg->regtype & REG_COPROCESSOR) + insn->insn_code |= SET_IW_CUSTOM_READB (0); else - SET_INSN_FIELD (RRS, insn_info->insn_code, addr_src->index); - - nios2_check_assembly (insn_info->insn_code, insn_info->insn_tokens[3]); - SET_INSN_FIELD (IMM16, insn_info->insn_code, 0); + insn->insn_code |= SET_IW_CUSTOM_READB (1); + break; + default: + bad_opcode (op); } } -static void -nios2_assemble_args_m (nios2_insn_infoS *insn_info) +static void +nios2_assemble_arg_i (const char *token, nios2_insn_infoS *insn) { - if (insn_info->insn_tokens[1] != NULL) - { - unsigned long immed - = nios2_assemble_expression (insn_info->insn_tokens[1], insn_info, - insn_info->insn_reloc, - (nios2_as_options.noat - ? BFD_RELOC_NIOS2_CALL26_NOAT - : BFD_RELOC_NIOS2_CALL26), - 0); - - SET_INSN_FIELD (IMM26, insn_info->insn_code, immed); - nios2_check_assembly (insn_info->insn_code, insn_info->insn_tokens[2]); - SET_INSN_FIELD (IMM26, insn_info->insn_code, 0); - } -} + const struct nios2_opcode *op = insn->insn_nios2_opcode; + unsigned int val; -static void -nios2_assemble_args_s (nios2_insn_infoS *insn_info) -{ - if (insn_info->insn_tokens[1] != NULL) + switch (op->format) { - struct nios2_reg *src = nios2_reg_lookup (insn_info->insn_tokens[1]); - if (src == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[1]); - else - SET_INSN_FIELD (RRS, insn_info->insn_code, src->index); - - nios2_check_assembly (insn_info->insn_code, insn_info->insn_tokens[2]); + case iw_i_type: + val = nios2_assemble_expression (token, insn, + BFD_RELOC_NIOS2_S16, 0); + insn->constant_bits |= SET_IW_I_IMM16 (val); + break; + default: + bad_opcode (op); } } -static void -nios2_assemble_args_tis (nios2_insn_infoS *insn_info) +static void +nios2_assemble_arg_u (const char *token, nios2_insn_infoS *insn) { - if (insn_info->insn_tokens[1] != NULL - && insn_info->insn_tokens[2] != NULL - && insn_info->insn_tokens[3] != NULL) - { - struct nios2_reg *dst = nios2_reg_lookup (insn_info->insn_tokens[1]); - struct nios2_reg *addr_src = nios2_reg_lookup (insn_info->insn_tokens[3]); - unsigned long immed - = nios2_assemble_expression (insn_info->insn_tokens[2], insn_info, - insn_info->insn_reloc, BFD_RELOC_NIOS2_S16, - 0); - - if (addr_src == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[3]); - else - SET_INSN_FIELD (RRS, insn_info->insn_code, addr_src->index); - - if (dst == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[1]); - else - SET_INSN_FIELD (RRT, insn_info->insn_code, dst->index); + const struct nios2_opcode *op = insn->insn_nios2_opcode; + unsigned int val; - SET_INSN_FIELD (IMM16, insn_info->insn_code, immed); - nios2_check_assembly (insn_info->insn_code, insn_info->insn_tokens[4]); - SET_INSN_FIELD (IMM16, insn_info->insn_code, 0); - } -} - -static void -nios2_assemble_args_dc (nios2_insn_infoS *insn_info) -{ - if (insn_info->insn_tokens[1] != NULL && insn_info->insn_tokens[2] != NULL) + switch (op->format) { - struct nios2_reg *ctl = nios2_reg_lookup (insn_info->insn_tokens[2]); - struct nios2_reg *dst = nios2_reg_lookup (insn_info->insn_tokens[1]); - - if (ctl == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[1]); - else - SET_INSN_FIELD (RCTL, insn_info->insn_code, ctl->index); - - if (dst == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[2]); - else - SET_INSN_FIELD (RRD, insn_info->insn_code, dst->index); - - nios2_check_assembly (insn_info->insn_code, insn_info->insn_tokens[3]); + case iw_i_type: + val = nios2_assemble_expression (token, insn, + BFD_RELOC_NIOS2_U16, 0); + insn->constant_bits |= SET_IW_I_IMM16 (val); + break; + default: + bad_opcode (op); } } -static void -nios2_assemble_args_cs (nios2_insn_infoS *insn_info) +static void +nios2_assemble_arg_o (const char *token, nios2_insn_infoS *insn) { - if (insn_info->insn_tokens[1] != NULL && insn_info->insn_tokens[2] != NULL) - { - struct nios2_reg *ctl = nios2_reg_lookup (insn_info->insn_tokens[1]); - struct nios2_reg *src = nios2_reg_lookup (insn_info->insn_tokens[2]); - - if (ctl == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[1]); - else if (ctl->index == 4) - as_bad (_("ipending control register (ctl4) is read-only\n")); - else - SET_INSN_FIELD (RCTL, insn_info->insn_code, ctl->index); + const struct nios2_opcode *op = insn->insn_nios2_opcode; + unsigned int val; - if (src == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[2]); - else - SET_INSN_FIELD (RRS, insn_info->insn_code, src->index); - - nios2_check_assembly (insn_info->insn_code, insn_info->insn_tokens[3]); + switch (op->format) + { + case iw_i_type: + val = nios2_assemble_expression (token, insn, + BFD_RELOC_16_PCREL, 1); + insn->constant_bits |= SET_IW_I_IMM16 (val); + break; + default: + bad_opcode (op); } } -static void -nios2_assemble_args_ds (nios2_insn_infoS * insn_info) +static void +nios2_assemble_arg_j (const char *token, nios2_insn_infoS *insn) { - if (insn_info->insn_tokens[1] != NULL && insn_info->insn_tokens[2] != NULL) - { - struct nios2_reg *dst = nios2_reg_lookup (insn_info->insn_tokens[1]); - struct nios2_reg *src = nios2_reg_lookup (insn_info->insn_tokens[2]); - - if (dst == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[1]); - else - SET_INSN_FIELD (RRD, insn_info->insn_code, dst->index); - - if (src == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[2]); - else - SET_INSN_FIELD (RRS, insn_info->insn_code, src->index); + const struct nios2_opcode *op = insn->insn_nios2_opcode; + unsigned int val; - nios2_check_assembly (insn_info->insn_code, insn_info->insn_tokens[3]); + switch (op->format) + { + case iw_r_type: + val = nios2_assemble_expression (token, insn, + BFD_RELOC_NIOS2_IMM5, 0); + insn->constant_bits |= SET_IW_R_IMM5 (val); + break; + default: + bad_opcode (op); } } -static void -nios2_assemble_args_ldst (nios2_insn_infoS *insn_info) +static void +nios2_assemble_arg_l (const char *token, nios2_insn_infoS *insn) { - if (insn_info->insn_tokens[1] != NULL - && insn_info->insn_tokens[2] != NULL - && insn_info->insn_tokens[3] != NULL - && insn_info->insn_tokens[4] != NULL) - { - unsigned long custom_n - = nios2_assemble_expression (insn_info->insn_tokens[1], insn_info, - insn_info->insn_reloc, - BFD_RELOC_NIOS2_IMM8, 0); - - struct nios2_reg *dst = nios2_reg_lookup (insn_info->insn_tokens[2]); - struct nios2_reg *src1 = nios2_reg_lookup (insn_info->insn_tokens[3]); - struct nios2_reg *src2 = nios2_reg_lookup (insn_info->insn_tokens[4]); + const struct nios2_opcode *op = insn->insn_nios2_opcode; + unsigned int val; - SET_INSN_FIELD (CUSTOM_N, insn_info->insn_code, custom_n); - - if (dst == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[2]); - else - SET_INSN_FIELD (RRD, insn_info->insn_code, dst->index); - - if (src1 == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[3]); - else - SET_INSN_FIELD (RRS, insn_info->insn_code, src1->index); - - if (src2 == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[4]); - else - SET_INSN_FIELD (RRT, insn_info->insn_code, src2->index); - - /* Set or clear the bits to indicate whether coprocessor registers are - used. */ - if (nios2_coproc_reg (insn_info->insn_tokens[2])) - SET_INSN_FIELD (CUSTOM_C, insn_info->insn_code, 0); - else - SET_INSN_FIELD (CUSTOM_C, insn_info->insn_code, 1); - - if (nios2_coproc_reg (insn_info->insn_tokens[3])) - SET_INSN_FIELD (CUSTOM_A, insn_info->insn_code, 0); - else - SET_INSN_FIELD (CUSTOM_A, insn_info->insn_code, 1); - - if (nios2_coproc_reg (insn_info->insn_tokens[4])) - SET_INSN_FIELD (CUSTOM_B, insn_info->insn_code, 0); - else - SET_INSN_FIELD (CUSTOM_B, insn_info->insn_code, 1); - - nios2_check_assembly (insn_info->insn_code, insn_info->insn_tokens[5]); + switch (op->format) + { + case iw_custom_type: + val = nios2_assemble_expression (token, insn, + BFD_RELOC_NIOS2_IMM8, 0); + insn->constant_bits |= SET_IW_CUSTOM_N (val); + break; + default: + bad_opcode (op); } } -static void -nios2_assemble_args_none (nios2_insn_infoS *insn_info ATTRIBUTE_UNUSED) +static void +nios2_assemble_arg_m (const char *token, nios2_insn_infoS *insn) { - /* Nothing to do. */ -} + const struct nios2_opcode *op = insn->insn_nios2_opcode; + unsigned int val; -static void -nios2_assemble_args_dsj (nios2_insn_infoS *insn_info) -{ - if (insn_info->insn_tokens[1] != NULL - && insn_info->insn_tokens[2] != NULL - && insn_info->insn_tokens[3] != NULL) + switch (op->format) { - struct nios2_reg *dst = nios2_reg_lookup (insn_info->insn_tokens[1]); - struct nios2_reg *src1 = nios2_reg_lookup (insn_info->insn_tokens[2]); - - /* A 5-bit constant expression. */ - unsigned int src2 = - nios2_assemble_expression (insn_info->insn_tokens[3], insn_info, - insn_info->insn_reloc, - BFD_RELOC_NIOS2_IMM5, 0); - - if (dst == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[1]); - else - SET_INSN_FIELD (RRD, insn_info->insn_code, dst->index); - - if (src1 == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[2]); - else - SET_INSN_FIELD (RRS, insn_info->insn_code, src1->index); - - SET_INSN_FIELD (IMM5, insn_info->insn_code, src2); - nios2_check_assembly (insn_info->insn_code, insn_info->insn_tokens[4]); - SET_INSN_FIELD (IMM5, insn_info->insn_code, 0); + case iw_j_type: + val = nios2_assemble_expression (token, insn, + (nios2_as_options.noat + ? BFD_RELOC_NIOS2_CALL26_NOAT + : BFD_RELOC_NIOS2_CALL26), + 0); + insn->constant_bits |= SET_IW_J_IMM26 (val); + break; + default: + bad_opcode (op); } } static void -nios2_assemble_args_d (nios2_insn_infoS *insn_info) +nios2_assemble_args (nios2_insn_infoS *insn) { - if (insn_info->insn_tokens[1] != NULL) - { - struct nios2_reg *dst = nios2_reg_lookup (insn_info->insn_tokens[1]); - - if (dst == NULL) - as_bad (_("unknown register %s"), insn_info->insn_tokens[1]); - else - SET_INSN_FIELD (RRD, insn_info->insn_code, dst->index); + const struct nios2_opcode *op = insn->insn_nios2_opcode; + const char *argptr; + unsigned int tokidx, ntok; - nios2_check_assembly (insn_info->insn_code, insn_info->insn_tokens[2]); - } -} + /* Make sure there are enough arguments. */ + ntok = (op->pinfo & NIOS2_INSN_OPTARG) ? op->num_args - 1 : op->num_args; + for (tokidx = 1; tokidx <= ntok; tokidx++) + if (insn->insn_tokens[tokidx] == NULL) + { + as_bad ("missing argument"); + return; + } -static void -nios2_assemble_args_b (nios2_insn_infoS *insn_info) -{ - unsigned int imm5 = 0; + for (argptr = op->args, tokidx = 1; + *argptr && insn->insn_tokens[tokidx]; + argptr++) + switch (*argptr) + { + case ',': + case '(': + case ')': + break; - if (insn_info->insn_tokens[1] != NULL) - { - /* A 5-bit constant expression. */ - imm5 = nios2_assemble_expression (insn_info->insn_tokens[1], - insn_info, insn_info->insn_reloc, - BFD_RELOC_NIOS2_IMM5, 0); - SET_INSN_FIELD (TRAP_IMM5, insn_info->insn_code, imm5); - nios2_check_assembly (insn_info->insn_code, insn_info->insn_tokens[2]); - } + case 'c': + nios2_assemble_arg_c (insn->insn_tokens[tokidx++], insn); + break; + + case 'd': + nios2_assemble_arg_d (insn->insn_tokens[tokidx++], insn); + break; + + case 's': + nios2_assemble_arg_s (insn->insn_tokens[tokidx++], insn); + break; + + case 't': + nios2_assemble_arg_t (insn->insn_tokens[tokidx++], insn); + break; + + case 'i': + nios2_assemble_arg_i (insn->insn_tokens[tokidx++], insn); + break; + + case 'u': + nios2_assemble_arg_u (insn->insn_tokens[tokidx++], insn); + break; + + case 'o': + nios2_assemble_arg_o (insn->insn_tokens[tokidx++], insn); + break; + + case 'j': + nios2_assemble_arg_j (insn->insn_tokens[tokidx++], insn); + break; + + case 'l': + nios2_assemble_arg_l (insn->insn_tokens[tokidx++], insn); + break; + + case 'm': + nios2_assemble_arg_m (insn->insn_tokens[tokidx++], insn); + break; + + default: + bad_opcode (op); + break; + } - SET_INSN_FIELD (TRAP_IMM5, insn_info->insn_code, imm5); - - nios2_check_assembly (insn_info->insn_code, insn_info->insn_tokens[2]); -} - -/* This table associates pointers to functions that parse the arguments to an - instruction and fill in the relevant fields of the instruction. */ -const nios2_arg_infoS nios2_arg_info_structs[] = { - /* args, assemble_args_func */ - {"d,s,t", nios2_assemble_args_dst}, - {"d,s,t,E", nios2_assemble_args_dst}, - {"t,s,i", nios2_assemble_args_tsi}, - {"t,s,i,E", nios2_assemble_args_tsi}, - {"t,s,u", nios2_assemble_args_tsu}, - {"t,s,u,E", nios2_assemble_args_tsu}, - {"s,t,o", nios2_assemble_args_sto}, - {"s,t,o,E", nios2_assemble_args_sto}, - {"o", nios2_assemble_args_o}, - {"o,E", nios2_assemble_args_o}, - {"s", nios2_assemble_args_s}, - {"s,E", nios2_assemble_args_s}, - {"", nios2_assemble_args_none}, - {"E", nios2_assemble_args_none}, - {"i(s)", nios2_assemble_args_is}, - {"i(s)E", nios2_assemble_args_is}, - {"m", nios2_assemble_args_m}, - {"m,E", nios2_assemble_args_m}, - {"t,i(s)", nios2_assemble_args_tis}, - {"t,i(s)E", nios2_assemble_args_tis}, - {"d,c", nios2_assemble_args_dc}, - {"d,c,E", nios2_assemble_args_dc}, - {"c,s", nios2_assemble_args_cs}, - {"c,s,E", nios2_assemble_args_cs}, - {"d,s", nios2_assemble_args_ds}, - {"d,s,E", nios2_assemble_args_ds}, - {"l,d,s,t", nios2_assemble_args_ldst}, - {"l,d,s,t,E", nios2_assemble_args_ldst}, - {"d,s,j", nios2_assemble_args_dsj}, - {"d,s,j,E", nios2_assemble_args_dsj}, - {"d", nios2_assemble_args_d}, - {"d,E", nios2_assemble_args_d}, - {"b", nios2_assemble_args_b}, - {"b,E", nios2_assemble_args_b} -}; + /* Perform argument checking. */ + nios2_check_assembly (insn->insn_code | insn->constant_bits, + insn->insn_tokens[tokidx]); +} -#define NIOS2_NUM_ARGS \ - ((sizeof(nios2_arg_info_structs)/sizeof(nios2_arg_info_structs[0]))) -const int nios2_num_arg_info_structs = NIOS2_NUM_ARGS; /* The function consume_arg takes a pointer into a string of instruction tokens (args) and a pointer into a string @@ -1911,73 +1759,18 @@ const int nios2_num_arg_info_structs = NIOS2_NUM_ARGS; expected type, throwing an error if it is not, and returns the pointer argstr. */ static char * -nios2_consume_arg (nios2_insn_infoS *insn, char *argstr, const char *parsestr) +nios2_consume_arg (char *argstr, const char *parsestr) { char *temp; - int regno = -1; switch (*parsestr) { case 'c': - if (!nios2_control_register_arg_p (argstr)) - as_bad (_("expecting control register")); - break; case 'd': case 's': case 't': - - /* We check to make sure we don't have a control register. */ - if (nios2_control_register_arg_p (argstr)) - as_bad (_("illegal use of control register")); - - /* And whether coprocessor registers are valid here. */ - if (nios2_coproc_reg (argstr) - && insn->insn_nios2_opcode->match != OP_MATCH_CUSTOM) - as_bad (_("illegal use of coprocessor register\n")); - - /* Extract a register number if the register is of the - form r[0-9]+, if it is a normal register, set - regno to its number (0-31), else set regno to -1. */ - if (argstr[0] == 'r' && ISDIGIT (argstr[1])) - { - char *p = argstr; - - ++p; - regno = 0; - do - { - regno *= 10; - regno += *p - '0'; - ++p; - } - while (ISDIGIT (*p)); - } - else - regno = -1; - - /* And whether we are using at. */ - if (!nios2_as_options.noat - && (regno == 1 || strprefix (argstr, "at"))) - as_warn (_("Register at (r1) can sometimes be corrupted by assembler " - "optimizations.\n" - "Use .set noat to turn off those optimizations (and this " - "warning).")); - - /* And whether we are using oci registers. */ - if (!nios2_as_options.nobreak - && (regno == 25 || strprefix (argstr, "bt"))) - as_warn (_("The debugger will corrupt bt (r25).\n" - "If you don't need to debug this " - "code use .set nobreak to turn off this warning.")); - - if (!nios2_as_options.nobreak - && (regno == 30 - || strprefix (argstr, "ba") - || strprefix (argstr, "sstatus"))) - as_warn (_("The debugger will corrupt sstatus/ba (r30).\n" - "If you don't need to debug this " - "code use .set nobreak to turn off this warning.")); break; + case 'i': case 'u': if (*argstr == '%') @@ -2000,7 +1793,6 @@ nios2_consume_arg (nios2_insn_infoS *insn, char *argstr, const char *parsestr) case 'm': case 'j': case 'l': - case 'b': /* We can't have %hi, %lo or %hiadj here. */ if (*argstr == '%') as_bad (_("badly formed expression near %s"), argstr); @@ -2038,8 +1830,6 @@ nios2_consume_separator (char *argstr, const char *separator) if (p != NULL) *p++ = 0; - else - as_bad (_("expecting %c near %s"), *separator, argstr); return p; } @@ -2069,23 +1859,25 @@ nios2_parse_args (nios2_insn_infoS *insn, char *argstr, while (p != NULL && !terminate && i < NIOS2_MAX_INSN_TOKENS) { - parsed_args[i] = nios2_consume_arg (insn, p, parsestr); + parsed_args[i] = nios2_consume_arg (p, parsestr); ++parsestr; - if (*parsestr != '\0') + while (*parsestr == '(' || *parsestr == ')' || *parsestr == ',') { + char *context = p; p = nios2_consume_separator (p, parsestr); + /* Check for missing separators. */ + if (!p && !(insn->insn_nios2_opcode->pinfo & NIOS2_INSN_OPTARG)) + { + as_bad (_("expecting %c near %s"), *parsestr, context); + break; + } ++parsestr; } - else + + if (*parsestr == '\0') { /* Check that the argument string has no trailing arguments. */ - /* If we've got a %lo etc relocation, we've zapped the parens with - spaces. */ - if (nios2_special_relocation_p (p)) - end = strpbrk (p, ","); - else - end = strpbrk (p, " ,"); - + end = strpbrk (p, ","); if (end != NULL) as_bad (_("too many arguments")); } @@ -2096,13 +1888,6 @@ nios2_parse_args (nios2_insn_infoS *insn, char *argstr, } parsed_args[i] = NULL; - - /* The argument to break and trap instructions is optional; complain - for other cases of missing arguments. */ - if (*parsestr != '\0' - && insn->insn_nios2_opcode->match != OP_MATCH_BREAK - && insn->insn_nios2_opcode->match != OP_MATCH_TRAP) - as_bad (_("missing argument")); } @@ -2310,17 +2095,18 @@ static void output_insn (nios2_insn_infoS *insn) { char *f; - nios2_insn_relocS *reloc; - - f = frag_more (4); + nios2_insn_relocS *reloc; + f = frag_more (insn->insn_nios2_opcode->size); /* This allocates enough space for the instruction and puts it in the current frag. */ - md_number_to_chars (f, insn->insn_code, 4); + md_number_to_chars (f, insn->insn_code, insn->insn_nios2_opcode->size); /* Emit debug info. */ - dwarf2_emit_insn (4); + dwarf2_emit_insn (insn->insn_nios2_opcode->size); /* Create any fixups to be acted on later. */ + for (reloc = insn->insn_reloc; reloc != NULL; reloc = reloc->reloc_next) - fix_new_exp (frag_now, f - frag_now->fr_literal, 4, + fix_new_exp (frag_now, f - frag_now->fr_literal, + insn->insn_nios2_opcode->size, &reloc->reloc_expression, reloc->reloc_pcrel, reloc->reloc_type); } @@ -2346,10 +2132,10 @@ output_ubranch (nios2_insn_infoS *insn) to accommodate the largest possible instruction sequence this may generate. */ f = frag_var (rs_machine_dependent, - UBRANCH_MAX_SIZE, 4, UBRANCH_SUBTYPE (0), - symp, offset, NULL); + UBRANCH_MAX_SIZE, insn->insn_nios2_opcode->size, + UBRANCH_SUBTYPE (0), symp, offset, NULL); - md_number_to_chars (f, insn->insn_code, 4); + md_number_to_chars (f, insn->insn_code, insn->insn_nios2_opcode->size); /* We leave fixup generation to md_convert_frag. */ } @@ -2376,10 +2162,10 @@ output_cbranch (nios2_insn_infoS *insn) to accommodate the largest possible instruction sequence this may generate. */ f = frag_var (rs_machine_dependent, - CBRANCH_MAX_SIZE, 4, CBRANCH_SUBTYPE (0), - symp, offset, NULL); + CBRANCH_MAX_SIZE, insn->insn_nios2_opcode->size, + CBRANCH_SUBTYPE (0), symp, offset, NULL); - md_number_to_chars (f, insn->insn_code, 4); + md_number_to_chars (f, insn->insn_code, insn->insn_nios2_opcode->size); /* We leave fixup generation to md_convert_frag. */ } @@ -2399,15 +2185,21 @@ output_call (nios2_insn_infoS *insn) char *f = frag_more (12); nios2_insn_relocS *reloc = insn->insn_reloc; - md_number_to_chars (f, OP_MATCH_ORHI | 0x00400000, 4); + md_number_to_chars (f, + (MATCH_R1_ORHI | SET_IW_I_B (AT_REGNUM) + | SET_IW_I_A (0)), + 4); dwarf2_emit_insn (4); fix_new_exp (frag_now, f - frag_now->fr_literal, 4, &reloc->reloc_expression, 0, BFD_RELOC_NIOS2_HI16); - md_number_to_chars (f + 4, OP_MATCH_ORI | 0x08400000, 4); + md_number_to_chars (f + 4, + (MATCH_R1_ORI | SET_IW_I_B (AT_REGNUM) + | SET_IW_I_A (AT_REGNUM)), + 4); dwarf2_emit_insn (4); fix_new_exp (frag_now, f - frag_now->fr_literal + 4, 4, &reloc->reloc_expression, 0, BFD_RELOC_NIOS2_LO16); - md_number_to_chars (f + 8, OP_MATCH_CALLR | 0x08000000, 4); + md_number_to_chars (f + 8, MATCH_R1_CALLR | SET_IW_R_A (AT_REGNUM), 4); dwarf2_emit_insn (4); } @@ -2419,14 +2211,18 @@ output_addi (nios2_insn_infoS *insn) if (can_evaluate_expr (insn)) { int expr_val = get_expr_value (insn); - if (GET_INSN_FIELD (RRS, insn->insn_code) == 0 + unsigned int rega = GET_IW_I_A (insn->insn_code); + unsigned int regb = GET_IW_I_B (insn->insn_code); + + if (rega == 0 && (expr_val & 0xffff) == 0 && expr_val != 0) { /* We really want a movhi (orhi) here. */ - insn->insn_code = (insn->insn_code & ~OP_MATCH_ADDI) | OP_MATCH_ORHI; - insn->insn_reloc->reloc_expression.X_add_number = - (insn->insn_reloc->reloc_expression.X_add_number >> 16) & 0xffff; + insn->insn_code + = MATCH_R1_ORHI | SET_IW_I_A (rega) | SET_IW_I_B (regb); + insn->insn_reloc->reloc_expression.X_add_number + = (expr_val >> 16) & 0xffff; insn->insn_reloc->reloc_type = BFD_RELOC_NIOS2_U16; } } @@ -2443,10 +2239,14 @@ output_andi (nios2_insn_infoS *insn) int expr_val = get_expr_value (insn); if (expr_val != 0 && (expr_val & 0xffff) == 0) { - /* We really want a movhi (orhi) here. */ - insn->insn_code = (insn->insn_code & ~OP_MATCH_ANDI) | OP_MATCH_ANDHI; - insn->insn_reloc->reloc_expression.X_add_number = - (insn->insn_reloc->reloc_expression.X_add_number >> 16) & 0xffff; + unsigned int rega = GET_IW_I_A (insn->insn_code); + unsigned int regb = GET_IW_I_B (insn->insn_code); + + /* We really want an andhi here. */ + insn->insn_code + = MATCH_R1_ANDHI | SET_IW_I_A (rega) | SET_IW_I_B (regb); + insn->insn_reloc->reloc_expression.X_add_number + = (expr_val >> 16) & 0xffff; insn->insn_reloc->reloc_type = BFD_RELOC_NIOS2_U16; } } @@ -2463,10 +2263,14 @@ output_ori (nios2_insn_infoS *insn) int expr_val = get_expr_value (insn); if (expr_val != 0 && (expr_val & 0xffff) == 0) { + unsigned int rega = GET_IW_I_A (insn->insn_code); + unsigned int regb = GET_IW_I_B (insn->insn_code); + /* We really want a movhi (orhi) here. */ - insn->insn_code = (insn->insn_code & ~OP_MATCH_ORI) | OP_MATCH_ORHI; - insn->insn_reloc->reloc_expression.X_add_number = - (insn->insn_reloc->reloc_expression.X_add_number >> 16) & 0xffff; + insn->insn_code + = MATCH_R1_ORHI | SET_IW_I_A (rega) | SET_IW_I_B (regb); + insn->insn_reloc->reloc_expression.X_add_number + = (expr_val >> 16) & 0xffff; insn->insn_reloc->reloc_type = BFD_RELOC_NIOS2_U16; } } @@ -2483,10 +2287,14 @@ output_xori (nios2_insn_infoS *insn) int expr_val = get_expr_value (insn); if (expr_val != 0 && (expr_val & 0xffff) == 0) { - /* We really want a movhi (orhi) here. */ - insn->insn_code = (insn->insn_code & ~OP_MATCH_XORI) | OP_MATCH_XORHI; - insn->insn_reloc->reloc_expression.X_add_number = - (insn->insn_reloc->reloc_expression.X_add_number >> 16) & 0xffff; + unsigned int rega = GET_IW_I_A (insn->insn_code); + unsigned int regb = GET_IW_I_B (insn->insn_code); + + /* We really want an xorhi here. */ + insn->insn_code + = MATCH_R1_XORHI | SET_IW_I_A (rega) | SET_IW_I_B (regb); + insn->insn_reloc->reloc_expression.X_add_number + = (expr_val >> 16) & 0xffff; insn->insn_reloc->reloc_type = BFD_RELOC_NIOS2_U16; } } @@ -2504,22 +2312,22 @@ output_movia (nios2_insn_infoS *insn) and puts it in the current frag. */ char *f = frag_more (8); nios2_insn_relocS *reloc = insn->insn_reloc; - unsigned long reg_index = GET_INSN_FIELD (IRT, insn->insn_code); + unsigned long reg_index = GET_IW_I_B (insn->insn_code); /* If the reloc is NULL, there was an error assembling the movia. */ if (reloc != NULL) { md_number_to_chars (f, insn->insn_code, 4); dwarf2_emit_insn (4); - md_number_to_chars (f + 4, - (OP_MATCH_ADDI | (reg_index << OP_SH_IRT) - | (reg_index << OP_SH_IRS)), - 4); - dwarf2_emit_insn (4); fix_new (frag_now, f - frag_now->fr_literal, 4, reloc->reloc_expression.X_add_symbol, reloc->reloc_expression.X_add_number, 0, BFD_RELOC_NIOS2_HIADJ16); + md_number_to_chars (f + 4, + (MATCH_R1_ADDI | SET_IW_I_A (reg_index) + | SET_IW_I_B (reg_index)), + 4); + dwarf2_emit_insn (4); fix_new (frag_now, f + 4 - frag_now->fr_literal, 4, reloc->reloc_expression.X_add_symbol, reloc->reloc_expression.X_add_number, 0, BFD_RELOC_NIOS2_LO16); @@ -2599,10 +2407,9 @@ md_begin (void) arguments. */ nios2_opcode_hash = hash_new (); nios2_reg_hash = hash_new (); - nios2_arg_hash = hash_new (); nios2_ps_hash = hash_new (); - for (i = 0; i < NUMOPCODES; ++i) + for (i = 0; i < nios2_num_opcodes; ++i) { inserted = hash_insert (nios2_opcode_hash, nios2_opcodes[i].name, @@ -2631,20 +2438,6 @@ md_begin (void) } - for (i = 0; i < nios2_num_arg_info_structs; ++i) - { - inserted - = hash_insert (nios2_arg_hash, nios2_arg_info_structs[i].args, - (PTR) & nios2_arg_info_structs[i]); - if (inserted != NULL) - { - fprintf (stderr, _("internal error: can't hash `%s': %s\n"), - nios2_arg_info_structs[i].args, inserted); - /* Probably a memory allocation problem? Give up now. */ - as_fatal (_("Broken assembler. No assembly attempted.")); - } - } - for (i = 0; i < nios2_num_ps_insn_info_structs; ++i) { inserted @@ -2680,7 +2473,6 @@ md_assemble (char *op_str) { char *argstr; char *op_strdup = NULL; - nios2_arg_infoS *arg_info; unsigned long saved_pinfo = 0; nios2_insn_infoS thisinsn; nios2_insn_infoS *insn = &thisinsn; @@ -2707,6 +2499,7 @@ md_assemble (char *op_str) nios2_ps_insn_infoS *ps_insn = NULL; /* Set the opcode for the instruction. */ insn->insn_code = insn->insn_nios2_opcode->match; + insn->constant_bits = 0; /* Parse the arguments pointed to by argstr. */ if (nios2_mode == NIOS2_MODE_ASSEMBLE) @@ -2726,53 +2519,41 @@ md_assemble (char *op_str) == NIOS2_INSN_MACRO) ps_insn = nios2_translate_pseudo_insn (insn); - /* Find the assemble function, and call it. */ - arg_info = nios2_arg_lookup (insn->insn_nios2_opcode->args); - if (arg_info != NULL) - { - arg_info->assemble_args_func (insn); - - if (nios2_as_options.relax != relax_none - && !nios2_as_options.noat - && insn->insn_nios2_opcode->pinfo & NIOS2_INSN_UBRANCH) - output_ubranch (insn); - else if (nios2_as_options.relax != relax_none - && !nios2_as_options.noat - && insn->insn_nios2_opcode->pinfo & NIOS2_INSN_CBRANCH) - output_cbranch (insn); - else if (nios2_as_options.relax == relax_all - && !nios2_as_options.noat - && insn->insn_nios2_opcode->pinfo & NIOS2_INSN_CALL - && insn->insn_reloc - && ((insn->insn_reloc->reloc_type - == BFD_RELOC_NIOS2_CALL26) - || (insn->insn_reloc->reloc_type - == BFD_RELOC_NIOS2_CALL26_NOAT))) - output_call (insn); - else if (insn->insn_nios2_opcode->pinfo & NIOS2_INSN_ANDI) - output_andi (insn); - else if (insn->insn_nios2_opcode->pinfo & NIOS2_INSN_ORI) - output_ori (insn); - else if (insn->insn_nios2_opcode->pinfo & NIOS2_INSN_XORI) - output_xori (insn); - else if (insn->insn_nios2_opcode->pinfo & NIOS2_INSN_ADDI) - output_addi (insn); - else if (saved_pinfo == NIOS2_INSN_MACRO_MOVIA) - output_movia (insn); - else - output_insn (insn); - if (ps_insn) - nios2_cleanup_pseudo_insn (insn, ps_insn); - } + /* Assemble the parsed arguments into the instruction word. */ + nios2_assemble_args (insn); + + /* Handle relaxation and other transformations. */ + if (nios2_as_options.relax != relax_none + && !nios2_as_options.noat + && insn->insn_nios2_opcode->pinfo & NIOS2_INSN_UBRANCH) + output_ubranch (insn); + else if (nios2_as_options.relax != relax_none + && !nios2_as_options.noat + && insn->insn_nios2_opcode->pinfo & NIOS2_INSN_CBRANCH) + output_cbranch (insn); + else if (nios2_as_options.relax == relax_all + && !nios2_as_options.noat + && insn->insn_nios2_opcode->pinfo & NIOS2_INSN_CALL + && insn->insn_reloc + && ((insn->insn_reloc->reloc_type + == BFD_RELOC_NIOS2_CALL26) + || (insn->insn_reloc->reloc_type + == BFD_RELOC_NIOS2_CALL26_NOAT))) + output_call (insn); + else if (insn->insn_nios2_opcode->pinfo & NIOS2_INSN_ANDI) + output_andi (insn); + else if (insn->insn_nios2_opcode->pinfo & NIOS2_INSN_ORI) + output_ori (insn); + else if (insn->insn_nios2_opcode->pinfo & NIOS2_INSN_XORI) + output_xori (insn); + else if (insn->insn_nios2_opcode->pinfo & NIOS2_INSN_ADDI) + output_addi (insn); + else if (saved_pinfo == NIOS2_INSN_MACRO_MOVIA) + output_movia (insn); else - { - /* The assembler is broken. */ - fprintf (stderr, - _("internal error: %s is not a valid argument syntax\n"), - insn->insn_nios2_opcode->args); - /* Probably a memory allocation problem. Give up now. */ - as_fatal (_("Broken assembler. No assembly attempted.")); - } + output_insn (insn); + if (ps_insn) + nios2_cleanup_pseudo_insn (insn, ps_insn); } else /* Unrecognised instruction - error. */ diff --git a/binutils-2.25/gas/config/tc-s390.c b/binutils-2.25/gas/config/tc-s390.c index 59f6ab6..60a7dac 100644 --- a/binutils-2.25/gas/config/tc-s390.c +++ b/binutils-2.25/gas/config/tc-s390.c @@ -489,7 +489,7 @@ md_show_usage (FILE *stream) static void s390_setup_opcodes (void) { - register const struct s390_opcode *op; + const struct s390_opcode *op; const struct s390_opcode *op_end; bfd_boolean dup_insn = FALSE; const char *retval; @@ -536,7 +536,7 @@ s390_setup_opcodes (void) void md_begin (void) { - register const struct s390_opcode *op; + const struct s390_opcode *op; const struct s390_opcode *op_end; const char *retval; diff --git a/binutils-2.25/gas/config/tc-sh.c b/binutils-2.25/gas/config/tc-sh.c index 6e9ae92..888a51f 100644 --- a/binutils-2.25/gas/config/tc-sh.c +++ b/binutils-2.25/gas/config/tc-sh.c @@ -811,7 +811,7 @@ sh_cons_fix_new (fragS *frag, int off, int size, expressionS *exp, /* Clobbers input_line_pointer, checks end-of-line. */ /* NBYTES 1=.byte, 2=.word, 4=.long */ static void -sh_elf_cons (register int nbytes) +sh_elf_cons (int nbytes) { expressionS exp; diff --git a/binutils-2.25/gas/config/tc-sparc.c b/binutils-2.25/gas/config/tc-sparc.c index 758fcc8..e3fd64a 100644 --- a/binutils-2.25/gas/config/tc-sparc.c +++ b/binutils-2.25/gas/config/tc-sparc.c @@ -863,9 +863,9 @@ cmp_reg_entry (const void *parg, const void *qarg) void md_begin (void) { - register const char *retval = NULL; + const char *retval = NULL; int lose = 0; - register unsigned int i = 0; + unsigned int i = 0; /* We don't get a chance to initialize anything before md_parse_option is called, and it may not be called, so handle default initialization diff --git a/binutils-2.25/gas/config/tc-tic30.c b/binutils-2.25/gas/config/tc-tic30.c index dbcbf3c..436aaeb 100644 --- a/binutils-2.25/gas/config/tc-tic30.c +++ b/binutils-2.25/gas/config/tc-tic30.c @@ -1116,7 +1116,7 @@ md_estimate_size_before_relax (fragS *fragP ATTRIBUTE_UNUSED, void md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, segT sec ATTRIBUTE_UNUSED, - register fragS *fragP ATTRIBUTE_UNUSED) + fragS *fragP ATTRIBUTE_UNUSED) { debug ("In md_convert_frag()\n"); } diff --git a/binutils-2.25/gas/config/tc-tic4x.c b/binutils-2.25/gas/config/tc-tic4x.c index dc82168..12d8ec9 100644 --- a/binutils-2.25/gas/config/tc-tic4x.c +++ b/binutils-2.25/gas/config/tc-tic4x.c @@ -831,7 +831,7 @@ tic4x_globl (int ignore ATTRIBUTE_UNUSED) static void tic4x_cons (int bytes) { - register unsigned int c; + unsigned int c; do { SKIP_WHITESPACE (); @@ -875,7 +875,7 @@ static void tic4x_stringer (int append_zero) { int bytes; - register unsigned int c; + unsigned int c; bytes = 0; do diff --git a/binutils-2.25/gas/config/tc-z80.c b/binutils-2.25/gas/config/tc-z80.c index 54fa322..a602dc7 100644 --- a/binutils-2.25/gas/config/tc-z80.c +++ b/binutils-2.25/gas/config/tc-z80.c @@ -557,6 +557,8 @@ parse_exp_not_indexed (const char *s, expressionS *op) case O_illegal: error (_("bad expression syntax")); break; + default: + break; } return input_line_pointer; } @@ -604,6 +606,8 @@ parse_exp (const char *s, expressionS *op) op->X_op = O_md1; } break; + default: + break; } return res; } diff --git a/binutils-2.25/gas/configure b/binutils-2.25/gas/configure index c8b6e87..32cfbeb 100755 --- a/binutils-2.25/gas/configure +++ b/binutils-2.25/gas/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.64 for gas 2.24.90. +# Generated by GNU Autoconf 2.64 for gas 2.25.51. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software @@ -556,8 +556,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='gas' PACKAGE_TARNAME='gas' -PACKAGE_VERSION='2.24.90' -PACKAGE_STRING='gas 2.24.90' +PACKAGE_VERSION='2.25.51' +PACKAGE_STRING='gas 2.25.51' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1320,7 +1320,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures gas 2.24.90 to adapt to many kinds of systems. +\`configure' configures gas 2.25.51 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1391,7 +1391,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of gas 2.24.90:";; + short | recursive ) echo "Configuration of gas 2.25.51:";; esac cat <<\_ACEOF @@ -1505,7 +1505,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -gas configure 2.24.90 +gas configure 2.25.51 generated by GNU Autoconf 2.64 Copyright (C) 2009 Free Software Foundation, Inc. @@ -1915,7 +1915,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by gas $as_me 2.24.90, which was +It was created by gas $as_me 2.25.51, which was generated by GNU Autoconf 2.64. Invocation command line was $ $0 $@ @@ -3723,7 +3723,7 @@ fi # Define the identity of the package. PACKAGE='gas' - VERSION='2.24.90' + VERSION='2.25.51' cat >>confdefs.h <<_ACEOF @@ -15064,7 +15064,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by gas $as_me 2.24.90, which was +This file was extended by gas $as_me 2.25.51, which was generated by GNU Autoconf 2.64. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15128,7 +15128,7 @@ Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -gas config.status 2.24.90 +gas config.status 2.25.51 configured by $0, generated by GNU Autoconf 2.64, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/binutils-2.25/gas/doc/Makefile.am b/binutils-2.25/gas/doc/Makefile.am index c2ddc02..1976f88 100644 --- a/binutils-2.25/gas/doc/Makefile.am +++ b/binutils-2.25/gas/doc/Makefile.am @@ -28,7 +28,7 @@ MANCONF = -Dman TEXI2POD = perl $(BASEDIR)/etc/texi2pod.pl $(AM_MAKEINFOFLAGS) POD2MAN = pod2man --center="GNU Development Tools" \ - --release="binutils-$(VERSION)" --section=1 + --release="binutils-$(VERSION)" --section=1 --date=" " man_MANS = as.1 diff --git a/binutils-2.25/gas/doc/Makefile.in b/binutils-2.25/gas/doc/Makefile.in index 2db5121..267b428 100644 --- a/binutils-2.25/gas/doc/Makefile.in +++ b/binutils-2.25/gas/doc/Makefile.in @@ -16,7 +16,7 @@ @SET_MAKE@ # -# Copyright (C) 2012-2014 Free Software Foundation, Inc. +# Copyright (C) 2012-2015 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -276,7 +276,7 @@ CONFIG = all MANCONF = -Dman TEXI2POD = perl $(BASEDIR)/etc/texi2pod.pl $(AM_MAKEINFOFLAGS) POD2MAN = pod2man --center="GNU Development Tools" \ - --release="binutils-$(VERSION)" --section=1 + --release="binutils-$(VERSION)" --section=1 --date=" " man_MANS = as.1 info_TEXINFOS = as.texinfo diff --git a/binutils-2.25/gas/doc/as.texinfo b/binutils-2.25/gas/doc/as.texinfo index 55e4f54..e5949fa 100644 --- a/binutils-2.25/gas/doc/as.texinfo +++ b/binutils-2.25/gas/doc/as.texinfo @@ -5234,6 +5234,8 @@ following section of code if the two strings are not the same. @cindex @code{incbin} directive @cindex binary files, including +The @code{incbin} directive can be used with @option{--allow-incbin}. + The @code{incbin} directive includes @var{file} verbatim at the current location. You can control the search paths used with the @samp{-I} command-line option (@pxref{Invoking,,Command-Line Options}). Quotation marks are required diff --git a/binutils-2.25/gas/doc/c-aarch64.texi b/binutils-2.25/gas/doc/c-aarch64.texi index 8fbae06..f3d4e41 100644 --- a/binutils-2.25/gas/doc/c-aarch64.texi +++ b/binutils-2.25/gas/doc/c-aarch64.texi @@ -57,9 +57,9 @@ message if an attempt is made to assemble an instruction which will not execute on the target processor. The following processor names are recognized: @code{cortex-a53}, @code{cortex-a57}, -@code{xgene1}, +@code{thunderx}, and -@code{xgene2}. +@code{xgene-1}. The special name @code{all} may be used to allow the assembler to accept instructions valid for any supported processor, including all optional extensions. diff --git a/binutils-2.25/gas/doc/c-mips.texi b/binutils-2.25/gas/doc/c-mips.texi index 7d19169..53e28f2 100644 --- a/binutils-2.25/gas/doc/c-mips.texi +++ b/binutils-2.25/gas/doc/c-mips.texi @@ -388,6 +388,7 @@ loongson3a, octeon, octeon+, octeon2, +octeon3, xlr, xlp @end quotation diff --git a/binutils-2.25/gas/dwarf2dbg.c b/binutils-2.25/gas/dwarf2dbg.c index 3067b8c..f20c44a 100644 --- a/binutils-2.25/gas/dwarf2dbg.c +++ b/binutils-2.25/gas/dwarf2dbg.c @@ -44,6 +44,9 @@ #include "dwarf2dbg.h" #include +#include + +#include "hash.h" #ifdef HAVE_DOS_BASED_FILE_SYSTEM /* We need to decide which character to use as a directory separator. @@ -101,6 +104,10 @@ #ifndef DWARF2_LINE_VERSION #define DWARF2_LINE_VERSION 2 #endif +/* If we see .lloc directives, generate an experimental version 6. */ +#ifndef DWARF2_LINE_EXPERIMENTAL_VERSION +#define DWARF2_LINE_EXPERIMENTAL_VERSION 0xf006 +#endif #include "subsegs.h" @@ -126,6 +133,11 @@ "standard_opcode_lengths" table that is emitted below in out_debug_line(). */ #define DWARF2_LINE_OPCODE_BASE 13 +#define DWARF5_EXPERIMENTAL_LINE_OPCODE_BASE 16 + +static int opcode_base; +static int line_base; +static unsigned int line_range; #ifndef DWARF2_LINE_BASE /* Minimum line offset in a special line info. opcode. This value @@ -138,22 +150,30 @@ # define DWARF2_LINE_RANGE 14 #endif +/* For two-level line tables, these values work a bit better. */ +#define DWARF5_EXPERIMENTAL_LINE_BASE -3 +#define DWARF5_EXPERIMENTAL_LINE_RANGE 10 + #ifndef DWARF2_LINE_MIN_INSN_LENGTH /* Define the architecture-dependent minimum instruction length (in bytes). This value should be rather too small than too big. */ # define DWARF2_LINE_MIN_INSN_LENGTH 1 #endif +#ifndef DWARF2_LINE_MAX_OPS_PER_INSN +# define DWARF2_LINE_MAX_OPS_PER_INSN 1 +#endif + /* Flag that indicates the initial value of the is_stmt_start flag. */ #define DWARF2_LINE_DEFAULT_IS_STMT 1 /* Given a special op, return the line skip amount. */ #define SPECIAL_LINE(op) \ - (((op) - DWARF2_LINE_OPCODE_BASE)%DWARF2_LINE_RANGE + DWARF2_LINE_BASE) + (((op) - opcode_base) % line_range + line_base) /* Given a special op, return the address skip amount (in units of DWARF2_LINE_MIN_INSN_LENGTH. */ -#define SPECIAL_ADDR(op) (((op) - DWARF2_LINE_OPCODE_BASE)/DWARF2_LINE_RANGE) +#define SPECIAL_ADDR(op) (((op) - opcode_base) / line_range) /* The maximum address skip amount that can be encoded with a special op. */ #define MAX_SPECIAL_ADDR_DELTA SPECIAL_ADDR(255) @@ -203,6 +223,44 @@ static char **dirs; static unsigned int dirs_in_use; static unsigned int dirs_allocated; +/* Experimental DWARF-5 Extension: Table of subprograms. */ +struct subprog_entry { + const char *subpname; + unsigned int filenum; + unsigned int line; +}; + +static struct subprog_entry *subprogs; +static unsigned int subprogs_in_use; +static unsigned int subprogs_allocated; + +/* Experimental DWARF-5 Extension: Logicals table. */ +struct logicals_entry { + segT seg; + symbolS *label; + /* A logical row doesn't use every field in this struct, but using it + here makes the code for writing the line number program simpler. */ + struct dwarf2_line_info loc; + unsigned int context; + unsigned int subprog; +}; + +static struct logicals_entry *logicals; +static unsigned int logicals_in_use; +static unsigned int logicals_allocated = 0; +static unsigned int logicals_with_labels = 0; + +/* DWARF-5: .debug_line_str string table. */ +struct string_table { + struct hash_control *hashtab; + const char **strings; + unsigned int strings_in_use; + unsigned int strings_allocated; + offsetT next_offset; +}; + +static struct string_table debug_line_str_table; + /* TRUE when we've seen a .loc directive recently. Used to avoid doing work when there's nothing to do. */ bfd_boolean dwarf2_loc_directive_seen; @@ -213,9 +271,9 @@ bfd_boolean dwarf2_loc_mark_labels; /* Current location as indicated by the most recent .loc directive. */ static struct dwarf2_line_info current = { - 1, 1, 0, 0, - DWARF2_LINE_DEFAULT_IS_STMT ? DWARF2_FLAG_IS_STMT : 0, - 0 + 1, 1, 0, 0, /* filenum, line, column, isa */ + DWARF2_LINE_DEFAULT_IS_STMT ? DWARF2_FLAG_IS_STMT : 0, /* flags */ + 0, 0 /* discriminator, logical */ }; /* The size of an address on the target. */ @@ -338,6 +396,15 @@ dwarf2_gen_line_info (addressT ofs, struct dwarf2_line_info *loc) else sym = symbol_temp_new (now_seg, ofs, frag_now); dwarf2_gen_line_info_1 (sym, loc); + + /* Record the current symbol with all logical rows created since + the last emitted instruction. */ + while (logicals_with_labels < logicals_in_use) + { + logicals[logicals_with_labels].label = sym; + logicals[logicals_with_labels].seg = now_seg; + logicals_with_labels++; + } } /* Returns the current source information. If .file directives have @@ -357,6 +424,7 @@ dwarf2_where (struct dwarf2_line_info *line) line->flags = DWARF2_FLAG_IS_STMT; line->isa = current.isa; line->discriminator = current.discriminator; + line->logical = 0; } else *line = current; @@ -560,6 +628,68 @@ get_filenum (const char *filename, unsigned int num) return i; } +/* Make a new entry in the subprograms table. */ + +static void +make_subprog_entry (unsigned int num, char *subpname, int filenum, int line) +{ + if (subprogs_allocated == 0) + { + subprogs_allocated = 4; + subprogs = (struct subprog_entry *) + xcalloc (subprogs_allocated, sizeof (struct subprog_entry)); + } + if (num > subprogs_allocated) + { + unsigned int old = subprogs_allocated; + + subprogs_allocated *= 2; + if (num > subprogs_allocated) + subprogs_allocated = num; + subprogs = (struct subprog_entry *) + xrealloc (subprogs, + subprogs_allocated * sizeof (struct subprog_entry)); + memset (subprogs + old, 0, + (subprogs_allocated - old) * sizeof (struct subprog_entry)); + } + if (subprogs_in_use < num) + subprogs_in_use = num; + subprogs[num - 1].subpname = xstrdup (subpname); + subprogs[num - 1].filenum = filenum; + subprogs[num - 1].line = line; +} + +/* Make a new entry in the logicals table. */ + +static void +make_logical (unsigned int logical, int context, int subprog) +{ + if (logicals_allocated == 0) + { + logicals_allocated = 4; + logicals = (struct logicals_entry *) + xcalloc (logicals_allocated, sizeof (struct logicals_entry)); + } + if (logical > logicals_allocated) + { + unsigned int old = logicals_allocated; + + logicals_allocated *= 2; + if (logical > logicals_allocated) + logicals_allocated = logical; + logicals = (struct logicals_entry *) + xrealloc (logicals, + logicals_allocated * sizeof (struct logicals_entry)); + memset (logicals + old, 0, + (logicals_allocated - old) * sizeof (struct logicals_entry)); + } + logicals[logical - 1].loc = current; + logicals[logical - 1].context = context; + logicals[logical - 1].subprog = subprog; + if (logical > logicals_in_use) + logicals_in_use = logical; +} + /* Handle two forms of .file directive: - Pass .file "source.c" to s_app_file - Handle .file 1 "source.c" by adding an entry to the DWARF-2 file table @@ -608,34 +738,130 @@ dwarf2_directive_file (int dummy ATTRIBUTE_UNUSED) return filename; } +/* Experimental DWARF-5 extension: + Implements the .subprog SUBPNO ["SUBPROG" [FILENO LINENO]] directive. + FILENO is the file number, LINENO the line number and the + (optional) COLUMN the column of the source code that the following + instruction corresponds to. FILENO can be 0 to indicate that the + filename specified by the textually most recent .file directive + should be used. */ void -dwarf2_directive_loc (int dummy ATTRIBUTE_UNUSED) +dwarf2_directive_subprog (int dummy ATTRIBUTE_UNUSED) { - offsetT filenum, line; + offsetT num, filenum, line; + char *subpname; + int subpname_len; - /* If we see two .loc directives in a row, force the first one to be - output now. */ - if (dwarf2_loc_directive_seen) - dwarf2_emit_insn (0); + num = get_absolute_expression (); + subpname = demand_copy_C_string (&subpname_len); + if (subpname == NULL) + return; + SKIP_WHITESPACE (); filenum = get_absolute_expression (); SKIP_WHITESPACE (); line = get_absolute_expression (); + demand_empty_rest_of_line (); - if (filenum < 1) + if (num < 1) { - as_bad (_("file number less than one")); + as_bad (_("subprogram number less than one")); return; } - if (filenum >= (int) files_in_use || files[filenum].filename == 0) + + /* A .subprog directive implies compiler generated debug information is + being supplied. Turn off gas generated debug info. */ + debug_type = DEBUG_NONE; + + if (num < (int) subprogs_in_use && subprogs[num].subpname != NULL) { - as_bad (_("unassigned file number %ld"), (long) filenum); + as_bad (_("subprogram number %ld already allocated"), (long) num); return; } + make_subprog_entry (num, subpname, filenum, line); +} + +void +dwarf2_directive_loc (int is_lloc) +{ + offsetT filenum, line; + offsetT logical = 0; + offsetT context = 0; + offsetT subprog = 0; + bfd_boolean is_new_logical = FALSE; + bfd_boolean is_actual = FALSE; + static bfd_boolean saw_loc = FALSE; + static bfd_boolean saw_lloc = FALSE; + static bfd_boolean saw_both = FALSE; + + if ((is_lloc && saw_loc) || (!is_lloc && saw_lloc)) + { + if (!saw_both) + as_bad (_(".loc and .lloc cannot both be used")); + saw_both = TRUE; + return; + } + + if (is_lloc) + { + saw_lloc = TRUE; + logical = get_absolute_expression (); + SKIP_WHITESPACE (); + + if (ISDIGIT (*input_line_pointer)) + is_new_logical = TRUE; + else + is_actual = TRUE; + + if (logical < 1) + { + as_bad (_("logical row less than one")); + return; + } + if (is_actual && + ((unsigned int) logical > logicals_in_use + || logicals[logical - 1].loc.line == 0)) + { + as_bad (_("unassigned logical row %ld"), (long) logical); + return; + } + } + else + saw_loc = TRUE; + + /* If we see two .loc directives in a row, force the first one to be + output now. */ + if (dwarf2_loc_directive_seen) + dwarf2_emit_insn (0); + + if (is_lloc && !is_new_logical) + { + filenum = logicals[logical - 1].loc.filenum; + line = logicals[logical - 1].loc.line; + } + else + { + filenum = get_absolute_expression (); + SKIP_WHITESPACE (); + line = get_absolute_expression (); + + if (filenum < 1) + { + as_bad (_("file number less than one")); + return; + } + if (filenum >= (int) files_in_use || files[filenum].filename == 0) + { + as_bad (_("unassigned file number %ld"), (long) filenum); + return; + } + } + current.filenum = filenum; current.line = line; current.discriminator = 0; + current.logical = logical; #ifndef NO_LISTING if (listing) @@ -678,17 +904,17 @@ dwarf2_directive_loc (int dummy ATTRIBUTE_UNUSED) current.flags |= DWARF2_FLAG_BASIC_BLOCK; *input_line_pointer = c; } - else if (strcmp (p, "prologue_end") == 0) + else if (!is_actual && strcmp (p, "prologue_end") == 0) { current.flags |= DWARF2_FLAG_PROLOGUE_END; *input_line_pointer = c; } - else if (strcmp (p, "epilogue_begin") == 0) + else if (!is_actual && strcmp (p, "epilogue_begin") == 0) { current.flags |= DWARF2_FLAG_EPILOGUE_BEGIN; *input_line_pointer = c; } - else if (strcmp (p, "is_stmt") == 0) + else if (!is_actual && strcmp (p, "is_stmt") == 0) { *input_line_pointer = c; value = get_absolute_expression (); @@ -714,7 +940,7 @@ dwarf2_directive_loc (int dummy ATTRIBUTE_UNUSED) return; } } - else if (strcmp (p, "discriminator") == 0) + else if (!is_actual && strcmp (p, "discriminator") == 0) { *input_line_pointer = c; value = get_absolute_expression (); @@ -726,6 +952,30 @@ dwarf2_directive_loc (int dummy ATTRIBUTE_UNUSED) return; } } + else if (!is_actual && strcmp (p, "context") == 0) + { + *input_line_pointer = c; + value = get_absolute_expression (); + if (value >= 0) + context = value; + else + { + as_bad (_("context less than zero")); + return; + } + } + else if (!is_actual && strcmp (p, "subprog") == 0) + { + *input_line_pointer = c; + value = get_absolute_expression (); + if (value >= 0) + subprog = value; + else + { + as_bad (_("subprog number less than zero")); + return; + } + } else { as_bad (_("unknown .loc sub-directive `%s'"), p); @@ -739,6 +989,9 @@ dwarf2_directive_loc (int dummy ATTRIBUTE_UNUSED) demand_empty_rest_of_line (); dwarf2_loc_directive_seen = TRUE; debug_type = DEBUG_NONE; + + if (is_new_logical) + make_logical (logical, context, subprog); } void @@ -869,6 +1122,15 @@ out_set_addr (symbolS *sym) emit_expr (&exp, sizeof_address); } +/* Set the address from a logicals table entry. */ + +static void +out_set_addr_from_logical (int logical_delta) +{ + out_opcode (DW_LNS_set_address_from_logical); + out_leb128 (logical_delta); +} + static void scale_addr_delta (addressT *); static void @@ -907,7 +1169,7 @@ size_inc_line_addr (int line_delta, addressT addr_delta) to emit the matrix entry. */ if (line_delta == INT_MAX) { - if (addr_delta == MAX_SPECIAL_ADDR_DELTA) + if (addr_delta == (unsigned int) MAX_SPECIAL_ADDR_DELTA) len = 1; else len = 1 + sizeof_leb128 (addr_delta, 0); @@ -915,30 +1177,30 @@ size_inc_line_addr (int line_delta, addressT addr_delta) } /* Bias the line delta by the base. */ - tmp = line_delta - DWARF2_LINE_BASE; + tmp = line_delta - line_base; /* If the line increment is out of range of a special opcode, we must encode it with DW_LNS_advance_line. */ - if (tmp >= DWARF2_LINE_RANGE) + if (tmp >= line_range) { len = 1 + sizeof_leb128 (line_delta, 1); line_delta = 0; - tmp = 0 - DWARF2_LINE_BASE; + tmp = 0 - line_base; } /* Bias the opcode by the special opcode base. */ - tmp += DWARF2_LINE_OPCODE_BASE; + tmp += opcode_base; /* Avoid overflow when addr_delta is large. */ - if (addr_delta < 256 + MAX_SPECIAL_ADDR_DELTA) + if (addr_delta < (unsigned int) (256 + MAX_SPECIAL_ADDR_DELTA)) { /* Try using a special opcode. */ - opcode = tmp + addr_delta * DWARF2_LINE_RANGE; + opcode = tmp + addr_delta * line_range; if (opcode <= 255) return len + 1; /* Try using DW_LNS_const_add_pc followed by special op. */ - opcode = tmp + (addr_delta - MAX_SPECIAL_ADDR_DELTA) * DWARF2_LINE_RANGE; + opcode = tmp + (addr_delta - MAX_SPECIAL_ADDR_DELTA) * line_range; if (opcode <= 255) return len + 2; } @@ -971,7 +1233,7 @@ emit_inc_line_addr (int line_delta, addressT addr_delta, char *p, int len) to emit the matrix entry. */ if (line_delta == INT_MAX) { - if (addr_delta == MAX_SPECIAL_ADDR_DELTA) + if (addr_delta == (unsigned int) MAX_SPECIAL_ADDR_DELTA) *p++ = DW_LNS_const_add_pc; else { @@ -986,17 +1248,17 @@ emit_inc_line_addr (int line_delta, addressT addr_delta, char *p, int len) } /* Bias the line delta by the base. */ - tmp = line_delta - DWARF2_LINE_BASE; + tmp = line_delta - line_base; /* If the line increment is out of range of a special opcode, we must encode it with DW_LNS_advance_line. */ - if (tmp >= DWARF2_LINE_RANGE) + if (tmp >= line_range) { *p++ = DW_LNS_advance_line; p += output_leb128 (p, line_delta, 1); line_delta = 0; - tmp = 0 - DWARF2_LINE_BASE; + tmp = 0 - line_base; need_copy = 1; } @@ -1009,13 +1271,13 @@ emit_inc_line_addr (int line_delta, addressT addr_delta, char *p, int len) } /* Bias the opcode by the special opcode base. */ - tmp += DWARF2_LINE_OPCODE_BASE; + tmp += opcode_base; /* Avoid overflow when addr_delta is large. */ - if (addr_delta < 256 + MAX_SPECIAL_ADDR_DELTA) + if (addr_delta < (unsigned int) (256 + MAX_SPECIAL_ADDR_DELTA)) { /* Try using a special opcode. */ - opcode = tmp + addr_delta * DWARF2_LINE_RANGE; + opcode = tmp + addr_delta * line_range; if (opcode <= 255) { *p++ = opcode; @@ -1023,7 +1285,7 @@ emit_inc_line_addr (int line_delta, addressT addr_delta, char *p, int len) } /* Try using DW_LNS_const_add_pc followed by special op. */ - opcode = tmp + (addr_delta - MAX_SPECIAL_ADDR_DELTA) * DWARF2_LINE_RANGE; + opcode = tmp + (addr_delta - MAX_SPECIAL_ADDR_DELTA) * line_range; if (opcode <= 255) { *p++ = DW_LNS_const_add_pc; @@ -1264,6 +1526,140 @@ dwarf2dbg_convert_frag (fragS *frag) frag->fr_offset = 0; } +/* Generate .debug_line content for the logicals table rows. */ + +static void +emit_logicals (void) +{ + unsigned logical; + unsigned filenum = 1; + unsigned line = 1; + unsigned column = 0; + unsigned discriminator; + unsigned flags = DWARF2_LINE_DEFAULT_IS_STMT ? DWARF2_FLAG_IS_STMT : 0; + unsigned context = 0; + unsigned subprog = 0; + segT last_seg = NULL; + fragS *last_frag = NULL, *frag; + addressT last_frag_ofs = 0, frag_ofs; + symbolS *last_lab = NULL, *lab; + + for (logical = 1; logical <= logicals_in_use; ++logical) + { + int line_delta; + int context_delta; + struct logicals_entry *e = &logicals[logical - 1]; + + discriminator = 0; + + if (context != e->context || subprog != e->subprog) + { + unsigned int caller = context; + unsigned int npop = 0; + + // See if a sequence of DW_LNS_pop_context ops will get + // to the state we want. + while (caller > 0 && caller <= logicals_in_use) + { + ++npop; + if (logicals[caller - 1].subprog == e->subprog) + break; + caller = logicals[caller - 1].context; + } + if (caller > 0 && caller <= logicals_in_use && npop < 10) + { + while (npop-- > 0) + out_opcode (DW_LNS_pop_context); + filenum = logicals[caller - 1].loc.filenum; + line = logicals[caller - 1].loc.line; + column = logicals[caller - 1].loc.column; + discriminator = logicals[caller - 1].loc.discriminator; + flags = logicals[caller - 1].loc.flags; + context = logicals[caller - 1].context; + subprog = logicals[caller - 1].subprog; + } + if (context != e->context && e->context == 0) + { + context = 0; + subprog = e->subprog; + out_opcode (DW_LNS_set_subprogram); + out_uleb128 (subprog); + } + else if (context != e->context || subprog != e->subprog) + { + context_delta = e->context - (logical - 1); + context = e->context; + subprog = e->subprog; + out_opcode (DW_LNS_inlined_call); + out_leb128 (context_delta); + out_uleb128 (subprog); + } + } + + if (filenum != e->loc.filenum) + { + filenum = e->loc.filenum; + out_opcode (DW_LNS_set_file); + out_uleb128 (filenum); + } + + if (column != e->loc.column) + { + column = e->loc.column; + out_opcode (DW_LNS_set_column); + out_uleb128 (column); + } + + if (e->loc.discriminator != discriminator) + { + out_opcode (DW_LNS_extended_op); + out_leb128 (1 + sizeof_leb128 (e->loc.discriminator, 0)); + out_opcode (DW_LNE_set_discriminator); + out_uleb128 (e->loc.discriminator); + } + + if ((e->loc.flags ^ flags) & DWARF2_FLAG_IS_STMT) + { + flags = e->loc.flags; + out_opcode (DW_LNS_negate_stmt); + } + + if (e->loc.flags & DWARF2_FLAG_PROLOGUE_END) + out_opcode (DW_LNS_set_prologue_end); + + if (e->loc.flags & DWARF2_FLAG_EPILOGUE_BEGIN) + out_opcode (DW_LNS_set_epilogue_begin); + + line_delta = e->loc.line - line; + if (e->label == NULL) + { + out_inc_line_addr (line_delta, 0); + } + else + { + lab = e->label; + frag = symbol_get_frag (lab); + frag_ofs = S_GET_VALUE (lab); + + if (last_frag == NULL || e->seg != last_seg) + { + out_set_addr (lab); + out_inc_line_addr (line_delta, 0); + } + else if (frag == last_frag && ! DWARF2_USE_FIXED_ADVANCE_PC) + out_inc_line_addr (line_delta, frag_ofs - last_frag_ofs); + else + relax_inc_line_addr (line_delta, lab, last_lab); + + line = e->loc.line; + last_seg = e->seg; + last_lab = lab; + last_frag = frag; + last_frag_ofs = frag_ofs; + } + } +} + /* Generate .debug_line content for the chain of line number entries beginning at E, for segment SEG. */ @@ -1318,27 +1714,30 @@ process_entries (segT seg, struct line_entry *e) { int line_delta; - if (filenum != e->loc.filenum) - { - filenum = e->loc.filenum; - out_opcode (DW_LNS_set_file); - out_uleb128 (filenum); - } + if (logicals_in_use == 0) + { + if (filenum != e->loc.filenum) + { + filenum = e->loc.filenum; + out_opcode (DW_LNS_set_file); + out_uleb128 (filenum); + } - if (column != e->loc.column) - { - column = e->loc.column; - out_opcode (DW_LNS_set_column); - out_uleb128 (column); - } + if (column != e->loc.column) + { + column = e->loc.column; + out_opcode (DW_LNS_set_column); + out_uleb128 (column); + } - if (e->loc.discriminator != 0) - { - out_opcode (DW_LNS_extended_op); - out_leb128 (1 + sizeof_leb128 (e->loc.discriminator, 0)); - out_opcode (DW_LNE_set_discriminator); - out_uleb128 (e->loc.discriminator); - } + if (e->loc.discriminator != 0) + { + out_opcode (DW_LNS_extended_op); + out_leb128 (1 + sizeof_leb128 (e->loc.discriminator, 0)); + out_opcode (DW_LNE_set_discriminator); + out_uleb128 (e->loc.discriminator); + } + } if (isa != e->loc.isa) { @@ -1347,41 +1746,58 @@ process_entries (segT seg, struct line_entry *e) out_uleb128 (isa); } - if ((e->loc.flags ^ flags) & DWARF2_FLAG_IS_STMT) - { - flags = e->loc.flags; - out_opcode (DW_LNS_negate_stmt); - } - if (e->loc.flags & DWARF2_FLAG_BASIC_BLOCK) out_opcode (DW_LNS_set_basic_block); - if (e->loc.flags & DWARF2_FLAG_PROLOGUE_END) - out_opcode (DW_LNS_set_prologue_end); + if (logicals_in_use == 0) + { + if ((e->loc.flags ^ flags) & DWARF2_FLAG_IS_STMT) + { + flags = e->loc.flags; + out_opcode (DW_LNS_negate_stmt); + } - if (e->loc.flags & DWARF2_FLAG_EPILOGUE_BEGIN) - out_opcode (DW_LNS_set_epilogue_begin); + if (e->loc.flags & DWARF2_FLAG_PROLOGUE_END) + out_opcode (DW_LNS_set_prologue_end); + + if (e->loc.flags & DWARF2_FLAG_EPILOGUE_BEGIN) + out_opcode (DW_LNS_set_epilogue_begin); + } /* Don't try to optimize away redundant entries; gdb wants two entries for a function where the code starts on the same line as the {, and there's no way to identify that case here. Trust gcc to optimize appropriately. */ - line_delta = e->loc.line - line; + if (logicals_in_use == 0) + line_delta = e->loc.line - line; + else + line_delta = e->loc.logical - line; lab = e->label; frag = symbol_get_frag (lab); frag_ofs = S_GET_VALUE (lab); if (last_frag == NULL) { - out_set_addr (lab); - out_inc_line_addr (line_delta, 0); + if (logicals_in_use > 0 && logicals[e->loc.logical - 1].label == lab) + { + out_set_addr_from_logical (line_delta); + out_opcode (DW_LNS_copy); + } + else + { + out_set_addr (lab); + out_inc_line_addr (line_delta, 0); + } } else if (frag == last_frag && ! DWARF2_USE_FIXED_ADVANCE_PC) out_inc_line_addr (line_delta, frag_ofs - last_frag_ofs); else relax_inc_line_addr (line_delta, lab, last_lab); - line = e->loc.line; + if (logicals_in_use == 0) + line = e->loc.line; + else + line = e->loc.logical; last_lab = lab; last_frag = frag; last_frag_ofs = frag_ofs; @@ -1456,6 +1872,160 @@ out_file_list (void) out_byte (0); } +/* Add a string to the string table. */ + +static offsetT +add_to_string_table (struct string_table *strtab, const char *str) +{ + const char *key; + offsetT val; + + if (strtab->strings_allocated == 0) + { + strtab->strings_allocated = 4; + strtab->strings = (const char **) + xcalloc (strtab->strings_allocated, sizeof(char *)); + strtab->hashtab = hash_new (); + } + + val = (offsetT) (uintptr_t)hash_find (strtab->hashtab, str); + if (val != 0) + return val; + + if (strtab->strings_in_use >= strtab->strings_allocated) + { + unsigned int old = strtab->strings_allocated; + + strtab->strings_allocated *= 2; + strtab->strings = (const char **) + xrealloc (strtab->strings, + strtab->strings_allocated * sizeof (char *)); + memset (strtab->strings + old, 0, + (strtab->strings_allocated - old) * sizeof (char *)); + } + + key = xstrdup (str); + val = strtab->next_offset; + hash_insert (strtab->hashtab, key, (void *) (uintptr_t)val); + strtab->strings[strtab->strings_in_use++] = key; + strtab->next_offset += strlen(key) + 1; + return val; +} + +/* Output the string table STRTAB to the section STR_SEG. + In a debug string table, the first byte is always '\0', + and valid indexes begin at 1. */ + +static void +out_string_table (segT str_seg, struct string_table *strtab) +{ + unsigned int i; + size_t size; + char *cp; + + subseg_set (str_seg, 0); + out_byte (0); + for (i = 0; i < strtab->strings_in_use; i++) + { + size = strlen (strtab->strings[i]) + 1; + cp = frag_more (size); + memcpy (cp, strtab->strings[i], size); + } +} + +static void +out_dwarf5_file_list (segT str_seg, int sizeof_offset) +{ + const char *dir; + offsetT strp; + unsigned int i; + expressionS exp; + unsigned int dir_count = dirs_in_use > 0 ? dirs_in_use - 1 : 0; + unsigned int file_count = files_in_use > 0 ? files_in_use - 1 : 0; + + exp.X_op = O_symbol; + exp.X_add_symbol = section_symbol (str_seg); + + out_byte (1); /* directory_entry_format_count */ + out_uleb128 (DW_LNCT_path); /* directory_entry_format[0].content_type */ + out_uleb128 (DW_FORM_line_strp); /* directory_entry_format[0].form */ + out_uleb128 (dir_count); /* directories_count */ + + /* Emit directories list. */ + for (i = 1; i < dirs_in_use; ++i) + { + dir = remap_debug_filename (dirs[i]); + strp = add_to_string_table (&debug_line_str_table, dir); + exp.X_add_number = strp; + emit_expr (&exp, sizeof_offset); + } + + out_byte (2); /* file_name_entry_format_count */ + out_uleb128 (DW_LNCT_path); /* file_name_entry_format[0].type */ + out_uleb128 (DW_FORM_line_strp); /* file_name_entry_format[0].form */ + out_uleb128 (DW_LNCT_directory_index); /* file_name_entry_format[0].type */ + out_uleb128 (DW_FORM_udata); /* file_name_entry_format[0].form */ + out_uleb128 (file_count); /* file_names_count */ + + /* Emit file_names list. */ + for (i = 1; i < files_in_use; ++i) + { + const char *fullfilename; + + if (files[i].filename == NULL) + { + as_bad (_("unassigned file number %ld"), (long) i); + /* Prevent a crash later, particularly for file 1. */ + files[i].filename = ""; + } + + fullfilename = DWARF2_FILE_NAME (files[i].filename, + files[i].dir ? dirs [files [i].dir] : ""); + strp = add_to_string_table (&debug_line_str_table, fullfilename); + exp.X_add_number = strp; + emit_expr (&exp, sizeof_offset); + out_uleb128 (files[i].dir); /* directory number */ + } +} + +static void +out_subprog_list (segT str_seg, int sizeof_offset) +{ + const char *name; + offsetT strp; + unsigned int i; + expressionS exp; + + exp.X_op = O_symbol; + exp.X_add_symbol = section_symbol (str_seg); + + out_byte (3); /* subprogram_entry_format_count */ + out_uleb128 (DW_LNCT_subprogram_name); /* subprogram_entry_format[0].type */ + out_uleb128 (DW_FORM_line_strp); /* subprogram_entry_format[0].form */ + out_uleb128 (DW_LNCT_decl_file); /* subprogram_entry_format[1].type */ + out_uleb128 (DW_FORM_udata); /* subprogram_entry_format[1].form */ + out_uleb128 (DW_LNCT_decl_line); /* subprogram_entry_format[2].type */ + out_uleb128 (DW_FORM_udata); /* subprogram_entry_format[2].form */ + out_uleb128 (subprogs_in_use); /* subprograms_count */ + + /* Emit subprograms list. */ + for (i = 0; i < subprogs_in_use; ++i) + { + name = subprogs[i].subpname; + if (name == NULL) + { + as_bad (_("unassigned subprogram number %ld"), (long) i); + strp = 0; + } + else + strp = add_to_string_table (&debug_line_str_table, name); + exp.X_add_number = strp; + emit_expr (&exp, sizeof_offset); + out_uleb128 (subprogs[i].filenum); + out_uleb128 (subprogs[i].line); + } +} + /* Switch to SEC and output a header length field. Return the size of offsets used in SEC. The caller must set EXPR->X_add_symbol value to the end of the section. */ @@ -1501,19 +2071,35 @@ out_header (asection *sec, expressionS *exp) /* Emit the collected .debug_line data. */ static void -out_debug_line (segT line_seg) +out_debug_line (segT line_seg, segT str_seg) { expressionS exp; - symbolS *prologue_start, *prologue_end; + symbolS *prologue_start, *prologue_end, *logicals_start, *actuals_start; symbolS *line_end; struct line_seg *s; int sizeof_offset; + unsigned int version; + + if (logicals_in_use == 0) + { + version = DWARF2_LINE_VERSION; + opcode_base = DWARF2_LINE_OPCODE_BASE; + line_base = DWARF2_LINE_BASE; + line_range = DWARF2_LINE_RANGE; + } + else + { + version = DWARF2_LINE_EXPERIMENTAL_VERSION; + opcode_base = DWARF5_EXPERIMENTAL_LINE_OPCODE_BASE; + line_base = DWARF5_EXPERIMENTAL_LINE_BASE; + line_range = DWARF5_EXPERIMENTAL_LINE_RANGE; + } sizeof_offset = out_header (line_seg, &exp); line_end = exp.X_add_symbol; /* Version. */ - out_two (DWARF2_LINE_VERSION); + out_two (version); /* Length of the prologue following this length. */ prologue_start = symbol_temp_make (); @@ -1527,10 +2113,12 @@ out_debug_line (segT line_seg) /* Parameters of the state machine. */ out_byte (DWARF2_LINE_MIN_INSN_LENGTH); + if (version >= 4) + out_byte (DWARF2_LINE_MAX_OPS_PER_INSN); out_byte (DWARF2_LINE_DEFAULT_IS_STMT); - out_byte (DWARF2_LINE_BASE); - out_byte (DWARF2_LINE_RANGE); - out_byte (DWARF2_LINE_OPCODE_BASE); + out_byte (line_base); + out_byte (line_range); + out_byte (opcode_base); /* Standard opcode lengths. */ out_byte (0); /* DW_LNS_copy */ @@ -1545,10 +2133,63 @@ out_debug_line (segT line_seg) out_byte (0); /* DW_LNS_set_prologue_end */ out_byte (0); /* DW_LNS_set_epilogue_begin */ out_byte (1); /* DW_LNS_set_isa */ + if (opcode_base == DWARF5_EXPERIMENTAL_LINE_OPCODE_BASE) + { + out_byte (1); /* DW_LNS_set_subprogram/DW_LNS_set_address_from_logical */ + out_byte (2); /* DW_LNS_inlined_call */ + out_byte (0); /* DW_LNS_pop_context */ + } - out_file_list (); - - symbol_set_value_now (prologue_end); + if (version == DWARF2_LINE_EXPERIMENTAL_VERSION) + { + /* Fake empty version 4 directory and filename lists, to fool + old consumers who don't check the version number. */ + out_byte (0); + out_byte (0); + + symbol_set_value_now (prologue_end); + + /* Now wrap the remainder of the section inside a fake + extended opcode, so old consumers will see just the single + extended opcode, and will not try to read anything else. + For simplicity, we simply output a very large number for + the size of the extended op. */ + out_opcode (DW_LNS_extended_op); + out_byte (255); /* 3-byte LEB128 for 0x1fffff. */ + out_byte (255); + out_byte (127); + out_byte (127); /* Fake extended opcode. */ + + /* Logicals table offset. */ + logicals_start = symbol_temp_make (); + exp.X_add_symbol = logicals_start; + emit_expr (&exp, sizeof_offset); + + /* Actuals table offset. */ + actuals_start = symbol_temp_make (); + exp.X_add_symbol = actuals_start; + emit_expr (&exp, sizeof_offset); + + /* Directory and filename lists. */ + out_dwarf5_file_list (str_seg, sizeof_offset); + + /* Subprogram list. */ + out_subprog_list (str_seg, sizeof_offset); + + symbol_set_value_now (logicals_start); + emit_logicals (); + symbol_set_value_now (actuals_start); + } + else if (version >= 5) + { + out_dwarf5_file_list (str_seg, sizeof_offset); + symbol_set_value_now (prologue_end); + } + else + { + out_file_list (); + symbol_set_value_now (prologue_end); + } /* For each section, emit a statement program. */ for (s = all_segs; s; s = s->next) @@ -1851,11 +2492,13 @@ dwarf2_finish (void) segT line_seg; struct line_seg *s; segT info_seg; + segT str_seg = NULL; int emit_other_sections = 0; int empty_debug_line = 0; info_seg = bfd_get_section_by_name (stdoutput, ".debug_info"); - emit_other_sections = info_seg == NULL || !seg_not_empty_p (info_seg); + emit_other_sections = ((info_seg == NULL || !seg_not_empty_p (info_seg)) + && logicals_in_use == 0); line_seg = bfd_get_section_by_name (stdoutput, ".debug_line"); empty_debug_line = line_seg == NULL || !seg_not_empty_p (line_seg); @@ -1892,7 +2535,23 @@ dwarf2_finish (void) } } - out_debug_line (line_seg); + if (logicals_in_use > 0) + { + str_seg = subseg_new (".debug_line_str", 0); + bfd_set_section_flags (stdoutput, str_seg, + (SEC_READONLY | SEC_DEBUGGING + | SEC_MERGE | SEC_STRINGS)); + str_seg->entsize = 1; + debug_line_str_table.strings = NULL; + debug_line_str_table.strings_in_use = 0; + debug_line_str_table.strings_allocated = 0; + debug_line_str_table.next_offset = 1; + } + + out_debug_line (line_seg, str_seg); + + if (str_seg != NULL) + out_string_table (str_seg, &debug_line_str_table); /* If this is assembler generated line info, and there is no debug_info already, we need .debug_info and .debug_abbrev diff --git a/binutils-2.25/gas/dwarf2dbg.h b/binutils-2.25/gas/dwarf2dbg.h index fdb185f..d3112a9 100644 --- a/binutils-2.25/gas/dwarf2dbg.h +++ b/binutils-2.25/gas/dwarf2dbg.h @@ -35,6 +35,7 @@ struct dwarf2_line_info { unsigned int isa; unsigned int flags; unsigned int discriminator; + unsigned int logical; }; /* Implements the .file FILENO "FILENAME" directive. FILENO can be 0 @@ -42,13 +43,29 @@ struct dwarf2_line_info { number must be >0. */ extern char *dwarf2_directive_file (int dummy); +/* Experimental DWARF-5 extension: + Implements the .subprog SUBPNO ["SUBPROG" [FILENO LINENO]] directive. + FILENO is the file number, LINENO the line number and the + (optional) COLUMN the column of the source code that the following + instruction corresponds to. FILENO can be 0 to indicate that the + filename specified by the textually most recent .file directive + should be used. */ +extern void dwarf2_directive_subprog (int dummy); + /* Implements the .loc FILENO LINENO [COLUMN] directive. FILENO is the file number, LINENO the line number and the (optional) COLUMN the column of the source code that the following instruction corresponds to. FILENO can be 0 to indicate that the filename specified by the textually most recent .file directive should be used. */ -extern void dwarf2_directive_loc (int dummy); +/* Experimental DWARF-5 extension: + If IS_LLOC is true, implements the .lloc LOGICAL [FILENO LINENO [COLUMN]] + directive. FILENO is the file number, LINENO the line number and the + (optional) COLUMN the column of the source code that the following + instruction corresponds to. FILENO can be 0 to indicate that the + filename specified by the textually most recent .file directive + should be used. */ +extern void dwarf2_directive_loc (int is_lloc); /* Implements the .loc_mark_labels {0,1} directive. */ extern void dwarf2_directive_loc_mark_labels (int dummy); diff --git a/binutils-2.25/gas/ecoff.c b/binutils-2.25/gas/ecoff.c index 771c8b5..fe7ad05 100644 --- a/binutils-2.25/gas/ecoff.c +++ b/binutils-2.25/gas/ecoff.c @@ -1552,8 +1552,8 @@ add_string (varray_t *vp, /* string obstack */ const char *str, /* string */ shash_t **ret_hash /* return hash pointer */) { - register unsigned long len = strlen (str); - register shash_t *hash_ptr; + unsigned long len = strlen (str); + shash_t *hash_ptr; if (len >= PAGE_USIZE) as_fatal (_("string too big (%lu bytes)"), len); @@ -1561,7 +1561,7 @@ add_string (varray_t *vp, /* string obstack */ hash_ptr = (shash_t *) hash_find (hash_tbl, str); if (hash_ptr == (shash_t *) NULL) { - register const char *err; + const char *err; if (vp->objects_last_page + len >= PAGE_USIZE) { @@ -1604,12 +1604,12 @@ add_ecoff_symbol (const char *str, /* symbol name */ symint_t indx /* index to local/aux. syms */) { localsym_t *psym; - register scope_t *pscope; - register thead_t *ptag_head; - register tag_t *ptag; - register tag_t *ptag_next; - register varray_t *vp; - register int scope_delta = 0; + scope_t *pscope; + thead_t *ptag_head; + tag_t *ptag; + tag_t *ptag_next; + varray_t *vp; + int scope_delta = 0; shash_t *hash_ptr = (shash_t *) NULL; if (cur_file_ptr == (efdr_t *) NULL) @@ -1802,8 +1802,8 @@ add_ecoff_symbol (const char *str, /* symbol name */ static symint_t add_aux_sym_symint (symint_t aux_word /* auxiliary information word */) { - register varray_t *vp; - register aux_t *aux_ptr; + varray_t *vp; + aux_t *aux_ptr; if (cur_file_ptr == (efdr_t *) NULL) as_fatal (_("no current file pointer")); @@ -1825,8 +1825,8 @@ add_aux_sym_symint (symint_t aux_word /* auxiliary information word */) static symint_t add_aux_sym_rndx (int file_index, symint_t sym_index) { - register varray_t *vp; - register aux_t *aux_ptr; + varray_t *vp; + aux_t *aux_ptr; if (cur_file_ptr == (efdr_t *) NULL) as_fatal (_("no current file pointer")); @@ -1852,8 +1852,8 @@ add_aux_sym_tir (type_info_t *t, /* current type information */ hash_state_t state, /* whether to hash type or not */ thash_t **hash_tbl /* pointer to hash table to use */) { - register varray_t *vp; - register aux_t *aux_ptr; + varray_t *vp; + aux_t *aux_ptr; static AUXU init_aux; symint_t ret; int i; @@ -1900,8 +1900,8 @@ add_aux_sym_tir (type_info_t *t, /* current type information */ if (state != hash_no) { - register thash_t *hash_ptr; - register symint_t hi; + thash_t *hash_ptr; + symint_t hi; hi = aux.isym & ((1 << HASHBITS) - 1); hi %= THASH_SIZE; @@ -1957,9 +1957,9 @@ add_aux_sym_tir (type_info_t *t, /* current type information */ || t->basic_type == bt_Union || t->basic_type == bt_Enum) { - register symint_t file_index = t->tag_ptr->ifd; - register localsym_t *sym = t->tag_ptr->sym; - register forward_t *forward_ref = allocate_forward (); + symint_t file_index = t->tag_ptr->ifd; + localsym_t *sym = t->tag_ptr->sym; + forward_t *forward_ref = allocate_forward (); if (sym != (localsym_t *) NULL) { @@ -2114,8 +2114,8 @@ add_unknown_tag (tag_t *ptag /* pointer to tag information */) static void add_procedure (char *func /* func name */) { - register varray_t *vp; - register proc_t *new_proc_ptr; + varray_t *vp; + proc_t *new_proc_ptr; symbolS *sym; #ifdef ECOFF_DEBUG @@ -2184,8 +2184,8 @@ ecoff_get_cur_proc_sym (void) static void add_file (const char *file_name, int indx ATTRIBUTE_UNUSED, int fake) { - register int first_ch; - register efdr_t *fil_ptr; + int first_ch; + efdr_t *fil_ptr; #ifdef ECOFF_DEBUG if (debug) @@ -3667,7 +3667,7 @@ ecoff_build_lineno (const struct ecoff_debug_swap *backend, long *linecntptr) { char *bufptr; - register lineno_list_t *l; + lineno_list_t *l; lineno_list_t *last; efdr_t *file; proc_t *proc; @@ -4592,7 +4592,7 @@ ecoff_build_fdr (const struct ecoff_debug_swap *backend, static void ecoff_setup_ext (void) { - register symbolS *sym; + symbolS *sym; for (sym = symbol_rootP; sym != (symbolS *) NULL; sym = symbol_next (sym)) { @@ -4788,7 +4788,7 @@ ecoff_build_debug (HDRR *hdr, static page_type * allocate_cluster (unsigned long npages) { - register page_type *value = (page_type *) xmalloc (npages * PAGE_USIZE); + page_type *value = (page_type *) xmalloc (npages * PAGE_USIZE); #ifdef ECOFF_DEBUG if (debug > 3) @@ -4837,7 +4837,7 @@ allocate_page (void) static scope_t * allocate_scope (void) { - register scope_t *ptr; + scope_t *ptr; static scope_t initial_scope; #ifndef MALLOC_CHECK @@ -4847,8 +4847,8 @@ allocate_scope (void) alloc_counts[(int) alloc_type_scope].free_list.f_scope = ptr->free; else { - register int unallocated = alloc_counts[(int) alloc_type_scope].unallocated; - register page_type *cur_page = alloc_counts[(int) alloc_type_scope].cur_page; + int unallocated = alloc_counts[(int) alloc_type_scope].unallocated; + page_type *cur_page = alloc_counts[(int) alloc_type_scope].cur_page; if (unallocated == 0) { @@ -4892,13 +4892,13 @@ free_scope (scope_t *ptr) static vlinks_t * allocate_vlinks (void) { - register vlinks_t *ptr; + vlinks_t *ptr; static vlinks_t initial_vlinks; #ifndef MALLOC_CHECK - register int unallocated = alloc_counts[(int) alloc_type_vlinks].unallocated; - register page_type *cur_page = alloc_counts[(int) alloc_type_vlinks].cur_page; + int unallocated = alloc_counts[(int) alloc_type_vlinks].unallocated; + page_type *cur_page = alloc_counts[(int) alloc_type_vlinks].cur_page; if (unallocated == 0) { @@ -4926,13 +4926,13 @@ allocate_vlinks (void) static shash_t * allocate_shash (void) { - register shash_t *ptr; + shash_t *ptr; static shash_t initial_shash; #ifndef MALLOC_CHECK - register int unallocated = alloc_counts[(int) alloc_type_shash].unallocated; - register page_type *cur_page = alloc_counts[(int) alloc_type_shash].cur_page; + int unallocated = alloc_counts[(int) alloc_type_shash].unallocated; + page_type *cur_page = alloc_counts[(int) alloc_type_shash].cur_page; if (unallocated == 0) { @@ -4960,13 +4960,13 @@ allocate_shash (void) static thash_t * allocate_thash (void) { - register thash_t *ptr; + thash_t *ptr; static thash_t initial_thash; #ifndef MALLOC_CHECK - register int unallocated = alloc_counts[(int) alloc_type_thash].unallocated; - register page_type *cur_page = alloc_counts[(int) alloc_type_thash].cur_page; + int unallocated = alloc_counts[(int) alloc_type_thash].unallocated; + page_type *cur_page = alloc_counts[(int) alloc_type_thash].cur_page; if (unallocated == 0) { @@ -4994,7 +4994,7 @@ allocate_thash (void) static tag_t * allocate_tag (void) { - register tag_t *ptr; + tag_t *ptr; static tag_t initial_tag; #ifndef MALLOC_CHECK @@ -5004,8 +5004,8 @@ allocate_tag (void) alloc_counts[(int) alloc_type_tag].free_list.f_tag = ptr->free; else { - register int unallocated = alloc_counts[(int) alloc_type_tag].unallocated; - register page_type *cur_page = alloc_counts[(int) alloc_type_tag].cur_page; + int unallocated = alloc_counts[(int) alloc_type_tag].unallocated; + page_type *cur_page = alloc_counts[(int) alloc_type_tag].cur_page; if (unallocated == 0) { @@ -5049,13 +5049,13 @@ free_tag (tag_t *ptr) static forward_t * allocate_forward (void) { - register forward_t *ptr; + forward_t *ptr; static forward_t initial_forward; #ifndef MALLOC_CHECK - register int unallocated = alloc_counts[(int) alloc_type_forward].unallocated; - register page_type *cur_page = alloc_counts[(int) alloc_type_forward].cur_page; + int unallocated = alloc_counts[(int) alloc_type_forward].unallocated; + page_type *cur_page = alloc_counts[(int) alloc_type_forward].cur_page; if (unallocated == 0) { @@ -5083,7 +5083,7 @@ allocate_forward (void) static thead_t * allocate_thead (void) { - register thead_t *ptr; + thead_t *ptr; static thead_t initial_thead; #ifndef MALLOC_CHECK @@ -5093,8 +5093,8 @@ allocate_thead (void) alloc_counts[(int) alloc_type_thead].free_list.f_thead = ptr->free; else { - register int unallocated = alloc_counts[(int) alloc_type_thead].unallocated; - register page_type *cur_page = alloc_counts[(int) alloc_type_thead].cur_page; + int unallocated = alloc_counts[(int) alloc_type_thead].unallocated; + page_type *cur_page = alloc_counts[(int) alloc_type_thead].cur_page; if (unallocated == 0) { @@ -5136,13 +5136,13 @@ free_thead (thead_t *ptr) static lineno_list_t * allocate_lineno_list (void) { - register lineno_list_t *ptr; + lineno_list_t *ptr; static lineno_list_t initial_lineno_list; #ifndef MALLOC_CHECK - register int unallocated = alloc_counts[(int) alloc_type_lineno].unallocated; - register page_type *cur_page = alloc_counts[(int) alloc_type_lineno].cur_page; + int unallocated = alloc_counts[(int) alloc_type_lineno].unallocated; + page_type *cur_page = alloc_counts[(int) alloc_type_lineno].cur_page; if (unallocated == 0) { diff --git a/binutils-2.25/gas/expr.c b/binutils-2.25/gas/expr.c index 0ccfbd3..b8266fc 100644 --- a/binutils-2.25/gas/expr.c +++ b/binutils-2.25/gas/expr.c @@ -124,7 +124,7 @@ make_expr_symbol (expressionS *expressionP) int expr_symbol_where (symbolS *sym, char **pfile, unsigned int *pline) { - register struct expr_symbol_line *l; + struct expr_symbol_line *l; for (l = expr_symbol_lines; l != NULL; l = l->next) { diff --git a/binutils-2.25/gas/frags.c b/binutils-2.25/gas/frags.c index defa853..beaceee 100644 --- a/binutils-2.25/gas/frags.c +++ b/binutils-2.25/gas/frags.c @@ -206,13 +206,13 @@ frag_new (size_t old_frags_var_max_size char * frag_more (size_t nchars) { - register char *retval; + char *retval; frag_alloc_check (&frchain_now->frch_obstack); frag_grow (nchars); retval = obstack_next_free (&frchain_now->frch_obstack); obstack_blank_fast (&frchain_now->frch_obstack, nchars); - return (retval); + return retval; } /* Close the current frag, setting its fields for a relaxable frag. Start a @@ -254,7 +254,7 @@ frag_var (relax_stateT type, size_t max_chars, size_t var, relax_substateT subtype, symbolS *symbol, offsetT offset, char *opcode) { - register char *retval; + char *retval; frag_grow (max_chars); retval = obstack_next_free (&frchain_now->frch_obstack); @@ -272,7 +272,7 @@ frag_variant (relax_stateT type, size_t max_chars, size_t var, relax_substateT subtype, symbolS *symbol, offsetT offset, char *opcode) { - register char *retval; + char *retval; retval = obstack_next_free (&frchain_now->frch_obstack); frag_var_init (type, max_chars, var, subtype, symbol, offset, opcode); @@ -283,7 +283,7 @@ frag_variant (relax_stateT type, size_t max_chars, size_t var, /* Reduce the variable end of a frag to a harmless state. */ void -frag_wane (register fragS *fragP) +frag_wane (fragS *fragP) { fragP->fr_type = rs_fill; fragP->fr_offset = 0; diff --git a/binutils-2.25/gas/input-file.c b/binutils-2.25/gas/input-file.c index 354ff56..f1f2ec5 100644 --- a/binutils-2.25/gas/input-file.c +++ b/binutils-2.25/gas/input-file.c @@ -79,7 +79,7 @@ input_file_buffer_size (void) char * input_file_push (void) { - register struct saved_file *saved; + struct saved_file *saved; saved = (struct saved_file *) xmalloc (sizeof *saved); @@ -98,7 +98,7 @@ input_file_push (void) void input_file_pop (char *arg) { - register struct saved_file *saved = (struct saved_file *) arg; + struct saved_file *saved = (struct saved_file *) arg; input_file_end (); /* Close out old file. */ diff --git a/binutils-2.25/gas/input-scrub.c b/binutils-2.25/gas/input-scrub.c index 042005a..5388e81 100644 --- a/binutils-2.25/gas/input-scrub.c +++ b/binutils-2.25/gas/input-scrub.c @@ -137,7 +137,7 @@ static struct input_save *next_saved_file; static struct input_save * input_scrub_push (char *saved_position) { - register struct input_save *saved; + struct input_save *saved; saved = (struct input_save *) xmalloc (sizeof *saved); @@ -311,7 +311,7 @@ input_scrub_close (void) char * input_scrub_next_buffer (char **bufp) { - register char *limit; /*->just after last char of buffer. */ + char *limit; /*->just after last char of buffer. */ if (sb_index != (size_t) -1) { @@ -354,7 +354,7 @@ input_scrub_next_buffer (char **bufp) + partial_size); if (limit) { - register char *p; /* Find last newline. */ + char *p; /* Find last newline. */ /* Terminate the buffer to avoid confusing TC_EOL_IN_INSN. */ *limit = '\0'; for (p = limit - 1; *p != '\n' || TC_EOL_IN_INSN (p); --p) diff --git a/binutils-2.25/gas/po/gas.pot b/binutils-2.25/gas/po/gas.pot index 622d08b..e7e8dce 100644 --- a/binutils-2.25/gas/po/gas.pot +++ b/binutils-2.25/gas/po/gas.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n" -"POT-Creation-Date: 2014-02-10 09:42+1030\n" +"POT-Creation-Date: 2014-11-04 15:27+1030\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,41 +17,41 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: app.c:489 app.c:503 +#: app.c:490 app.c:504 msgid "end of file in comment" msgstr "" -#: app.c:581 app.c:628 +#: app.c:582 app.c:629 #, c-format msgid "end of file in string; '%c' inserted" msgstr "" -#: app.c:654 +#: app.c:655 #, c-format msgid "unknown escape '\\%c' in string; ignored" msgstr "" -#: app.c:827 +#: app.c:828 msgid "end of file not at end of a line; newline inserted" msgstr "" -#: app.c:990 +#: app.c:991 msgid "end of file in multiline comment" msgstr "" -#: app.c:1065 +#: app.c:1066 msgid "end of file after a one-character quote; \\0 inserted" msgstr "" -#: app.c:1073 +#: app.c:1074 msgid "end of file in escape character" msgstr "" -#: app.c:1085 +#: app.c:1086 msgid "missing close quote; (assumed)" msgstr "" -#: app.c:1154 app.c:1209 app.c:1221 app.c:1301 +#: app.c:1155 app.c:1210 app.c:1222 app.c:1302 msgid "end of file in comment; newline inserted" msgstr "" @@ -372,7 +372,7 @@ msgstr "" #: as.c:629 #, c-format -msgid "Copyright 2014 Free Software Foundation, Inc.\n" +msgid "Copyright (C) 2014 Free Software Foundation, Inc.\n" msgstr "" #: as.c:630 @@ -462,9 +462,34 @@ msgstr "" msgid "%s: data size %ld\n" msgstr "" -#: as.c:1308 +#: as.c:1268 #, c-format -msgid "%d warnings, treating warnings as errors" +msgid "%d warning" +msgstr "" + +#: as.c:1270 +#, c-format +msgid "%d warnings" +msgstr "" + +#: as.c:1272 +#, c-format +msgid "%d error" +msgstr "" + +#: as.c:1274 +#, c-format +msgid "%d errors" +msgstr "" + +#: as.c:1279 +#, c-format +msgid "%s, treating warnings as errors" +msgstr "" + +#: as.c:1290 +#, c-format +msgid "%s, %s, generating bad object file\n" msgstr "" #: as.h:189 @@ -476,264 +501,265 @@ msgstr "" #. * We have a GROSS internal error. #. * This should never happen. #. -#: atof-generic.c:417 config/tc-m68k.c:3583 +#: atof-generic.c:416 config/tc-m68k.c:3581 msgid "failed sanity check" msgstr "" -#: cgen.c:113 config/tc-alpha.c:2101 config/tc-alpha.c:2125 -#: config/tc-arc.c:1684 config/tc-d10v.c:552 config/tc-d30v.c:538 -#: config/tc-mn10200.c:1101 config/tc-mn10300.c:1753 config/tc-ppc.c:2861 -#: config/tc-ppc.c:3038 config/tc-ppc.c:3307 config/tc-s390.c:1262 -#: config/tc-s390.c:1382 config/tc-s390.c:1511 config/tc-v850.c:2523 -#: config/tc-v850.c:2594 config/tc-v850.c:2641 config/tc-v850.c:2678 -#: config/tc-v850.c:2715 config/tc-v850.c:2976 +#: cgen.c:112 config/tc-alpha.c:2099 config/tc-alpha.c:2123 +#: config/tc-arc.c:1685 config/tc-d10v.c:550 config/tc-d30v.c:537 +#: config/tc-mn10200.c:1101 config/tc-mn10300.c:1753 config/tc-ppc.c:2865 +#: config/tc-ppc.c:3042 config/tc-ppc.c:3302 config/tc-s390.c:1261 +#: config/tc-s390.c:1381 config/tc-s390.c:1510 config/tc-v850.c:2526 +#: config/tc-v850.c:2597 config/tc-v850.c:2644 config/tc-v850.c:2681 +#: config/tc-v850.c:2718 config/tc-v850.c:2979 msgid "too many fixups" msgstr "" -#: cgen.c:400 cgen.c:420 config/tc-arc.c:1665 config/tc-d10v.c:463 -#: config/tc-d30v.c:454 config/tc-i370.c:2125 config/tc-mn10200.c:1043 -#: config/tc-mn10300.c:1678 config/tc-ppc.c:2903 config/tc-s390.c:1233 -#: config/tc-v850.c:2632 config/tc-v850.c:2666 config/tc-v850.c:2706 -#: config/tc-v850.c:2949 config/tc-z80.c:444 +#: cgen.c:399 cgen.c:419 config/tc-arc.c:1666 config/tc-d10v.c:461 +#: config/tc-d30v.c:453 config/tc-i370.c:2124 config/tc-mn10200.c:1043 +#: config/tc-mn10300.c:1678 config/tc-ppc.c:2907 config/tc-s390.c:1232 +#: config/tc-v850.c:2635 config/tc-v850.c:2669 config/tc-v850.c:2709 +#: config/tc-v850.c:2952 config/tc-z80.c:444 msgid "illegal operand" msgstr "" -#: cgen.c:424 config/tc-arc.c:1667 config/tc-avr.c:639 config/tc-d10v.c:465 -#: config/tc-d30v.c:456 config/tc-h8300.c:497 config/tc-i370.c:2127 -#: config/tc-mcore.c:662 config/tc-microblaze.c:604 config/tc-mmix.c:495 -#: config/tc-mn10200.c:1046 config/tc-mn10300.c:1681 config/tc-msp430.c:883 -#: config/tc-or32.c:307 config/tc-ppc.c:2905 config/tc-s390.c:1251 -#: config/tc-sh.c:1386 config/tc-sh64.c:2213 config/tc-v850.c:2636 -#: config/tc-v850.c:2670 config/tc-v850.c:2710 config/tc-v850.c:2952 -#: config/tc-xgate.c:897 config/tc-z80.c:555 config/tc-z8k.c:350 +#: cgen.c:423 config/tc-arc.c:1668 config/tc-avr.c:712 config/tc-d10v.c:463 +#: config/tc-d30v.c:455 config/tc-h8300.c:497 config/tc-i370.c:2126 +#: config/tc-mcore.c:661 config/tc-microblaze.c:604 config/tc-mmix.c:495 +#: config/tc-mn10200.c:1046 config/tc-mn10300.c:1681 config/tc-msp430.c:420 +#: config/tc-ppc.c:2909 config/tc-s390.c:1250 config/tc-sh.c:1385 +#: config/tc-sh64.c:2212 config/tc-v850.c:2639 config/tc-v850.c:2673 +#: config/tc-v850.c:2713 config/tc-v850.c:2955 config/tc-xgate.c:896 +#: config/tc-z80.c:555 config/tc-z8k.c:349 msgid "missing operand" msgstr "" -#: cgen.c:800 +#: cgen.c:799 msgid "a reloc on this operand implies an overflow" msgstr "" -#: cgen.c:823 +#: cgen.c:822 msgid "operand mask overflow" msgstr "" #. We can't actually support subtracting a symbol. -#: cgen.c:887 config/tc-arc.c:1249 config/tc-arm.c:1683 config/tc-arm.c:9384 -#: config/tc-arm.c:9436 config/tc-arm.c:9685 config/tc-arm.c:10506 -#: config/tc-arm.c:11632 config/tc-arm.c:11672 config/tc-arm.c:12015 -#: config/tc-arm.c:12056 config/tc-avr.c:1172 config/tc-avr.c:1397 -#: config/tc-cris.c:4047 config/tc-d10v.c:1511 config/tc-d30v.c:1915 -#: config/tc-mips.c:8510 config/tc-mips.c:9797 config/tc-mips.c:11029 -#: config/tc-mips.c:11684 config/tc-nds32.c:5775 config/tc-ppc.c:6515 -#: config/tc-spu.c:957 config/tc-spu.c:981 config/tc-tilegx.c:1485 -#: config/tc-tilepro.c:1346 config/tc-v850.c:3435 config/tc-xstormy16.c:483 -#: config/tc-xtensa.c:5833 config/tc-xtensa.c:11830 +#: cgen.c:886 config/tc-arc.c:1250 config/tc-arm.c:1698 config/tc-arm.c:9942 +#: config/tc-arm.c:9994 config/tc-arm.c:10243 config/tc-arm.c:11064 +#: config/tc-arm.c:12190 config/tc-arm.c:12230 config/tc-arm.c:12573 +#: config/tc-arm.c:12614 config/tc-avr.c:1333 config/tc-avr.c:1344 +#: config/tc-avr.c:1607 config/tc-cris.c:4067 config/tc-d10v.c:1507 +#: config/tc-d30v.c:1912 config/tc-mips.c:9070 config/tc-mips.c:10357 +#: config/tc-mips.c:11613 config/tc-mips.c:12272 config/tc-nds32.c:6452 +#: config/tc-ppc.c:6523 config/tc-spu.c:957 config/tc-spu.c:981 +#: config/tc-tilegx.c:1485 config/tc-tilepro.c:1346 config/tc-v850.c:3438 +#: config/tc-vax.c:282 config/tc-xstormy16.c:481 config/tc-xtensa.c:5856 +#: config/tc-xtensa.c:12385 msgid "expression too complex" msgstr "" -#: cgen.c:983 config/tc-arc.c:1310 config/tc-ppc.c:6832 config/tc-ppc.c:7048 -#: config/tc-s390.c:2246 config/tc-v850.c:3487 config/tc-xstormy16.c:537 +#: cgen.c:982 config/tc-arc.c:1311 config/tc-ppc.c:6840 config/tc-ppc.c:7067 +#: config/tc-s390.c:2245 config/tc-v850.c:3490 config/tc-xstormy16.c:535 msgid "unresolved expression that must be resolved" msgstr "" -#: cgen.c:1008 config/tc-xstormy16.c:562 +#: cgen.c:1007 config/tc-xstormy16.c:560 #, c-format msgid "internal error: can't install fix for reloc type %d (`%s')" msgstr "" -#: cgen.c:1061 config/tc-nios2.c:1231 +#: cgen.c:1060 config/tc-nios2.c:1193 msgid "relocation is not supported" msgstr "" -#: cond.c:83 +#: cond.c:82 msgid "invalid identifier for \".ifdef\"" msgstr "" -#: cond.c:150 +#: cond.c:149 msgid "non-constant expression in \".if\" statement" msgstr "" -#: cond.c:277 +#: cond.c:276 msgid "bad format for ifc or ifnc" msgstr "" -#: cond.c:307 +#: cond.c:306 msgid "\".elseif\" without matching \".if\"" msgstr "" -#: cond.c:311 +#: cond.c:310 msgid "\".elseif\" after \".else\"" msgstr "" -#: cond.c:314 cond.c:420 +#: cond.c:313 cond.c:419 msgid "here is the previous \".else\"" msgstr "" -#: cond.c:317 cond.c:423 +#: cond.c:316 cond.c:422 msgid "here is the previous \".if\"" msgstr "" -#: cond.c:346 +#: cond.c:345 msgid "non-constant expression in \".elseif\" statement" msgstr "" -#: cond.c:384 +#: cond.c:383 msgid "\".endif\" without \".if\"" msgstr "" -#: cond.c:413 +#: cond.c:412 msgid "\".else\" without matching \".if\"" msgstr "" -#: cond.c:417 +#: cond.c:416 msgid "duplicate \".else\"" msgstr "" -#: cond.c:468 +#: cond.c:467 msgid ".ifeqs syntax error" msgstr "" -#: cond.c:549 +#: cond.c:548 msgid "end of macro inside conditional" msgstr "" -#: cond.c:551 +#: cond.c:550 msgid "end of file inside conditional" msgstr "" -#: cond.c:554 +#: cond.c:553 msgid "here is the start of the unterminated conditional" msgstr "" -#: cond.c:558 +#: cond.c:557 msgid "here is the \"else\" of the unterminated conditional" msgstr "" -#: config/atof-ieee.c:141 +#: config/atof-ieee.c:140 msgid "cannot create floating-point number" msgstr "" -#: config/atof-ieee.c:288 +#: config/atof-ieee.c:287 msgid "NaNs are not supported by this target\n" msgstr "" -#: config/atof-ieee.c:327 config/atof-ieee.c:368 +#: config/atof-ieee.c:326 config/atof-ieee.c:367 msgid "Infinities are not supported by this target\n" msgstr "" -#: config/atof-ieee.c:784 config/atof-vax.c:450 config/tc-arm.c:1070 -#: config/tc-ia64.c:11651 config/tc-tic30.c:1259 config/tc-tic4x.c:2592 +#: config/atof-ieee.c:783 config/atof-vax.c:449 config/tc-arm.c:1085 +#: config/tc-ia64.c:11652 config/tc-tic30.c:1258 config/tc-tic4x.c:2590 msgid "Unrecognized or unsupported floating point constant" msgstr "" -#: config/obj-aout.c:84 +#: config/obj-aout.c:81 #, c-format msgid "Attempt to put a common symbol into set %s" msgstr "" -#: config/obj-aout.c:88 +#: config/obj-aout.c:85 #, c-format msgid "Attempt to put an undefined symbol into set %s" msgstr "" -#: config/obj-aout.c:115 config/obj-coff.c:1401 +#: config/obj-aout.c:112 config/obj-coff.c:1398 #, c-format msgid "Symbol `%s' can not be both weak and common" msgstr "" -#: config/obj-coff.c:141 dw2gencfi.c:214 +#: config/obj-coff.c:138 dw2gencfi.c:213 #, c-format msgid "Inserting \"%s\" into structure table failed: %s" msgstr "" -#: config/obj-coff.c:220 config/obj-coff.c:1705 config/tc-ppc.c:5519 -#: config/tc-tic54x.c:4008 read.c:2896 +#: config/obj-coff.c:217 config/obj-coff.c:1702 config/tc-ppc.c:5527 +#: config/tc-tic54x.c:4007 read.c:2900 #, c-format msgid "error setting flags for \"%s\": %s" msgstr "" #. Zero is used as an end marker in the file. -#: config/obj-coff.c:439 +#: config/obj-coff.c:436 msgid "Line numbers must be positive integers\n" msgstr "" -#: config/obj-coff.c:471 +#: config/obj-coff.c:468 msgid ".ln pseudo-op inside .def/.endef: ignored." msgstr "" -#: config/obj-coff.c:513 ecoff.c:3249 +#: config/obj-coff.c:510 ecoff.c:3247 msgid ".loc outside of .text" msgstr "" -#: config/obj-coff.c:520 +#: config/obj-coff.c:517 msgid ".loc pseudo-op inside .def/.endef: ignored." msgstr "" -#: config/obj-coff.c:601 +#: config/obj-coff.c:598 msgid ".def pseudo-op used inside of .def/.endef: ignored." msgstr "" -#: config/obj-coff.c:637 +#: config/obj-coff.c:634 msgid ".endef pseudo-op used outside of .def/.endef: ignored." msgstr "" -#: config/obj-coff.c:676 +#: config/obj-coff.c:673 #, c-format msgid "`%s' symbol without preceding function" msgstr "" -#: config/obj-coff.c:763 +#: config/obj-coff.c:760 #, c-format msgid "unexpected storage class %d" msgstr "" -#: config/obj-coff.c:871 +#: config/obj-coff.c:868 msgid ".dim pseudo-op used outside of .def/.endef: ignored." msgstr "" -#: config/obj-coff.c:891 +#: config/obj-coff.c:888 msgid "badly formed .dim directive ignored" msgstr "" -#: config/obj-coff.c:940 +#: config/obj-coff.c:937 msgid ".size pseudo-op used outside of .def/.endef ignored." msgstr "" -#: config/obj-coff.c:955 +#: config/obj-coff.c:952 msgid ".scl pseudo-op used outside of .def/.endef ignored." msgstr "" -#: config/obj-coff.c:972 +#: config/obj-coff.c:969 msgid ".tag pseudo-op used outside of .def/.endef ignored." msgstr "" -#: config/obj-coff.c:990 +#: config/obj-coff.c:987 #, c-format msgid "tag not found for .tag %s" msgstr "" -#: config/obj-coff.c:1003 +#: config/obj-coff.c:1000 msgid ".type pseudo-op used outside of .def/.endef ignored." msgstr "" -#: config/obj-coff.c:1022 +#: config/obj-coff.c:1019 msgid ".val pseudo-op used outside of .def/.endef ignored." msgstr "" -#: config/obj-coff.c:1179 +#: config/obj-coff.c:1176 msgid "badly formed .weak directive ignored" msgstr "" -#: config/obj-coff.c:1357 +#: config/obj-coff.c:1354 msgid "mismatched .eb" msgstr "" -#: config/obj-coff.c:1380 +#: config/obj-coff.c:1377 #, c-format msgid "C_EFCN symbol for %s out of scope" msgstr "" -#: config/obj-coff.c:1434 +#: config/obj-coff.c:1431 #, c-format msgid "Warning: internal error: forgetting to set endndx of %s" msgstr "" @@ -741,240 +767,240 @@ msgstr "" #. STYP_INFO #. STYP_LIB #. STYP_OVER -#: config/obj-coff.c:1670 +#: config/obj-coff.c:1667 #, c-format msgid "unsupported section attribute '%c'" msgstr "" -#: config/obj-coff.c:1674 config/tc-ppc.c:5501 +#: config/obj-coff.c:1671 config/tc-ppc.c:5509 #, c-format msgid "unknown section attribute '%c'" msgstr "" -#: config/obj-coff.c:1717 config/obj-macho.c:276 +#: config/obj-coff.c:1714 config/obj-macho.c:276 #, c-format msgid "Ignoring changed section attributes for %s" msgstr "" -#: config/obj-coff.c:1857 +#: config/obj-coff.c:1854 #, c-format msgid "0x%lx: \"%s\" type = %ld, class = %d, segment = %d\n" msgstr "" -#: config/obj-ecoff.c:125 +#: config/obj-ecoff.c:124 msgid "Can't set GP value" msgstr "" -#: config/obj-ecoff.c:132 +#: config/obj-ecoff.c:131 msgid "Can't set register masks" msgstr "" -#: config/obj-elf.c:342 config/tc-sparc.c:4193 config/tc-v850.c:512 +#: config/obj-elf.c:340 config/tc-sparc.c:4276 config/tc-v850.c:509 #, c-format msgid "bad .common segment %s" msgstr "" -#: config/obj-elf.c:419 +#: config/obj-elf.c:417 msgid "Missing symbol name in directive" msgstr "" -#: config/obj-elf.c:625 +#: config/obj-elf.c:623 #, c-format msgid "setting incorrect section type for %s" msgstr "" -#: config/obj-elf.c:630 +#: config/obj-elf.c:628 #, c-format msgid "ignoring incorrect section type for %s" msgstr "" -#: config/obj-elf.c:680 +#: config/obj-elf.c:678 #, c-format msgid "setting incorrect section attributes for %s" msgstr "" -#: config/obj-elf.c:735 +#: config/obj-elf.c:733 #, c-format msgid "ignoring changed section type for %s" msgstr "" -#: config/obj-elf.c:747 +#: config/obj-elf.c:745 #, c-format msgid "ignoring changed section attributes for %s" msgstr "" -#: config/obj-elf.c:749 +#: config/obj-elf.c:747 #, c-format msgid "ignoring changed section entity size for %s" msgstr "" -#: config/obj-elf.c:809 +#: config/obj-elf.c:807 msgid "unrecognized .section attribute: want a,e,w,x,M,S,G,T" msgstr "" -#: config/obj-elf.c:851 read.c:2880 +#: config/obj-elf.c:849 read.c:2884 msgid "unrecognized section type" msgstr "" -#: config/obj-elf.c:883 +#: config/obj-elf.c:881 msgid "unrecognized section attribute" msgstr "" -#: config/obj-elf.c:914 config/tc-alpha.c:4208 +#: config/obj-elf.c:912 config/tc-alpha.c:4206 msgid "missing name" msgstr "" -#: config/obj-elf.c:1045 +#: config/obj-elf.c:1043 msgid "invalid merge entity size" msgstr "" -#: config/obj-elf.c:1052 +#: config/obj-elf.c:1050 msgid "entity size for SHF_MERGE not specified" msgstr "" -#: config/obj-elf.c:1058 +#: config/obj-elf.c:1056 msgid "? section flag ignored with G present" msgstr "" -#: config/obj-elf.c:1082 +#: config/obj-elf.c:1080 msgid "group name for SHF_GROUP not specified" msgstr "" -#: config/obj-elf.c:1105 +#: config/obj-elf.c:1103 msgid "character following name is not '#'" msgstr "" -#: config/obj-elf.c:1224 +#: config/obj-elf.c:1222 msgid ".previous without corresponding .section; ignored" msgstr "" -#: config/obj-elf.c:1250 +#: config/obj-elf.c:1248 msgid ".popsection without corresponding .pushsection; ignored" msgstr "" -#: config/obj-elf.c:1296 +#: config/obj-elf.c:1294 msgid "expected comma after name in .symver" msgstr "" -#: config/obj-elf.c:1320 +#: config/obj-elf.c:1318 #, c-format msgid "missing version name in `%s' for symbol `%s'" msgstr "" -#: config/obj-elf.c:1331 +#: config/obj-elf.c:1329 #, c-format msgid "multiple versions [`%s'|`%s'] for symbol `%s'" msgstr "" -#: config/obj-elf.c:1368 +#: config/obj-elf.c:1366 #, c-format msgid "expected `%s' to have already been set for .vtable_inherit" msgstr "" -#: config/obj-elf.c:1378 +#: config/obj-elf.c:1376 msgid "expected comma after name in .vtable_inherit" msgstr "" -#: config/obj-elf.c:1431 +#: config/obj-elf.c:1429 msgid "expected comma after name in .vtable_entry" msgstr "" -#: config/obj-elf.c:1507 +#: config/obj-elf.c:1561 #, c-format msgid "Attribute name not recognised: %s" msgstr "" -#: config/obj-elf.c:1522 +#: config/obj-elf.c:1576 msgid "expected numeric constant" msgstr "" -#: config/obj-elf.c:1531 config/tc-arm.c:6097 +#: config/obj-elf.c:1585 config/tc-arm.c:6390 msgid "expected comma" msgstr "" -#: config/obj-elf.c:1563 +#: config/obj-elf.c:1618 msgid "bad string constant" msgstr "" -#: config/obj-elf.c:1567 +#: config/obj-elf.c:1622 msgid "expected , " msgstr "" -#: config/obj-elf.c:1686 +#: config/obj-elf.c:1741 msgid "expected quoted string" msgstr "" -#: config/obj-elf.c:1706 +#: config/obj-elf.c:1761 #, c-format msgid "expected comma after name `%s' in .size directive" msgstr "" -#: config/obj-elf.c:1715 +#: config/obj-elf.c:1770 msgid "missing expression in .size directive" msgstr "" -#: config/obj-elf.c:1839 +#: config/obj-elf.c:1894 #, c-format msgid "symbol '%s' is already defined" msgstr "" -#: config/obj-elf.c:1860 +#: config/obj-elf.c:1915 #, c-format msgid "symbol type \"%s\" is supported only by GNU and FreeBSD targets" msgstr "" -#: config/obj-elf.c:1872 +#: config/obj-elf.c:1927 #, c-format msgid "symbol type \"%s\" is supported only by GNU targets" msgstr "" -#: config/obj-elf.c:1883 +#: config/obj-elf.c:1938 #, c-format msgid "unrecognized symbol type \"%s\"" msgstr "" -#: config/obj-elf.c:2053 config/obj-elf.c:2056 +#: config/obj-elf.c:2108 config/obj-elf.c:2111 #, c-format msgid ".size expression for %s does not evaluate to a constant" msgstr "" -#: config/obj-elf.c:2088 +#: config/obj-elf.c:2145 #, c-format msgid "" "invalid attempt to declare external version name as default in symbol `%s'" msgstr "" -#: config/obj-elf.c:2149 ecoff.c:3607 +#: config/obj-elf.c:2207 ecoff.c:3605 #, c-format msgid "symbol `%s' can not be both weak and common" msgstr "" -#: config/obj-elf.c:2266 +#: config/obj-elf.c:2324 #, c-format msgid "assuming all members of group `%s' are COMDAT" msgstr "" -#: config/obj-elf.c:2278 +#: config/obj-elf.c:2336 #, c-format msgid "can't create group: %s" msgstr "" -#: config/obj-elf.c:2417 +#: config/obj-elf.c:2474 #, c-format msgid "failed to set up debugging information: %s" msgstr "" -#: config/obj-elf.c:2437 +#: config/obj-elf.c:2494 #, c-format msgid "can't start writing .mdebug section: %s" msgstr "" -#: config/obj-elf.c:2445 +#: config/obj-elf.c:2502 #, c-format msgid "could not write .mdebug section: %s" msgstr "" -#: config/obj-evax.c:130 +#: config/obj-evax.c:129 #, c-format msgid "no entry symbol for global function '%s'" msgstr "" @@ -1018,31 +1044,31 @@ msgstr "" msgid "missing sizeof_stub expression" msgstr "" -#: config/obj-macho.c:486 config/tc-ia64.c:1093 config/tc-ia64.c:11814 -#: config/tc-score.c:6105 read.c:1669 +#: config/obj-macho.c:486 config/tc-ia64.c:1093 config/tc-ia64.c:11815 +#: config/tc-score.c:6105 read.c:1673 msgid "expected symbol name" msgstr "" -#: config/obj-macho.c:499 read.c:490 +#: config/obj-macho.c:499 read.c:493 msgid "bad or irreducible absolute expression" msgstr "" -#: config/obj-macho.c:505 config/tc-score.c:6122 read.c:1707 +#: config/obj-macho.c:505 config/tc-score.c:6122 read.c:1711 msgid "missing size expression" msgstr "" -#: config/obj-macho.c:514 config/tc-ia64.c:1128 read.c:1713 +#: config/obj-macho.c:514 config/tc-ia64.c:1128 read.c:1717 #, c-format msgid "size (%ld) out of range, ignored" msgstr "" -#: config/obj-macho.c:524 config/tc-score.c:6266 ecoff.c:3364 read.c:1725 -#: read.c:1831 read.c:2568 read.c:3198 read.c:3560 symbols.c:341 symbols.c:437 +#: config/obj-macho.c:524 config/tc-score.c:6266 ecoff.c:3362 read.c:1729 +#: read.c:1835 read.c:2572 read.c:3202 read.c:3564 symbols.c:339 symbols.c:435 #, c-format msgid "symbol `%s' is already defined" msgstr "" -#: config/obj-macho.c:534 read.c:1740 +#: config/obj-macho.c:534 read.c:1744 #, c-format msgid "size of \"%s\" is already %ld; not changing to %ld" msgstr "" @@ -1079,1243 +1105,1243 @@ msgstr "" msgid "failed to set subsections by symbols" msgstr "" -#: config/obj-macho.c:1041 +#: config/obj-macho.c:1040 #, c-format msgid "'%s' previously declared as '%s'." msgstr "" -#: config/obj-macho.c:1092 config/obj-macho.c:1412 config/obj-macho.c:1494 +#: config/obj-macho.c:1092 config/obj-macho.c:1414 config/obj-macho.c:1498 #, c-format msgid "" "'%s' can't be a weak_definition (currently only supported in sections of " "type coalesced)" msgstr "" -#: config/obj-macho.c:1177 +#: config/obj-macho.c:1178 msgid "use of .indirect_symbols requires `-dynamic'" msgstr "" -#: config/obj-macho.c:1194 +#: config/obj-macho.c:1195 #, c-format msgid "" "attempt to add an indirect_symbol to a stub or reference section with a zero-" "sized element at %s" msgstr "" -#: config/obj-macho.c:1225 +#: config/obj-macho.c:1226 msgid "an .indirect_symbol must be in a symbol pointer or stub section." msgstr "" -#: config/obj-macho.c:1491 +#: config/obj-macho.c:1495 #, c-format msgid "'%s' can't be a weak_definition (since it is undefined)" msgstr "" -#: config/obj-macho.c:1497 +#: config/obj-macho.c:1501 #, c-format msgid "Non-global symbol: '%s' can't be a weak_definition." msgstr "" -#: config/obj-macho.c:1503 +#: config/obj-macho.c:1507 #, c-format msgid "internal error: [%s] unexpected code [%lx] in frob symbol" msgstr "" -#: config/obj-macho.c:1544 +#: config/obj-macho.c:1548 #, c-format msgid "unrecognized stab type '%c'" msgstr "" -#: config/obj-macho.c:1595 +#: config/obj-macho.c:1599 #, c-format msgid "`%s' can't be undefined in `%s' - `%s' {%s section}" msgstr "" -#: config/obj-macho.c:1603 +#: config/obj-macho.c:1607 #, c-format msgid "`%s' can't be undefined in `%s' {%s section} - `%s'" msgstr "" -#: config/obj-macho.c:1610 +#: config/obj-macho.c:1614 #, c-format msgid "`%s' and `%s' can't be undefined in `%s' - `%s'" msgstr "" -#: config/obj-macho.c:1812 +#: config/obj-macho.c:1816 #, c-format msgid "" "the number of .indirect_symbols defined in section %s does not match the " "number expected (%d defined, %d expected)" msgstr "" -#: config/obj-macho.c:1825 +#: config/obj-macho.c:1829 #, c-format msgid "internal error: failed to allocate %d indirectsymbol pointers" msgstr "" -#: config/obj-som.c:58 +#: config/obj-som.c:56 msgid "Only one .compiler pseudo-op per file!" msgstr "" -#: config/obj-som.c:75 config/obj-som.c:146 config/obj-som.c:188 +#: config/obj-som.c:73 config/obj-som.c:144 config/obj-som.c:186 msgid "Expected quoted string" msgstr "" -#: config/obj-som.c:88 +#: config/obj-som.c:86 msgid ".compiler directive missing language and version" msgstr "" -#: config/obj-som.c:98 +#: config/obj-som.c:96 msgid ".compiler directive missing version" msgstr "" -#: config/obj-som.c:114 +#: config/obj-som.c:112 #, c-format msgid "FATAL: Attaching compiler header %s" msgstr "" -#: config/obj-som.c:129 +#: config/obj-som.c:127 msgid "Only one .version pseudo-op per file!" msgstr "" -#: config/obj-som.c:153 +#: config/obj-som.c:151 #, c-format msgid "attaching version header %s: %s" msgstr "" -#: config/obj-som.c:171 +#: config/obj-som.c:169 msgid "Only one .copyright pseudo-op per file!" msgstr "" -#: config/obj-som.c:195 +#: config/obj-som.c:193 #, c-format msgid "attaching copyright header %s: %s" msgstr "" -#: config/tc-aarch64.c:353 +#: config/tc-aarch64.c:354 msgid "integer 32-bit register expected" msgstr "" -#: config/tc-aarch64.c:356 +#: config/tc-aarch64.c:357 msgid "integer 64-bit register expected" msgstr "" -#: config/tc-aarch64.c:359 +#: config/tc-aarch64.c:360 msgid "integer register expected" msgstr "" -#: config/tc-aarch64.c:362 +#: config/tc-aarch64.c:363 msgid "integer, zero or SP register expected" msgstr "" -#: config/tc-aarch64.c:365 +#: config/tc-aarch64.c:366 msgid "8-bit SIMD scalar register expected" msgstr "" -#: config/tc-aarch64.c:368 +#: config/tc-aarch64.c:369 msgid "16-bit SIMD scalar or floating-point half precision register expected" msgstr "" -#: config/tc-aarch64.c:372 +#: config/tc-aarch64.c:373 msgid "32-bit SIMD scalar or floating-point single precision register expected" msgstr "" -#: config/tc-aarch64.c:376 +#: config/tc-aarch64.c:377 msgid "64-bit SIMD scalar or floating-point double precision register expected" msgstr "" -#: config/tc-aarch64.c:380 +#: config/tc-aarch64.c:381 msgid "128-bit SIMD scalar or floating-point quad precision register expected" msgstr "" -#: config/tc-aarch64.c:384 +#: config/tc-aarch64.c:385 msgid "C0 - C15 expected" msgstr "" -#: config/tc-aarch64.c:387 config/tc-arm.c:4119 +#: config/tc-aarch64.c:388 config/tc-arm.c:4365 msgid "register expected" msgstr "" #. any [BHSDQ]P FP -#: config/tc-aarch64.c:390 +#: config/tc-aarch64.c:391 msgid "SIMD scalar or floating-point register expected" msgstr "" #. any V reg -#: config/tc-aarch64.c:393 +#: config/tc-aarch64.c:394 msgid "vector register expected" msgstr "" -#: config/tc-aarch64.c:396 +#: config/tc-aarch64.c:397 #, c-format msgid "invalid register type %d" msgstr "" #. Define some common error messages. -#: config/tc-aarch64.c:408 +#: config/tc-aarch64.c:409 msgid "SP not allowed here" msgstr "" -#: config/tc-aarch64.c:551 config/tc-aarch64.c:553 config/tc-arm.c:979 -#: config/tc-score.c:6515 expr.c:1363 read.c:2550 +#: config/tc-aarch64.c:559 config/tc-aarch64.c:561 config/tc-arm.c:994 +#: config/tc-score.c:6515 expr.c:1361 read.c:2554 msgid "bad expression" msgstr "" -#: config/tc-aarch64.c:563 config/tc-arm.c:990 config/tc-i860.c:1004 -#: config/tc-sparc.c:3096 +#: config/tc-aarch64.c:571 config/tc-arm.c:1005 config/tc-i860.c:1003 +#: config/tc-sparc.c:3179 msgid "bad segment" msgstr "" -#: config/tc-aarch64.c:774 +#: config/tc-aarch64.c:782 #, c-format msgid "bad size %d in vector width specifier" msgstr "" -#: config/tc-aarch64.c:807 +#: config/tc-aarch64.c:815 #, c-format msgid "unexpected character `%c' in element size" msgstr "" -#: config/tc-aarch64.c:809 +#: config/tc-aarch64.c:817 msgid "missing element size" msgstr "" -#: config/tc-aarch64.c:815 +#: config/tc-aarch64.c:823 #, c-format msgid "invalid element size %d and vector size combination %c" msgstr "" -#: config/tc-aarch64.c:842 config/tc-arm.c:1375 +#: config/tc-aarch64.c:850 config/tc-arm.c:1390 msgid "vector type expected" msgstr "" -#: config/tc-aarch64.c:923 +#: config/tc-aarch64.c:931 msgid "this type of register can't be indexed" msgstr "" -#: config/tc-aarch64.c:929 +#: config/tc-aarch64.c:937 msgid "index not allowed inside register list" msgstr "" -#: config/tc-aarch64.c:939 config/tc-aarch64.c:1839 config/tc-aarch64.c:1993 -#: config/tc-arm.c:1480 config/tc-arm.c:3400 config/tc-arm.c:4499 +#: config/tc-aarch64.c:947 config/tc-aarch64.c:1877 config/tc-aarch64.c:2031 +#: config/tc-arm.c:1495 config/tc-arm.c:3646 config/tc-arm.c:4761 msgid "constant expression required" msgstr "" #. Indexed vector register expected. -#: config/tc-aarch64.c:951 +#: config/tc-aarch64.c:959 msgid "indexed vector register expected" msgstr "" -#: config/tc-aarch64.c:958 +#: config/tc-aarch64.c:966 msgid "invalid use of vector register" msgstr "" -#: config/tc-aarch64.c:1048 config/tc-arm.c:1744 +#: config/tc-aarch64.c:1056 config/tc-arm.c:1759 msgid "expecting {" msgstr "" -#: config/tc-aarch64.c:1073 +#: config/tc-aarch64.c:1081 msgid "invalid vector register in list" msgstr "" -#: config/tc-aarch64.c:1080 +#: config/tc-aarch64.c:1088 msgid "invalid scalar register in list" msgstr "" -#: config/tc-aarch64.c:1093 +#: config/tc-aarch64.c:1101 msgid "invalid range in vector register list" msgstr "" -#: config/tc-aarch64.c:1106 +#: config/tc-aarch64.c:1114 msgid "type mismatch in vector register list" msgstr "" -#: config/tc-aarch64.c:1123 +#: config/tc-aarch64.c:1131 msgid "end of vector register list not found" msgstr "" -#: config/tc-aarch64.c:1139 +#: config/tc-aarch64.c:1147 msgid "constant expression required." msgstr "" -#: config/tc-aarch64.c:1149 +#: config/tc-aarch64.c:1157 msgid "expected index" msgstr "" -#: config/tc-aarch64.c:1156 +#: config/tc-aarch64.c:1164 msgid "too many registers in vector register list" msgstr "" -#: config/tc-aarch64.c:1161 +#: config/tc-aarch64.c:1169 msgid "empty vector register list" msgstr "" -#: config/tc-aarch64.c:1183 config/tc-arm.c:2126 +#: config/tc-aarch64.c:1191 config/tc-arm.c:2141 #, c-format msgid "ignoring attempt to redefine built-in register '%s'" msgstr "" -#: config/tc-aarch64.c:1189 config/tc-arm.c:2131 +#: config/tc-aarch64.c:1197 config/tc-arm.c:2146 #, c-format msgid "ignoring redefinition of register alias '%s'" msgstr "" -#: config/tc-aarch64.c:1235 config/tc-arm.c:2198 +#: config/tc-aarch64.c:1243 config/tc-arm.c:2213 #, c-format msgid "unknown register '%s' -- .req ignored" msgstr "" -#: config/tc-aarch64.c:1291 config/tc-arm.c:2405 +#: config/tc-aarch64.c:1299 config/tc-arm.c:2420 msgid "invalid syntax for .req directive" msgstr "" -#: config/tc-aarch64.c:1316 config/tc-arm.c:2443 +#: config/tc-aarch64.c:1324 config/tc-arm.c:2458 msgid "invalid syntax for .unreq directive" msgstr "" -#: config/tc-aarch64.c:1322 config/tc-arm.c:2450 +#: config/tc-aarch64.c:1330 config/tc-arm.c:2465 #, c-format msgid "unknown register alias '%s'" msgstr "" -#: config/tc-aarch64.c:1324 +#: config/tc-aarch64.c:1332 #, c-format msgid "ignoring attempt to undefine built-in register '%s'" msgstr "" -#: config/tc-aarch64.c:1639 config/tc-arm.c:3108 +#: config/tc-aarch64.c:1649 config/tc-arm.c:3263 config/tc-arm.c:3290 +#: config/tc-arm.c:3302 msgid "literal pool overflow" msgstr "" -#: config/tc-aarch64.c:1792 config/tc-aarch64.c:5020 config/tc-arm.c:3278 -#: config/tc-arm.c:6585 +#: config/tc-aarch64.c:1830 config/tc-aarch64.c:5055 config/tc-arm.c:3523 +#: config/tc-arm.c:6896 msgid "unrecognized relocation suffix" msgstr "" -#: config/tc-aarch64.c:1794 +#: config/tc-aarch64.c:1832 msgid "unimplemented relocation suffix" msgstr "" -#: config/tc-aarch64.c:1962 config/tc-aarch64.c:2196 +#: config/tc-aarch64.c:2000 config/tc-aarch64.c:2234 msgid "immediate operand required" msgstr "" -#: config/tc-aarch64.c:1970 +#: config/tc-aarch64.c:2008 msgid "missing immediate expression" msgstr "" -#: config/tc-aarch64.c:2176 config/tc-aarch64.c:4871 +#: config/tc-aarch64.c:2214 config/tc-aarch64.c:4906 msgid "invalid floating-point constant" msgstr "" -#: config/tc-aarch64.c:2548 config/tc-arm.c:4794 config/tc-arm.c:4803 +#: config/tc-aarch64.c:2586 config/tc-arm.c:5084 config/tc-arm.c:5093 msgid "shift expression expected" msgstr "" -#: config/tc-aarch64.c:2556 +#: config/tc-aarch64.c:2594 msgid "shift operator expected" msgstr "" -#: config/tc-aarch64.c:2564 +#: config/tc-aarch64.c:2602 msgid "invalid use of 'MSL'" msgstr "" -#: config/tc-aarch64.c:2573 +#: config/tc-aarch64.c:2611 msgid "extending shift is not permitted" msgstr "" -#: config/tc-aarch64.c:2581 +#: config/tc-aarch64.c:2619 msgid "'ROR' shift is not permitted" msgstr "" -#: config/tc-aarch64.c:2589 +#: config/tc-aarch64.c:2627 msgid "only 'LSL' shift is permitted" msgstr "" -#: config/tc-aarch64.c:2599 +#: config/tc-aarch64.c:2637 msgid "invalid shift for the register offset addressing mode" msgstr "" -#: config/tc-aarch64.c:2607 +#: config/tc-aarch64.c:2645 msgid "invalid shift operator" msgstr "" -#: config/tc-aarch64.c:2636 +#: config/tc-aarch64.c:2674 msgid "missing shift amount" msgstr "" -#: config/tc-aarch64.c:2643 +#: config/tc-aarch64.c:2681 msgid "constant shift amount required" msgstr "" -#: config/tc-aarch64.c:2648 +#: config/tc-aarch64.c:2686 msgid "shift amount out of range 0 to 63" msgstr "" -#: config/tc-aarch64.c:2697 +#: config/tc-aarch64.c:2735 msgid "unexpected shift operator" msgstr "" -#: config/tc-aarch64.c:2733 +#: config/tc-aarch64.c:2771 msgid "unexpected register in the immediate operand" msgstr "" -#: config/tc-aarch64.c:2758 +#: config/tc-aarch64.c:2796 msgid "integer register expected in the extended/shifted operand register" msgstr "" -#: config/tc-aarch64.c:2793 config/tc-aarch64.c:2904 config/tc-aarch64.c:3011 -#: config/tc-aarch64.c:3153 config/tc-aarch64.c:3200 +#: config/tc-aarch64.c:2831 config/tc-aarch64.c:2942 config/tc-aarch64.c:3049 +#: config/tc-aarch64.c:3191 config/tc-aarch64.c:3238 msgid "unknown relocation modifier" msgstr "" -#: config/tc-aarch64.c:2800 config/tc-aarch64.c:2911 config/tc-aarch64.c:3018 -#: config/tc-aarch64.c:3160 config/tc-aarch64.c:3207 +#: config/tc-aarch64.c:2838 config/tc-aarch64.c:2949 config/tc-aarch64.c:3056 +#: config/tc-aarch64.c:3198 config/tc-aarch64.c:3245 msgid "this relocation modifier is not allowed on this instruction" msgstr "" -#: config/tc-aarch64.c:2919 config/tc-aarch64.c:3029 +#: config/tc-aarch64.c:2957 config/tc-aarch64.c:3067 msgid "invalid relocation expression" msgstr "" -#: config/tc-aarch64.c:2937 +#: config/tc-aarch64.c:2975 msgid "invalid address" msgstr "" -#: config/tc-aarch64.c:2989 +#: config/tc-aarch64.c:3027 msgid "invalid use of 32-bit register offset" msgstr "" -#: config/tc-aarch64.c:2995 +#: config/tc-aarch64.c:3033 msgid "invalid use of 64-bit register offset" msgstr "" #. [Xn],#expr -#: config/tc-aarch64.c:3040 config/tc-aarch64.c:3092 +#: config/tc-aarch64.c:3078 config/tc-aarch64.c:3130 msgid "invalid expression in the address" msgstr "" -#: config/tc-aarch64.c:3049 config/tc-arm.c:5306 config/tc-arm.c:5876 +#: config/tc-aarch64.c:3087 config/tc-arm.c:5598 config/tc-arm.c:6168 msgid "']' expected" msgstr "" -#: config/tc-aarch64.c:3057 +#: config/tc-aarch64.c:3095 msgid "register offset not allowed in pre-indexed addressing mode" msgstr "" -#: config/tc-aarch64.c:3072 config/tc-arm.c:5342 +#: config/tc-aarch64.c:3110 config/tc-arm.c:5634 msgid "cannot combine pre- and post-indexing" msgstr "" -#: config/tc-aarch64.c:3083 +#: config/tc-aarch64.c:3121 msgid "invalid 32-bit register offset" msgstr "" #. Reject [Rn]! -#: config/tc-aarch64.c:3104 +#: config/tc-aarch64.c:3142 msgid "missing offset in the pre-indexed address" msgstr "" -#: config/tc-aarch64.c:3318 +#: config/tc-aarch64.c:3350 #, c-format msgid "" "system register name '%s' is deprecated and may be removed in a future " "release" msgstr "" -#: config/tc-aarch64.c:3390 +#: config/tc-aarch64.c:3422 msgid "immediate value out of range " msgstr "" -#: config/tc-aarch64.c:3898 +#: config/tc-aarch64.c:3930 #, c-format msgid "Info: " msgstr "" -#: config/tc-aarch64.c:3932 config/tc-score.c:2750 config/tc-score.c:6504 +#: config/tc-aarch64.c:3963 config/tc-score.c:2750 config/tc-score.c:6504 #, c-format msgid "%s -- `%s'" msgstr "" -#: config/tc-aarch64.c:3934 +#: config/tc-aarch64.c:3965 #, c-format msgid "%s at operand %d -- `%s'" msgstr "" -#: config/tc-aarch64.c:3938 +#: config/tc-aarch64.c:3971 #, c-format msgid "operand %d should be %s -- `%s'" msgstr "" -#: config/tc-aarch64.c:3943 +#: config/tc-aarch64.c:3977 #, c-format msgid "operand mismatch -- `%s'" msgstr "" #. Print the hint. -#: config/tc-aarch64.c:4004 +#: config/tc-aarch64.c:4038 msgid " did you mean this?" msgstr "" -#: config/tc-aarch64.c:4007 config/tc-aarch64.c:4034 +#: config/tc-aarch64.c:4041 config/tc-aarch64.c:4068 #, c-format msgid " %s" msgstr "" -#: config/tc-aarch64.c:4012 +#: config/tc-aarch64.c:4046 msgid " other valid variant(s):" msgstr "" -#: config/tc-aarch64.c:4042 +#: config/tc-aarch64.c:4076 #, c-format msgid "%s out of range %d to %d at operand %d -- `%s'" msgstr "" -#: config/tc-aarch64.c:4043 config/tc-aarch64.c:4047 config/tc-aarch64.c:5353 +#: config/tc-aarch64.c:4077 config/tc-aarch64.c:4081 config/tc-aarch64.c:5410 msgid "immediate value" msgstr "" -#: config/tc-aarch64.c:4046 +#: config/tc-aarch64.c:4080 #, c-format msgid "%s expected to be %d at operand %d -- `%s'" msgstr "" -#: config/tc-aarch64.c:4053 +#: config/tc-aarch64.c:4087 #, c-format msgid "" "invalid number of registers in the list; only 1 register is expected at " "operand %d -- `%s'" msgstr "" -#: config/tc-aarch64.c:4057 +#: config/tc-aarch64.c:4091 #, c-format msgid "" "invalid number of registers in the list; %d registers are expected at " "operand %d -- `%s'" msgstr "" -#: config/tc-aarch64.c:4063 +#: config/tc-aarch64.c:4097 #, c-format msgid "immediate value should be a multiple of %d at operand %d -- `%s'" msgstr "" -#: config/tc-aarch64.c:4314 +#: config/tc-aarch64.c:4348 msgid "bad vector arrangement type" msgstr "" -#: config/tc-aarch64.c:4420 +#: config/tc-aarch64.c:4454 msgid "the specified relocation type is not allowed for MOVK" msgstr "" -#: config/tc-aarch64.c:4449 config/tc-aarch64.c:4459 +#: config/tc-aarch64.c:4483 config/tc-aarch64.c:4493 msgid "the specified relocation type is not allowed for 32-bit register" msgstr "" -#: config/tc-aarch64.c:4594 +#: config/tc-aarch64.c:4628 msgid "comma expected between operands" msgstr "" -#: config/tc-aarch64.c:4687 +#: config/tc-aarch64.c:4722 msgid "the top half of a 128-bit FP/SIMD register is expected" msgstr "" -#: config/tc-aarch64.c:4725 config/tc-arm.c:1813 config/tc-arm.c:1858 +#: config/tc-aarch64.c:4760 config/tc-arm.c:1828 config/tc-arm.c:1873 #: config/tc-h8300.c:1043 msgid "invalid register list" msgstr "" -#: config/tc-aarch64.c:4790 config/tc-aarch64.c:4811 +#: config/tc-aarch64.c:4825 config/tc-aarch64.c:4846 msgid "immediate zero expected" msgstr "" -#: config/tc-aarch64.c:4885 +#: config/tc-aarch64.c:4920 msgid "shift not allowed for bitmask immediate" msgstr "" -#: config/tc-aarch64.c:4939 +#: config/tc-aarch64.c:4974 msgid "can't mix relocation modifier with explicit shift" msgstr "" -#: config/tc-aarch64.c:4982 +#: config/tc-aarch64.c:5017 msgid "invalid condition" msgstr "" -#: config/tc-aarch64.c:5007 +#: config/tc-aarch64.c:5042 msgid "invalid pc-relative address" msgstr "" #. Only permit "=value" in the literal load instructions. #. The literal will be generated by programmer_friendly_fixup. -#: config/tc-aarch64.c:5015 +#: config/tc-aarch64.c:5050 msgid "invalid use of \"=immediate\"" msgstr "" -#: config/tc-aarch64.c:5081 +#: config/tc-aarch64.c:5116 msgid "the optional immediate offset can only be 0" msgstr "" -#: config/tc-aarch64.c:5096 config/tc-aarch64.c:5114 config/tc-aarch64.c:5131 -#: config/tc-aarch64.c:5150 config/tc-aarch64.c:5165 +#: config/tc-aarch64.c:5131 config/tc-aarch64.c:5149 config/tc-aarch64.c:5166 +#: config/tc-aarch64.c:5185 config/tc-aarch64.c:5200 msgid "invalid addressing mode" msgstr "" -#: config/tc-aarch64.c:5136 +#: config/tc-aarch64.c:5171 msgid "relocation not allowed" msgstr "" -#: config/tc-aarch64.c:5175 +#: config/tc-aarch64.c:5210 msgid "writeback value should be an immediate constant" msgstr "" -#: config/tc-aarch64.c:5186 +#: config/tc-aarch64.c:5221 msgid "unknown or missing system register name" msgstr "" -#: config/tc-aarch64.c:5196 +#: config/tc-aarch64.c:5231 msgid "unknown or missing PSTATE field name" msgstr "" -#: config/tc-aarch64.c:5220 +#: config/tc-aarch64.c:5255 msgid "unknown or missing operation name" msgstr "" -#: config/tc-aarch64.c:5233 +#: config/tc-aarch64.c:5268 msgid "the specified option is not accepted in ISB" msgstr "" -#: config/tc-aarch64.c:5253 config/tc-aarch64.c:6305 config/tc-arm.c:6800 +#: config/tc-aarch64.c:5288 config/tc-aarch64.c:6346 config/tc-arm.c:7111 #, c-format msgid "unhandled operand code %d" msgstr "" -#: config/tc-aarch64.c:5284 +#: config/tc-aarch64.c:5330 msgid "unexpected comma before the omitted optional operand" msgstr "" -#: config/tc-aarch64.c:5301 +#: config/tc-aarch64.c:5358 msgid "unexpected characters following instruction" msgstr "" -#: config/tc-aarch64.c:5379 config/tc-arm.c:4905 config/tc-arm.c:5441 -#: config/tc-arm.c:7318 +#: config/tc-aarch64.c:5436 config/tc-arm.c:5195 config/tc-arm.c:5733 +#: config/tc-arm.c:7767 msgid "constant expression expected" msgstr "" -#: config/tc-aarch64.c:5386 config/tc-arm.c:7359 +#: config/tc-aarch64.c:5443 msgid "literal pool insertion failed" msgstr "" -#: config/tc-aarch64.c:5504 +#: config/tc-aarch64.c:5561 #, c-format msgid "unknown mnemonic `%s' -- `%s'" msgstr "" -#: config/tc-aarch64.c:5512 +#: config/tc-aarch64.c:5569 #, c-format msgid "unexpected comma after the mnemonic name `%s' -- `%s'" msgstr "" -#: config/tc-aarch64.c:5562 +#: config/tc-aarch64.c:5619 #, c-format msgid "selected processor does not support `%s'" msgstr "" -#: config/tc-aarch64.c:5836 -#, c-format -msgid "alignments greater than %d bytes not supported in .text sections" -msgstr "" - -#: config/tc-aarch64.c:5969 config/tc-arm.c:21185 +#: config/tc-aarch64.c:6010 config/tc-arm.c:21571 msgid "GOT already in the symbol table" msgstr "" -#: config/tc-aarch64.c:6131 +#: config/tc-aarch64.c:6172 msgid "immediate cannot be moved by a single instruction" msgstr "" -#: config/tc-aarch64.c:6174 config/tc-aarch64.c:6219 config/tc-aarch64.c:6245 -#: config/tc-arm.c:14422 config/tc-arm.c:14449 config/tc-arm.c:14993 -#: config/tc-arm.c:15474 config/tc-metag.c:2444 config/tc-metag.c:2453 +#: config/tc-aarch64.c:6215 config/tc-aarch64.c:6260 config/tc-aarch64.c:6286 +#: config/tc-arm.c:14789 config/tc-arm.c:14816 config/tc-arm.c:15360 +#: config/tc-arm.c:15841 config/tc-metag.c:2444 config/tc-metag.c:2453 #: config/tc-metag.c:2492 config/tc-metag.c:2501 config/tc-metag.c:3020 #: config/tc-metag.c:3029 msgid "immediate out of range" msgstr "" -#: config/tc-aarch64.c:6238 config/tc-metag.c:4655 config/tc-xtensa.c:4111 +#: config/tc-aarch64.c:6279 config/tc-metag.c:4655 config/tc-xtensa.c:4133 msgid "invalid immediate" msgstr "" -#: config/tc-aarch64.c:6300 config/tc-tic6x.c:3864 config/tc-tic6x.c:3929 +#: config/tc-aarch64.c:6341 config/tc-tic6x.c:3864 config/tc-tic6x.c:3929 #: config/tc-tic6x.c:3956 config/tc-tic6x.c:3984 msgid "immediate offset out of range" msgstr "" -#: config/tc-aarch64.c:6374 config/tc-arm.c:21523 config/tc-arm.c:21574 -#: config/tc-arm.c:21855 +#: config/tc-aarch64.c:6415 config/tc-arm.c:21909 config/tc-arm.c:21960 +#: config/tc-arm.c:22241 #, c-format msgid "undefined symbol %s used as an immediate value" msgstr "" -#: config/tc-aarch64.c:6386 +#: config/tc-aarch64.c:6427 msgid "pc-relative load offset not word aligned" msgstr "" -#: config/tc-aarch64.c:6389 +#: config/tc-aarch64.c:6430 msgid "pc-relative load offset out of range" msgstr "" -#: config/tc-aarch64.c:6401 +#: config/tc-aarch64.c:6442 msgid "pc-relative address offset out of range" msgstr "" -#: config/tc-aarch64.c:6413 config/tc-aarch64.c:6428 +#: config/tc-aarch64.c:6454 config/tc-aarch64.c:6469 msgid "conditional branch target not word aligned" msgstr "" -#: config/tc-aarch64.c:6416 config/tc-aarch64.c:6431 config/tc-arm.c:22118 +#: config/tc-aarch64.c:6457 config/tc-aarch64.c:6472 config/tc-arm.c:22504 msgid "conditional branch out of range" msgstr "" -#: config/tc-aarch64.c:6444 +#: config/tc-aarch64.c:6485 msgid "branch target not word aligned" msgstr "" -#: config/tc-aarch64.c:6447 config/tc-arm.c:753 config/tc-mips.c:14494 +#: config/tc-aarch64.c:6488 config/tc-arm.c:758 config/tc-mips.c:15081 msgid "branch out of range" msgstr "" -#: config/tc-aarch64.c:6481 config/tc-arm.c:21746 config/tc-arm.c:21761 -#: config/tc-arm.c:21776 config/tc-arm.c:21787 config/tc-arm.c:21810 -#: config/tc-arm.c:22522 config/tc-moxie.c:710 config/tc-pj.c:448 -#: config/tc-sh.c:4291 +#: config/tc-aarch64.c:6522 config/tc-arm.c:22132 config/tc-arm.c:22147 +#: config/tc-arm.c:22162 config/tc-arm.c:22173 config/tc-arm.c:22196 +#: config/tc-arm.c:22903 config/tc-moxie.c:708 config/tc-pj.c:448 +#: config/tc-sh.c:4290 msgid "offset out of range" msgstr "" -#: config/tc-aarch64.c:6494 +#: config/tc-aarch64.c:6535 msgid "unsigned value out of range" msgstr "" -#: config/tc-aarch64.c:6502 +#: config/tc-aarch64.c:6543 msgid "signed value out of range" msgstr "" -#: config/tc-aarch64.c:6610 +#: config/tc-aarch64.c:6655 #, c-format msgid "unexpected %s fixup" msgstr "" -#: config/tc-aarch64.c:6676 config/tc-arm.c:22958 config/tc-arm.c:22979 -#: config/tc-mips.c:16546 config/tc-score.c:7480 +#: config/tc-aarch64.c:6721 config/tc-arm.c:23339 config/tc-arm.c:23360 +#: config/tc-mips.c:17189 config/tc-score.c:7480 #, c-format msgid "cannot represent %s relocation in this object file format" msgstr "" -#: config/tc-aarch64.c:6709 +#: config/tc-aarch64.c:6754 #, c-format msgid "cannot do %u-byte relocation" msgstr "" -#: config/tc-aarch64.c:6967 config/tc-arc.c:212 config/tc-arm.c:23434 +#: config/tc-aarch64.c:7012 config/tc-arc.c:211 config/tc-arm.c:23815 #: config/tc-score.c:6299 config/tc-score.c:6528 config/tc-score.c:6533 msgid "virtual memory exhausted" msgstr "" -#: config/tc-aarch64.c:7114 config/tc-arm.c:23759 +#: config/tc-aarch64.c:7159 config/tc-arm.c:24140 msgid "assemble for big-endian" msgstr "" -#: config/tc-aarch64.c:7115 config/tc-arm.c:23760 +#: config/tc-aarch64.c:7160 config/tc-arm.c:24141 msgid "assemble for little-endian" msgstr "" -#: config/tc-aarch64.c:7118 +#: config/tc-aarch64.c:7163 msgid "temporary switch for dumping" msgstr "" -#: config/tc-aarch64.c:7120 +#: config/tc-aarch64.c:7165 msgid "output verbose error messages" msgstr "" -#: config/tc-aarch64.c:7210 config/tc-arm.c:24261 +#: config/tc-aarch64.c:7167 +msgid "do not output verbose error messages" +msgstr "" + +#: config/tc-aarch64.c:7259 config/tc-arm.c:24644 msgid "invalid architectural extension" msgstr "" -#: config/tc-aarch64.c:7235 config/tc-arm.c:24293 +#: config/tc-aarch64.c:7284 config/tc-arm.c:24676 msgid "must specify extensions to add before specifying those to remove" msgstr "" -#: config/tc-aarch64.c:7243 config/tc-arm.c:24301 +#: config/tc-aarch64.c:7292 config/tc-arm.c:24684 msgid "missing architectural extension" msgstr "" -#: config/tc-aarch64.c:7262 config/tc-arm.c:24338 +#: config/tc-aarch64.c:7311 config/tc-arm.c:24721 #, c-format msgid "unknown architectural extension `%s'" msgstr "" -#: config/tc-aarch64.c:7286 config/tc-arm.c:24372 config/tc-metag.c:5833 +#: config/tc-aarch64.c:7335 config/tc-arm.c:24755 config/tc-metag.c:5833 #, c-format msgid "missing cpu name `%s'" msgstr "" -#: config/tc-aarch64.c:7300 config/tc-aarch64.c:7519 config/tc-arm.c:24398 -#: config/tc-arm.c:24939 config/tc-metag.c:5844 +#: config/tc-aarch64.c:7349 config/tc-aarch64.c:7568 config/tc-arm.c:24781 +#: config/tc-arm.c:25335 config/tc-metag.c:5844 #, c-format msgid "unknown cpu `%s'" msgstr "" -#: config/tc-aarch64.c:7318 config/tc-arm.c:24416 +#: config/tc-aarch64.c:7367 config/tc-arm.c:24799 #, c-format msgid "missing architecture name `%s'" msgstr "" -#: config/tc-aarch64.c:7332 config/tc-aarch64.c:7566 config/tc-arm.c:24433 -#: config/tc-arm.c:24973 config/tc-arm.c:25004 config/tc-score.c:7715 +#: config/tc-aarch64.c:7381 config/tc-aarch64.c:7615 config/tc-arm.c:24816 +#: config/tc-arm.c:25369 config/tc-arm.c:25400 config/tc-score.c:7715 #, c-format msgid "unknown architecture `%s'\n" msgstr "" -#: config/tc-aarch64.c:7357 +#: config/tc-aarch64.c:7406 #, c-format msgid "missing abi name `%s'" msgstr "" -#: config/tc-aarch64.c:7368 +#: config/tc-aarch64.c:7417 #, c-format msgid "unknown abi `%s'\n" msgstr "" -#: config/tc-aarch64.c:7374 +#: config/tc-aarch64.c:7423 msgid "\t specify for ABI " msgstr "" -#: config/tc-aarch64.c:7377 config/tc-arm.c:24511 config/tc-metag.c:5910 +#: config/tc-aarch64.c:7426 config/tc-arm.c:24903 config/tc-metag.c:5910 msgid "\t assemble for CPU " msgstr "" -#: config/tc-aarch64.c:7379 config/tc-arm.c:24513 +#: config/tc-aarch64.c:7428 config/tc-arm.c:24905 msgid "\t assemble for architecture " msgstr "" -#: config/tc-aarch64.c:7418 config/tc-aarch64.c:7438 config/tc-arm.c:24567 -#: config/tc-arm.c:24585 config/tc-arm.c:24605 config/tc-metag.c:5935 +#: config/tc-aarch64.c:7467 config/tc-aarch64.c:7487 config/tc-arm.c:24961 +#: config/tc-arm.c:24979 config/tc-arm.c:24999 config/tc-metag.c:5935 #, c-format msgid "option `-%c%s' is deprecated: %s" msgstr "" -#: config/tc-aarch64.c:7458 +#: config/tc-aarch64.c:7507 #, c-format msgid " AArch64-specific assembler options:\n" msgstr "" -#: config/tc-aarch64.c:7469 config/tc-arm.c:24636 +#: config/tc-aarch64.c:7518 config/tc-arm.c:25030 #, c-format msgid " -EB assemble code for a big-endian cpu\n" msgstr "" -#: config/tc-aarch64.c:7474 config/tc-arm.c:24641 +#: config/tc-aarch64.c:7523 config/tc-arm.c:25035 #, c-format msgid " -EL assemble code for a little-endian cpu\n" msgstr "" -#: config/tc-alpha.c:655 +#: config/tc-alpha.c:653 #, c-format msgid "No !literal!%ld was found" msgstr "" -#: config/tc-alpha.c:662 +#: config/tc-alpha.c:660 #, c-format msgid "No !tlsgd!%ld was found" msgstr "" -#: config/tc-alpha.c:669 +#: config/tc-alpha.c:667 #, c-format msgid "No !tlsldm!%ld was found" msgstr "" -#: config/tc-alpha.c:678 +#: config/tc-alpha.c:676 #, c-format msgid "No ldah !gpdisp!%ld was found" msgstr "" -#: config/tc-alpha.c:728 +#: config/tc-alpha.c:726 #, c-format msgid "too many !literal!%ld for %s" msgstr "" -#: config/tc-alpha.c:758 +#: config/tc-alpha.c:756 #, c-format msgid "No lda !gpdisp!%ld was found" msgstr "" #. Only support one relocation op per insn. -#: config/tc-alpha.c:917 +#: config/tc-alpha.c:915 msgid "More than one relocation op per insn" msgstr "" -#: config/tc-alpha.c:933 +#: config/tc-alpha.c:931 msgid "No relocation operand" msgstr "" -#: config/tc-alpha.c:943 +#: config/tc-alpha.c:941 #, c-format msgid "Unknown relocation operand: !%s" msgstr "" -#: config/tc-alpha.c:953 +#: config/tc-alpha.c:951 #, c-format msgid "no sequence number after !%s" msgstr "" -#: config/tc-alpha.c:963 +#: config/tc-alpha.c:961 #, c-format msgid "!%s does not use a sequence number" msgstr "" -#: config/tc-alpha.c:973 +#: config/tc-alpha.c:971 #, c-format msgid "Bad sequence number: !%s!%s" msgstr "" -#: config/tc-alpha.c:1188 config/tc-alpha.c:3361 +#: config/tc-alpha.c:1186 config/tc-alpha.c:3359 #, c-format msgid "inappropriate arguments for opcode `%s'" msgstr "" -#: config/tc-alpha.c:1190 config/tc-alpha.c:3363 +#: config/tc-alpha.c:1188 config/tc-alpha.c:3361 #, c-format msgid "opcode `%s' not supported for target %s" msgstr "" -#: config/tc-alpha.c:1194 config/tc-alpha.c:3367 config/tc-avr.c:1440 -#: config/tc-msp430.c:3521 +#: config/tc-alpha.c:1192 config/tc-alpha.c:3365 config/tc-avr.c:1672 +#: config/tc-msp430.c:3196 #, c-format msgid "unknown opcode `%s'" msgstr "" -#: config/tc-alpha.c:1275 config/tc-alpha.c:1534 +#: config/tc-alpha.c:1273 config/tc-alpha.c:1532 msgid "overflow in literal (.lita) table" msgstr "" -#: config/tc-alpha.c:1282 config/tc-alpha.c:1306 config/tc-alpha.c:1547 -#: config/tc-alpha.c:2234 config/tc-alpha.c:2279 config/tc-alpha.c:2348 -#: config/tc-alpha.c:2431 config/tc-alpha.c:2656 config/tc-alpha.c:2754 +#: config/tc-alpha.c:1280 config/tc-alpha.c:1304 config/tc-alpha.c:1545 +#: config/tc-alpha.c:2232 config/tc-alpha.c:2277 config/tc-alpha.c:2346 +#: config/tc-alpha.c:2429 config/tc-alpha.c:2654 config/tc-alpha.c:2752 msgid "macro requires $at register while noat in effect" msgstr "" -#: config/tc-alpha.c:1284 config/tc-alpha.c:1308 config/tc-alpha.c:1549 +#: config/tc-alpha.c:1282 config/tc-alpha.c:1306 config/tc-alpha.c:1547 msgid "macro requires $at while $at in use" msgstr "" -#: config/tc-alpha.c:1493 +#: config/tc-alpha.c:1491 msgid "bignum invalid; zero assumed" msgstr "" -#: config/tc-alpha.c:1495 +#: config/tc-alpha.c:1493 msgid "floating point number invalid; zero assumed" msgstr "" -#: config/tc-alpha.c:1500 +#: config/tc-alpha.c:1498 msgid "can't handle expression" msgstr "" -#: config/tc-alpha.c:1540 +#: config/tc-alpha.c:1538 msgid "overflow in literal (.lit8) table" msgstr "" -#: config/tc-alpha.c:1837 +#: config/tc-alpha.c:1835 #, c-format msgid "too many ldah insns for !gpdisp!%ld" msgstr "" -#: config/tc-alpha.c:1839 config/tc-alpha.c:1851 +#: config/tc-alpha.c:1837 config/tc-alpha.c:1849 #, c-format msgid "both insns for !gpdisp!%ld must be in the same section" msgstr "" -#: config/tc-alpha.c:1849 +#: config/tc-alpha.c:1847 #, c-format msgid "too many lda insns for !gpdisp!%ld" msgstr "" -#: config/tc-alpha.c:1905 +#: config/tc-alpha.c:1903 #, c-format msgid "too many lituse insns for !lituse_tlsgd!%ld" msgstr "" -#: config/tc-alpha.c:1908 +#: config/tc-alpha.c:1906 #, c-format msgid "too many lituse insns for !lituse_tlsldm!%ld" msgstr "" -#: config/tc-alpha.c:1925 +#: config/tc-alpha.c:1923 #, c-format msgid "duplicate !tlsgd!%ld" msgstr "" -#: config/tc-alpha.c:1927 +#: config/tc-alpha.c:1925 #, c-format msgid "sequence number in use for !tlsldm!%ld" msgstr "" -#: config/tc-alpha.c:1941 +#: config/tc-alpha.c:1939 #, c-format msgid "duplicate !tlsldm!%ld" msgstr "" -#: config/tc-alpha.c:1943 +#: config/tc-alpha.c:1941 #, c-format msgid "sequence number in use for !tlsgd!%ld" msgstr "" -#: config/tc-alpha.c:1998 config/tc-arc.c:292 config/tc-mn10200.c:857 -#: config/tc-mn10300.c:1150 config/tc-ppc.c:1820 config/tc-s390.c:650 +#: config/tc-alpha.c:1996 config/tc-arc.c:291 config/tc-mn10200.c:857 +#: config/tc-mn10300.c:1150 config/tc-ppc.c:1838 config/tc-s390.c:649 #: config/tc-tilegx.c:427 config/tc-tilegx.c:476 config/tc-tilepro.c:383 msgid "operand" msgstr "" -#: config/tc-alpha.c:2137 +#: config/tc-alpha.c:2135 msgid "invalid relocation for instruction" msgstr "" -#: config/tc-alpha.c:2151 +#: config/tc-alpha.c:2149 msgid "invalid relocation for field" msgstr "" -#: config/tc-alpha.c:2982 +#: config/tc-alpha.c:2980 msgid "can not resolve expression" msgstr "" -#: config/tc-alpha.c:3516 config/tc-i370.c:1055 config/tc-microblaze.c:199 -#: config/tc-ppc.c:2156 config/tc-ppc.c:5264 +#: config/tc-alpha.c:3514 config/tc-i370.c:1054 config/tc-microblaze.c:199 +#: config/tc-ppc.c:2161 config/tc-ppc.c:5272 #, c-format msgid ".COMMon length (%ld.) <0! Ignored." msgstr "" -#: config/tc-alpha.c:3527 config/tc-ia64.c:1104 config/tc-sparc.c:4064 -#: config/tc-v850.c:307 +#: config/tc-alpha.c:3525 config/tc-ia64.c:1104 config/tc-sparc.c:4147 +#: config/tc-v850.c:304 msgid "Ignoring attempt to re-define symbol" msgstr "" -#: config/tc-alpha.c:3619 config/tc-sparc.c:4072 +#: config/tc-alpha.c:3617 config/tc-sparc.c:4155 #, c-format msgid "Length of .comm \"%s\" is already %ld. Not changed to %ld." msgstr "" -#: config/tc-alpha.c:3722 ecoff.c:3063 +#: config/tc-alpha.c:3720 ecoff.c:3061 msgid ".ent directive has no name" msgstr "" -#: config/tc-alpha.c:3730 +#: config/tc-alpha.c:3728 msgid "nested .ent directives" msgstr "" -#: config/tc-alpha.c:3775 ecoff.c:3014 +#: config/tc-alpha.c:3773 ecoff.c:3012 msgid ".end directive has no name" msgstr "" -#: config/tc-alpha.c:3784 +#: config/tc-alpha.c:3782 msgid ".end directive without matching .ent" msgstr "" -#: config/tc-alpha.c:3786 +#: config/tc-alpha.c:3784 msgid ".end directive names different symbol than .ent" msgstr "" -#: config/tc-alpha.c:3829 ecoff.c:3149 +#: config/tc-alpha.c:3827 ecoff.c:3147 msgid ".fmask outside of .ent" msgstr "" -#: config/tc-alpha.c:3831 config/tc-score.c:5598 ecoff.c:3213 +#: config/tc-alpha.c:3829 config/tc-score.c:5598 ecoff.c:3211 msgid ".mask outside of .ent" msgstr "" -#: config/tc-alpha.c:3839 ecoff.c:3156 +#: config/tc-alpha.c:3837 ecoff.c:3154 msgid "bad .fmask directive" msgstr "" -#: config/tc-alpha.c:3841 ecoff.c:3220 +#: config/tc-alpha.c:3839 ecoff.c:3218 msgid "bad .mask directive" msgstr "" -#: config/tc-alpha.c:3874 config/tc-mips.c:17705 config/tc-score.c:5740 -#: ecoff.c:3177 +#: config/tc-alpha.c:3872 config/tc-mips.c:18449 config/tc-score.c:5740 +#: ecoff.c:3175 msgid ".frame outside of .ent" msgstr "" -#: config/tc-alpha.c:3885 config/tc-mips.c:17716 ecoff.c:3188 +#: config/tc-alpha.c:3883 config/tc-mips.c:18460 ecoff.c:3186 msgid "bad .frame directive" msgstr "" -#: config/tc-alpha.c:3919 +#: config/tc-alpha.c:3917 msgid ".prologue directive without a preceding .ent directive" msgstr "" -#: config/tc-alpha.c:3937 +#: config/tc-alpha.c:3935 #, c-format msgid "Invalid argument %d to .prologue." msgstr "" -#: config/tc-alpha.c:4028 +#: config/tc-alpha.c:4026 msgid "ECOFF debugging is disabled." msgstr "" -#: config/tc-alpha.c:4042 +#: config/tc-alpha.c:4040 msgid ".ent directive without matching .end" msgstr "" -#: config/tc-alpha.c:4135 +#: config/tc-alpha.c:4133 msgid ".usepv directive has no name" msgstr "" -#: config/tc-alpha.c:4146 +#: config/tc-alpha.c:4144 msgid ".usepv directive has no type" msgstr "" -#: config/tc-alpha.c:4161 +#: config/tc-alpha.c:4159 msgid "unknown argument for .usepv" msgstr "" -#: config/tc-alpha.c:4276 +#: config/tc-alpha.c:4274 #, c-format msgid "unknown section attribute %s" msgstr "" -#: config/tc-alpha.c:4370 +#: config/tc-alpha.c:4368 msgid "previous .ent not closed by a .end" msgstr "" -#: config/tc-alpha.c:4391 +#: config/tc-alpha.c:4389 msgid ".ent directive has no symbol" msgstr "" -#: config/tc-alpha.c:4416 +#: config/tc-alpha.c:4414 msgid ".handler directive has no name" msgstr "" -#: config/tc-alpha.c:4446 +#: config/tc-alpha.c:4444 msgid "Bad .frame directive 1./2. param" msgstr "" -#: config/tc-alpha.c:4456 +#: config/tc-alpha.c:4454 #, c-format msgid "Bad RA (%d) register for .frame" msgstr "" -#: config/tc-alpha.c:4461 +#: config/tc-alpha.c:4459 msgid "Bad .frame directive 3./4. param" msgstr "" -#: config/tc-alpha.c:4497 +#: config/tc-alpha.c:4495 msgid ".pdesc directive not in link (.link) section" msgstr "" -#: config/tc-alpha.c:4504 +#: config/tc-alpha.c:4502 msgid ".pdesc directive has no entry symbol" msgstr "" -#: config/tc-alpha.c:4515 +#: config/tc-alpha.c:4513 msgid ".pdesc has a bad entry symbol" msgstr "" -#: config/tc-alpha.c:4526 +#: config/tc-alpha.c:4524 msgid ".pdesc doesn't match with last .ent" msgstr "" -#: config/tc-alpha.c:4541 +#: config/tc-alpha.c:4539 msgid "No comma after .pdesc " msgstr "" -#: config/tc-alpha.c:4561 +#: config/tc-alpha.c:4559 msgid "unknown procedure kind" msgstr "" -#: config/tc-alpha.c:4656 +#: config/tc-alpha.c:4654 msgid ".name directive not in link (.link) section" msgstr "" -#: config/tc-alpha.c:4664 +#: config/tc-alpha.c:4662 msgid ".name directive has no symbol" msgstr "" -#: config/tc-alpha.c:4698 +#: config/tc-alpha.c:4696 msgid "No symbol after .linkage" msgstr "" -#: config/tc-alpha.c:4746 +#: config/tc-alpha.c:4744 msgid "No symbol after .code_address" msgstr "" -#: config/tc-alpha.c:4772 config/tc-score.c:5604 +#: config/tc-alpha.c:4770 config/tc-score.c:5604 msgid "Bad .mask directive" msgstr "" -#: config/tc-alpha.c:4790 +#: config/tc-alpha.c:4788 msgid "Bad .fmask directive" msgstr "" -#: config/tc-alpha.c:4947 +#: config/tc-alpha.c:4945 #, c-format msgid "Expected comma after name \"%s\"" msgstr "" -#: config/tc-alpha.c:4959 +#: config/tc-alpha.c:4957 #, c-format msgid "unhandled: .proc %s,%d" msgstr "" -#: config/tc-alpha.c:4993 +#: config/tc-alpha.c:4991 #, c-format msgid "Tried to .set unrecognized mode `%s'" msgstr "" -#: config/tc-alpha.c:5019 +#: config/tc-alpha.c:5017 #, c-format msgid "Bad base register, using $%d." msgstr "" -#: config/tc-alpha.c:5040 config/tc-nios2.c:385 config/tc-nios2.c:500 +#: config/tc-alpha.c:5038 config/tc-nios2.c:337 config/tc-nios2.c:452 #, c-format msgid "Alignment too large: %d. assumed" msgstr "" -#: config/tc-alpha.c:5044 config/tc-d30v.c:2060 config/tc-nios2.c:389 -#: config/tc-nios2.c:504 +#: config/tc-alpha.c:5042 config/tc-d30v.c:2057 config/tc-nios2.c:341 +#: config/tc-nios2.c:456 msgid "Alignment negative: 0 assumed" msgstr "" -#: config/tc-alpha.c:5139 config/tc-alpha.c:5631 +#: config/tc-alpha.c:5137 config/tc-alpha.c:5629 #, c-format msgid "Unknown CPU identifier `%s'" msgstr "" -#: config/tc-alpha.c:5330 +#: config/tc-alpha.c:5328 #, c-format msgid "Chose GP value of %lx\n" msgstr "" -#: config/tc-alpha.c:5344 +#: config/tc-alpha.c:5342 msgid "bad .section directive: want a,s,w,x,M,S,G,T in string" msgstr "" -#: config/tc-alpha.c:5433 +#: config/tc-alpha.c:5431 #, c-format msgid "internal error: can't hash opcode `%s': %s" msgstr "" -#: config/tc-alpha.c:5469 +#: config/tc-alpha.c:5467 #, c-format msgid "internal error: can't hash macro `%s': %s" msgstr "" -#: config/tc-alpha.c:5553 config/tc-arm.c:6871 config/tc-arm.c:6883 -#: config/tc-i960.c:708 config/tc-xtensa.c:5315 config/tc-xtensa.c:5393 -#: config/tc-xtensa.c:5510 config/tc-z80.c:1927 +#: config/tc-alpha.c:5551 config/tc-arm.c:7182 config/tc-arm.c:7194 +#: config/tc-i960.c:705 config/tc-xtensa.c:5337 config/tc-xtensa.c:5415 +#: config/tc-xtensa.c:5532 config/tc-z80.c:1927 msgid "syntax error" msgstr "" -#: config/tc-alpha.c:5682 +#: config/tc-alpha.c:5680 msgid "" "Alpha options:\n" "-32addr\t\t\ttreat addresses as 32-bit values\n" @@ -2327,7 +2353,7 @@ msgid "" "\t\t\tthese variants include PALcode opcodes\n" msgstr "" -#: config/tc-alpha.c:5692 +#: config/tc-alpha.c:5690 msgid "" "VMS options:\n" "-+\t\t\tencode (don't truncate) names longer than 64 characters\n" @@ -2335,963 +2361,1008 @@ msgid "" "-replace/-noreplace\tenable or disable the optimization of procedure calls\n" msgstr "" -#: config/tc-alpha.c:5943 +#: config/tc-alpha.c:5941 #, c-format msgid "unhandled relocation type %s" msgstr "" -#: config/tc-alpha.c:5956 +#: config/tc-alpha.c:5954 msgid "non-absolute expression in constant field" msgstr "" -#: config/tc-alpha.c:5970 +#: config/tc-alpha.c:5968 #, c-format msgid "type %d reloc done?\n" msgstr "" -#: config/tc-alpha.c:6017 config/tc-alpha.c:6024 +#: config/tc-alpha.c:6015 config/tc-alpha.c:6022 msgid "Used $at without \".set noat\"" msgstr "" -#: config/tc-alpha.c:6193 +#: config/tc-alpha.c:6191 #, c-format msgid "!samegp reloc against symbol without .prologue: %s" msgstr "" -#: config/tc-alpha.c:6237 config/tc-tilegx.c:1751 config/tc-tilepro.c:1531 -#: config/tc-xtensa.c:5999 +#: config/tc-alpha.c:6235 config/tc-tilegx.c:1751 config/tc-tilepro.c:1531 +#: config/tc-xtensa.c:6025 #, c-format msgid "cannot represent `%s' relocation in object file" msgstr "" -#: config/tc-alpha.c:6243 +#: config/tc-alpha.c:6241 #, c-format msgid "internal error? cannot generate `%s' relocation" msgstr "" -#: config/tc-alpha.c:6342 +#: config/tc-alpha.c:6340 #, c-format msgid "frame reg expected, using $%d." msgstr "" -#: config/tc-arc.c:194 config/tc-arc.c:215 config/tc-arc.c:992 +#: config/tc-arc.c:193 config/tc-arc.c:214 config/tc-arc.c:991 #: config/tc-h8300.c:75 config/tc-h8300.c:84 config/tc-h8300.c:94 #: config/tc-h8300.c:104 config/tc-h8300.c:114 config/tc-h8300.c:125 -#: config/tc-h8300.c:242 config/tc-hppa.c:6898 config/tc-hppa.c:6904 -#: config/tc-hppa.c:6910 config/tc-hppa.c:6916 config/tc-hppa.c:8323 -#: config/tc-lm32.c:197 config/tc-mips.c:3342 config/tc-mn10300.c:939 -#: config/tc-mn10300.c:944 config/tc-mn10300.c:2441 config/tc-xc16x.c:79 -#: config/tc-xc16x.c:86 config/tc-xc16x.c:93 +#: config/tc-h8300.c:242 config/tc-hppa.c:6892 config/tc-hppa.c:6898 +#: config/tc-hppa.c:6904 config/tc-hppa.c:6910 config/tc-hppa.c:8317 +#: config/tc-lm32.c:197 config/tc-mips.c:3471 config/tc-mips.c:3977 +#: config/tc-mn10300.c:938 config/tc-mn10300.c:943 config/tc-mn10300.c:2441 +#: config/tc-xc16x.c:79 config/tc-xc16x.c:86 config/tc-xc16x.c:93 msgid "could not set architecture and machine" msgstr "" -#: config/tc-arc.c:432 config/tc-arc.c:671 +#: config/tc-arc.c:431 config/tc-arc.c:670 msgid "expected comma after operand name" msgstr "" -#: config/tc-arc.c:443 +#: config/tc-arc.c:442 #, c-format msgid "negative operand number %d" msgstr "" -#: config/tc-arc.c:455 +#: config/tc-arc.c:454 msgid "expected comma after register-number" msgstr "" -#: config/tc-arc.c:480 +#: config/tc-arc.c:479 msgid "invalid mode" msgstr "" -#: config/tc-arc.c:497 +#: config/tc-arc.c:496 msgid "expected comma after register-mode" msgstr "" -#: config/tc-arc.c:514 +#: config/tc-arc.c:513 msgid "shortcut designator invalid" msgstr "" -#: config/tc-arc.c:529 +#: config/tc-arc.c:528 #, c-format msgid "core register value (%d) too large" msgstr "" -#: config/tc-arc.c:537 +#: config/tc-arc.c:536 #, c-format msgid "condition code value (%d) too large" msgstr "" -#: config/tc-arc.c:555 +#: config/tc-arc.c:554 #, c-format msgid "attempt to override symbol: %s" msgstr "" -#: config/tc-arc.c:626 +#: config/tc-arc.c:625 msgid "invalid opertype" msgstr "" -#: config/tc-arc.c:683 +#: config/tc-arc.c:682 msgid "expected comma after opcode" msgstr "" -#: config/tc-arc.c:693 +#: config/tc-arc.c:692 #, c-format msgid "negative subopcode %d" msgstr "" -#: config/tc-arc.c:702 +#: config/tc-arc.c:701 msgid "subcode value found when opcode not equal 0x03" msgstr "" -#: config/tc-arc.c:710 +#: config/tc-arc.c:709 #, c-format msgid "invalid subopcode %d" msgstr "" -#: config/tc-arc.c:721 +#: config/tc-arc.c:720 msgid "expected comma after subopcode" msgstr "" -#: config/tc-arc.c:740 +#: config/tc-arc.c:739 msgid "invalid suffix class" msgstr "" -#: config/tc-arc.c:749 +#: config/tc-arc.c:748 msgid "expected comma after suffix class" msgstr "" -#: config/tc-arc.c:768 +#: config/tc-arc.c:767 msgid "invalid syntax class" msgstr "" -#: config/tc-arc.c:775 +#: config/tc-arc.c:774 msgid "opcode 0x3 and SYNTAX_3OP invalid" msgstr "" -#: config/tc-arc.c:795 +#: config/tc-arc.c:794 msgid "unknown suffix class" msgstr "" -#: config/tc-arc.c:862 config/tc-tic6x.c:581 +#: config/tc-arc.c:861 config/tc-tic6x.c:582 msgid "expected comma after symbol name" msgstr "" -#: config/tc-arc.c:872 +#: config/tc-arc.c:871 msgid "negative symbol length" msgstr "" -#: config/tc-arc.c:883 +#: config/tc-arc.c:882 msgid "ignoring attempt to re-define symbol" msgstr "" -#: config/tc-arc.c:890 +#: config/tc-arc.c:889 #, c-format msgid "length of symbol \"%s\" already %ld, ignoring %d" msgstr "" -#: config/tc-arc.c:904 +#: config/tc-arc.c:903 msgid "assuming symbol alignment of zero" msgstr "" -#: config/tc-arc.c:971 +#: config/tc-arc.c:970 msgid "\".option\" directive must appear before any instructions" msgstr "" -#: config/tc-arc.c:981 +#: config/tc-arc.c:980 msgid "\".option\" directive conflicts with initial definition" msgstr "" -#: config/tc-arc.c:989 +#: config/tc-arc.c:988 msgid "\".option\" directive overrides command-line (default) value" msgstr "" -#: config/tc-arc.c:999 +#: config/tc-arc.c:998 msgid "invalid identifier for \".option\"" msgstr "" -#: config/tc-arc.c:1037 config/tc-i860.c:1035 config/tc-ip2k.c:249 +#: config/tc-arc.c:1036 config/tc-i860.c:1034 config/tc-ip2k.c:248 msgid "relaxation not supported\n" msgstr "" -#: config/tc-arc.c:1081 +#: config/tc-arc.c:1080 msgid "expression too complex code symbol" msgstr "" -#: config/tc-arc.c:1108 +#: config/tc-arc.c:1107 #, c-format msgid "missing ')' in %%-op" msgstr "" -#: config/tc-arc.c:1364 config/tc-dlx.c:1206 config/tc-i960.c:2639 -#: config/tc-m32r.c:2281 config/tc-nds32.c:5825 config/tc-sparc.c:3751 +#: config/tc-arc.c:1365 config/tc-dlx.c:1198 config/tc-i960.c:2636 +#: config/tc-m32r.c:2280 config/tc-nds32.c:6503 config/tc-sparc.c:3834 #, c-format msgid "internal error: can't export reloc type %d (`%s')" msgstr "" -#: config/tc-arc.c:1496 +#: config/tc-arc.c:1497 #, c-format msgid "unknown syntax format character `%c'" msgstr "" -#: config/tc-arc.c:1635 +#: config/tc-arc.c:1636 msgid "too many suffixes" msgstr "" -#: config/tc-arc.c:1674 +#: config/tc-arc.c:1675 msgid "symbol as destination register" msgstr "" #. xgettext:c-format. -#: config/tc-arc.c:1759 config/tc-i370.c:2207 config/tc-mn10200.c:1142 -#: config/tc-mn10300.c:1822 config/tc-ppc.c:3355 config/tc-s390.c:1524 -#: config/tc-v850.c:3026 +#: config/tc-arc.c:1760 config/tc-i370.c:2206 config/tc-mn10200.c:1142 +#: config/tc-mn10300.c:1822 config/tc-ppc.c:3350 config/tc-s390.c:1523 +#: config/tc-v850.c:3029 #, c-format msgid "junk at end of line: `%s'" msgstr "" -#: config/tc-arc.c:1798 +#: config/tc-arc.c:1799 msgid "8 byte instruction in delay slot" msgstr "" #. except for jl addr -#: config/tc-arc.c:1801 +#: config/tc-arc.c:1802 msgid "8 byte jump instruction with delay slot" msgstr "" -#: config/tc-arc.c:1809 +#: config/tc-arc.c:1810 msgid "conditional branch follows set of flags" msgstr "" -#: config/tc-arc.c:1893 config/tc-arm.c:17216 +#: config/tc-arc.c:1894 config/tc-arm.c:17586 #, c-format msgid "bad instruction `%s'" msgstr "" -#: config/tc-arm.c:556 +#: config/tc-arm.c:560 msgid "ARM register expected" msgstr "" -#: config/tc-arm.c:557 +#: config/tc-arm.c:561 msgid "bad or missing co-processor number" msgstr "" -#: config/tc-arm.c:558 +#: config/tc-arm.c:562 msgid "co-processor register expected" msgstr "" -#: config/tc-arm.c:559 +#: config/tc-arm.c:563 msgid "FPA register expected" msgstr "" -#: config/tc-arm.c:560 +#: config/tc-arm.c:564 msgid "VFP single precision register expected" msgstr "" -#: config/tc-arm.c:561 +#: config/tc-arm.c:565 msgid "VFP/Neon double precision register expected" msgstr "" -#: config/tc-arm.c:562 +#: config/tc-arm.c:566 msgid "Neon quad precision register expected" msgstr "" -#: config/tc-arm.c:563 +#: config/tc-arm.c:567 msgid "VFP single or double precision register expected" msgstr "" -#: config/tc-arm.c:564 +#: config/tc-arm.c:568 msgid "Neon double or quad precision register expected" msgstr "" -#: config/tc-arm.c:565 +#: config/tc-arm.c:569 msgid "VFP single, double or Neon quad precision register expected" msgstr "" -#: config/tc-arm.c:566 +#: config/tc-arm.c:570 msgid "VFP system register expected" msgstr "" -#: config/tc-arm.c:567 +#: config/tc-arm.c:571 msgid "Maverick MVF register expected" msgstr "" -#: config/tc-arm.c:568 +#: config/tc-arm.c:572 msgid "Maverick MVD register expected" msgstr "" -#: config/tc-arm.c:569 +#: config/tc-arm.c:573 msgid "Maverick MVFX register expected" msgstr "" -#: config/tc-arm.c:570 +#: config/tc-arm.c:574 msgid "Maverick MVDX register expected" msgstr "" -#: config/tc-arm.c:571 +#: config/tc-arm.c:575 msgid "Maverick MVAX register expected" msgstr "" -#: config/tc-arm.c:572 +#: config/tc-arm.c:576 msgid "Maverick DSPSC register expected" msgstr "" -#: config/tc-arm.c:573 +#: config/tc-arm.c:577 msgid "iWMMXt data register expected" msgstr "" -#: config/tc-arm.c:574 config/tc-arm.c:6650 +#: config/tc-arm.c:578 config/tc-arm.c:6961 msgid "iWMMXt control register expected" msgstr "" -#: config/tc-arm.c:575 +#: config/tc-arm.c:579 msgid "iWMMXt scalar register expected" msgstr "" -#: config/tc-arm.c:576 +#: config/tc-arm.c:580 msgid "XScale accumulator register expected" msgstr "" #. For score5u : div/mul will pop warning message, mmu/alw/asw will pop error message. -#: config/tc-arm.c:734 config/tc-score.c:259 +#: config/tc-arm.c:739 config/tc-score.c:259 msgid "bad arguments to instruction" msgstr "" -#: config/tc-arm.c:735 +#: config/tc-arm.c:740 msgid "r13 not allowed here" msgstr "" -#: config/tc-arm.c:736 +#: config/tc-arm.c:741 msgid "r15 not allowed here" msgstr "" -#: config/tc-arm.c:737 +#: config/tc-arm.c:742 msgid "instruction cannot be conditional" msgstr "" -#: config/tc-arm.c:738 +#: config/tc-arm.c:743 msgid "registers may not be the same" msgstr "" -#: config/tc-arm.c:739 +#: config/tc-arm.c:744 msgid "lo register required" msgstr "" -#: config/tc-arm.c:740 +#: config/tc-arm.c:745 msgid "instruction not supported in Thumb16 mode" msgstr "" -#: config/tc-arm.c:741 +#: config/tc-arm.c:746 msgid "instruction does not accept this addressing mode" msgstr "" -#: config/tc-arm.c:742 +#: config/tc-arm.c:747 msgid "branch must be last instruction in IT block" msgstr "" -#: config/tc-arm.c:743 +#: config/tc-arm.c:748 msgid "instruction not allowed in IT block" msgstr "" -#: config/tc-arm.c:744 +#: config/tc-arm.c:749 msgid "selected FPU does not support instruction" msgstr "" -#: config/tc-arm.c:745 +#: config/tc-arm.c:750 msgid "thumb conditional instruction should be in IT block" msgstr "" -#: config/tc-arm.c:746 +#: config/tc-arm.c:751 msgid "incorrect condition in IT block" msgstr "" -#: config/tc-arm.c:747 +#: config/tc-arm.c:752 msgid "IT falling in the range of a previous IT block" msgstr "" -#: config/tc-arm.c:748 +#: config/tc-arm.c:753 msgid "missing .fnstart before unwinding directive" msgstr "" -#: config/tc-arm.c:750 +#: config/tc-arm.c:755 msgid "cannot use register index with PC-relative addressing" msgstr "" -#: config/tc-arm.c:752 +#: config/tc-arm.c:757 msgid "cannot use writeback with PC-relative addressing" msgstr "" -#: config/tc-arm.c:754 +#: config/tc-arm.c:759 msgid "using " msgstr "" -#: config/tc-arm.c:951 +#: config/tc-arm.c:966 msgid "immediate expression requires a # prefix" msgstr "" -#: config/tc-arm.c:979 read.c:3727 +#: config/tc-arm.c:994 read.c:3731 msgid "missing expression" msgstr "" -#: config/tc-arm.c:1009 config/tc-arm.c:4917 config/tc-i960.c:1300 +#: config/tc-arm.c:1024 config/tc-arm.c:5207 config/tc-i960.c:1297 #: config/tc-score.c:1210 msgid "invalid constant" msgstr "" -#: config/tc-arm.c:1139 +#: config/tc-arm.c:1154 msgid "expected #constant" msgstr "" -#: config/tc-arm.c:1302 +#: config/tc-arm.c:1317 #, c-format msgid "unexpected character `%c' in type specifier" msgstr "" -#: config/tc-arm.c:1319 +#: config/tc-arm.c:1334 #, c-format msgid "bad size %d in type specifier" msgstr "" -#: config/tc-arm.c:1369 +#: config/tc-arm.c:1384 msgid "only one type should be specified for operand" msgstr "" -#: config/tc-arm.c:1447 +#: config/tc-arm.c:1462 msgid "can't redefine type for operand" msgstr "" -#: config/tc-arm.c:1458 +#: config/tc-arm.c:1473 msgid "only D registers may be indexed" msgstr "" -#: config/tc-arm.c:1464 +#: config/tc-arm.c:1479 msgid "can't change index for operand" msgstr "" -#: config/tc-arm.c:1527 +#: config/tc-arm.c:1542 msgid "register operand expected, but got scalar" msgstr "" -#: config/tc-arm.c:1560 +#: config/tc-arm.c:1575 msgid "scalar must have an index" msgstr "" -#: config/tc-arm.c:1565 config/tc-arm.c:15368 config/tc-arm.c:15428 -#: config/tc-arm.c:15850 +#: config/tc-arm.c:1580 config/tc-arm.c:15735 config/tc-arm.c:15795 +#: config/tc-arm.c:16217 msgid "scalar index out of range" msgstr "" -#: config/tc-arm.c:1615 +#: config/tc-arm.c:1630 msgid "bad range in register list" msgstr "" -#: config/tc-arm.c:1623 config/tc-arm.c:1632 config/tc-arm.c:1673 +#: config/tc-arm.c:1638 config/tc-arm.c:1647 config/tc-arm.c:1688 #, c-format msgid "Warning: duplicated register (r%d) in register list" msgstr "" -#: config/tc-arm.c:1635 +#: config/tc-arm.c:1650 msgid "Warning: register range not in ascending order" msgstr "" -#: config/tc-arm.c:1646 +#: config/tc-arm.c:1661 msgid "missing `}'" msgstr "" -#: config/tc-arm.c:1662 +#: config/tc-arm.c:1677 msgid "invalid register mask" msgstr "" -#: config/tc-arm.c:1797 config/tc-arm.c:1841 +#: config/tc-arm.c:1812 config/tc-arm.c:1856 msgid "register out of range in list" msgstr "" -#: config/tc-arm.c:1819 config/tc-arm.c:3915 config/tc-arm.c:4049 +#: config/tc-arm.c:1834 config/tc-arm.c:4161 config/tc-arm.c:4295 msgid "register list not in ascending order" msgstr "" -#: config/tc-arm.c:1850 +#: config/tc-arm.c:1865 msgid "register range not in ascending order" msgstr "" -#: config/tc-arm.c:1883 +#: config/tc-arm.c:1898 msgid "non-contiguous register range" msgstr "" -#: config/tc-arm.c:1942 +#: config/tc-arm.c:1957 msgid "register stride must be 1 or 2" msgstr "" -#: config/tc-arm.c:1943 +#: config/tc-arm.c:1958 msgid "mismatched element/structure types in list" msgstr "" -#: config/tc-arm.c:2007 +#: config/tc-arm.c:2022 msgid "don't use Rn-Rm syntax with non-unit stride" msgstr "" -#: config/tc-arm.c:2062 +#: config/tc-arm.c:2077 msgid "error parsing element/structure list" msgstr "" -#: config/tc-arm.c:2068 +#: config/tc-arm.c:2083 msgid "expected }" msgstr "" -#: config/tc-arm.c:2159 +#: config/tc-arm.c:2174 msgid "attempt to redefine typed alias" msgstr "" -#: config/tc-arm.c:2293 +#: config/tc-arm.c:2308 msgid "bad type for register" msgstr "" -#: config/tc-arm.c:2304 +#: config/tc-arm.c:2319 msgid "expression must be constant" msgstr "" -#: config/tc-arm.c:2321 +#: config/tc-arm.c:2336 msgid "can't redefine the type of a register alias" msgstr "" -#: config/tc-arm.c:2328 +#: config/tc-arm.c:2343 msgid "you must specify a single type only" msgstr "" -#: config/tc-arm.c:2341 +#: config/tc-arm.c:2356 msgid "can't redefine the index of a scalar alias" msgstr "" -#: config/tc-arm.c:2349 +#: config/tc-arm.c:2364 msgid "scalar index must be constant" msgstr "" -#: config/tc-arm.c:2358 +#: config/tc-arm.c:2373 msgid "expecting ]" msgstr "" -#: config/tc-arm.c:2411 +#: config/tc-arm.c:2426 msgid "invalid syntax for .dn directive" msgstr "" -#: config/tc-arm.c:2417 +#: config/tc-arm.c:2432 msgid "invalid syntax for .qn directive" msgstr "" -#: config/tc-arm.c:2452 +#: config/tc-arm.c:2467 #, c-format msgid "ignoring attempt to use .unreq on fixed register name: '%s'" msgstr "" -#: config/tc-arm.c:2720 +#: config/tc-arm.c:2735 #, c-format msgid "Failed to find real start of function: %s\n" msgstr "" -#: config/tc-arm.c:2737 +#: config/tc-arm.c:2752 msgid "selected processor does not support THUMB opcodes" msgstr "" -#: config/tc-arm.c:2750 +#: config/tc-arm.c:2765 msgid "selected processor does not support ARM opcodes" msgstr "" -#: config/tc-arm.c:2762 +#: config/tc-arm.c:2777 #, c-format msgid "invalid instruction size selected (%d)" msgstr "" -#: config/tc-arm.c:2794 +#: config/tc-arm.c:2809 #, c-format msgid "invalid operand to .code directive (%d) (expecting 16 or 32)" msgstr "" -#: config/tc-arm.c:2850 +#: config/tc-arm.c:2865 #, c-format msgid "expected comma after name \"%s\"" msgstr "" -#: config/tc-arm.c:2900 config/tc-m32r.c:588 +#: config/tc-arm.c:2915 config/tc-m32r.c:587 #, c-format msgid "symbol `%s' already defined" msgstr "" -#: config/tc-arm.c:2934 +#: config/tc-arm.c:2949 #, c-format msgid "unrecognized syntax mode \"%s\"" msgstr "" -#: config/tc-arm.c:2955 +#: config/tc-arm.c:2970 #, c-format msgid "alignment too large: %d assumed" msgstr "" -#: config/tc-arm.c:2958 +#: config/tc-arm.c:2973 msgid "alignment negative. 0 assumed." msgstr "" -#: config/tc-arm.c:3293 +#: config/tc-arm.c:3039 +msgid ".ref pseudo-op only available with -mccs flag." +msgstr "" + +#: config/tc-arm.c:3080 +msgid ".asmfunc repeated." +msgstr "" + +#: config/tc-arm.c:3084 +msgid ".asmfunc without function." +msgstr "" + +#: config/tc-arm.c:3090 +msgid ".asmfunc pseudo-op only available with -mccs flag." +msgstr "" + +#: config/tc-arm.c:3101 +msgid ".endasmfunc without a .asmfunc." +msgstr "" + +#: config/tc-arm.c:3105 +msgid ".endasmfunc without function." +msgstr "" + +#: config/tc-arm.c:3116 +msgid ".endasmfunc pseudo-op only available with -mccs flag." +msgstr "" + +#: config/tc-arm.c:3125 +msgid ".def pseudo-op only available with -mccs flag." +msgstr "" + +#: config/tc-arm.c:3283 +msgid "invalid type for literal pool" +msgstr "" + +#: config/tc-arm.c:3362 config/tc-tic54x.c:5385 +#, c-format +msgid "Invalid label '%s'" +msgstr "" + +#: config/tc-arm.c:3538 msgid "(plt) is only valid on branch targets" msgstr "" -#: config/tc-arm.c:3299 config/tc-s390.c:1146 config/tc-s390.c:1789 -#: config/tc-xtensa.c:1591 +#: config/tc-arm.c:3544 config/tc-s390.c:1145 config/tc-s390.c:1788 +#: config/tc-xtensa.c:1613 #, c-format msgid "%s relocations do not fit in %d bytes" msgstr "" -#: config/tc-arm.c:3376 +#: config/tc-arm.c:3622 msgid ".inst.n operand too big. Use .inst.w instead" msgstr "" -#: config/tc-arm.c:3396 +#: config/tc-arm.c:3642 msgid "cannot determine Thumb instruction size. Use .inst.n/.inst.w instead" msgstr "" -#: config/tc-arm.c:3426 +#: config/tc-arm.c:3672 msgid "width suffixes are invalid in ARM mode" msgstr "" -#: config/tc-arm.c:3468 dwarf2dbg.c:762 +#: config/tc-arm.c:3714 dwarf2dbg.c:751 msgid "expected 0 or 1" msgstr "" -#: config/tc-arm.c:3472 +#: config/tc-arm.c:3718 msgid "missing comma" msgstr "" -#: config/tc-arm.c:3505 +#: config/tc-arm.c:3751 msgid "duplicate .fnstart directive" msgstr "" -#: config/tc-arm.c:3536 config/tc-tic6x.c:412 +#: config/tc-arm.c:3782 config/tc-tic6x.c:412 msgid "duplicate .handlerdata directive" msgstr "" -#: config/tc-arm.c:3555 +#: config/tc-arm.c:3801 msgid ".fnend directive without .fnstart" msgstr "" -#: config/tc-arm.c:3622 config/tc-tic6x.c:393 +#: config/tc-arm.c:3868 config/tc-tic6x.c:393 msgid "personality routine specified for cantunwind frame" msgstr "" -#: config/tc-arm.c:3639 config/tc-tic6x.c:454 +#: config/tc-arm.c:3885 config/tc-tic6x.c:454 msgid "duplicate .personalityindex directive" msgstr "" -#: config/tc-arm.c:3646 config/tc-tic6x.c:461 +#: config/tc-arm.c:3892 config/tc-tic6x.c:461 msgid "bad personality routine number" msgstr "" -#: config/tc-arm.c:3668 config/tc-tic6x.c:478 +#: config/tc-arm.c:3914 config/tc-tic6x.c:478 msgid "duplicate .personality directive" msgstr "" -#: config/tc-arm.c:3691 config/tc-arm.c:3819 config/tc-arm.c:3867 +#: config/tc-arm.c:3937 config/tc-arm.c:4065 config/tc-arm.c:4113 msgid "expected register list" msgstr "" -#: config/tc-arm.c:3773 +#: config/tc-arm.c:4019 msgid "expected , " msgstr "" -#: config/tc-arm.c:3782 +#: config/tc-arm.c:4028 msgid "number of registers must be in the range [1:4]" msgstr "" -#: config/tc-arm.c:3929 config/tc-arm.c:4063 +#: config/tc-arm.c:4175 config/tc-arm.c:4309 msgid "bad register range" msgstr "" -#: config/tc-arm.c:4129 +#: config/tc-arm.c:4375 msgid "FPA .unwind_save does not take a register list" msgstr "" -#: config/tc-arm.c:4148 +#: config/tc-arm.c:4403 msgid ".unwind_save does not support this kind of register" msgstr "" -#: config/tc-arm.c:4187 +#: config/tc-arm.c:4442 msgid "SP and PC not permitted in .unwind_movsp directive" msgstr "" -#: config/tc-arm.c:4192 +#: config/tc-arm.c:4447 msgid "unexpected .unwind_movsp directive" msgstr "" -#: config/tc-arm.c:4219 +#: config/tc-arm.c:4474 msgid "stack increment must be multiple of 4" msgstr "" -#: config/tc-arm.c:4251 +#: config/tc-arm.c:4506 msgid "expected , " msgstr "" -#: config/tc-arm.c:4269 +#: config/tc-arm.c:4524 msgid "register must be either sp or set by a previousunwind_movsp directive" msgstr "" -#: config/tc-arm.c:4308 +#: config/tc-arm.c:4563 msgid "expected , " msgstr "" -#: config/tc-arm.c:4320 +#: config/tc-arm.c:4575 msgid "unwind opcode too long" msgstr "" -#: config/tc-arm.c:4325 +#: config/tc-arm.c:4580 msgid "invalid unwind opcode" msgstr "" -#: config/tc-arm.c:4505 config/tc-arm.c:5447 config/tc-arm.c:9688 -#: config/tc-arm.c:10211 config/tc-arm.c:12231 config/tc-arm.c:13664 -#: config/tc-arm.c:22438 config/tc-arm.c:22463 config/tc-arm.c:22471 -#: config/tc-metag.c:5175 config/tc-z8k.c:1144 config/tc-z8k.c:1154 +#: config/tc-arm.c:4767 config/tc-arm.c:5739 config/tc-arm.c:10246 +#: config/tc-arm.c:10769 config/tc-arm.c:12789 config/tc-arm.c:14222 +#: config/tc-arm.c:22819 config/tc-arm.c:22844 config/tc-arm.c:22852 +#: config/tc-metag.c:5175 config/tc-z8k.c:1143 config/tc-z8k.c:1153 msgid "immediate value out of range" msgstr "" -#: config/tc-arm.c:4670 +#: config/tc-arm.c:4935 msgid "invalid FPA immediate expression" msgstr "" -#: config/tc-arm.c:4817 +#: config/tc-arm.c:5107 msgid "'LSL' or 'ASR' required" msgstr "" -#: config/tc-arm.c:4825 +#: config/tc-arm.c:5115 msgid "'LSL' required" msgstr "" -#: config/tc-arm.c:4833 +#: config/tc-arm.c:5123 msgid "'ASR' required" msgstr "" -#: config/tc-arm.c:4912 +#: config/tc-arm.c:5202 msgid "invalid rotation" msgstr "" -#: config/tc-arm.c:5071 config/tc-arm.c:5238 +#: config/tc-arm.c:5361 config/tc-arm.c:5530 msgid "unknown group relocation" msgstr "" -#: config/tc-arm.c:5107 +#: config/tc-arm.c:5397 msgid "alignment must be constant" msgstr "" -#: config/tc-arm.c:5269 +#: config/tc-arm.c:5561 msgid "this group relocation is not allowed on this instruction" msgstr "" -#: config/tc-arm.c:5324 +#: config/tc-arm.c:5616 msgid "'}' expected at end of 'option' field" msgstr "" -#: config/tc-arm.c:5329 +#: config/tc-arm.c:5621 msgid "cannot combine index with option" msgstr "" -#: config/tc-arm.c:5585 +#: config/tc-arm.c:5877 msgid "unexpected bit specified after APSR" msgstr "" -#: config/tc-arm.c:5597 +#: config/tc-arm.c:5889 msgid "selected processor does not support DSP extension" msgstr "" -#: config/tc-arm.c:5609 +#: config/tc-arm.c:5901 msgid "bad bitmask specified after APSR" msgstr "" -#: config/tc-arm.c:5633 +#: config/tc-arm.c:5925 msgid "writing to APSR without specifying a bitmask is deprecated" msgstr "" -#: config/tc-arm.c:5645 config/tc-arm.c:11356 config/tc-arm.c:11400 -#: config/tc-arm.c:11404 +#: config/tc-arm.c:5937 config/tc-arm.c:11914 config/tc-arm.c:11958 +#: config/tc-arm.c:11962 msgid "selected processor does not support requested special purpose register" msgstr "" -#: config/tc-arm.c:5650 +#: config/tc-arm.c:5942 msgid "flag for {c}psr instruction expected" msgstr "" -#: config/tc-arm.c:5675 +#: config/tc-arm.c:5967 msgid "unrecognized CPS flag" msgstr "" -#: config/tc-arm.c:5682 +#: config/tc-arm.c:5974 msgid "missing CPS flags" msgstr "" -#: config/tc-arm.c:5705 config/tc-arm.c:5711 +#: config/tc-arm.c:5997 config/tc-arm.c:6003 msgid "valid endian specifiers are be or le" msgstr "" -#: config/tc-arm.c:5733 +#: config/tc-arm.c:6025 msgid "missing rotation field after comma" msgstr "" -#: config/tc-arm.c:5748 +#: config/tc-arm.c:6040 msgid "rotation can only be 0, 8, 16, or 24" msgstr "" -#: config/tc-arm.c:5777 +#: config/tc-arm.c:6069 msgid "condition required" msgstr "" -#: config/tc-arm.c:5838 config/tc-arm.c:8012 +#: config/tc-arm.c:6130 config/tc-arm.c:8570 msgid "'[' expected" msgstr "" -#: config/tc-arm.c:5851 +#: config/tc-arm.c:6143 msgid "',' expected" msgstr "" -#: config/tc-arm.c:5868 +#: config/tc-arm.c:6160 msgid "invalid shift" msgstr "" -#: config/tc-arm.c:5941 +#: config/tc-arm.c:6233 msgid "can't use Neon quad register here" msgstr "" -#: config/tc-arm.c:6007 +#: config/tc-arm.c:6300 msgid "expected or or operand" msgstr "" -#: config/tc-arm.c:6087 +#: config/tc-arm.c:6380 msgid "parse error" msgstr "" #. ISB can only take SY as an option. -#: config/tc-arm.c:6351 +#: config/tc-arm.c:6645 msgid "invalid barrier type" msgstr "" -#: config/tc-arm.c:6488 +#: config/tc-arm.c:6741 +msgid "only floating point zero is allowed as immediate value" +msgstr "" + +#: config/tc-arm.c:6799 msgid "immediate value is out of range" msgstr "" -#: config/tc-arm.c:6635 +#: config/tc-arm.c:6946 msgid "iWMMXt data or control register expected" msgstr "" -#: config/tc-arm.c:6675 +#: config/tc-arm.c:6986 msgid "Banked registers are not available with this architecture." msgstr "" -#: config/tc-arm.c:6897 config/tc-score.c:264 +#: config/tc-arm.c:7208 config/tc-score.c:264 msgid "garbage following instruction" msgstr "" #. If REG is R13 (the stack pointer), warn that its use is #. deprecated. -#: config/tc-arm.c:6938 +#: config/tc-arm.c:7249 msgid "use of r13 is deprecated" msgstr "" -#: config/tc-arm.c:7008 +#: config/tc-arm.c:7319 msgid "D register out of range for selected VFP version" msgstr "" -#: config/tc-arm.c:7087 config/tc-arm.c:9416 +#: config/tc-arm.c:7398 config/tc-arm.c:9974 msgid "Instruction does not support =N addresses" msgstr "" -#: config/tc-arm.c:7095 +#: config/tc-arm.c:7406 msgid "instruction does not accept preindexed addressing" msgstr "" #. unindexed - only for coprocessor -#: config/tc-arm.c:7111 config/tc-arm.c:9479 +#: config/tc-arm.c:7422 config/tc-arm.c:10037 msgid "instruction does not accept unindexed addressing" msgstr "" -#: config/tc-arm.c:7119 +#: config/tc-arm.c:7430 msgid "destination register same as write-back base" msgstr "" -#: config/tc-arm.c:7120 +#: config/tc-arm.c:7431 msgid "source register same as write-back base" msgstr "" -#: config/tc-arm.c:7170 +#: config/tc-arm.c:7481 msgid "use of PC in this instruction is deprecated" msgstr "" -#: config/tc-arm.c:7193 +#: config/tc-arm.c:7504 msgid "instruction does not accept scaled register index" msgstr "" -#: config/tc-arm.c:7247 +#: config/tc-arm.c:7760 +msgid "invalid pseudo operation" +msgstr "" + +#: config/tc-arm.c:7887 msgid "instruction does not support unindexed addressing" msgstr "" -#: config/tc-arm.c:7262 +#: config/tc-arm.c:7902 msgid "pc may not be used with write-back" msgstr "" -#: config/tc-arm.c:7267 +#: config/tc-arm.c:7907 msgid "instruction does not support writeback" msgstr "" -#: config/tc-arm.c:7313 -msgid "invalid pseudo operation" -msgstr "" - -#: config/tc-arm.c:7442 +#: config/tc-arm.c:8000 msgid "Rn must not overlap other operands" msgstr "" -#: config/tc-arm.c:7447 +#: config/tc-arm.c:8005 msgid "swp{b} use is obsoleted for ARMv8 and later" msgstr "" -#: config/tc-arm.c:7450 +#: config/tc-arm.c:8008 msgid "swp{b} use is deprecated for ARMv6 and ARMv7" msgstr "" -#: config/tc-arm.c:7552 config/tc-arm.c:7571 config/tc-arm.c:7584 -#: config/tc-arm.c:10052 config/tc-arm.c:10083 config/tc-arm.c:10105 +#: config/tc-arm.c:8110 config/tc-arm.c:8129 config/tc-arm.c:8142 +#: config/tc-arm.c:10610 config/tc-arm.c:10641 config/tc-arm.c:10663 msgid "bit-field extends past end of register" msgstr "" -#: config/tc-arm.c:7614 +#: config/tc-arm.c:8172 msgid "the only valid suffixes here are '(plt)' and '(tlscall)'" msgstr "" -#: config/tc-arm.c:7667 +#: config/tc-arm.c:8225 msgid "use of r15 in blx in ARM mode is not really useful" msgstr "" -#: config/tc-arm.c:7689 +#: config/tc-arm.c:8247 msgid "use of r15 in bx in ARM mode is not really useful" msgstr "" -#: config/tc-arm.c:7714 +#: config/tc-arm.c:8272 msgid "use of r15 in bxj is not really useful" msgstr "" -#: config/tc-arm.c:7762 +#: config/tc-arm.c:8320 msgid "This coprocessor register access is deprecated in ARMv8" msgstr "" -#: config/tc-arm.c:7962 config/tc-arm.c:7971 +#: config/tc-arm.c:8520 config/tc-arm.c:8529 msgid "writeback of base register is UNPREDICTABLE" msgstr "" -#: config/tc-arm.c:7965 +#: config/tc-arm.c:8523 msgid "writeback of base register when in register list is UNPREDICTABLE" msgstr "" -#: config/tc-arm.c:7975 +#: config/tc-arm.c:8533 msgid "if writeback register is in list, it must be the lowest reg in the list" msgstr "" -#: config/tc-arm.c:8007 +#: config/tc-arm.c:8565 msgid "first transfer register must be even" msgstr "" -#: config/tc-arm.c:8010 +#: config/tc-arm.c:8568 msgid "can only transfer two consecutive registers" msgstr "" @@ -3299,1151 +3370,1165 @@ msgstr "" #. have been called in the first place. #. If op 2 were present and equal to PC, this function wouldn't #. have been called in the first place. -#: config/tc-arm.c:8011 config/tc-arm.c:8081 config/tc-arm.c:8714 -#: config/tc-arm.c:10857 +#: config/tc-arm.c:8569 config/tc-arm.c:8639 config/tc-arm.c:9272 +#: config/tc-arm.c:11415 msgid "r14 not allowed here" msgstr "" -#: config/tc-arm.c:8023 +#: config/tc-arm.c:8581 msgid "base register written back, and overlaps second transfer register" msgstr "" -#: config/tc-arm.c:8033 +#: config/tc-arm.c:8591 msgid "index register overlaps transfer register" msgstr "" -#: config/tc-arm.c:8062 config/tc-arm.c:8681 +#: config/tc-arm.c:8620 config/tc-arm.c:9239 msgid "offset must be zero in ARM encoding" msgstr "" -#: config/tc-arm.c:8075 config/tc-arm.c:8708 +#: config/tc-arm.c:8633 config/tc-arm.c:9266 msgid "even register required" msgstr "" -#: config/tc-arm.c:8078 +#: config/tc-arm.c:8636 msgid "can only load two consecutive registers" msgstr "" -#: config/tc-arm.c:8096 +#: config/tc-arm.c:8654 msgid "ldr to register 15 must be 4-byte alligned" msgstr "" -#: config/tc-arm.c:8119 config/tc-arm.c:8151 +#: config/tc-arm.c:8677 config/tc-arm.c:8709 msgid "this instruction requires a post-indexed address" msgstr "" -#: config/tc-arm.c:8178 +#: config/tc-arm.c:8736 msgid "Rd and Rm should be different in mla" msgstr "" -#: config/tc-arm.c:8202 config/tc-arm.c:11221 +#: config/tc-arm.c:8760 config/tc-arm.c:11779 msgid ":lower16: not allowed this instruction" msgstr "" -#: config/tc-arm.c:8204 +#: config/tc-arm.c:8762 msgid ":upper16: not allowed instruction" msgstr "" -#: config/tc-arm.c:8223 +#: config/tc-arm.c:8781 msgid "operand 1 must be FPSCR" msgstr "" -#: config/tc-arm.c:8305 config/tc-arm.c:11340 +#: config/tc-arm.c:8863 config/tc-arm.c:11898 msgid "bad register for mrs" msgstr "" -#: config/tc-arm.c:8312 config/tc-arm.c:11363 +#: config/tc-arm.c:8870 config/tc-arm.c:11921 msgid "'APSR', 'CPSR' or 'SPSR' expected" msgstr "" -#: config/tc-arm.c:8353 +#: config/tc-arm.c:8911 msgid "Rd and Rm should be different in mul" msgstr "" -#: config/tc-arm.c:8372 config/tc-arm.c:8626 config/tc-arm.c:11501 +#: config/tc-arm.c:8930 config/tc-arm.c:9184 config/tc-arm.c:12059 msgid "rdhi and rdlo must be different" msgstr "" -#: config/tc-arm.c:8378 +#: config/tc-arm.c:8936 msgid "rdhi, rdlo and rm must all be different" msgstr "" -#: config/tc-arm.c:8444 +#: config/tc-arm.c:9002 msgid "'[' expected after PLD mnemonic" msgstr "" -#: config/tc-arm.c:8446 config/tc-arm.c:8461 +#: config/tc-arm.c:9004 config/tc-arm.c:9019 msgid "post-indexed expression used in preload instruction" msgstr "" -#: config/tc-arm.c:8448 config/tc-arm.c:8463 +#: config/tc-arm.c:9006 config/tc-arm.c:9021 msgid "writeback used in preload instruction" msgstr "" -#: config/tc-arm.c:8450 config/tc-arm.c:8465 +#: config/tc-arm.c:9008 config/tc-arm.c:9023 msgid "unindexed addressing used in preload instruction" msgstr "" -#: config/tc-arm.c:8459 +#: config/tc-arm.c:9017 msgid "'[' expected after PLI mnemonic" msgstr "" -#: config/tc-arm.c:8550 config/tc-arm.c:11817 +#: config/tc-arm.c:9108 config/tc-arm.c:12375 msgid "setend use is deprecated for ARMv8" msgstr "" -#: config/tc-arm.c:8571 config/tc-arm.c:11878 config/tc-arm.c:11910 -#: config/tc-arm.c:11953 +#: config/tc-arm.c:9129 config/tc-arm.c:12436 config/tc-arm.c:12468 +#: config/tc-arm.c:12511 msgid "extraneous shift as part of operand to shift insn" msgstr "" -#: config/tc-arm.c:8652 +#: config/tc-arm.c:9210 msgid "SRS base register must be r13" msgstr "" -#: config/tc-arm.c:8711 +#: config/tc-arm.c:9269 msgid "can only store two consecutive registers" msgstr "" -#: config/tc-arm.c:8825 config/tc-arm.c:8842 +#: config/tc-arm.c:9383 config/tc-arm.c:9400 msgid "only two consecutive VFP SP registers allowed here" msgstr "" -#: config/tc-arm.c:8870 config/tc-arm.c:8885 +#: config/tc-arm.c:9428 config/tc-arm.c:9443 msgid "this addressing mode requires base-register writeback" msgstr "" #. If srcsize is 16, inst.operands[1].imm must be in the range 0-16. #. i.e. immbits must be in range 0 - 16. -#: config/tc-arm.c:9002 +#: config/tc-arm.c:9560 msgid "immediate value out of range, expected range [0, 16]" msgstr "" #. If srcsize is 32, inst.operands[1].imm must be in the range 1-32. #. i.e. immbits must be in range 0 - 31. -#: config/tc-arm.c:9009 +#: config/tc-arm.c:9567 msgid "immediate value out of range, expected range [1, 32]" msgstr "" -#: config/tc-arm.c:9075 +#: config/tc-arm.c:9633 msgid "this instruction does not support indexing" msgstr "" -#: config/tc-arm.c:9098 +#: config/tc-arm.c:9656 msgid "only r15 allowed here" msgstr "" -#: config/tc-arm.c:9233 +#: config/tc-arm.c:9791 msgid "immediate operand requires iWMMXt2" msgstr "" -#: config/tc-arm.c:9377 +#: config/tc-arm.c:9935 msgid "shift by register not allowed in thumb mode" msgstr "" -#: config/tc-arm.c:9389 config/tc-arm.c:12061 config/tc-arm.c:21828 +#: config/tc-arm.c:9947 config/tc-arm.c:12619 config/tc-arm.c:22214 msgid "shift expression is too large" msgstr "" -#: config/tc-arm.c:9422 +#: config/tc-arm.c:9980 msgid "cannot use register index with this instruction" msgstr "" -#: config/tc-arm.c:9424 +#: config/tc-arm.c:9982 msgid "Thumb does not support negative register indexing" msgstr "" -#: config/tc-arm.c:9426 +#: config/tc-arm.c:9984 msgid "Thumb does not support register post-indexing" msgstr "" -#: config/tc-arm.c:9428 +#: config/tc-arm.c:9986 msgid "Thumb does not support register indexing with writeback" msgstr "" -#: config/tc-arm.c:9430 +#: config/tc-arm.c:9988 msgid "Thumb supports only LSL in shifted register indexing" msgstr "" -#: config/tc-arm.c:9439 config/tc-arm.c:15160 +#: config/tc-arm.c:9997 config/tc-arm.c:15527 msgid "shift out of range" msgstr "" -#: config/tc-arm.c:9448 +#: config/tc-arm.c:10006 msgid "cannot use writeback with this instruction" msgstr "" -#: config/tc-arm.c:9469 +#: config/tc-arm.c:10027 msgid "cannot use post-indexing with PC-relative addressing" msgstr "" -#: config/tc-arm.c:9470 +#: config/tc-arm.c:10028 msgid "cannot use post-indexing with this instruction" msgstr "" -#: config/tc-arm.c:9683 +#: config/tc-arm.c:10241 msgid "only SUBS PC, LR, #const allowed" msgstr "" -#: config/tc-arm.c:9765 config/tc-arm.c:9920 config/tc-arm.c:10017 -#: config/tc-arm.c:11301 config/tc-arm.c:11607 +#: config/tc-arm.c:10323 config/tc-arm.c:10478 config/tc-arm.c:10575 +#: config/tc-arm.c:11859 config/tc-arm.c:12165 msgid "shift must be constant" msgstr "" -#: config/tc-arm.c:9770 +#: config/tc-arm.c:10328 msgid "shift value over 3 not allowed in thumb mode" msgstr "" -#: config/tc-arm.c:9772 +#: config/tc-arm.c:10330 msgid "only LSL shift allowed in thumb mode" msgstr "" -#: config/tc-arm.c:9796 config/tc-arm.c:9935 config/tc-arm.c:10032 -#: config/tc-arm.c:11314 +#: config/tc-arm.c:10354 config/tc-arm.c:10493 config/tc-arm.c:10590 +#: config/tc-arm.c:11872 msgid "unshifted register required" msgstr "" -#: config/tc-arm.c:9811 config/tc-arm.c:10043 config/tc-arm.c:11462 +#: config/tc-arm.c:10369 config/tc-arm.c:10601 config/tc-arm.c:12020 msgid "dest must overlap one source register" msgstr "" -#: config/tc-arm.c:9938 +#: config/tc-arm.c:10496 msgid "dest and source1 must be the same register" msgstr "" -#: config/tc-arm.c:10207 +#: config/tc-arm.c:10765 msgid "instruction is always unconditional" msgstr "" -#: config/tc-arm.c:10322 +#: config/tc-arm.c:10880 msgid "selected processor does not support 'A' form of this instruction" msgstr "" -#: config/tc-arm.c:10325 +#: config/tc-arm.c:10883 msgid "Thumb does not support the 2-argument form of this instruction" msgstr "" -#: config/tc-arm.c:10446 +#: config/tc-arm.c:11004 msgid "SP not allowed in register list" msgstr "" -#: config/tc-arm.c:10450 config/tc-arm.c:10556 +#: config/tc-arm.c:11008 config/tc-arm.c:11114 msgid "" "having the base register in the register list when using write back is " "UNPREDICTABLE" msgstr "" -#: config/tc-arm.c:10458 +#: config/tc-arm.c:11016 msgid "LR and PC should not both be in register list" msgstr "" -#: config/tc-arm.c:10466 +#: config/tc-arm.c:11024 msgid "PC not allowed in register list" msgstr "" -#: config/tc-arm.c:10508 +#: config/tc-arm.c:11066 msgid "Thumb load/store multiple does not support {reglist}^" msgstr "" -#: config/tc-arm.c:10533 config/tc-arm.c:10610 +#: config/tc-arm.c:11091 config/tc-arm.c:11168 #, c-format msgid "value stored for r%d is UNKNOWN" msgstr "" -#: config/tc-arm.c:10603 +#: config/tc-arm.c:11161 msgid "Thumb-2 instruction only valid in unified syntax" msgstr "" -#: config/tc-arm.c:10607 config/tc-arm.c:10617 +#: config/tc-arm.c:11165 config/tc-arm.c:11175 msgid "this instruction will write back the base register" msgstr "" -#: config/tc-arm.c:10620 +#: config/tc-arm.c:11178 msgid "this instruction will not write back the base register" msgstr "" -#: config/tc-arm.c:10651 +#: config/tc-arm.c:11209 msgid "r14 not allowed as first register when second register is omitted" msgstr "" -#: config/tc-arm.c:10751 +#: config/tc-arm.c:11309 msgid "" "This instruction may be unpredictable if executed on M-profile cores with " "interrupts enabled." msgstr "" -#: config/tc-arm.c:10780 config/tc-arm.c:10793 config/tc-arm.c:10829 +#: config/tc-arm.c:11338 config/tc-arm.c:11351 config/tc-arm.c:11387 msgid "Thumb does not support this addressing mode" msgstr "" -#: config/tc-arm.c:10797 +#: config/tc-arm.c:11355 msgid "byte or halfword not valid for base register" msgstr "" -#: config/tc-arm.c:10800 +#: config/tc-arm.c:11358 msgid "r15 based store not allowed" msgstr "" -#: config/tc-arm.c:10802 +#: config/tc-arm.c:11360 msgid "invalid base register for register offset" msgstr "" -#: config/tc-arm.c:10859 +#: config/tc-arm.c:11417 msgid "r12 not allowed here" msgstr "" -#: config/tc-arm.c:10865 +#: config/tc-arm.c:11423 msgid "base register written back, and overlaps one of transfer registers" msgstr "" -#: config/tc-arm.c:10993 +#: config/tc-arm.c:11551 #, c-format msgid "" "Use of r%u as a source register is deprecated when r%u is the destination " "register." msgstr "" -#: config/tc-arm.c:11177 +#: config/tc-arm.c:11735 msgid "shifts in CMP/MOV instructions are only supported in unified syntax" msgstr "" -#: config/tc-arm.c:11205 +#: config/tc-arm.c:11763 msgid "only lo regs allowed with immediate" msgstr "" -#: config/tc-arm.c:11226 +#: config/tc-arm.c:11784 msgid ":upper16: not allowed this instruction" msgstr "" -#: config/tc-arm.c:11381 +#: config/tc-arm.c:11939 msgid "Thumb encoding does not support an immediate here" msgstr "" -#: config/tc-arm.c:11467 +#: config/tc-arm.c:12025 msgid "Thumb-2 MUL must not set flags" msgstr "" -#: config/tc-arm.c:11532 +#: config/tc-arm.c:12090 msgid "Thumb does not support NOP with hints" msgstr "" -#: config/tc-arm.c:11670 +#: config/tc-arm.c:12228 msgid "push/pop do not support {reglist}^" msgstr "" -#: config/tc-arm.c:11692 +#: config/tc-arm.c:12250 msgid "invalid register list to push/pop instruction" msgstr "" -#: config/tc-arm.c:11937 +#: config/tc-arm.c:12495 msgid "source1 and dest must be same register" msgstr "" -#: config/tc-arm.c:11962 +#: config/tc-arm.c:12520 msgid "ror #imm not supported" msgstr "" -#: config/tc-arm.c:12013 +#: config/tc-arm.c:12571 msgid "SMC is not permitted on this architecture" msgstr "" -#: config/tc-arm.c:12178 +#: config/tc-arm.c:12736 msgid "Thumb encoding does not support rotation" msgstr "" -#: config/tc-arm.c:12193 +#: config/tc-arm.c:12751 msgid "SVC is not permitted on this architecture" msgstr "" -#: config/tc-arm.c:12209 +#: config/tc-arm.c:12767 msgid "instruction requires register index" msgstr "" -#: config/tc-arm.c:12218 +#: config/tc-arm.c:12776 msgid "instruction does not allow shifted index" msgstr "" -#: config/tc-arm.c:12402 +#: config/tc-arm.c:12960 msgid "invalid neon suffix for non neon instruction" msgstr "" -#: config/tc-arm.c:12697 config/tc-arm.c:13034 config/tc-arm.c:14689 -#: config/tc-arm.c:16082 +#: config/tc-arm.c:13255 config/tc-arm.c:13592 config/tc-arm.c:15056 +#: config/tc-arm.c:16449 msgid "invalid instruction shape" msgstr "" -#: config/tc-arm.c:12942 +#: config/tc-arm.c:13500 msgid "types specified in both the mnemonic and operands" msgstr "" -#: config/tc-arm.c:12979 +#: config/tc-arm.c:13537 msgid "operand types can't be inferred" msgstr "" -#: config/tc-arm.c:12985 +#: config/tc-arm.c:13543 msgid "type specifier has the wrong number of parts" msgstr "" -#: config/tc-arm.c:13050 config/tc-arm.c:14829 config/tc-arm.c:14836 +#: config/tc-arm.c:13608 config/tc-arm.c:15196 config/tc-arm.c:15203 msgid "operand size must match register width" msgstr "" -#: config/tc-arm.c:13061 +#: config/tc-arm.c:13619 msgid "bad type in Neon instruction" msgstr "" -#: config/tc-arm.c:13072 +#: config/tc-arm.c:13630 msgid "inconsistent types in Neon instruction" msgstr "" -#: config/tc-arm.c:13889 +#: config/tc-arm.c:14256 msgid "first and second operands shall be the same register" msgstr "" -#: config/tc-arm.c:14165 +#: config/tc-arm.c:14532 msgid "scalar out of range for multiply instruction" msgstr "" -#: config/tc-arm.c:14341 config/tc-arm.c:14353 +#: config/tc-arm.c:14708 config/tc-arm.c:14720 msgid "immediate out of range for insert" msgstr "" -#: config/tc-arm.c:14365 config/tc-arm.c:15533 +#: config/tc-arm.c:14732 config/tc-arm.c:15900 msgid "immediate out of range for shift" msgstr "" -#: config/tc-arm.c:14486 +#: config/tc-arm.c:14853 msgid "immediate out of range for narrowing operation" msgstr "" -#: config/tc-arm.c:14620 +#: config/tc-arm.c:14987 msgid "operands 0 and 1 must be the same register" msgstr "" -#: config/tc-arm.c:14699 config/tc-arm.c:16165 +#: config/tc-arm.c:15066 config/tc-arm.c:16532 msgid "invalid rounding mode" msgstr "" -#: config/tc-arm.c:14967 +#: config/tc-arm.c:15334 msgid "operand size must be specified for immediate VMOV" msgstr "" -#: config/tc-arm.c:14977 +#: config/tc-arm.c:15344 msgid "immediate has bits set outside the operand size" msgstr "" -#: config/tc-arm.c:15142 +#: config/tc-arm.c:15509 msgid "Instruction form not available on this architecture." msgstr "" -#: config/tc-arm.c:15186 +#: config/tc-arm.c:15553 msgid "elements must be smaller than reversal region" msgstr "" -#: config/tc-arm.c:15367 config/tc-arm.c:15427 +#: config/tc-arm.c:15734 config/tc-arm.c:15794 msgid "bad type for scalar" msgstr "" -#: config/tc-arm.c:15491 config/tc-arm.c:15499 +#: config/tc-arm.c:15858 config/tc-arm.c:15866 msgid "VFP registers must be adjacent" msgstr "" -#: config/tc-arm.c:15645 +#: config/tc-arm.c:16012 msgid "bad list length for table lookup" msgstr "" -#: config/tc-arm.c:15675 +#: config/tc-arm.c:16042 msgid "writeback (!) must be used for VLDMDB and VSTMDB" msgstr "" -#: config/tc-arm.c:15678 +#: config/tc-arm.c:16045 msgid "register list must contain at least 1 and at most 16 registers" msgstr "" -#: config/tc-arm.c:15703 +#: config/tc-arm.c:16070 msgid "Use of PC here is UNPREDICTABLE" msgstr "" -#: config/tc-arm.c:15705 +#: config/tc-arm.c:16072 msgid "Use of PC here is deprecated" msgstr "" -#: config/tc-arm.c:15768 +#: config/tc-arm.c:16135 msgid "bad alignment" msgstr "" -#: config/tc-arm.c:15785 +#: config/tc-arm.c:16152 msgid "bad list type for instruction" msgstr "" -#: config/tc-arm.c:15787 +#: config/tc-arm.c:16154 msgid "bad element type for instruction" msgstr "" -#: config/tc-arm.c:15829 +#: config/tc-arm.c:16196 msgid "unsupported alignment for instruction" msgstr "" -#: config/tc-arm.c:15848 config/tc-arm.c:15942 config/tc-arm.c:15953 -#: config/tc-arm.c:15963 config/tc-arm.c:15977 +#: config/tc-arm.c:16215 config/tc-arm.c:16309 config/tc-arm.c:16320 +#: config/tc-arm.c:16330 config/tc-arm.c:16344 msgid "bad list length" msgstr "" -#: config/tc-arm.c:15853 +#: config/tc-arm.c:16220 msgid "stride of 2 unavailable when element size is 8" msgstr "" -#: config/tc-arm.c:15886 config/tc-arm.c:15961 +#: config/tc-arm.c:16253 config/tc-arm.c:16328 msgid "can't use alignment with this instruction" msgstr "" -#: config/tc-arm.c:16033 +#: config/tc-arm.c:16400 msgid "post-index must be a register" msgstr "" -#: config/tc-arm.c:16035 +#: config/tc-arm.c:16402 msgid "bad register for post-index" msgstr "" -#: config/tc-arm.c:16720 config/tc-arm.c:16806 +#: config/tc-arm.c:17087 config/tc-arm.c:17173 msgid "conditional infixes are deprecated in unified syntax" msgstr "" -#: config/tc-arm.c:16957 +#: config/tc-arm.c:17324 msgid "Warning: conditional outside an IT block for Thumb." msgstr "" -#: config/tc-arm.c:17109 +#: config/tc-arm.c:17476 msgid "Short branches, Undefined, SVC, LDM/STM" msgstr "" -#: config/tc-arm.c:17110 +#: config/tc-arm.c:17477 msgid "Miscellaneous 16-bit instructions" msgstr "" -#: config/tc-arm.c:17111 +#: config/tc-arm.c:17478 msgid "ADR" msgstr "" -#: config/tc-arm.c:17112 +#: config/tc-arm.c:17479 msgid "Literal loads" msgstr "" -#: config/tc-arm.c:17113 +#: config/tc-arm.c:17480 msgid "Hi-register ADD, MOV, CMP, BX, BLX using pc" msgstr "" -#: config/tc-arm.c:17114 +#: config/tc-arm.c:17481 msgid "Hi-register ADD, MOV, CMP using pc" msgstr "" -#: config/tc-arm.c:17133 +#. NOTE: 0x00dd is not the real encoding, instead, it is the 'tvalue' +#. field in asm_opcode. 'tvalue' is used at the stage this check happen. +#: config/tc-arm.c:17484 +msgid "ADD/SUB sp, sp #imm" +msgstr "" + +#: config/tc-arm.c:17503 msgid "IT blocks containing 32-bit Thumb instructions are deprecated in ARMv8" msgstr "" -#: config/tc-arm.c:17145 +#: config/tc-arm.c:17515 #, c-format msgid "" "IT blocks containing 16-bit Thumb instructions of the following class are " "deprecated in ARMv8: %s" msgstr "" -#: config/tc-arm.c:17158 +#: config/tc-arm.c:17528 msgid "" "IT blocks containing more than one conditional instruction are deprecated in " "ARMv8" msgstr "" -#: config/tc-arm.c:17222 +#: config/tc-arm.c:17592 msgid "s suffix on comparison instruction is deprecated" msgstr "" -#: config/tc-arm.c:17241 +#: config/tc-arm.c:17611 #, c-format msgid "selected processor does not support Thumb mode `%s'" msgstr "" -#: config/tc-arm.c:17247 +#: config/tc-arm.c:17617 msgid "Thumb does not support conditional execution" msgstr "" -#: config/tc-arm.c:17266 +#: config/tc-arm.c:17636 #, c-format msgid "selected processor does not support Thumb-2 mode `%s'" msgstr "" -#: config/tc-arm.c:17291 +#: config/tc-arm.c:17661 #, c-format msgid "cannot honor width suffix -- `%s'" msgstr "" -#: config/tc-arm.c:17332 +#: config/tc-arm.c:17702 #, c-format msgid "selected processor does not support ARM mode `%s'" msgstr "" -#: config/tc-arm.c:17337 +#: config/tc-arm.c:17707 #, c-format msgid "width suffixes are invalid in ARM mode -- `%s'" msgstr "" -#: config/tc-arm.c:17370 +#: config/tc-arm.c:17740 #, c-format msgid "attempt to use an ARM instruction on a Thumb-only processor -- `%s'" msgstr "" -#: config/tc-arm.c:17387 +#: config/tc-arm.c:17757 #, c-format msgid "section '%s' finished with an open IT block." msgstr "" -#: config/tc-arm.c:17392 +#: config/tc-arm.c:17762 msgid "file finished with an open IT block." msgstr "" -#: config/tc-arm.c:20557 +#: config/tc-arm.c:20930 #, c-format msgid "alignments greater than %d bytes not supported in .text sections." msgstr "" -#: config/tc-arm.c:20825 config/tc-ia64.c:3612 +#: config/tc-arm.c:21198 config/tc-ia64.c:3612 #, c-format msgid "Group section `%s' has no group signature" msgstr "" -#: config/tc-arm.c:20870 +#: config/tc-arm.c:21243 msgid "handlerdata in cantunwind frame" msgstr "" -#: config/tc-arm.c:20887 +#: config/tc-arm.c:21260 msgid "too many unwind opcodes for personality routine 0" msgstr "" -#: config/tc-arm.c:20923 +#: config/tc-arm.c:21291 +msgid "attempt to recreate an unwind entry" +msgstr "" + +#: config/tc-arm.c:21301 msgid "too many unwind opcodes" msgstr "" -#: config/tc-arm.c:21525 config/tc-arm.c:21576 +#: config/tc-arm.c:21911 config/tc-arm.c:21962 #, c-format msgid "symbol %s is in a different section" msgstr "" -#: config/tc-arm.c:21527 config/tc-arm.c:21578 +#: config/tc-arm.c:21913 config/tc-arm.c:21964 #, c-format msgid "symbol %s is weak and may be overridden later" msgstr "" -#: config/tc-arm.c:21555 config/tc-arm.c:21897 +#: config/tc-arm.c:21941 config/tc-arm.c:22283 #, c-format msgid "invalid constant (%lx) after fixup" msgstr "" -#: config/tc-arm.c:21611 +#: config/tc-arm.c:21997 #, c-format msgid "unable to compute ADRL instructions for PC offset of 0x%lx" msgstr "" -#: config/tc-arm.c:21646 config/tc-arm.c:21676 +#: config/tc-arm.c:22032 config/tc-arm.c:22062 msgid "invalid literal constant: pool needs to be closer" msgstr "" -#: config/tc-arm.c:21649 config/tc-arm.c:21698 +#: config/tc-arm.c:22035 config/tc-arm.c:22084 #, c-format msgid "bad immediate value for offset (%ld)" msgstr "" -#: config/tc-arm.c:21679 +#: config/tc-arm.c:22065 #, c-format msgid "bad immediate value for 8-bit offset (%ld)" msgstr "" -#: config/tc-arm.c:21739 +#: config/tc-arm.c:22125 msgid "offset not a multiple of 4" msgstr "" -#: config/tc-arm.c:21913 +#: config/tc-arm.c:22299 msgid "invalid smc expression" msgstr "" -#: config/tc-arm.c:21922 +#: config/tc-arm.c:22308 msgid "invalid hvc expression" msgstr "" -#: config/tc-arm.c:21933 config/tc-arm.c:21942 +#: config/tc-arm.c:22319 config/tc-arm.c:22328 msgid "invalid swi expression" msgstr "" -#: config/tc-arm.c:21952 +#: config/tc-arm.c:22338 msgid "invalid expression in load/store multiple" msgstr "" -#: config/tc-arm.c:22013 +#: config/tc-arm.c:22399 #, c-format msgid "blx to '%s' an ARM ISA state function changed to bl" msgstr "" -#: config/tc-arm.c:22032 +#: config/tc-arm.c:22418 msgid "misaligned branch destination" msgstr "" -#: config/tc-arm.c:22152 +#: config/tc-arm.c:22538 #, c-format msgid "blx to Thumb func '%s' from Thumb ISA state changed to bl" msgstr "" -#: config/tc-arm.c:22202 +#: config/tc-arm.c:22588 msgid "Thumb2 branch out of range" msgstr "" -#: config/tc-arm.c:22291 +#: config/tc-arm.c:22672 msgid "rel31 relocation overflow" msgstr "" -#: config/tc-arm.c:22303 config/tc-arm.c:22331 +#: config/tc-arm.c:22684 config/tc-arm.c:22712 msgid "co-processor offset out of range" msgstr "" -#: config/tc-arm.c:22348 +#: config/tc-arm.c:22729 #, c-format msgid "invalid offset, target not word aligned (0x%08lX)" msgstr "" -#: config/tc-arm.c:22355 config/tc-arm.c:22364 config/tc-arm.c:22372 -#: config/tc-arm.c:22380 config/tc-arm.c:22388 +#: config/tc-arm.c:22736 config/tc-arm.c:22745 config/tc-arm.c:22753 +#: config/tc-arm.c:22761 config/tc-arm.c:22769 #, c-format msgid "invalid offset, value too big (0x%08lX)" msgstr "" -#: config/tc-arm.c:22429 +#: config/tc-arm.c:22810 msgid "invalid Hi register with immediate" msgstr "" -#: config/tc-arm.c:22445 +#: config/tc-arm.c:22826 msgid "invalid immediate for stack address calculation" msgstr "" -#: config/tc-arm.c:22453 +#: config/tc-arm.c:22834 #, c-format msgid "invalid immediate for address calculation (value = 0x%08lX)" msgstr "" -#: config/tc-arm.c:22483 +#: config/tc-arm.c:22864 #, c-format msgid "invalid immediate: %ld is out of range" msgstr "" -#: config/tc-arm.c:22495 +#: config/tc-arm.c:22876 #, c-format msgid "invalid shift value: %ld" msgstr "" -#: config/tc-arm.c:22574 +#: config/tc-arm.c:22955 #, c-format msgid "the offset 0x%08lX is not representable" msgstr "" -#: config/tc-arm.c:22614 +#: config/tc-arm.c:22995 #, c-format msgid "bad offset 0x%08lX (only 12 bits available for the magnitude)" msgstr "" -#: config/tc-arm.c:22653 +#: config/tc-arm.c:23034 #, c-format msgid "bad offset 0x%08lX (only 8 bits available for the magnitude)" msgstr "" -#: config/tc-arm.c:22693 +#: config/tc-arm.c:23074 #, c-format msgid "bad offset 0x%08lX (must be word-aligned)" msgstr "" -#: config/tc-arm.c:22698 +#: config/tc-arm.c:23079 #, c-format msgid "bad offset 0x%08lX (must be an 8-bit number of words)" msgstr "" -#: config/tc-arm.c:22729 config/tc-score.c:7392 +#: config/tc-arm.c:23110 config/tc-score.c:7392 #, c-format msgid "bad relocation fixup type (%d)" msgstr "" -#: config/tc-arm.c:22840 +#: config/tc-arm.c:23221 msgid "literal referenced across section boundary" msgstr "" -#: config/tc-arm.c:22907 +#: config/tc-arm.c:23288 msgid "internal relocation (type: IMMEDIATE) not fixed up" msgstr "" -#: config/tc-arm.c:22912 +#: config/tc-arm.c:23293 msgid "ADRL used for a symbol not defined in the same file" msgstr "" -#: config/tc-arm.c:22927 +#: config/tc-arm.c:23308 #, c-format msgid "undefined local label `%s'" msgstr "" -#: config/tc-arm.c:22933 +#: config/tc-arm.c:23314 msgid "internal_relocation (type: OFFSET_IMM) not fixed up" msgstr "" -#: config/tc-arm.c:22955 config/tc-cris.c:3986 config/tc-mcore.c:1926 -#: config/tc-microblaze.c:1965 config/tc-mmix.c:2893 config/tc-moxie.c:820 -#: config/tc-ns32k.c:2248 config/tc-score.c:7478 +#: config/tc-arm.c:23336 config/tc-cris.c:4006 config/tc-mcore.c:1925 +#: config/tc-microblaze.c:1966 config/tc-mmix.c:2893 config/tc-moxie.c:818 +#: config/tc-ns32k.c:2247 config/tc-score.c:7478 msgid "" msgstr "" -#: config/tc-arm.c:23339 +#: config/tc-arm.c:23720 #, c-format msgid "%s: unexpected function type: %d" msgstr "" -#: config/tc-arm.c:23476 +#: config/tc-arm.c:23857 msgid "use of old and new-style options to set CPU type" msgstr "" -#: config/tc-arm.c:23486 +#: config/tc-arm.c:23867 msgid "use of old and new-style options to set FPU type" msgstr "" -#: config/tc-arm.c:23562 +#: config/tc-arm.c:23943 msgid "hard-float conflicts with specified fpu" msgstr "" -#: config/tc-arm.c:23749 +#: config/tc-arm.c:24130 msgid "generate PIC code" msgstr "" -#: config/tc-arm.c:23750 +#: config/tc-arm.c:24131 msgid "assemble Thumb code" msgstr "" -#: config/tc-arm.c:23751 +#: config/tc-arm.c:24132 msgid "support ARM/Thumb interworking" msgstr "" -#: config/tc-arm.c:23753 +#: config/tc-arm.c:24134 msgid "code uses 32-bit program counter" msgstr "" -#: config/tc-arm.c:23754 +#: config/tc-arm.c:24135 msgid "code uses 26-bit program counter" msgstr "" -#: config/tc-arm.c:23755 +#: config/tc-arm.c:24136 msgid "floating point args are in fp regs" msgstr "" -#: config/tc-arm.c:23757 +#: config/tc-arm.c:24138 msgid "re-entrant code" msgstr "" -#: config/tc-arm.c:23758 +#: config/tc-arm.c:24139 msgid "code is ATPCS conformant" msgstr "" #. These are recognized by the assembler, but have no affect on code. -#: config/tc-arm.c:23764 +#: config/tc-arm.c:24145 msgid "use frame pointer" msgstr "" -#: config/tc-arm.c:23765 +#: config/tc-arm.c:24146 msgid "use stack size checking" msgstr "" -#: config/tc-arm.c:23768 +#: config/tc-arm.c:24149 msgid "do not warn on use of deprecated feature" msgstr "" #. DON'T add any new processors to this list -- we want the whole list #. to go away... Add them to the processors table instead. -#: config/tc-arm.c:23785 config/tc-arm.c:23786 +#: config/tc-arm.c:24166 config/tc-arm.c:24167 msgid "use -mcpu=arm1" msgstr "" -#: config/tc-arm.c:23787 config/tc-arm.c:23788 +#: config/tc-arm.c:24168 config/tc-arm.c:24169 msgid "use -mcpu=arm2" msgstr "" -#: config/tc-arm.c:23789 config/tc-arm.c:23790 +#: config/tc-arm.c:24170 config/tc-arm.c:24171 msgid "use -mcpu=arm250" msgstr "" -#: config/tc-arm.c:23791 config/tc-arm.c:23792 +#: config/tc-arm.c:24172 config/tc-arm.c:24173 msgid "use -mcpu=arm3" msgstr "" -#: config/tc-arm.c:23793 config/tc-arm.c:23794 +#: config/tc-arm.c:24174 config/tc-arm.c:24175 msgid "use -mcpu=arm6" msgstr "" -#: config/tc-arm.c:23795 config/tc-arm.c:23796 +#: config/tc-arm.c:24176 config/tc-arm.c:24177 msgid "use -mcpu=arm600" msgstr "" -#: config/tc-arm.c:23797 config/tc-arm.c:23798 +#: config/tc-arm.c:24178 config/tc-arm.c:24179 msgid "use -mcpu=arm610" msgstr "" -#: config/tc-arm.c:23799 config/tc-arm.c:23800 +#: config/tc-arm.c:24180 config/tc-arm.c:24181 msgid "use -mcpu=arm620" msgstr "" -#: config/tc-arm.c:23801 config/tc-arm.c:23802 +#: config/tc-arm.c:24182 config/tc-arm.c:24183 msgid "use -mcpu=arm7" msgstr "" -#: config/tc-arm.c:23803 config/tc-arm.c:23804 +#: config/tc-arm.c:24184 config/tc-arm.c:24185 msgid "use -mcpu=arm70" msgstr "" -#: config/tc-arm.c:23805 config/tc-arm.c:23806 +#: config/tc-arm.c:24186 config/tc-arm.c:24187 msgid "use -mcpu=arm700" msgstr "" -#: config/tc-arm.c:23807 config/tc-arm.c:23808 +#: config/tc-arm.c:24188 config/tc-arm.c:24189 msgid "use -mcpu=arm700i" msgstr "" -#: config/tc-arm.c:23809 config/tc-arm.c:23810 +#: config/tc-arm.c:24190 config/tc-arm.c:24191 msgid "use -mcpu=arm710" msgstr "" -#: config/tc-arm.c:23811 config/tc-arm.c:23812 +#: config/tc-arm.c:24192 config/tc-arm.c:24193 msgid "use -mcpu=arm710c" msgstr "" -#: config/tc-arm.c:23813 config/tc-arm.c:23814 +#: config/tc-arm.c:24194 config/tc-arm.c:24195 msgid "use -mcpu=arm720" msgstr "" -#: config/tc-arm.c:23815 config/tc-arm.c:23816 +#: config/tc-arm.c:24196 config/tc-arm.c:24197 msgid "use -mcpu=arm7d" msgstr "" -#: config/tc-arm.c:23817 config/tc-arm.c:23818 +#: config/tc-arm.c:24198 config/tc-arm.c:24199 msgid "use -mcpu=arm7di" msgstr "" -#: config/tc-arm.c:23819 config/tc-arm.c:23820 +#: config/tc-arm.c:24200 config/tc-arm.c:24201 msgid "use -mcpu=arm7m" msgstr "" -#: config/tc-arm.c:23821 config/tc-arm.c:23822 +#: config/tc-arm.c:24202 config/tc-arm.c:24203 msgid "use -mcpu=arm7dm" msgstr "" -#: config/tc-arm.c:23823 config/tc-arm.c:23824 +#: config/tc-arm.c:24204 config/tc-arm.c:24205 msgid "use -mcpu=arm7dmi" msgstr "" -#: config/tc-arm.c:23825 config/tc-arm.c:23826 +#: config/tc-arm.c:24206 config/tc-arm.c:24207 msgid "use -mcpu=arm7100" msgstr "" -#: config/tc-arm.c:23827 config/tc-arm.c:23828 +#: config/tc-arm.c:24208 config/tc-arm.c:24209 msgid "use -mcpu=arm7500" msgstr "" -#: config/tc-arm.c:23829 config/tc-arm.c:23830 +#: config/tc-arm.c:24210 config/tc-arm.c:24211 msgid "use -mcpu=arm7500fe" msgstr "" -#: config/tc-arm.c:23831 config/tc-arm.c:23832 config/tc-arm.c:23833 -#: config/tc-arm.c:23834 +#: config/tc-arm.c:24212 config/tc-arm.c:24213 config/tc-arm.c:24214 +#: config/tc-arm.c:24215 msgid "use -mcpu=arm7tdmi" msgstr "" -#: config/tc-arm.c:23835 config/tc-arm.c:23836 +#: config/tc-arm.c:24216 config/tc-arm.c:24217 msgid "use -mcpu=arm710t" msgstr "" -#: config/tc-arm.c:23837 config/tc-arm.c:23838 +#: config/tc-arm.c:24218 config/tc-arm.c:24219 msgid "use -mcpu=arm720t" msgstr "" -#: config/tc-arm.c:23839 config/tc-arm.c:23840 +#: config/tc-arm.c:24220 config/tc-arm.c:24221 msgid "use -mcpu=arm740t" msgstr "" -#: config/tc-arm.c:23841 config/tc-arm.c:23842 +#: config/tc-arm.c:24222 config/tc-arm.c:24223 msgid "use -mcpu=arm8" msgstr "" -#: config/tc-arm.c:23843 config/tc-arm.c:23844 +#: config/tc-arm.c:24224 config/tc-arm.c:24225 msgid "use -mcpu=arm810" msgstr "" -#: config/tc-arm.c:23845 config/tc-arm.c:23846 +#: config/tc-arm.c:24226 config/tc-arm.c:24227 msgid "use -mcpu=arm9" msgstr "" -#: config/tc-arm.c:23847 config/tc-arm.c:23848 +#: config/tc-arm.c:24228 config/tc-arm.c:24229 msgid "use -mcpu=arm9tdmi" msgstr "" -#: config/tc-arm.c:23849 config/tc-arm.c:23850 +#: config/tc-arm.c:24230 config/tc-arm.c:24231 msgid "use -mcpu=arm920" msgstr "" -#: config/tc-arm.c:23851 config/tc-arm.c:23852 +#: config/tc-arm.c:24232 config/tc-arm.c:24233 msgid "use -mcpu=arm940" msgstr "" -#: config/tc-arm.c:23853 +#: config/tc-arm.c:24234 msgid "use -mcpu=strongarm" msgstr "" -#: config/tc-arm.c:23855 +#: config/tc-arm.c:24236 msgid "use -mcpu=strongarm110" msgstr "" -#: config/tc-arm.c:23857 +#: config/tc-arm.c:24238 msgid "use -mcpu=strongarm1100" msgstr "" -#: config/tc-arm.c:23859 +#: config/tc-arm.c:24240 msgid "use -mcpu=strongarm1110" msgstr "" -#: config/tc-arm.c:23860 +#: config/tc-arm.c:24241 msgid "use -mcpu=xscale" msgstr "" -#: config/tc-arm.c:23861 +#: config/tc-arm.c:24242 msgid "use -mcpu=iwmmxt" msgstr "" -#: config/tc-arm.c:23862 +#: config/tc-arm.c:24243 msgid "use -mcpu=all" msgstr "" #. Architecture variants -- don't add any more to this list either. -#: config/tc-arm.c:23865 config/tc-arm.c:23866 +#: config/tc-arm.c:24246 config/tc-arm.c:24247 msgid "use -march=armv2" msgstr "" -#: config/tc-arm.c:23867 config/tc-arm.c:23868 +#: config/tc-arm.c:24248 config/tc-arm.c:24249 msgid "use -march=armv2a" msgstr "" -#: config/tc-arm.c:23869 config/tc-arm.c:23870 +#: config/tc-arm.c:24250 config/tc-arm.c:24251 msgid "use -march=armv3" msgstr "" -#: config/tc-arm.c:23871 config/tc-arm.c:23872 +#: config/tc-arm.c:24252 config/tc-arm.c:24253 msgid "use -march=armv3m" msgstr "" -#: config/tc-arm.c:23873 config/tc-arm.c:23874 +#: config/tc-arm.c:24254 config/tc-arm.c:24255 msgid "use -march=armv4" msgstr "" -#: config/tc-arm.c:23875 config/tc-arm.c:23876 +#: config/tc-arm.c:24256 config/tc-arm.c:24257 msgid "use -march=armv4t" msgstr "" -#: config/tc-arm.c:23877 config/tc-arm.c:23878 +#: config/tc-arm.c:24258 config/tc-arm.c:24259 msgid "use -march=armv5" msgstr "" -#: config/tc-arm.c:23879 config/tc-arm.c:23880 +#: config/tc-arm.c:24260 config/tc-arm.c:24261 msgid "use -march=armv5t" msgstr "" -#: config/tc-arm.c:23881 config/tc-arm.c:23882 +#: config/tc-arm.c:24262 config/tc-arm.c:24263 msgid "use -march=armv5te" msgstr "" #. Floating point variants -- don't add any more to this list either. -#: config/tc-arm.c:23885 +#: config/tc-arm.c:24266 msgid "use -mfpu=fpe" msgstr "" -#: config/tc-arm.c:23886 +#: config/tc-arm.c:24267 msgid "use -mfpu=fpa10" msgstr "" -#: config/tc-arm.c:23887 +#: config/tc-arm.c:24268 msgid "use -mfpu=fpa11" msgstr "" -#: config/tc-arm.c:23889 +#: config/tc-arm.c:24270 msgid "use either -mfpu=softfpa or -mfpu=softvfp" msgstr "" -#: config/tc-arm.c:24315 +#: config/tc-arm.c:24698 msgid "extension does not apply to the base architecture" msgstr "" -#: config/tc-arm.c:24340 +#: config/tc-arm.c:24723 msgid "architectural extensions must be specified in alphabetical order" msgstr "" -#: config/tc-arm.c:24449 config/tc-arm.c:25086 +#: config/tc-arm.c:24832 config/tc-arm.c:25482 #, c-format msgid "unknown floating point format `%s'\n" msgstr "" -#: config/tc-arm.c:24465 +#: config/tc-arm.c:24848 #, c-format msgid "unknown floating point abi `%s'\n" msgstr "" -#: config/tc-arm.c:24481 +#: config/tc-arm.c:24864 #, c-format msgid "unknown EABI `%s'\n" msgstr "" -#: config/tc-arm.c:24501 +#: config/tc-arm.c:24884 #, c-format msgid "unknown implicit IT mode `%s', should be arm, thumb, always, or never." msgstr "" -#: config/tc-arm.c:24515 config/tc-metag.c:5912 +#: config/tc-arm.c:24907 config/tc-metag.c:5912 msgid "\t assemble for FPU architecture " msgstr "" -#: config/tc-arm.c:24517 +#: config/tc-arm.c:24909 msgid "\t assemble for floating point ABI " msgstr "" -#: config/tc-arm.c:24520 +#: config/tc-arm.c:24912 msgid "\t\t assemble for eabi version " msgstr "" -#: config/tc-arm.c:24523 +#: config/tc-arm.c:24915 msgid "\t controls implicit insertion of IT instructions" msgstr "" -#: config/tc-arm.c:24625 +#: config/tc-arm.c:24917 +msgid "\t\t\t TI CodeComposer Studio syntax compatibility mode" +msgstr "" + +#: config/tc-arm.c:25019 #, c-format msgid " ARM-specific assembler options:\n" msgstr "" -#: config/tc-arm.c:24645 +#: config/tc-arm.c:25039 #, c-format msgid " --fix-v4bx Allow BX in ARMv4 code\n" msgstr "" -#: config/tc-arm.c:25037 +#: config/tc-arm.c:25433 #, c-format msgid "" "architectural extension `%s' is not allowed for the current base architecture" msgstr "" -#: config/tc-arm.c:25055 +#: config/tc-arm.c:25451 #, c-format msgid "unknown architecture extension `%s'\n" msgstr "" -#: config/tc-avr.c:379 +#: config/tc-avr.c:437 #, c-format msgid "Known MCU names:" msgstr "" -#: config/tc-avr.c:444 +#: config/tc-avr.c:502 #, c-format msgid "" "AVR Assembler options:\n" @@ -4467,10 +4552,10 @@ msgid "" " avrxmega5 - XMEGA, > 64K, <= 128K FLASH, > 64K RAM\n" " avrxmega6 - XMEGA, > 128K, <= 256K FLASH, <= 64K RAM\n" " avrxmega7 - XMEGA, > 128K, <= 256K FLASH, > 64K RAM\n" -" or immediate microcontroller name.\n" +" avrtiny - AVR Tiny core with 16 gp registers\n" msgstr "" -#: config/tc-avr.c:467 +#: config/tc-avr.c:525 #, c-format msgid "" " -mall-opcodes accept all AVR opcodes, even if not supported by MCU\n" @@ -4478,856 +4563,867 @@ msgid "" " (default for avr4, avr5)\n" " -mno-wrap reject rjmp/rcall instructions with 8K wrap-around\n" " (default for avr3, avr5)\n" +" -mrmw accept Read-Modify-Write instructions\n" +" -mlink-relax generate relocations for linker relaxation\n" msgstr "" -#: config/tc-avr.c:511 +#: config/tc-avr.c:572 #, c-format msgid "unknown MCU: %s\n" msgstr "" -#: config/tc-avr.c:520 +#: config/tc-avr.c:586 #, c-format msgid "redefinition of mcu type `%s' to `%s'" msgstr "" -#: config/tc-avr.c:598 +#: config/tc-avr.c:671 msgid "constant value required" msgstr "" -#: config/tc-avr.c:601 +#: config/tc-avr.c:674 #, c-format msgid "number must be positive and less than %d" msgstr "" -#: config/tc-avr.c:627 config/tc-avr.c:764 +#: config/tc-avr.c:700 config/tc-avr.c:837 #, c-format msgid "constant out of 8-bit range: %d" msgstr "" -#: config/tc-avr.c:695 config/tc-score.c:1199 read.c:3725 +#: config/tc-avr.c:768 config/tc-score.c:1199 read.c:3729 msgid "illegal expression" msgstr "" -#: config/tc-avr.c:724 config/tc-avr.c:1542 +#: config/tc-avr.c:797 config/tc-avr.c:1753 msgid "`)' required" msgstr "" -#: config/tc-avr.c:819 +#: config/tc-avr.c:903 +msgid "register name or number from 16 to 31 required" +msgstr "" + +#: config/tc-avr.c:909 +msgid "register name or number from 0 to 31 required" +msgstr "" + +#: config/tc-avr.c:917 msgid "register r16-r23 required" msgstr "" -#: config/tc-avr.c:825 +#: config/tc-avr.c:923 msgid "register number above 15 required" msgstr "" -#: config/tc-avr.c:831 +#: config/tc-avr.c:929 msgid "even register number required" msgstr "" -#: config/tc-avr.c:837 +#: config/tc-avr.c:935 msgid "register r24, r26, r28 or r30 required" msgstr "" -#: config/tc-avr.c:843 -msgid "register name or number from 0 to 31 required" -msgstr "" - -#: config/tc-avr.c:861 +#: config/tc-avr.c:956 msgid "pointer register (X, Y or Z) required" msgstr "" -#: config/tc-avr.c:868 +#: config/tc-avr.c:963 msgid "cannot both predecrement and postincrement" msgstr "" -#: config/tc-avr.c:876 +#: config/tc-avr.c:971 msgid "addressing mode not supported" msgstr "" -#: config/tc-avr.c:882 +#: config/tc-avr.c:977 msgid "can't predecrement" msgstr "" -#: config/tc-avr.c:885 +#: config/tc-avr.c:980 msgid "pointer register Z required" msgstr "" -#: config/tc-avr.c:904 +#: config/tc-avr.c:999 msgid "postincrement not supported" msgstr "" -#: config/tc-avr.c:914 +#: config/tc-avr.c:1009 msgid "pointer register (Y or Z) required" msgstr "" -#: config/tc-avr.c:1028 config/tc-xgate.c:1349 +#: config/tc-avr.c:1121 config/tc-xgate.c:1348 #, c-format msgid "unknown constraint `%c'" msgstr "" -#: config/tc-avr.c:1080 +#: config/tc-avr.c:1173 msgid "`,' required" msgstr "" -#: config/tc-avr.c:1098 +#: config/tc-avr.c:1191 msgid "undefined combination of operands" msgstr "" -#: config/tc-avr.c:1107 +#: config/tc-avr.c:1200 msgid "skipping two-word instruction" msgstr "" -#: config/tc-avr.c:1199 config/tc-avr.c:1215 config/tc-avr.c:1336 -#: config/tc-msp430.c:3659 config/tc-msp430.c:3678 +#: config/tc-avr.c:1385 config/tc-avr.c:1401 config/tc-avr.c:1532 +#: config/tc-msp430.c:3334 config/tc-msp430.c:3353 #, c-format msgid "odd address operand: %ld" msgstr "" -#: config/tc-avr.c:1207 config/tc-avr.c:1226 config/tc-avr.c:1244 -#: config/tc-avr.c:1255 config/tc-avr.c:1262 config/tc-avr.c:1269 -#: config/tc-d10v.c:505 config/tc-d30v.c:554 config/tc-msp430.c:3667 -#: config/tc-msp430.c:3685 +#: config/tc-avr.c:1393 config/tc-avr.c:1412 config/tc-avr.c:1430 +#: config/tc-avr.c:1441 config/tc-avr.c:1457 config/tc-avr.c:1465 +#: config/tc-avr.c:1560 config/tc-avr.c:1567 config/tc-d10v.c:503 +#: config/tc-d30v.c:553 config/tc-msp430.c:3342 config/tc-msp430.c:3360 #, c-format msgid "operand out of range: %ld" msgstr "" -#: config/tc-avr.c:1357 config/tc-d10v.c:1594 config/tc-d30v.c:2037 -#: config/tc-msp430.c:3750 +#: config/tc-avr.c:1448 +#, c-format +msgid "operand out of range: 0x%lx" +msgstr "" + +#: config/tc-avr.c:1553 config/tc-d10v.c:1590 config/tc-d30v.c:2034 +#: config/tc-msp430.c:3431 #, c-format msgid "line %d: unknown relocation type: 0x%x" msgstr "" -#: config/tc-avr.c:1371 +#: config/tc-avr.c:1581 msgid "only constant expression allowed" msgstr "" #. xgettext:c-format. -#: config/tc-avr.c:1411 config/tc-bfin.c:833 config/tc-d10v.c:1466 -#: config/tc-d30v.c:1774 config/tc-metag.c:7023 config/tc-mn10200.c:782 -#: config/tc-mn10300.c:2178 config/tc-msp430.c:3798 config/tc-or32.c:957 -#: config/tc-ppc.c:7121 config/tc-spu.c:879 config/tc-spu.c:1090 -#: config/tc-v850.c:3351 config/tc-z80.c:2051 +#: config/tc-avr.c:1621 config/tc-bfin.c:832 config/tc-d10v.c:1462 +#: config/tc-d30v.c:1771 config/tc-metag.c:7023 config/tc-mn10200.c:782 +#: config/tc-mn10300.c:2178 config/tc-msp430.c:3479 config/tc-ppc.c:7140 +#: config/tc-spu.c:879 config/tc-spu.c:1090 config/tc-v850.c:3354 +#: config/tc-z80.c:2051 #, c-format msgid "reloc %d not supported by object file format" msgstr "" -#: config/tc-avr.c:1434 config/tc-h8300.c:1954 config/tc-mcore.c:881 -#: config/tc-microblaze.c:920 config/tc-moxie.c:182 config/tc-msp430.c:3513 -#: config/tc-pj.c:253 config/tc-sh.c:2589 config/tc-z8k.c:1216 +#: config/tc-avr.c:1644 config/tc-h8300.c:1954 config/tc-mcore.c:880 +#: config/tc-microblaze.c:921 config/tc-moxie.c:182 config/tc-msp430.c:3188 +#: config/tc-pj.c:253 config/tc-sh.c:2588 config/tc-z8k.c:1215 msgid "can't find opcode " msgstr "" -#: config/tc-avr.c:1451 +#: config/tc-avr.c:1663 #, c-format msgid "illegal opcode %s for mcu %s" msgstr "" -#: config/tc-avr.c:1462 +#: config/tc-avr.c:1691 msgid "garbage at end of line" msgstr "" -#: config/tc-avr.c:1591 +#: config/tc-avr.c:1802 #, c-format msgid "illegal %srelocation size: %d" msgstr "" -#: config/tc-bfin.c:96 config/tc-frv.c:1605 config/tc-frv.c:1615 +#: config/tc-bfin.c:95 config/tc-frv.c:1604 config/tc-frv.c:1614 msgid "missing ')'" msgstr "" -#: config/tc-bfin.c:442 +#: config/tc-bfin.c:441 #, c-format msgid " Blackfin specific assembler options:\n" msgstr "" -#: config/tc-bfin.c:443 +#: config/tc-bfin.c:442 #, c-format msgid " -mcpu= specify the name of the target CPU\n" msgstr "" -#: config/tc-bfin.c:444 +#: config/tc-bfin.c:443 #, c-format msgid " -mfdpic assemble for the FDPIC ABI\n" msgstr "" -#: config/tc-bfin.c:445 +#: config/tc-bfin.c:444 #, c-format msgid " -mno-fdpic/-mnopic disable -mfdpic\n" msgstr "" -#: config/tc-bfin.c:458 +#: config/tc-bfin.c:457 msgid "Could not set architecture and machine." msgstr "" -#: config/tc-bfin.c:607 +#: config/tc-bfin.c:606 msgid "Parse failed." msgstr "" -#: config/tc-bfin.c:682 +#: config/tc-bfin.c:681 msgid "pcrel too far BFD_RELOC_BFIN_10" msgstr "" -#: config/tc-bfin.c:698 +#: config/tc-bfin.c:697 msgid "pcrel too far BFD_RELOC_BFIN_12" msgstr "" -#: config/tc-bfin.c:718 +#: config/tc-bfin.c:717 msgid "pcrel too far BFD_RELOC_BFIN_24" msgstr "" -#: config/tc-bfin.c:733 +#: config/tc-bfin.c:732 msgid "pcrel too far BFD_RELOC_BFIN_5" msgstr "" -#: config/tc-bfin.c:745 +#: config/tc-bfin.c:744 msgid "pcrel too far BFD_RELOC_BFIN_11_PCREL" msgstr "" -#: config/tc-bfin.c:755 +#: config/tc-bfin.c:754 msgid "rel too far BFD_RELOC_8" msgstr "" -#: config/tc-bfin.c:762 +#: config/tc-bfin.c:761 msgid "rel too far BFD_RELOC_16" msgstr "" -#: config/tc-cr16.c:165 read.c:4484 +#: config/tc-cr16.c:164 read.c:4532 msgid "using a bit field width of zero" msgstr "" -#: config/tc-cr16.c:173 read.c:4492 +#: config/tc-cr16.c:172 read.c:4540 #, c-format msgid "field width \"%s\" too complex for a bitfield" msgstr "" -#: config/tc-cr16.c:182 read.c:4500 +#: config/tc-cr16.c:181 read.c:4548 #, c-format msgid "field width %lu too big to fit in %d bytes: truncated to %d bits" msgstr "" -#: config/tc-cr16.c:204 read.c:4522 +#: config/tc-cr16.c:203 read.c:4570 #, c-format msgid "field value \"%s\" too complex for a bitfield" msgstr "" -#: config/tc-cr16.c:385 +#: config/tc-cr16.c:384 #, c-format msgid "Unknown register pair - index relative mode: `%d'" msgstr "" -#: config/tc-cr16.c:570 config/tc-crx.c:346 config/tc-mn10200.c:769 -#: write.c:1012 +#: config/tc-cr16.c:568 config/tc-crx.c:345 config/tc-mn10200.c:769 +#: write.c:1011 #, c-format msgid "can't resolve `%s' {%s section} - `%s' {%s section}" msgstr "" -#: config/tc-cr16.c:600 config/tc-crx.c:362 +#: config/tc-cr16.c:598 config/tc-crx.c:361 #, c-format msgid "internal error: reloc %d (`%s') not supported by object file format" msgstr "" -#: config/tc-cr16.c:693 config/tc-i386.c:10111 config/tc-s390.c:2002 +#: config/tc-cr16.c:691 config/tc-i386.c:10224 config/tc-s390.c:2001 msgid "GOT already in symbol table" msgstr "" -#: config/tc-cr16.c:802 config/tc-cr16.c:825 config/tc-cris.c:1190 -#: config/tc-crx.c:536 config/tc-crx.c:563 config/tc-crx.c:581 -#: config/tc-pdp11.c:194 +#: config/tc-cr16.c:800 config/tc-cr16.c:823 config/tc-cris.c:1195 +#: config/tc-crx.c:535 config/tc-crx.c:562 config/tc-crx.c:580 +#: config/tc-pdp11.c:193 msgid "Virtual memory exhausted" msgstr "" -#: config/tc-cr16.c:810 config/tc-crx.c:573 config/tc-crx.c:592 -#: config/tc-m68k.c:4660 config/tc-tilegx.c:319 config/tc-tilepro.c:256 +#: config/tc-cr16.c:808 config/tc-crx.c:572 config/tc-crx.c:591 +#: config/tc-m68k.c:4659 config/tc-tilegx.c:319 config/tc-tilepro.c:256 #, c-format msgid "Internal Error: Can't hash %s: %s" msgstr "" -#: config/tc-cr16.c:836 config/tc-cris.c:1224 config/tc-crx.c:546 +#: config/tc-cr16.c:834 config/tc-cris.c:1229 config/tc-crx.c:545 #, c-format msgid "Can't hash `%s': %s\n" msgstr "" -#: config/tc-cr16.c:837 config/tc-cris.c:1225 config/tc-crx.c:547 +#: config/tc-cr16.c:835 config/tc-cris.c:1230 config/tc-crx.c:546 msgid "(unknown reason)" msgstr "" #. Missing or bad expr becomes absolute 0. -#: config/tc-cr16.c:889 config/tc-crx.c:620 +#: config/tc-cr16.c:887 config/tc-crx.c:619 #, c-format msgid "missing or invalid displacement expression `%s' taken as 0" msgstr "" -#: config/tc-cr16.c:939 +#: config/tc-cr16.c:937 #, c-format msgid "GOT bad expression with %s." msgstr "" -#: config/tc-cr16.c:1050 +#: config/tc-cr16.c:1048 #, c-format msgid "operand %d: illegal use expression: `%s`" msgstr "" -#: config/tc-cr16.c:1115 config/tc-crx.c:1128 +#: config/tc-cr16.c:1113 config/tc-crx.c:1127 #, c-format msgid "Unknown register: `%d'" msgstr "" #. Issue a error message when register is illegal. -#: config/tc-cr16.c:1123 config/tc-crx.c:1136 +#: config/tc-cr16.c:1121 config/tc-crx.c:1135 #, c-format msgid "Illegal register (`%s') in Instruction: `%s'" msgstr "" -#: config/tc-cr16.c:1194 config/tc-cr16.c:1269 config/tc-crx.c:758 -#: config/tc-crx.c:778 config/tc-crx.c:793 +#: config/tc-cr16.c:1192 config/tc-cr16.c:1267 config/tc-crx.c:757 +#: config/tc-crx.c:777 config/tc-crx.c:792 #, c-format msgid "Illegal register `%s' in Instruction `%s'" msgstr "" -#: config/tc-cr16.c:1222 config/tc-cr16.c:1233 +#: config/tc-cr16.c:1220 config/tc-cr16.c:1231 #, c-format msgid "Illegal register pair `%s' in Instruction `%s'" msgstr "" -#: config/tc-cr16.c:1258 config/tc-i960.c:835 +#: config/tc-cr16.c:1256 config/tc-i960.c:832 msgid "unmatched '['" msgstr "" -#: config/tc-cr16.c:1264 config/tc-i960.c:842 +#: config/tc-cr16.c:1262 config/tc-i960.c:839 msgid "garbage after index spec ignored" msgstr "" -#: config/tc-cr16.c:1412 config/tc-crx.c:937 +#: config/tc-cr16.c:1410 config/tc-crx.c:936 #, c-format msgid "Illegal operands (whitespace): `%s'" msgstr "" -#: config/tc-cr16.c:1424 config/tc-cr16.c:1431 config/tc-cr16.c:1448 -#: config/tc-crx.c:949 config/tc-crx.c:956 config/tc-crx.c:973 -#: config/tc-crx.c:1765 +#: config/tc-cr16.c:1422 config/tc-cr16.c:1429 config/tc-cr16.c:1446 +#: config/tc-crx.c:948 config/tc-crx.c:955 config/tc-crx.c:972 +#: config/tc-crx.c:1764 #, c-format msgid "Missing matching brackets : `%s'" msgstr "" -#: config/tc-cr16.c:1480 config/tc-crx.c:999 +#: config/tc-cr16.c:1478 config/tc-crx.c:998 #, c-format msgid "Unknown exception: `%s'" msgstr "" -#: config/tc-cr16.c:1565 config/tc-crx.c:1095 +#: config/tc-cr16.c:1563 config/tc-crx.c:1094 #, c-format msgid "Illegal `cinv' parameter: `%c'" msgstr "" -#: config/tc-cr16.c:1586 config/tc-cr16.c:1625 +#: config/tc-cr16.c:1584 config/tc-cr16.c:1623 #, c-format msgid "Unknown register pair: `%d'" msgstr "" #. Issue a error message when register pair is illegal. -#: config/tc-cr16.c:1594 +#: config/tc-cr16.c:1592 #, c-format msgid "Illegal register pair (`%s') in Instruction: `%s'" msgstr "" #. Issue a error message when register pair is illegal. -#: config/tc-cr16.c:1633 +#: config/tc-cr16.c:1631 #, c-format msgid "Illegal index register pair (`%s') in Instruction: `%s'" msgstr "" -#: config/tc-cr16.c:1672 +#: config/tc-cr16.c:1670 #, c-format msgid "Unknown processor register : `%d'" msgstr "" #. Issue a error message when register pair is illegal. -#: config/tc-cr16.c:1680 +#: config/tc-cr16.c:1678 #, c-format msgid "Illegal processor register (`%s') in Instruction: `%s'" msgstr "" -#: config/tc-cr16.c:1728 +#: config/tc-cr16.c:1726 #, c-format msgid "Unknown processor register (32 bit) : `%d'" msgstr "" #. Issue a error message when register pair is illegal. -#: config/tc-cr16.c:1736 +#: config/tc-cr16.c:1734 #, c-format msgid "Illegal 32 bit - processor register (`%s') in Instruction: `%s'" msgstr "" -#: config/tc-cr16.c:2100 config/tc-crx.c:1663 config/tc-crx.c:1680 +#: config/tc-cr16.c:2098 config/tc-crx.c:1662 config/tc-crx.c:1679 #, c-format msgid "Same src/dest register is used (`r%d'), result is undefined" msgstr "" -#: config/tc-cr16.c:2121 +#: config/tc-cr16.c:2119 msgid "RA register is saved twice." msgstr "" -#: config/tc-cr16.c:2125 +#: config/tc-cr16.c:2123 #, c-format msgid "`%s' Illegal use of registers." msgstr "" -#: config/tc-cr16.c:2139 +#: config/tc-cr16.c:2137 #, c-format msgid "`%s' Illegal count-register combination." msgstr "" -#: config/tc-cr16.c:2145 +#: config/tc-cr16.c:2143 #, c-format msgid "`%s' Illegal use of register." msgstr "" -#: config/tc-cr16.c:2154 config/tc-crx.c:1672 +#: config/tc-cr16.c:2152 config/tc-crx.c:1671 #, c-format msgid "`%s' has undefined result" msgstr "" -#: config/tc-cr16.c:2162 +#: config/tc-cr16.c:2160 #, c-format msgid "Same src/dest register is used (`r%d'),result is undefined" msgstr "" -#: config/tc-cr16.c:2333 config/tc-crx.c:1577 +#: config/tc-cr16.c:2331 config/tc-crx.c:1576 msgid "Incorrect number of operands" msgstr "" -#: config/tc-cr16.c:2335 config/tc-crx.c:1579 +#: config/tc-cr16.c:2333 config/tc-crx.c:1578 #, c-format msgid "Illegal type of operand (arg %d)" msgstr "" -#: config/tc-cr16.c:2341 config/tc-crx.c:1585 +#: config/tc-cr16.c:2339 config/tc-crx.c:1584 #, c-format msgid "Operand out of range (arg %d)" msgstr "" -#: config/tc-cr16.c:2344 config/tc-crx.c:1588 +#: config/tc-cr16.c:2342 config/tc-crx.c:1587 #, c-format msgid "Operand has odd displacement (arg %d)" msgstr "" -#: config/tc-cr16.c:2347 config/tc-cr16.c:2378 config/tc-crx.c:1601 -#: config/tc-crx.c:1632 +#: config/tc-cr16.c:2345 config/tc-cr16.c:2376 config/tc-crx.c:1600 +#: config/tc-crx.c:1631 #, c-format msgid "Illegal operand (arg %d)" msgstr "" #. Give an error if a frag containing code is not aligned to a 2-byte #. boundary. -#: config/tc-cr16.c:2480 config/tc-cr16.h:73 config/tc-crx.c:1954 -#: config/tc-crx.h:76 config/tc-ppc.c:3402 config/tc-ppc.c:6375 +#: config/tc-cr16.c:2478 config/tc-cr16.h:74 config/tc-crx.c:1953 +#: config/tc-crx.h:77 config/tc-ppc.c:3402 config/tc-ppc.c:6383 msgid "instruction address is not a multiple of 2" msgstr "" -#: config/tc-cr16.c:2555 config/tc-cris.c:1538 config/tc-cris.c:1546 -#: config/tc-crx.c:1990 config/tc-dlx.c:690 config/tc-hppa.c:3248 -#: config/tc-hppa.c:3255 config/tc-i860.c:491 config/tc-i860.c:508 -#: config/tc-i860.c:988 config/tc-sparc.c:1518 config/tc-sparc.c:1526 +#: config/tc-cr16.c:2553 config/tc-cris.c:1556 config/tc-cris.c:1564 +#: config/tc-crx.c:1989 config/tc-dlx.c:692 config/tc-hppa.c:3242 +#: config/tc-hppa.c:3249 config/tc-i860.c:490 config/tc-i860.c:507 +#: config/tc-i860.c:987 config/tc-sparc.c:1584 config/tc-sparc.c:1592 #, c-format msgid "Unknown opcode: `%s'" msgstr "" -#: config/tc-cris.c:551 config/tc-m68hc11.c:3898 +#: config/tc-cris.c:550 config/tc-m68hc11.c:3896 #, c-format msgid "internal inconsistency problem in %s: fr_symbol %lx" msgstr "" -#: config/tc-cris.c:555 config/tc-m68hc11.c:3902 config/tc-msp430.c:4148 +#: config/tc-cris.c:554 config/tc-m68hc11.c:3900 config/tc-msp430.c:3829 #, c-format msgid "internal inconsistency problem in %s: resolved symbol" msgstr "" -#: config/tc-cris.c:565 config/tc-m68hc11.c:3908 +#: config/tc-cris.c:564 config/tc-m68hc11.c:3906 #, c-format msgid "internal inconsistency problem in %s: fr_subtype %d" msgstr "" -#: config/tc-cris.c:905 +#: config/tc-cris.c:904 msgid "Relaxation to long branches for .arch common_v10_v32 not implemented" msgstr "" -#: config/tc-cris.c:935 +#: config/tc-cris.c:934 msgid "Complicated LAPC target operand is not a multiple of two. Use LAPC.D" msgstr "" -#: config/tc-cris.c:940 +#: config/tc-cris.c:939 #, c-format msgid "" "Internal error found in md_convert_frag: offset %ld. Please report this." msgstr "" -#: config/tc-cris.c:965 +#: config/tc-cris.c:964 #, c-format msgid "internal inconsistency in %s: bdapq no symbol" msgstr "" -#: config/tc-cris.c:978 +#: config/tc-cris.c:977 #, c-format msgid "internal inconsistency in %s: bdap.w with no symbol" msgstr "" -#: config/tc-cris.c:1002 +#: config/tc-cris.c:1001 msgid "section alignment must be >= 4 bytes to check MULS/MULU safeness" msgstr "" -#: config/tc-cris.c:1011 +#: config/tc-cris.c:1010 msgid "dangerous MULS/MULU location; give it higher alignment" msgstr "" #. Bail out for compatibility mode. (It seems it can be implemented, #. perhaps with a 10-byte sequence: "move.d NNNN,$pc/$acr", "jump #. $acr", "nop"; but doesn't seem worth it at the moment.) -#: config/tc-cris.c:1052 +#: config/tc-cris.c:1051 msgid "" "Out-of-range .word offset handling is not implemented for .arch " "common_v10_v32" msgstr "" -#: config/tc-cris.c:1097 +#: config/tc-cris.c:1096 msgid ".word case-table handling failed: table too large" msgstr "" -#: config/tc-cris.c:1229 +#: config/tc-cris.c:1234 #, c-format msgid "Buggy opcode: `%s' \"%s\"\n" msgstr "" -#: config/tc-cris.c:1644 +#: config/tc-cris.c:1662 #, c-format msgid "Immediate value not in 5 bit unsigned range: %ld" msgstr "" -#: config/tc-cris.c:1660 +#: config/tc-cris.c:1678 #, c-format msgid "Immediate value not in 4 bit unsigned range: %ld" msgstr "" -#: config/tc-cris.c:1712 +#: config/tc-cris.c:1730 #, c-format msgid "Immediate value not in 6 bit range: %ld" msgstr "" -#: config/tc-cris.c:1727 +#: config/tc-cris.c:1746 #, c-format msgid "Immediate value not in 6 bit unsigned range: %ld" msgstr "" #. Others have a generic warning. -#: config/tc-cris.c:1835 +#: config/tc-cris.c:1855 #, c-format msgid "Unimplemented register `%s' specified" msgstr "" #. We've come to the end of instructions with this #. opcode, so it must be an error. -#: config/tc-cris.c:2079 +#: config/tc-cris.c:2099 msgid "Illegal operands" msgstr "" -#: config/tc-cris.c:2120 config/tc-cris.c:2160 +#: config/tc-cris.c:2140 config/tc-cris.c:2180 #, c-format msgid "Immediate value not in 8 bit range: %ld" msgstr "" -#: config/tc-cris.c:2130 config/tc-cris.c:2181 +#: config/tc-cris.c:2150 config/tc-cris.c:2201 #, c-format msgid "Immediate value not in 16 bit range: %ld" msgstr "" -#: config/tc-cris.c:2165 +#: config/tc-cris.c:2185 #, c-format msgid "Immediate value not in 8 bit signed range: %ld" msgstr "" -#: config/tc-cris.c:2170 +#: config/tc-cris.c:2190 #, c-format msgid "Immediate value not in 8 bit unsigned range: %ld" msgstr "" -#: config/tc-cris.c:2186 +#: config/tc-cris.c:2206 #, c-format msgid "Immediate value not in 16 bit signed range: %ld" msgstr "" -#: config/tc-cris.c:2191 +#: config/tc-cris.c:2211 #, c-format msgid "Immediate value not in 16 bit unsigned range: %ld" msgstr "" -#: config/tc-cris.c:2217 +#: config/tc-cris.c:2237 msgid "TLS relocation size does not match operand size" msgstr "" -#: config/tc-cris.c:2218 +#: config/tc-cris.c:2238 msgid "PIC relocation size does not match operand size" msgstr "" -#: config/tc-cris.c:3365 +#: config/tc-cris.c:3385 msgid "Calling gen_cond_branch_32 for .arch common_v10_v32\n" msgstr "" -#: config/tc-cris.c:3369 +#: config/tc-cris.c:3389 msgid "32-bit conditional branch generated" msgstr "" -#: config/tc-cris.c:3430 +#: config/tc-cris.c:3450 msgid "Complex expression not supported" msgstr "" #. FIXME: Is this function mentioned in the internals.texi manual? If #. not, add it. -#: config/tc-cris.c:3580 +#: config/tc-cris.c:3600 msgid "Bad call to md_atof () - floating point formats are not supported" msgstr "" -#: config/tc-cris.c:3621 +#: config/tc-cris.c:3641 msgid "PC-relative relocation must be trivially resolved" msgstr "" -#: config/tc-cris.c:3693 +#: config/tc-cris.c:3713 #, c-format msgid "Value not in 16 bit range: %ld" msgstr "" -#: config/tc-cris.c:3701 +#: config/tc-cris.c:3721 #, c-format msgid "Value not in 16 bit signed range: %ld" msgstr "" -#: config/tc-cris.c:3709 +#: config/tc-cris.c:3729 #, c-format msgid "Value not in 8 bit range: %ld" msgstr "" -#: config/tc-cris.c:3716 +#: config/tc-cris.c:3736 #, c-format msgid "Value not in 8 bit signed range: %ld" msgstr "" -#: config/tc-cris.c:3726 +#: config/tc-cris.c:3746 #, c-format msgid "Value not in 4 bit unsigned range: %ld" msgstr "" -#: config/tc-cris.c:3733 +#: config/tc-cris.c:3753 #, c-format msgid "Value not in 5 bit unsigned range: %ld" msgstr "" -#: config/tc-cris.c:3740 +#: config/tc-cris.c:3760 #, c-format msgid "Value not in 6 bit range: %ld" msgstr "" -#: config/tc-cris.c:3747 +#: config/tc-cris.c:3767 #, c-format msgid "Value not in 6 bit unsigned range: %ld" msgstr "" -#: config/tc-cris.c:3791 +#: config/tc-cris.c:3811 #, c-format msgid "Please use --help to see usage and options for this assembler.\n" msgstr "" -#: config/tc-cris.c:3803 +#: config/tc-cris.c:3823 msgid "--no-underscore is invalid with a.out format" msgstr "" -#: config/tc-cris.c:3815 +#: config/tc-cris.c:3835 msgid "--pic is invalid for this object format" msgstr "" -#: config/tc-cris.c:3829 +#: config/tc-cris.c:3849 #, c-format msgid "invalid in --march=: %s" msgstr "" -#: config/tc-cris.c:3938 config/tc-moxie.c:772 +#: config/tc-cris.c:3958 config/tc-moxie.c:770 msgid "" "Semantics error. This type of operand can not be relocated, it must be an " "assembly-time constant" msgstr "" -#: config/tc-cris.c:3987 config/tc-moxie.c:821 +#: config/tc-cris.c:4007 config/tc-moxie.c:819 #, c-format msgid "Cannot generate relocation type for symbol %s, code %s" msgstr "" #. The messages are formatted to line up with the generic options. -#: config/tc-cris.c:4000 +#: config/tc-cris.c:4020 #, c-format msgid "CRIS-specific options:\n" msgstr "" -#: config/tc-cris.c:4002 +#: config/tc-cris.c:4022 msgid "" " -h, -H Don't execute, print this help text. Deprecated.\n" msgstr "" -#: config/tc-cris.c:4004 +#: config/tc-cris.c:4024 msgid " -N Warn when branches are expanded to jumps.\n" msgstr "" -#: config/tc-cris.c:4006 +#: config/tc-cris.c:4026 msgid "" " --underscore User symbols are normally prepended with " "underscore.\n" msgstr "" -#: config/tc-cris.c:4008 +#: config/tc-cris.c:4028 msgid " Registers will not need any prefix.\n" msgstr "" -#: config/tc-cris.c:4010 +#: config/tc-cris.c:4030 msgid " --no-underscore User symbols do not have any prefix.\n" msgstr "" -#: config/tc-cris.c:4012 +#: config/tc-cris.c:4032 msgid " Registers will require a `$'-prefix.\n" msgstr "" -#: config/tc-cris.c:4015 +#: config/tc-cris.c:4035 msgid " --pic\t\t\tEnable generation of position-independent code.\n" msgstr "" -#: config/tc-cris.c:4018 +#: config/tc-cris.c:4038 msgid "" " --march=\t\tGenerate code for . Valid choices for \n" "\t\t\t\tare v0_v10, v10, v32 and common_v10_v32.\n" msgstr "" -#: config/tc-cris.c:4039 +#: config/tc-cris.c:4059 msgid "Invalid relocation" msgstr "" -#: config/tc-cris.c:4076 +#: config/tc-cris.c:4096 msgid "Invalid pc-relative relocation" msgstr "" -#: config/tc-cris.c:4121 +#: config/tc-cris.c:4141 #, c-format msgid "Adjusted signed .word (%ld) overflows: `switch'-statement too large." msgstr "" -#: config/tc-cris.c:4151 +#: config/tc-cris.c:4171 #, c-format msgid ".syntax %s requires command-line option `--underscore'" msgstr "" -#: config/tc-cris.c:4160 +#: config/tc-cris.c:4180 #, c-format msgid ".syntax %s requires command-line option `--no-underscore'" msgstr "" -#: config/tc-cris.c:4197 +#: config/tc-cris.c:4217 msgid "Unknown .syntax operand" msgstr "" -#: config/tc-cris.c:4207 +#: config/tc-cris.c:4227 msgid "Pseudodirective .file is only valid when generating ELF" msgstr "" -#: config/tc-cris.c:4219 +#: config/tc-cris.c:4239 msgid "Pseudodirective .loc is only valid when generating ELF" msgstr "" -#: config/tc-cris.c:4234 +#: config/tc-cris.c:4254 #, c-format msgid "internal inconsistency problem: %s called for %d bytes" msgstr "" -#: config/tc-cris.c:4386 +#: config/tc-cris.c:4406 msgid "unknown operand to .arch" msgstr "" -#: config/tc-cris.c:4395 +#: config/tc-cris.c:4415 msgid ".arch requires a matching --march=... option" msgstr "" -#: config/tc-crx.c:821 +#: config/tc-crx.c:820 #, c-format msgid "Illegal Scale - `%d'" msgstr "" -#: config/tc-crx.c:1263 +#: config/tc-crx.c:1262 #, c-format msgid "Illegal Co-processor register in Instruction `%s' " msgstr "" -#: config/tc-crx.c:1270 +#: config/tc-crx.c:1269 #, c-format msgid "Illegal Co-processor special register in Instruction `%s' " msgstr "" -#: config/tc-crx.c:1591 +#: config/tc-crx.c:1590 #, c-format msgid "Invalid DISPU4 operand value (arg %d)" msgstr "" -#: config/tc-crx.c:1594 +#: config/tc-crx.c:1593 #, c-format msgid "Invalid CST4 operand value (arg %d)" msgstr "" -#: config/tc-crx.c:1597 +#: config/tc-crx.c:1596 #, c-format msgid "Operand value is not within upper 64 KB (arg %d)" msgstr "" -#: config/tc-crx.c:1734 +#: config/tc-crx.c:1733 msgid "Invalid Register in Register List" msgstr "" -#: config/tc-crx.c:1788 +#: config/tc-crx.c:1787 #, c-format msgid "Illegal register `%s' in cop-register list" msgstr "" -#: config/tc-crx.c:1796 +#: config/tc-crx.c:1795 #, c-format msgid "Illegal register `%s' in cop-special-register list" msgstr "" -#: config/tc-crx.c:1815 +#: config/tc-crx.c:1814 #, c-format msgid "Illegal register `%s' in user register list" msgstr "" -#: config/tc-crx.c:1834 +#: config/tc-crx.c:1833 #, c-format msgid "Illegal register `%s' in register list" msgstr "" -#: config/tc-crx.c:1840 +#: config/tc-crx.c:1839 #, c-format msgid "Maximum %d bits may be set in `mask16' operand" msgstr "" -#: config/tc-crx.c:1849 +#: config/tc-crx.c:1848 #, c-format msgid "rest of line ignored; first ignored character is `%c'" msgstr "" -#: config/tc-crx.c:1857 +#: config/tc-crx.c:1856 #, c-format msgid "Illegal `mask16' operand, operation is undefined - `%s'" msgstr "" #. HI can't be specified without LO (and vise-versa). -#: config/tc-crx.c:1863 +#: config/tc-crx.c:1862 msgid "HI/LO registers should be specified together" msgstr "" -#: config/tc-crx.c:1869 +#: config/tc-crx.c:1868 msgid "HI/LO registers should be specified without additional registers" msgstr "" -#: config/tc-d10v.c:218 +#: config/tc-d10v.c:216 #, c-format msgid "" "D10V options:\n" @@ -5338,138 +5434,138 @@ msgid "" " instructions together.\n" msgstr "" -#: config/tc-d10v.c:575 +#: config/tc-d10v.c:573 msgid "operand is not an immediate" msgstr "" -#: config/tc-d10v.c:593 +#: config/tc-d10v.c:591 #, c-format msgid "operand out of range: %lu" msgstr "" -#: config/tc-d10v.c:653 +#: config/tc-d10v.c:651 msgid "Instruction must be executed in parallel with another instruction." msgstr "" -#: config/tc-d10v.c:707 config/tc-d10v.c:715 +#: config/tc-d10v.c:705 config/tc-d10v.c:713 #, c-format msgid "packing conflict: %s must dispatch sequentially" msgstr "" -#: config/tc-d10v.c:814 +#: config/tc-d10v.c:812 #, c-format msgid "resource conflict (R%d)" msgstr "" -#: config/tc-d10v.c:817 +#: config/tc-d10v.c:815 #, c-format msgid "resource conflict (A%d)" msgstr "" -#: config/tc-d10v.c:819 +#: config/tc-d10v.c:817 msgid "resource conflict (PSW)" msgstr "" -#: config/tc-d10v.c:821 +#: config/tc-d10v.c:819 msgid "resource conflict (C flag)" msgstr "" -#: config/tc-d10v.c:823 +#: config/tc-d10v.c:821 msgid "resource conflict (F flag)" msgstr "" -#: config/tc-d10v.c:973 +#: config/tc-d10v.c:971 msgid "Instruction must be executed in parallel" msgstr "" -#: config/tc-d10v.c:976 +#: config/tc-d10v.c:974 msgid "Long instructions may not be combined." msgstr "" -#: config/tc-d10v.c:1009 +#: config/tc-d10v.c:1007 msgid "One of these instructions may not be executed in parallel." msgstr "" -#: config/tc-d10v.c:1013 config/tc-d30v.c:1038 +#: config/tc-d10v.c:1011 config/tc-d30v.c:1037 msgid "Two IU instructions may not be executed in parallel" msgstr "" -#: config/tc-d10v.c:1015 config/tc-d10v.c:1023 config/tc-d10v.c:1037 -#: config/tc-d10v.c:1052 config/tc-d30v.c:1039 config/tc-d30v.c:1048 +#: config/tc-d10v.c:1013 config/tc-d10v.c:1021 config/tc-d10v.c:1035 +#: config/tc-d10v.c:1050 config/tc-d30v.c:1038 config/tc-d30v.c:1047 msgid "Swapping instruction order" msgstr "" -#: config/tc-d10v.c:1021 config/tc-d30v.c:1045 +#: config/tc-d10v.c:1019 config/tc-d30v.c:1044 msgid "Two MU instructions may not be executed in parallel" msgstr "" -#: config/tc-d10v.c:1041 config/tc-d30v.c:1065 +#: config/tc-d10v.c:1039 config/tc-d30v.c:1064 msgid "IU instruction may not be in the left container" msgstr "" -#: config/tc-d10v.c:1043 config/tc-d10v.c:1058 +#: config/tc-d10v.c:1041 config/tc-d10v.c:1056 msgid "" "Instruction in R container is squashed by flow control instruction in L " "container." msgstr "" -#: config/tc-d10v.c:1056 config/tc-d30v.c:1076 +#: config/tc-d10v.c:1054 config/tc-d30v.c:1075 msgid "MU instruction may not be in the right container" msgstr "" -#: config/tc-d10v.c:1062 config/tc-d30v.c:1088 +#: config/tc-d10v.c:1060 config/tc-d30v.c:1087 msgid "unknown execution type passed to write_2_short()" msgstr "" -#: config/tc-d10v.c:1191 config/tc-d10v.c:1366 +#: config/tc-d10v.c:1189 config/tc-d10v.c:1362 msgid "bad opcode or operands" msgstr "" -#: config/tc-d10v.c:1268 +#: config/tc-d10v.c:1264 msgid "value out of range" msgstr "" -#: config/tc-d10v.c:1342 +#: config/tc-d10v.c:1338 msgid "illegal operand - register name found where none expected" msgstr "" -#: config/tc-d10v.c:1377 +#: config/tc-d10v.c:1373 msgid "Register number must be EVEN" msgstr "" -#: config/tc-d10v.c:1380 +#: config/tc-d10v.c:1376 msgid "Unsupported use of sp" msgstr "" -#: config/tc-d10v.c:1399 +#: config/tc-d10v.c:1395 #, c-format msgid "cr%ld is a reserved control register" msgstr "" -#: config/tc-d10v.c:1574 +#: config/tc-d10v.c:1570 #, c-format msgid "line %d: rep or repi must include at least 4 instructions" msgstr "" -#: config/tc-d10v.c:1763 +#: config/tc-d10v.c:1759 msgid "can't find previous opcode " msgstr "" -#: config/tc-d10v.c:1775 +#: config/tc-d10v.c:1771 #, c-format msgid "could not assemble: %s" msgstr "" -#: config/tc-d10v.c:1790 config/tc-d10v.c:1812 config/tc-d30v.c:1747 +#: config/tc-d10v.c:1786 config/tc-d10v.c:1808 config/tc-d30v.c:1744 msgid "Unable to mix instructions as specified" msgstr "" -#: config/tc-d30v.c:150 +#: config/tc-d30v.c:149 #, c-format msgid "Register name %s conflicts with symbol of the same name" msgstr "" -#: config/tc-d30v.c:240 +#: config/tc-d30v.c:239 #, c-format msgid "" "\n" @@ -5483,221 +5579,219 @@ msgid "" "-C Opposite of -C. -c is the default.\n" msgstr "" -#: config/tc-d30v.c:368 +#: config/tc-d30v.c:367 msgid "unexpected 12-bit reloc type" msgstr "" -#: config/tc-d30v.c:375 +#: config/tc-d30v.c:374 msgid "unexpected 18-bit reloc type" msgstr "" -#: config/tc-d30v.c:626 +#: config/tc-d30v.c:625 #, c-format msgid "%s NOP inserted" msgstr "" -#: config/tc-d30v.c:627 +#: config/tc-d30v.c:626 msgid "sequential" msgstr "" -#: config/tc-d30v.c:627 +#: config/tc-d30v.c:626 msgid "parallel" msgstr "" -#: config/tc-d30v.c:1034 +#: config/tc-d30v.c:1033 msgid "Instructions may not be executed in parallel" msgstr "" -#: config/tc-d30v.c:1047 +#: config/tc-d30v.c:1046 #, c-format msgid "Executing %s in IU may not work" msgstr "" -#: config/tc-d30v.c:1054 +#: config/tc-d30v.c:1053 #, c-format msgid "Executing %s in IU may not work in parallel execution" msgstr "" -#: config/tc-d30v.c:1067 +#: config/tc-d30v.c:1066 #, c-format msgid "special left instruction `%s' kills instruction `%s' in right container" msgstr "" -#: config/tc-d30v.c:1078 +#: config/tc-d30v.c:1077 #, c-format msgid "Executing %s in reverse serial with %s may not work" msgstr "" -#: config/tc-d30v.c:1081 +#: config/tc-d30v.c:1080 #, c-format msgid "Executing %s in IU in reverse serial may not work" msgstr "" -#: config/tc-d30v.c:1271 +#: config/tc-d30v.c:1268 msgid "Odd numbered register used as target of multi-register instruction" msgstr "" -#: config/tc-d30v.c:1335 config/tc-d30v.c:1371 +#: config/tc-d30v.c:1332 config/tc-d30v.c:1368 #, c-format msgid "unknown condition code: %s" msgstr "" -#: config/tc-d30v.c:1364 +#: config/tc-d30v.c:1361 #, c-format msgid "cmpu doesn't support condition code %s" msgstr "" -#: config/tc-d30v.c:1399 +#: config/tc-d30v.c:1396 #, c-format msgid "unknown opcode: %s" msgstr "" -#: config/tc-d30v.c:1410 +#: config/tc-d30v.c:1407 #, c-format msgid "operands for opcode `%s' do not match any valid format" msgstr "" -#: config/tc-d30v.c:1625 config/tc-d30v.c:1642 +#: config/tc-d30v.c:1622 config/tc-d30v.c:1639 msgid "Cannot assemble instruction" msgstr "" -#: config/tc-d30v.c:1627 +#: config/tc-d30v.c:1624 msgid "First opcode is long. Unable to mix instructions as specified." msgstr "" -#: config/tc-d30v.c:1697 +#: config/tc-d30v.c:1694 msgid "word of NOPs added between word multiply and load" msgstr "" -#: config/tc-d30v.c:1699 +#: config/tc-d30v.c:1696 msgid "word of NOPs added between word multiply and 16-bit multiply" msgstr "" -#: config/tc-d30v.c:1731 +#: config/tc-d30v.c:1728 msgid "Instruction uses long version, so it cannot be mixed as specified" msgstr "" -#: config/tc-d30v.c:1858 +#: config/tc-d30v.c:1855 #, c-format msgid "value too large to fit in %d bits" msgstr "" -#: config/tc-d30v.c:1926 +#: config/tc-d30v.c:1923 #, c-format msgid "line %d: unable to place address of symbol '%s' into a byte" msgstr "" -#: config/tc-d30v.c:1929 +#: config/tc-d30v.c:1926 #, c-format msgid "line %d: unable to place value %lx into a byte" msgstr "" -#: config/tc-d30v.c:1937 +#: config/tc-d30v.c:1934 #, c-format msgid "line %d: unable to place address of symbol '%s' into a short" msgstr "" -#: config/tc-d30v.c:1940 +#: config/tc-d30v.c:1937 #, c-format msgid "line %d: unable to place value %lx into a short" msgstr "" -#: config/tc-d30v.c:1948 +#: config/tc-d30v.c:1945 #, c-format msgid "line %d: unable to place address of symbol '%s' into a quad" msgstr "" -#: config/tc-d30v.c:2056 +#: config/tc-d30v.c:2053 #, c-format msgid "Alignment too large: %d assumed" msgstr "" -#: config/tc-dlx.c:212 +#: config/tc-dlx.c:211 msgid "missing .proc" msgstr "" -#: config/tc-dlx.c:229 +#: config/tc-dlx.c:228 msgid ".endfunc missing for previous .proc" msgstr "" -#: config/tc-dlx.c:296 config/tc-i860.c:227 config/tc-mips.c:3354 -#: config/tc-nios2.c:2611 config/tc-nios2.c:2625 config/tc-nios2.c:2640 -#: config/tc-nios2.c:2654 +#: config/tc-dlx.c:295 config/tc-i860.c:226 config/tc-mips.c:3483 +#: config/tc-nios2.c:2419 config/tc-nios2.c:2433 config/tc-nios2.c:2448 #, c-format msgid "internal error: can't hash `%s': %s\n" msgstr "" #. Probably a memory allocation problem? Give up now. -#. Probably a memory allocation problem. Give up now. -#: config/tc-dlx.c:303 config/tc-hppa.c:8365 config/tc-nios2.c:2614 -#: config/tc-nios2.c:2628 config/tc-nios2.c:2643 config/tc-nios2.c:2657 -#: config/tc-nios2.c:2773 config/tc-or32.c:211 config/tc-sparc.c:899 +#: config/tc-dlx.c:302 config/tc-hppa.c:8359 config/tc-nios2.c:1270 +#: config/tc-nios2.c:2422 config/tc-nios2.c:2436 config/tc-nios2.c:2451 +#: config/tc-sparc.c:930 msgid "Broken assembler. No assembly attempted." msgstr "" -#: config/tc-dlx.c:333 +#: config/tc-dlx.c:332 #, c-format msgid "Bad operand for a load instruction: <%s>" msgstr "" -#: config/tc-dlx.c:447 +#: config/tc-dlx.c:446 #, c-format msgid "Bad operand for a store instruction: <%s>" msgstr "" -#: config/tc-dlx.c:627 +#: config/tc-dlx.c:626 #, c-format msgid "Expression Error for operand modifier %%hi/%%lo\n" msgstr "" -#: config/tc-dlx.c:640 config/tc-or32.c:811 +#: config/tc-dlx.c:639 #, c-format msgid "Invalid expression after %%%%\n" msgstr "" -#: config/tc-dlx.c:708 config/tc-tic4x.c:2481 +#: config/tc-dlx.c:703 config/tc-tic4x.c:2479 #, c-format msgid "Unknown opcode `%s'." msgstr "" -#: config/tc-dlx.c:720 +#: config/tc-dlx.c:712 msgid "Can not set dlx_skip_hi16_flag" msgstr "" -#: config/tc-dlx.c:734 +#: config/tc-dlx.c:726 #, c-format msgid "Missing arguments for opcode <%s>." msgstr "" -#: config/tc-dlx.c:768 +#: config/tc-dlx.c:760 #, c-format msgid "Too many operands: %s" msgstr "" -#: config/tc-dlx.c:805 +#: config/tc-dlx.c:797 #, c-format msgid "Both the_insn.HI and the_insn.LO are set : %s" msgstr "" -#: config/tc-dlx.c:875 +#: config/tc-dlx.c:867 msgid "failed regnum sanity check." msgstr "" -#: config/tc-dlx.c:888 +#: config/tc-dlx.c:880 msgid "failed general register sanity check." msgstr "" #. Types or values of args don't match. -#: config/tc-dlx.c:896 +#: config/tc-dlx.c:888 msgid "Invalid operands" msgstr "" -#: config/tc-dlx.c:1125 config/tc-or32.c:773 +#: config/tc-dlx.c:1117 #, c-format msgid "label \"$%d\" redefined" msgstr "" -#: config/tc-dlx.c:1163 +#: config/tc-dlx.c:1155 msgid "Invalid expression after # number\n" msgstr "" @@ -5714,7 +5808,7 @@ msgstr "" msgid "register is out of order" msgstr "" -#: config/tc-epiphany.c:401 config/tc-m68k.c:6041 config/tc-m68k.c:6070 +#: config/tc-epiphany.c:401 config/tc-m68k.c:6036 config/tc-m68k.c:6065 msgid "bad register list" msgstr "" @@ -5731,161 +5825,161 @@ msgstr "" msgid "ldrd/strd requires even:odd register pair" msgstr "" -#: config/tc-epiphany.c:824 config/tc-m32r.c:1789 +#: config/tc-epiphany.c:824 config/tc-m32r.c:1788 msgid "Addend to unresolved symbol not on word boundary." msgstr "" -#: config/tc-fr30.c:82 +#: config/tc-fr30.c:81 #, c-format msgid " FR30 specific command line options:\n" msgstr "" -#: config/tc-fr30.c:135 +#: config/tc-fr30.c:134 #, c-format msgid "Instruction %s not allowed in a delay slot." msgstr "" -#: config/tc-frv.c:405 +#: config/tc-frv.c:404 #, c-format msgid "Unknown cpu -mcpu=%s" msgstr "" -#: config/tc-frv.c:458 +#: config/tc-frv.c:457 #, c-format msgid "FRV specific command line options:\n" msgstr "" -#: config/tc-frv.c:459 +#: config/tc-frv.c:458 #, c-format msgid "-G n Put data <= n bytes in the small data area\n" msgstr "" -#: config/tc-frv.c:460 +#: config/tc-frv.c:459 #, c-format msgid "-mgpr-32 Mark generated file as only using 32 GPRs\n" msgstr "" -#: config/tc-frv.c:461 +#: config/tc-frv.c:460 #, c-format msgid "-mgpr-64 Mark generated file as using all 64 GPRs\n" msgstr "" -#: config/tc-frv.c:462 +#: config/tc-frv.c:461 #, c-format msgid "-mfpr-32 Mark generated file as only using 32 FPRs\n" msgstr "" -#: config/tc-frv.c:463 +#: config/tc-frv.c:462 #, c-format msgid "-mfpr-64 Mark generated file as using all 64 FPRs\n" msgstr "" -#: config/tc-frv.c:464 +#: config/tc-frv.c:463 #, c-format msgid "-msoft-float Mark generated file as using software FP\n" msgstr "" -#: config/tc-frv.c:465 +#: config/tc-frv.c:464 #, c-format msgid "-mdword Mark generated file as using a 8-byte stack alignment\n" msgstr "" -#: config/tc-frv.c:466 +#: config/tc-frv.c:465 #, c-format msgid "-mno-dword Mark generated file as using a 4-byte stack alignment\n" msgstr "" -#: config/tc-frv.c:467 +#: config/tc-frv.c:466 #, c-format msgid "" "-mdouble Mark generated file as using double precision FP insns\n" msgstr "" -#: config/tc-frv.c:468 +#: config/tc-frv.c:467 #, c-format msgid "-mmedia Mark generated file as using media insns\n" msgstr "" -#: config/tc-frv.c:469 +#: config/tc-frv.c:468 #, c-format msgid "" "-mmuladd Mark generated file as using multiply add/subtract insns\n" msgstr "" -#: config/tc-frv.c:470 +#: config/tc-frv.c:469 #, c-format msgid "-mpack Allow instructions to be packed\n" msgstr "" -#: config/tc-frv.c:471 +#: config/tc-frv.c:470 #, c-format msgid "-mno-pack Do not allow instructions to be packed\n" msgstr "" -#: config/tc-frv.c:472 +#: config/tc-frv.c:471 #, c-format msgid "" "-mpic Mark generated file as using small position independent " "code\n" msgstr "" -#: config/tc-frv.c:473 +#: config/tc-frv.c:472 #, c-format msgid "" "-mPIC Mark generated file as using large position independent " "code\n" msgstr "" -#: config/tc-frv.c:474 +#: config/tc-frv.c:473 #, c-format msgid "" "-mlibrary-pic Mark generated file as using position indepedent code for " "libraries\n" msgstr "" -#: config/tc-frv.c:475 +#: config/tc-frv.c:474 #, c-format msgid "-mfdpic Assemble for the FDPIC ABI\n" msgstr "" -#: config/tc-frv.c:476 +#: config/tc-frv.c:475 #, c-format msgid "-mnopic Disable -mpic, -mPIC, -mlibrary-pic and -mfdpic\n" msgstr "" -#: config/tc-frv.c:477 +#: config/tc-frv.c:476 #, c-format msgid "-mcpu={fr500|fr550|fr400|fr405|fr450|fr300|frv|simple|tomcat}\n" msgstr "" -#: config/tc-frv.c:478 +#: config/tc-frv.c:477 #, c-format msgid " Record the cpu type\n" msgstr "" -#: config/tc-frv.c:479 +#: config/tc-frv.c:478 #, c-format msgid "-mtomcat-stats Print out stats for tomcat workarounds\n" msgstr "" -#: config/tc-frv.c:480 +#: config/tc-frv.c:479 #, c-format msgid "-mtomcat-debug Debug tomcat workarounds\n" msgstr "" -#: config/tc-frv.c:1162 +#: config/tc-frv.c:1161 msgid "VLIW packing used for -mno-pack" msgstr "" -#: config/tc-frv.c:1172 +#: config/tc-frv.c:1171 msgid "Instruction not supported by this architecture" msgstr "" -#: config/tc-frv.c:1182 +#: config/tc-frv.c:1181 msgid "VLIW packing constraint violation" msgstr "" -#: config/tc-frv.c:1773 +#: config/tc-frv.c:1772 #, c-format msgid "Relocation %s is not safe for %s" msgstr "" @@ -6016,10 +6110,9 @@ msgstr "" #. This seems more sane than saying "too many operands". We'll #. get here only if the trailing trash starts with a comma. -#. Types or values of args don't match. -#: config/tc-h8300.c:1840 config/tc-mips.c:13043 config/tc-mips.c:13111 +#: config/tc-h8300.c:1840 config/tc-mips.c:13631 config/tc-mips.c:13699 #: config/tc-mmix.c:479 config/tc-mmix.c:491 config/tc-mmix.c:2531 -#: config/tc-mmix.c:2555 config/tc-mmix.c:2828 config/tc-or32.c:527 +#: config/tc-mmix.c:2555 config/tc-mmix.c:2828 msgid "invalid operands" msgstr "" @@ -6027,8 +6120,8 @@ msgstr "" msgid "operand/size mis-match" msgstr "" -#: config/tc-h8300.c:1971 config/tc-sh.c:2970 config/tc-sh64.c:2795 -#: config/tc-z8k.c:1226 +#: config/tc-h8300.c:1971 config/tc-sh.c:2969 config/tc-sh64.c:2794 +#: config/tc-z8k.c:1225 msgid "unknown opcode" msgstr "" @@ -6063,8 +6156,8 @@ msgstr "" msgid "Difference of symbols in different sections is not supported" msgstr "" -#: config/tc-h8300.c:2252 config/tc-mcore.c:2199 config/tc-microblaze.c:2444 -#: config/tc-pj.c:487 config/tc-sh.c:4478 config/tc-tic6x.c:4523 +#: config/tc-h8300.c:2252 config/tc-mcore.c:2198 config/tc-microblaze.c:2445 +#: config/tc-pj.c:487 config/tc-sh.c:4477 config/tc-tic6x.c:4523 #: config/tc-xc16x.c:315 #, c-format msgid "Cannot represent relocation type %s" @@ -6074,1244 +6167,1259 @@ msgstr "" #. IGNORE is used to suppress the error message. #. Variant of CHECK_FIELD for use in md_apply_fix and other places where #. the current file and line number are not valid. -#: config/tc-hppa.c:1029 config/tc-hppa.c:1043 +#: config/tc-hppa.c:1024 config/tc-hppa.c:1038 #, c-format msgid "Field out of range [%d..%d] (%d)." msgstr "" #. Simple alignment checking for FIELD against ALIGN (a power of two). #. IGNORE is used to suppress the error message. -#: config/tc-hppa.c:1057 +#: config/tc-hppa.c:1052 #, c-format msgid "Field not properly aligned [%d] (%d)." msgstr "" -#: config/tc-hppa.c:1110 +#: config/tc-hppa.c:1105 msgid "Missing .exit\n" msgstr "" -#: config/tc-hppa.c:1113 +#: config/tc-hppa.c:1108 msgid "Missing .procend\n" msgstr "" -#: config/tc-hppa.c:1298 +#: config/tc-hppa.c:1294 #, c-format msgid "Invalid field selector. Assuming F%%." msgstr "" -#: config/tc-hppa.c:1325 +#: config/tc-hppa.c:1318 msgid "Bad segment in expression." msgstr "" -#: config/tc-hppa.c:1350 +#: config/tc-hppa.c:1343 #, c-format msgid "Invalid Nullification: (%c)" msgstr "" -#: config/tc-hppa.c:1421 +#: config/tc-hppa.c:1414 msgid "Cannot handle fixup" msgstr "" -#: config/tc-hppa.c:1719 +#: config/tc-hppa.c:1712 #, c-format msgid " -Q ignored\n" msgstr "" -#: config/tc-hppa.c:1723 +#: config/tc-hppa.c:1716 #, c-format msgid " -c print a warning if a comment is found\n" msgstr "" -#: config/tc-hppa.c:1789 +#: config/tc-hppa.c:1782 #, c-format msgid "no hppa_fixup entry for fixup type 0x%x" msgstr "" -#: config/tc-hppa.c:1968 +#: config/tc-hppa.c:1961 msgid "Unknown relocation encountered in md_apply_fix." msgstr "" -#: config/tc-hppa.c:2156 config/tc-hppa.c:2181 +#: config/tc-hppa.c:2149 config/tc-hppa.c:2174 #, c-format msgid "Undefined register: '%s'." msgstr "" -#: config/tc-hppa.c:2215 +#: config/tc-hppa.c:2208 #, c-format msgid "Non-absolute symbol: '%s'." msgstr "" -#: config/tc-hppa.c:2230 +#: config/tc-hppa.c:2223 #, c-format msgid "Undefined absolute constant: '%s'." msgstr "" -#: config/tc-hppa.c:2261 config/tc-hppa.c:5728 +#: config/tc-hppa.c:2254 config/tc-hppa.c:5722 msgid "could not update architecture and machine" msgstr "" -#: config/tc-hppa.c:2299 +#: config/tc-hppa.c:2292 #, c-format msgid "Invalid FP Compare Condition: %s" msgstr "" -#: config/tc-hppa.c:2354 +#: config/tc-hppa.c:2347 #, c-format msgid "Invalid FTEST completer: %s" msgstr "" -#: config/tc-hppa.c:2420 config/tc-hppa.c:2457 +#: config/tc-hppa.c:2413 config/tc-hppa.c:2450 #, c-format msgid "Invalid FP Operand Format: %3s" msgstr "" -#: config/tc-hppa.c:2561 +#: config/tc-hppa.c:2555 msgid "Bad segment (should be absolute)." msgstr "" -#: config/tc-hppa.c:2621 +#: config/tc-hppa.c:2615 #, c-format msgid "Invalid argument location: %s\n" msgstr "" -#: config/tc-hppa.c:2650 +#: config/tc-hppa.c:2644 #, c-format msgid "Invalid argument description: %d" msgstr "" -#: config/tc-hppa.c:3479 +#: config/tc-hppa.c:3473 msgid "Invalid Indexed Load Completer." msgstr "" -#: config/tc-hppa.c:3484 +#: config/tc-hppa.c:3478 msgid "Invalid Indexed Load Completer Syntax." msgstr "" -#: config/tc-hppa.c:3518 +#: config/tc-hppa.c:3512 msgid "Invalid Short Load/Store Completer." msgstr "" -#: config/tc-hppa.c:3578 config/tc-hppa.c:3583 +#: config/tc-hppa.c:3572 config/tc-hppa.c:3577 msgid "Invalid Store Bytes Short Completer" msgstr "" -#: config/tc-hppa.c:3898 config/tc-hppa.c:3904 +#: config/tc-hppa.c:3892 config/tc-hppa.c:3898 msgid "Invalid left/right combination completer" msgstr "" -#: config/tc-hppa.c:3953 config/tc-hppa.c:3960 +#: config/tc-hppa.c:3947 config/tc-hppa.c:3954 msgid "Invalid permutation completer" msgstr "" -#: config/tc-hppa.c:4060 +#: config/tc-hppa.c:4054 #, c-format msgid "Invalid Add Condition: %s" msgstr "" -#: config/tc-hppa.c:4076 config/tc-hppa.c:4086 +#: config/tc-hppa.c:4070 config/tc-hppa.c:4080 msgid "Invalid Add and Branch Condition" msgstr "" -#: config/tc-hppa.c:4107 config/tc-hppa.c:4252 +#: config/tc-hppa.c:4101 config/tc-hppa.c:4246 msgid "Invalid Compare/Subtract Condition" msgstr "" -#: config/tc-hppa.c:4147 +#: config/tc-hppa.c:4141 #, c-format msgid "Invalid Branch On Bit Condition: %c" msgstr "" -#: config/tc-hppa.c:4150 +#: config/tc-hppa.c:4144 msgid "Missing Branch On Bit Condition" msgstr "" -#: config/tc-hppa.c:4235 +#: config/tc-hppa.c:4229 #, c-format msgid "Invalid Compare/Subtract Condition: %s" msgstr "" -#: config/tc-hppa.c:4267 +#: config/tc-hppa.c:4261 msgid "Invalid Compare and Branch Condition" msgstr "" -#: config/tc-hppa.c:4363 +#: config/tc-hppa.c:4357 msgid "Invalid Logical Instruction Condition." msgstr "" -#: config/tc-hppa.c:4425 +#: config/tc-hppa.c:4419 msgid "Invalid Shift/Extract/Deposit Condition." msgstr "" -#: config/tc-hppa.c:4542 +#: config/tc-hppa.c:4536 msgid "Invalid Unit Instruction Condition." msgstr "" -#: config/tc-hppa.c:5021 config/tc-hppa.c:5053 config/tc-hppa.c:5084 -#: config/tc-hppa.c:5114 +#: config/tc-hppa.c:5015 config/tc-hppa.c:5047 config/tc-hppa.c:5078 +#: config/tc-hppa.c:5108 msgid "Branch to unaligned address" msgstr "" -#: config/tc-hppa.c:5298 +#: config/tc-hppa.c:5292 msgid "Invalid SFU identifier" msgstr "" -#: config/tc-hppa.c:5348 +#: config/tc-hppa.c:5342 msgid "Invalid COPR identifier" msgstr "" -#: config/tc-hppa.c:5477 +#: config/tc-hppa.c:5471 msgid "Invalid Floating Point Operand Format." msgstr "" -#: config/tc-hppa.c:5597 config/tc-hppa.c:5617 config/tc-hppa.c:5637 -#: config/tc-hppa.c:5657 config/tc-hppa.c:5677 +#: config/tc-hppa.c:5591 config/tc-hppa.c:5611 config/tc-hppa.c:5631 +#: config/tc-hppa.c:5651 config/tc-hppa.c:5671 msgid "Invalid register for single precision fmpyadd or fmpysub" msgstr "" -#: config/tc-hppa.c:5745 +#: config/tc-hppa.c:5739 #, c-format msgid "Invalid operands %s" msgstr "" -#: config/tc-hppa.c:5755 +#: config/tc-hppa.c:5749 #, c-format msgid "Immediates %d and %d will give undefined behavior." msgstr "" -#: config/tc-hppa.c:5807 config/tc-hppa.c:7034 config/tc-hppa.c:7089 +#: config/tc-hppa.c:5801 config/tc-hppa.c:7028 config/tc-hppa.c:7083 msgid "Missing function name for .PROC (corrupted label chain)" msgstr "" -#: config/tc-hppa.c:5810 config/tc-hppa.c:7092 +#: config/tc-hppa.c:5804 config/tc-hppa.c:7086 msgid "Missing function name for .PROC" msgstr "" -#: config/tc-hppa.c:5869 +#: config/tc-hppa.c:5863 msgid "Argument to .BLOCK/.BLOCKZ must be between 0 and 0x3fffffff" msgstr "" -#: config/tc-hppa.c:5965 +#: config/tc-hppa.c:5959 #, c-format msgid "Invalid .CALL argument: %s" msgstr "" -#: config/tc-hppa.c:6113 +#: config/tc-hppa.c:6107 msgid ".callinfo is not within a procedure definition" msgstr "" -#: config/tc-hppa.c:6133 +#: config/tc-hppa.c:6127 #, c-format msgid "FRAME parameter must be a multiple of 8: %d\n" msgstr "" -#: config/tc-hppa.c:6152 +#: config/tc-hppa.c:6146 msgid "Value for ENTRY_GR must be in the range 3..18\n" msgstr "" -#: config/tc-hppa.c:6164 +#: config/tc-hppa.c:6158 msgid "Value for ENTRY_FR must be in the range 12..21\n" msgstr "" -#: config/tc-hppa.c:6174 +#: config/tc-hppa.c:6168 msgid "Value for ENTRY_SR must be 3\n" msgstr "" -#: config/tc-hppa.c:6230 +#: config/tc-hppa.c:6224 #, c-format msgid "Invalid .CALLINFO argument: %s" msgstr "" -#: config/tc-hppa.c:6340 +#: config/tc-hppa.c:6334 msgid "The .ENTER pseudo-op is not supported" msgstr "" -#: config/tc-hppa.c:6356 +#: config/tc-hppa.c:6350 msgid "Misplaced .entry. Ignored." msgstr "" -#: config/tc-hppa.c:6360 +#: config/tc-hppa.c:6354 msgid "Missing .callinfo." msgstr "" -#: config/tc-hppa.c:6424 +#: config/tc-hppa.c:6418 msgid ".REG expression must be a register" msgstr "" -#: config/tc-hppa.c:6440 +#: config/tc-hppa.c:6434 msgid "bad or irreducible absolute expression; zero assumed" msgstr "" -#: config/tc-hppa.c:6451 +#: config/tc-hppa.c:6445 msgid ".REG must use a label" msgstr "" -#: config/tc-hppa.c:6453 +#: config/tc-hppa.c:6447 msgid ".EQU must use a label" msgstr "" -#: config/tc-hppa.c:6515 +#: config/tc-hppa.c:6509 #, c-format msgid "Symbol '%s' could not be created." msgstr "" -#: config/tc-hppa.c:6519 +#: config/tc-hppa.c:6513 msgid "No memory for symbol name." msgstr "" -#: config/tc-hppa.c:6569 +#: config/tc-hppa.c:6563 msgid ".EXIT must appear within a procedure" msgstr "" -#: config/tc-hppa.c:6573 +#: config/tc-hppa.c:6567 msgid "Missing .callinfo" msgstr "" -#: config/tc-hppa.c:6577 +#: config/tc-hppa.c:6571 msgid "No .ENTRY for this .EXIT" msgstr "" -#: config/tc-hppa.c:6617 +#: config/tc-hppa.c:6611 #, c-format msgid "Using ENTRY rather than CODE in export directive for %s" msgstr "" -#: config/tc-hppa.c:6740 +#: config/tc-hppa.c:6734 #, c-format msgid "Undefined .EXPORT/.IMPORT argument (ignored): %s" msgstr "" -#: config/tc-hppa.c:6764 +#: config/tc-hppa.c:6758 #, c-format msgid "Cannot define export symbol: %s\n" msgstr "" -#: config/tc-hppa.c:6861 +#: config/tc-hppa.c:6855 msgid "Missing label name on .LABEL" msgstr "" -#: config/tc-hppa.c:6866 +#: config/tc-hppa.c:6860 msgid "extra .LABEL arguments ignored." msgstr "" -#: config/tc-hppa.c:6882 +#: config/tc-hppa.c:6876 msgid "The .LEAVE pseudo-op is not supported" msgstr "" -#: config/tc-hppa.c:6920 +#: config/tc-hppa.c:6914 msgid "Unrecognized .LEVEL argument\n" msgstr "" -#: config/tc-hppa.c:6954 +#: config/tc-hppa.c:6948 #, c-format msgid "Cannot define static symbol: %s\n" msgstr "" -#: config/tc-hppa.c:6988 +#: config/tc-hppa.c:6982 msgid "Nested procedures" msgstr "" -#: config/tc-hppa.c:6998 +#: config/tc-hppa.c:6992 msgid "Cannot allocate unwind descriptor\n" msgstr "" -#: config/tc-hppa.c:7096 +#: config/tc-hppa.c:7090 msgid "misplaced .procend" msgstr "" -#: config/tc-hppa.c:7099 +#: config/tc-hppa.c:7093 msgid "Missing .callinfo for this procedure" msgstr "" -#: config/tc-hppa.c:7102 +#: config/tc-hppa.c:7096 msgid "Missing .EXIT for a .ENTRY" msgstr "" -#: config/tc-hppa.c:7139 +#: config/tc-hppa.c:7133 msgid "Not in a space.\n" msgstr "" -#: config/tc-hppa.c:7142 +#: config/tc-hppa.c:7136 msgid "Not in a subspace.\n" msgstr "" -#: config/tc-hppa.c:7231 +#: config/tc-hppa.c:7225 msgid "Invalid .SPACE argument" msgstr "" -#: config/tc-hppa.c:7277 +#: config/tc-hppa.c:7271 msgid "Can't change spaces within a procedure definition. Ignored" msgstr "" -#: config/tc-hppa.c:7405 +#: config/tc-hppa.c:7399 #, c-format msgid "Undefined space: '%s' Assuming space number = 0." msgstr "" -#: config/tc-hppa.c:7428 +#: config/tc-hppa.c:7422 msgid "Must be in a space before changing or declaring subspaces.\n" msgstr "" -#: config/tc-hppa.c:7432 +#: config/tc-hppa.c:7426 msgid "Can't change subspaces within a procedure definition. Ignored" msgstr "" -#: config/tc-hppa.c:7468 +#: config/tc-hppa.c:7462 msgid "Parameters of an existing subspace can't be modified" msgstr "" -#: config/tc-hppa.c:7520 +#: config/tc-hppa.c:7514 msgid "Alignment must be a power of 2" msgstr "" -#: config/tc-hppa.c:7567 +#: config/tc-hppa.c:7561 msgid "FIRST not supported as a .SUBSPACE argument" msgstr "" -#: config/tc-hppa.c:7569 +#: config/tc-hppa.c:7563 msgid "Invalid .SUBSPACE argument" msgstr "" -#: config/tc-hppa.c:7758 +#: config/tc-hppa.c:7752 #, c-format msgid "Internal error: Unable to find containing space for %s." msgstr "" -#: config/tc-hppa.c:7796 +#: config/tc-hppa.c:7790 #, c-format msgid "Out of memory: could not allocate new space chain entry: %s\n" msgstr "" -#: config/tc-hppa.c:7884 +#: config/tc-hppa.c:7878 #, c-format msgid "Out of memory: could not allocate new subspace chain entry: %s\n" msgstr "" -#: config/tc-hppa.c:8329 +#: config/tc-hppa.c:8323 msgid "-R option not supported on this target." msgstr "" -#: config/tc-hppa.c:8346 config/tc-sparc.c:854 config/tc-sparc.c:891 +#: config/tc-hppa.c:8340 config/tc-sparc.c:885 config/tc-sparc.c:922 #, c-format msgid "Internal error: can't hash `%s': %s\n" msgstr "" -#: config/tc-hppa.c:8355 config/tc-i860.c:236 +#: config/tc-hppa.c:8349 config/tc-i860.c:235 #, c-format msgid "internal error: losing opcode: `%s' \"%s\"\n" msgstr "" -#: config/tc-i370.c:419 config/tc-ppc.c:1218 config/tc-s390.c:432 -#: config/tc-s390.c:439 +#: config/tc-i370.c:418 config/tc-ppc.c:1219 config/tc-s390.c:431 +#: config/tc-s390.c:438 #, c-format msgid "invalid switch -m%s" msgstr "" -#: config/tc-i370.c:516 config/tc-s390.c:519 +#: config/tc-i370.c:515 config/tc-s390.c:518 #, c-format msgid "Internal assembler error for instruction %s" msgstr "" -#: config/tc-i370.c:535 +#: config/tc-i370.c:534 #, c-format msgid "Internal assembler error for macro %s" msgstr "" -#: config/tc-i370.c:630 config/tc-ppc.c:1995 +#: config/tc-i370.c:629 config/tc-ppc.c:2014 msgid "identifier+constant@got means identifier@got+constant" msgstr "" -#: config/tc-i370.c:684 config/tc-m68k.c:8079 config/tc-ppc.c:2083 +#: config/tc-i370.c:683 config/tc-m68k.c:8074 #, c-format msgid "%s relocations do not fit in %d bytes\n" msgstr "" -#: config/tc-i370.c:926 config/tc-i370.c:966 +#: config/tc-i370.c:925 config/tc-i370.c:965 msgid "unsupported DC type" msgstr "" -#: config/tc-i370.c:938 config/tc-i370.c:948 config/tc-i370.c:1530 -#: config/tc-i370.c:1541 +#: config/tc-i370.c:937 config/tc-i370.c:947 config/tc-i370.c:1529 +#: config/tc-i370.c:1540 msgid "missing end-quote" msgstr "" -#: config/tc-i370.c:996 +#: config/tc-i370.c:995 msgid "unsupported alignment" msgstr "" -#: config/tc-i370.c:1003 +#: config/tc-i370.c:1002 msgid "this DS form not yet supported" msgstr "" -#: config/tc-i370.c:1046 config/tc-m32r.c:1493 config/tc-microblaze.c:191 +#: config/tc-i370.c:1045 config/tc-m32r.c:1492 config/tc-microblaze.c:191 msgid "Expected comma after symbol-name: rest of line ignored." msgstr "" -#: config/tc-i370.c:1069 config/tc-m32r.c:1517 config/tc-microblaze.c:213 -#: config/tc-ppc.c:2170 config/tc-ppc.c:3653 config/tc-ppc.c:3696 -#: config/tc-ppc.c:5280 +#: config/tc-i370.c:1068 config/tc-m32r.c:1516 config/tc-microblaze.c:213 +#: config/tc-ppc.c:2175 config/tc-ppc.c:3661 config/tc-ppc.c:3704 +#: config/tc-ppc.c:5288 msgid "ignoring bad alignment" msgstr "" -#: config/tc-i370.c:1080 config/tc-m32r.c:1544 config/tc-microblaze.c:224 +#: config/tc-i370.c:1079 config/tc-m32r.c:1543 config/tc-microblaze.c:224 #, c-format msgid "Ignoring attempt to re-define symbol `%s'." msgstr "" -#: config/tc-i370.c:1088 config/tc-microblaze.c:232 +#: config/tc-i370.c:1087 config/tc-microblaze.c:232 #, c-format msgid "Length of .lcomm \"%s\" is already %ld. Not changed to %ld." msgstr "" -#: config/tc-i370.c:1107 config/tc-m32r.c:1529 config/tc-microblaze.c:248 -#: config/tc-v850.c:384 +#: config/tc-i370.c:1106 config/tc-m32r.c:1528 config/tc-microblaze.c:248 +#: config/tc-v850.c:381 msgid "Common alignment not a power of 2" msgstr "" -#: config/tc-i370.c:1245 +#: config/tc-i370.c:1244 msgid "Missing or bad .using directive" msgstr "" -#: config/tc-i370.c:1290 +#: config/tc-i370.c:1289 msgid "Literal Pool Overflow" msgstr "" -#: config/tc-i370.c:1588 +#: config/tc-i370.c:1587 msgid "expression not a constant" msgstr "" -#: config/tc-i370.c:1595 +#: config/tc-i370.c:1594 msgid "Unknown/unsupported address literal type" msgstr "" -#: config/tc-i370.c:1618 +#: config/tc-i370.c:1617 #, c-format msgid ".ltorg without prior .using in section %s" msgstr "" -#: config/tc-i370.c:1622 +#: config/tc-i370.c:1621 #, c-format msgid ".ltorg in section %s paired to .using in section %s" msgstr "" -#: config/tc-i370.c:1645 +#: config/tc-i370.c:1644 #, c-format msgid "bad alignment of %d bytes in literal pool" msgstr "" -#: config/tc-i370.c:1669 +#: config/tc-i370.c:1668 msgid "bad literal size\n" msgstr "" -#: config/tc-i370.c:1743 +#: config/tc-i370.c:1742 msgid ".using: base address expression illegal or too complex" msgstr "" -#: config/tc-i370.c:1778 config/tc-i370.c:1787 +#: config/tc-i370.c:1777 config/tc-i370.c:1786 #, c-format msgid "droping register %d in section %s does not match using register %d" msgstr "" -#: config/tc-i370.c:1791 +#: config/tc-i370.c:1790 #, c-format msgid "droping register %d in section %s previously used in section %s" msgstr "" -#: config/tc-i370.c:1847 config/tc-ppc.c:3490 +#: config/tc-i370.c:1846 config/tc-ppc.c:3493 msgid "wrong number of operands" msgstr "" -#: config/tc-i370.c:1928 config/tc-mn10200.c:899 config/tc-mn10300.c:1253 -#: config/tc-s390.c:1608 config/tc-v850.c:2313 +#: config/tc-i370.c:1927 config/tc-mn10200.c:899 config/tc-mn10300.c:1253 +#: config/tc-s390.c:1607 config/tc-v850.c:2316 #, c-format msgid "Unrecognized opcode: `%s'" msgstr "" -#: config/tc-i370.c:2071 +#: config/tc-i370.c:2070 msgid "not using any base register" msgstr "" -#: config/tc-i370.c:2101 +#: config/tc-i370.c:2100 #, c-format msgid "expecting a register for operand %d" msgstr "" #. Not used --- don't have any 8 byte instructions. -#: config/tc-i370.c:2222 +#: config/tc-i370.c:2221 msgid "Internal Error: bad instruction length" msgstr "" -#: config/tc-i386.c:2077 +#: config/tc-i386.c:2101 #, c-format msgid "%s shortened to %s" msgstr "" -#: config/tc-i386.c:2163 +#: config/tc-i386.c:2187 msgid "same type of prefix used twice" msgstr "" -#: config/tc-i386.c:2190 +#: config/tc-i386.c:2214 #, c-format msgid "64bit mode not supported on `%s'." msgstr "" -#: config/tc-i386.c:2199 +#: config/tc-i386.c:2223 #, c-format msgid "32bit mode not supported on `%s'." msgstr "" -#: config/tc-i386.c:2239 +#: config/tc-i386.c:2263 msgid "bad argument to syntax directive." msgstr "" -#: config/tc-i386.c:2302 +#: config/tc-i386.c:2326 #, c-format msgid "bad argument to %s_check directive." msgstr "" -#: config/tc-i386.c:2306 +#: config/tc-i386.c:2330 #, c-format msgid "missing argument for %s_check directive" msgstr "" -#: config/tc-i386.c:2341 +#: config/tc-i386.c:2365 #, c-format msgid "`%s' is not supported on `%s'" msgstr "" -#: config/tc-i386.c:2415 +#: config/tc-i386.c:2439 #, c-format msgid "no such architecture: `%s'" msgstr "" -#: config/tc-i386.c:2420 +#: config/tc-i386.c:2444 msgid "missing cpu architecture" msgstr "" -#: config/tc-i386.c:2434 +#: config/tc-i386.c:2458 #, c-format msgid "no such architecture modifier: `%s'" msgstr "" -#: config/tc-i386.c:2449 config/tc-i386.c:2472 +#: config/tc-i386.c:2473 config/tc-i386.c:2496 msgid "Intel L1OM is 64bit ELF only" msgstr "" -#: config/tc-i386.c:2456 config/tc-i386.c:2479 +#: config/tc-i386.c:2480 config/tc-i386.c:2503 msgid "Intel K1OM is 64bit ELF only" msgstr "" -#: config/tc-i386.c:2490 config/tc-i386.c:9976 +#: config/tc-i386.c:2514 config/tc-i386.c:10086 msgid "unknown architecture" msgstr "" -#: config/tc-i386.c:2524 config/tc-i386.c:2546 +#: config/tc-i386.c:2548 config/tc-i386.c:2570 #, c-format msgid "can't hash %s: %s" msgstr "" -#: config/tc-i386.c:2839 +#: config/tc-i386.c:2864 msgid "there are no pc-relative size relocations" msgstr "" -#: config/tc-i386.c:2849 +#: config/tc-i386.c:2876 #, c-format msgid "unknown relocation (%u)" msgstr "" -#: config/tc-i386.c:2851 +#: config/tc-i386.c:2878 #, c-format msgid "%u-byte relocation cannot be applied to %u-byte field" msgstr "" -#: config/tc-i386.c:2855 +#: config/tc-i386.c:2882 msgid "non-pc-relative relocation for pc-relative field" msgstr "" -#: config/tc-i386.c:2860 +#: config/tc-i386.c:2887 msgid "relocated field and relocation type differ in signedness" msgstr "" -#: config/tc-i386.c:2869 +#: config/tc-i386.c:2896 msgid "there are no unsigned pc-relative relocations" msgstr "" -#: config/tc-i386.c:2879 +#: config/tc-i386.c:2906 #, c-format msgid "cannot do %u byte pc-relative relocation" msgstr "" -#: config/tc-i386.c:2896 +#: config/tc-i386.c:2923 #, c-format msgid "cannot do %s %u byte relocation" msgstr "" -#: config/tc-i386.c:3352 +#: config/tc-i386.c:3373 #, c-format msgid "can't use register '%s%s' as operand %d in '%s'." msgstr "" -#: config/tc-i386.c:3391 config/tc-i386.c:3528 +#: config/tc-i386.c:3412 config/tc-i386.c:3549 #, c-format msgid "invalid instruction `%s' after `%s'" msgstr "" -#: config/tc-i386.c:3397 +#: config/tc-i386.c:3418 #, c-format msgid "missing `lock' with `%s'" msgstr "" -#: config/tc-i386.c:3404 +#: config/tc-i386.c:3425 #, c-format msgid "instruction `%s' after `xacquire' not allowed" msgstr "" -#: config/tc-i386.c:3411 +#: config/tc-i386.c:3432 #, c-format msgid "memory destination needed for instruction `%s' after `xrelease'" msgstr "" -#: config/tc-i386.c:3502 +#: config/tc-i386.c:3523 #, c-format msgid "SSE instruction `%s' is used" msgstr "" -#: config/tc-i386.c:3516 config/tc-i386.c:5263 +#: config/tc-i386.c:3537 config/tc-i386.c:5297 #, c-format msgid "ambiguous operand size for `%s'" msgstr "" -#: config/tc-i386.c:3541 +#: config/tc-i386.c:3562 msgid "expecting lockable instruction after `lock'" msgstr "" -#: config/tc-i386.c:3551 +#: config/tc-i386.c:3572 msgid "expecting valid branch instruction after `bnd'" msgstr "" -#: config/tc-i386.c:3556 +#: config/tc-i386.c:3577 msgid "32-bit address isn't allowed in 64-bit MPX instructions." msgstr "" #. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc. -#: config/tc-i386.c:3611 +#: config/tc-i386.c:3632 #, c-format msgid "translating to `%sp'" msgstr "" -#: config/tc-i386.c:3669 +#: config/tc-i386.c:3639 +#, c-format +msgid "instruction `%s' isn't supported in 16-bit mode." +msgstr "" + +#: config/tc-i386.c:3699 #, c-format msgid "can't encode register '%s%s' in an instruction requiring REX prefix." msgstr "" -#: config/tc-i386.c:3709 config/tc-i386.c:3850 +#: config/tc-i386.c:3739 config/tc-i386.c:3880 #, c-format msgid "no such instruction: `%s'" msgstr "" -#: config/tc-i386.c:3720 config/tc-i386.c:3883 +#: config/tc-i386.c:3750 config/tc-i386.c:3913 #, c-format msgid "invalid character %s in mnemonic" msgstr "" -#: config/tc-i386.c:3727 +#: config/tc-i386.c:3757 msgid "expecting prefix; got nothing" msgstr "" -#: config/tc-i386.c:3729 +#: config/tc-i386.c:3759 msgid "expecting mnemonic; got nothing" msgstr "" -#: config/tc-i386.c:3744 config/tc-i386.c:3901 +#: config/tc-i386.c:3774 config/tc-i386.c:3931 #, c-format msgid "`%s' is only supported in 64-bit mode" msgstr "" -#: config/tc-i386.c:3745 config/tc-i386.c:3900 +#: config/tc-i386.c:3775 config/tc-i386.c:3930 #, c-format msgid "`%s' is not supported in 64-bit mode" msgstr "" -#: config/tc-i386.c:3757 +#: config/tc-i386.c:3787 #, c-format msgid "redundant %s prefix" msgstr "" -#: config/tc-i386.c:3907 +#: config/tc-i386.c:3937 #, c-format msgid "`%s' is not supported on `%s%s'" msgstr "" -#: config/tc-i386.c:3918 +#: config/tc-i386.c:3948 msgid "use .code16 to ensure correct addressing mode" msgstr "" -#: config/tc-i386.c:3942 +#: config/tc-i386.c:3972 #, c-format msgid "invalid character %s before operand %d" msgstr "" -#: config/tc-i386.c:3956 +#: config/tc-i386.c:3986 #, c-format msgid "unbalanced parenthesis in operand %d." msgstr "" -#: config/tc-i386.c:3959 +#: config/tc-i386.c:3989 #, c-format msgid "unbalanced brackets in operand %d." msgstr "" -#: config/tc-i386.c:3968 +#: config/tc-i386.c:3998 #, c-format msgid "invalid character %s in operand %d" msgstr "" -#: config/tc-i386.c:3996 +#: config/tc-i386.c:4026 #, c-format msgid "spurious operands; (%d operands/instruction max)" msgstr "" -#: config/tc-i386.c:4019 +#: config/tc-i386.c:4049 msgid "expecting operand after ','; got nothing" msgstr "" -#: config/tc-i386.c:4024 +#: config/tc-i386.c:4054 msgid "expecting operand before ','; got nothing" msgstr "" -#: config/tc-i386.c:4394 +#: config/tc-i386.c:4424 msgid "mask, index, and destination registers should be distinct" msgstr "" -#: config/tc-i386.c:4409 +#: config/tc-i386.c:4439 msgid "index and destination registers should be distinct" msgstr "" -#: config/tc-i386.c:4923 +#: config/tc-i386.c:4957 msgid "operand size mismatch" msgstr "" -#: config/tc-i386.c:4926 +#: config/tc-i386.c:4960 msgid "operand type mismatch" msgstr "" -#: config/tc-i386.c:4929 +#: config/tc-i386.c:4963 msgid "register type mismatch" msgstr "" -#: config/tc-i386.c:4932 +#: config/tc-i386.c:4966 msgid "number of operands mismatch" msgstr "" -#: config/tc-i386.c:4935 +#: config/tc-i386.c:4969 msgid "invalid instruction suffix" msgstr "" -#: config/tc-i386.c:4938 +#: config/tc-i386.c:4972 msgid "constant doesn't fit in 4 bits" msgstr "" -#: config/tc-i386.c:4941 +#: config/tc-i386.c:4975 msgid "only supported with old gcc" msgstr "" -#: config/tc-i386.c:4944 +#: config/tc-i386.c:4978 msgid "unsupported with Intel mnemonic" msgstr "" -#: config/tc-i386.c:4947 +#: config/tc-i386.c:4981 msgid "unsupported syntax" msgstr "" -#: config/tc-i386.c:4950 +#: config/tc-i386.c:4984 #, c-format msgid "unsupported instruction `%s'" msgstr "" -#: config/tc-i386.c:4954 +#: config/tc-i386.c:4988 msgid "invalid VSIB address" msgstr "" -#: config/tc-i386.c:4957 +#: config/tc-i386.c:4991 msgid "mask, index, and destination registers must be distinct" msgstr "" -#: config/tc-i386.c:4960 +#: config/tc-i386.c:4994 msgid "unsupported vector index register" msgstr "" -#: config/tc-i386.c:4963 +#: config/tc-i386.c:4997 msgid "unsupported broadcast" msgstr "" -#: config/tc-i386.c:4966 +#: config/tc-i386.c:5000 msgid "broadcast not on source memory operand" msgstr "" -#: config/tc-i386.c:4969 +#: config/tc-i386.c:5003 msgid "broadcast is needed for operand of such type" msgstr "" -#: config/tc-i386.c:4972 +#: config/tc-i386.c:5006 msgid "unsupported masking" msgstr "" -#: config/tc-i386.c:4975 +#: config/tc-i386.c:5009 msgid "mask not on destination operand" msgstr "" -#: config/tc-i386.c:4978 +#: config/tc-i386.c:5012 msgid "default mask isn't allowed" msgstr "" -#: config/tc-i386.c:4981 +#: config/tc-i386.c:5015 msgid "unsupported static rounding/sae" msgstr "" -#: config/tc-i386.c:4985 +#: config/tc-i386.c:5019 msgid "RC/SAE operand must precede immediate operands" msgstr "" -#: config/tc-i386.c:4987 +#: config/tc-i386.c:5021 msgid "RC/SAE operand must follow immediate operands" msgstr "" -#: config/tc-i386.c:4990 config/tc-metag.c:4788 config/tc-metag.c:5529 +#: config/tc-i386.c:5024 config/tc-metag.c:4788 config/tc-metag.c:5529 #: config/tc-metag.c:5551 msgid "invalid register operand" msgstr "" -#: config/tc-i386.c:4993 +#: config/tc-i386.c:5027 #, c-format msgid "%s for `%s'" msgstr "" -#: config/tc-i386.c:5004 +#: config/tc-i386.c:5038 #, c-format msgid "indirect %s without `*'" msgstr "" #. Warn them that a data or address size prefix doesn't #. affect assembly of the next line of code. -#: config/tc-i386.c:5012 +#: config/tc-i386.c:5046 #, c-format msgid "stand-alone `%s' prefix" msgstr "" -#: config/tc-i386.c:5046 config/tc-i386.c:5062 +#: config/tc-i386.c:5080 config/tc-i386.c:5096 #, c-format msgid "`%s' operand %d must use `%ses' segment" msgstr "" #. We have to know the operand size for crc32. -#: config/tc-i386.c:5116 +#: config/tc-i386.c:5150 #, c-format msgid "ambiguous memory operand size for `%s`" msgstr "" -#: config/tc-i386.c:5236 +#: config/tc-i386.c:5270 msgid "" "no instruction mnemonic suffix given and no register operands; can't size " "instruction" msgstr "" -#: config/tc-i386.c:5378 config/tc-i386.c:5452 config/tc-i386.c:5563 +#: config/tc-i386.c:5412 config/tc-i386.c:5486 config/tc-i386.c:5597 #, c-format msgid "using `%s%s' instead of `%s%s' due to `%c' suffix" msgstr "" -#: config/tc-i386.c:5405 config/tc-i386.c:5429 config/tc-i386.c:5494 -#: config/tc-i386.c:5539 +#: config/tc-i386.c:5439 config/tc-i386.c:5463 config/tc-i386.c:5528 +#: config/tc-i386.c:5573 #, c-format msgid "`%s%s' not allowed with `%s%c'" msgstr "" -#: config/tc-i386.c:5446 config/tc-i386.c:5472 config/tc-i386.c:5518 -#: config/tc-i386.c:5557 +#: config/tc-i386.c:5480 config/tc-i386.c:5506 config/tc-i386.c:5552 +#: config/tc-i386.c:5591 #, c-format msgid "incorrect register `%s%s' used with `%c' suffix" msgstr "" -#: config/tc-i386.c:5626 +#: config/tc-i386.c:5660 msgid "no instruction mnemonic suffix given; can't determine immediate size" msgstr "" -#: config/tc-i386.c:5662 +#: config/tc-i386.c:5696 #, c-format msgid "the last operand of `%s' must be `%s%s'" msgstr "" -#: config/tc-i386.c:5665 +#: config/tc-i386.c:5699 #, c-format msgid "the first operand of `%s' must be `%s%s'" msgstr "" -#: config/tc-i386.c:5814 +#: config/tc-i386.c:5848 #, c-format msgid "you can't `pop %scs'" msgstr "" #. Reversed arguments on faddp, fsubp, etc. -#: config/tc-i386.c:5843 +#: config/tc-i386.c:5877 #, c-format msgid "translating to `%s %s%s,%s%s'" msgstr "" #. Extraneous `l' suffix on fp insn. -#: config/tc-i386.c:5850 +#: config/tc-i386.c:5884 #, c-format msgid "translating to `%s %s%s'" msgstr "" -#: config/tc-i386.c:5878 +#: config/tc-i386.c:5912 #, c-format msgid "segment override on `%s' is ineffectual" msgstr "" -#: config/tc-i386.c:6694 config/tc-i386.c:6801 config/tc-i386.c:6858 +#: config/tc-i386.c:6728 config/tc-i386.c:6835 config/tc-i386.c:6892 msgid "skipping prefixes on this instruction" msgstr "" -#: config/tc-i386.c:6878 +#: config/tc-i386.c:6912 msgid "16-bit jump out of range" msgstr "" -#: config/tc-i386.c:6887 +#: config/tc-i386.c:6921 #, c-format msgid "can't handle non absolute segment in `%s'" msgstr "" -#: config/tc-i386.c:7515 config/tc-i386.c:7618 +#: config/tc-i386.c:7555 config/tc-i386.c:7658 #, c-format msgid "@%s reloc is not supported with %d-bit output format" msgstr "" -#: config/tc-i386.c:7667 +#: config/tc-i386.c:7709 #, c-format msgid "missing or invalid expression `%s'" msgstr "" -#: config/tc-i386.c:7747 +#: config/tc-i386.c:7795 #, c-format msgid "Unsupported broadcast: `%s'" msgstr "" -#: config/tc-i386.c:7762 +#: config/tc-i386.c:7810 #, c-format msgid "`%s' can't be used for write mask" msgstr "" -#: config/tc-i386.c:7785 +#: config/tc-i386.c:7833 #, c-format msgid "invalid write mask `%s'" msgstr "" -#: config/tc-i386.c:7807 config/tc-i386.c:8439 +#: config/tc-i386.c:7855 config/tc-i386.c:8487 #, c-format msgid "duplicated `%s'" msgstr "" -#: config/tc-i386.c:7817 +#: config/tc-i386.c:7865 #, c-format msgid "invalid zeroing-masking `%s'" msgstr "" -#: config/tc-i386.c:7830 +#: config/tc-i386.c:7878 #, c-format msgid "missing `}' in `%s'" msgstr "" #. We don't know this one. -#: config/tc-i386.c:7838 +#: config/tc-i386.c:7886 #, c-format msgid "unknown vector operation: `%s'" msgstr "" -#: config/tc-i386.c:7858 +#: config/tc-i386.c:7906 #, c-format msgid "at most %d immediate operands are allowed" msgstr "" -#: config/tc-i386.c:7892 config/tc-i386.c:8141 +#: config/tc-i386.c:7940 config/tc-i386.c:8189 #, c-format msgid "junk `%s' after expression" msgstr "" -#: config/tc-i386.c:7913 +#: config/tc-i386.c:7961 #, c-format msgid "missing or invalid immediate expression `%s'" msgstr "" -#: config/tc-i386.c:7936 config/tc-i386.c:8231 +#: config/tc-i386.c:7984 config/tc-i386.c:8279 #, c-format msgid "unimplemented segment %s in operand" msgstr "" -#: config/tc-i386.c:7943 +#: config/tc-i386.c:7991 #, c-format msgid "illegal immediate register operand %s" msgstr "" -#: config/tc-i386.c:7991 +#: config/tc-i386.c:8039 #, c-format msgid "expecting scale factor of 1, 2, 4, or 8: got `%s'" msgstr "" -#: config/tc-i386.c:8000 +#: config/tc-i386.c:8048 #, c-format msgid "scale factor of %d without an index register" msgstr "" -#: config/tc-i386.c:8022 +#: config/tc-i386.c:8070 #, c-format msgid "at most %d displacement operands are allowed" msgstr "" -#: config/tc-i386.c:8197 +#: config/tc-i386.c:8245 #, c-format msgid "missing or invalid displacement expression `%s'" msgstr "" -#: config/tc-i386.c:8214 +#: config/tc-i386.c:8262 #, c-format msgid "0x%lx out range of signed 32bit displacement" msgstr "" -#: config/tc-i386.c:8354 +#: config/tc-i386.c:8402 #, c-format msgid "`%s' is not valid here (expected `%c%s%s%c')" msgstr "" -#: config/tc-i386.c:8366 +#: config/tc-i386.c:8414 #, c-format msgid "`%s' is not a valid %s expression" msgstr "" -#: config/tc-i386.c:8452 +#: config/tc-i386.c:8500 #, c-format msgid "Missing '}': '%s'" msgstr "" -#: config/tc-i386.c:8458 +#: config/tc-i386.c:8506 #, c-format msgid "Junk after '}': '%s'" msgstr "" -#: config/tc-i386.c:8543 +#: config/tc-i386.c:8591 #, c-format msgid "bad memory operand `%s'" msgstr "" -#: config/tc-i386.c:8567 +#: config/tc-i386.c:8615 #, c-format msgid "junk `%s' after register" msgstr "" -#: config/tc-i386.c:8580 config/tc-i386.c:8714 config/tc-i386.c:8758 +#: config/tc-i386.c:8628 config/tc-i386.c:8762 config/tc-i386.c:8806 #, c-format msgid "bad register name `%s'" msgstr "" -#: config/tc-i386.c:8588 +#: config/tc-i386.c:8636 msgid "immediate operand illegal with absolute jump" msgstr "" -#: config/tc-i386.c:8616 +#: config/tc-i386.c:8664 #, c-format msgid "too many memory references for `%s'" msgstr "" -#: config/tc-i386.c:8703 +#: config/tc-i386.c:8751 #, c-format msgid "expecting `,' or `)' after index register in `%s'" msgstr "" -#: config/tc-i386.c:8731 +#: config/tc-i386.c:8779 #, c-format msgid "expecting `)' after scale factor in `%s'" msgstr "" -#: config/tc-i386.c:8739 +#: config/tc-i386.c:8787 #, c-format msgid "expecting index register or scale factor after `,'; got '%c'" msgstr "" -#: config/tc-i386.c:8747 +#: config/tc-i386.c:8795 #, c-format msgid "expecting `,' or `)' after base register in `%s'" msgstr "" #. It's not a memory operand; argh! -#: config/tc-i386.c:8794 +#: config/tc-i386.c:8842 #, c-format msgid "invalid char %s beginning operand %d `%s'" msgstr "" -#: config/tc-i386.c:8984 +#: config/tc-i386.c:9032 msgid "long jump required" msgstr "" -#: config/tc-i386.c:9039 +#: config/tc-i386.c:9087 msgid "jump target out of range" msgstr "" -#: config/tc-i386.c:9579 +#: config/tc-i386.c:9650 msgid "no compiled in support for x86_64" msgstr "" -#: config/tc-i386.c:9599 +#: config/tc-i386.c:9670 msgid "no compiled in support for 32bit x86_64" msgstr "" -#: config/tc-i386.c:9603 +#: config/tc-i386.c:9674 msgid "32bit x86_64 is only supported for ELF" msgstr "" -#: config/tc-i386.c:9633 config/tc-i386.c:9689 +#: config/tc-i386.c:9704 config/tc-i386.c:9760 #, c-format msgid "invalid -march= option: `%s'" msgstr "" -#: config/tc-i386.c:9698 config/tc-i386.c:9710 +#: config/tc-i386.c:9769 config/tc-i386.c:9781 #, c-format msgid "invalid -mtune= option: `%s'" msgstr "" -#: config/tc-i386.c:9719 +#: config/tc-i386.c:9790 #, c-format msgid "invalid -mmnemonic= option: `%s'" msgstr "" -#: config/tc-i386.c:9728 +#: config/tc-i386.c:9799 #, c-format msgid "invalid -msyntax= option: `%s'" msgstr "" -#: config/tc-i386.c:9755 +#: config/tc-i386.c:9826 #, c-format msgid "invalid -msse-check= option: `%s'" msgstr "" -#: config/tc-i386.c:9766 +#: config/tc-i386.c:9837 #, c-format msgid "invalid -moperand-check= option: `%s'" msgstr "" -#: config/tc-i386.c:9775 +#: config/tc-i386.c:9846 #, c-format msgid "invalid -mavxscalar= option: `%s'" msgstr "" -#: config/tc-i386.c:9790 +#: config/tc-i386.c:9861 #, c-format msgid "invalid -mevexlig= option: `%s'" msgstr "" -#: config/tc-i386.c:9799 +#: config/tc-i386.c:9874 +#, c-format +msgid "invalid -mevexrcig= option: `%s'" +msgstr "" + +#: config/tc-i386.c:9883 #, c-format msgid "invalid -mevexwig= option: `%s'" msgstr "" -#: config/tc-i386.c:9891 +#: config/tc-i386.c:9898 +#, c-format +msgid "invalid -momit-lock-prefix= option: `%s'" +msgstr "" + +#: config/tc-i386.c:9990 #, c-format msgid "" " -Q ignored\n" @@ -7319,34 +7427,34 @@ msgid "" " -k ignored\n" msgstr "" -#: config/tc-i386.c:9896 +#: config/tc-i386.c:9995 #, c-format msgid "" " -n Do not optimize code alignment\n" " -q quieten some warnings\n" msgstr "" -#: config/tc-i386.c:9900 +#: config/tc-i386.c:9999 #, c-format msgid " -s ignored\n" msgstr "" -#: config/tc-i386.c:9905 +#: config/tc-i386.c:10004 #, c-format msgid " --32/--64/--x32 generate 32bit/64bit/x32 code\n" msgstr "" -#: config/tc-i386.c:9909 +#: config/tc-i386.c:10008 #, c-format msgid " --divide do not treat `/' as a comment character\n" msgstr "" -#: config/tc-i386.c:9912 +#: config/tc-i386.c:10011 #, c-format msgid " --divide ignored\n" msgstr "" -#: config/tc-i386.c:9915 +#: config/tc-i386.c:10014 #, c-format msgid "" " -march=CPU[,+EXTENSION...]\n" @@ -7354,36 +7462,36 @@ msgid "" "of:\n" msgstr "" -#: config/tc-i386.c:9919 +#: config/tc-i386.c:10018 #, c-format msgid " EXTENSION is combination of:\n" msgstr "" -#: config/tc-i386.c:9922 +#: config/tc-i386.c:10021 #, c-format msgid " -mtune=CPU optimize for CPU, CPU is one of:\n" msgstr "" -#: config/tc-i386.c:9925 +#: config/tc-i386.c:10024 #, c-format msgid " -msse2avx encode SSE instructions with VEX prefix\n" msgstr "" -#: config/tc-i386.c:9927 +#: config/tc-i386.c:10026 #, c-format msgid "" " -msse-check=[none|error|warning]\n" " check SSE instructions\n" msgstr "" -#: config/tc-i386.c:9930 +#: config/tc-i386.c:10029 #, c-format msgid "" " -moperand-check=[none|error|warning]\n" " check operand combinations for validity\n" msgstr "" -#: config/tc-i386.c:9933 +#: config/tc-i386.c:10032 #, c-format msgid "" " -mavxscalar=[128|256] encode scalar AVX instructions with specific " @@ -7391,7 +7499,7 @@ msgid "" " length\n" msgstr "" -#: config/tc-i386.c:9936 +#: config/tc-i386.c:10035 #, c-format msgid "" " -mevexlig=[128|256|512] encode scalar EVEX instructions with specific " @@ -7399,7 +7507,7 @@ msgid "" " length\n" msgstr "" -#: config/tc-i386.c:9939 +#: config/tc-i386.c:10038 #, c-format msgid "" " -mevexwig=[0|1] encode EVEX instructions with specific EVEX.W " @@ -7407,144 +7515,165 @@ msgid "" " for EVEX.W bit ignored instructions\n" msgstr "" -#: config/tc-i386.c:9942 +#: config/tc-i386.c:10041 +#, c-format +msgid "" +" -mevexrcig=[rne|rd|ru|rz]\n" +" encode EVEX instructions with specific EVEX.RC " +"value\n" +" for SAE-only ignored instructions\n" +msgstr "" + +#: config/tc-i386.c:10045 #, c-format msgid " -mmnemonic=[att|intel] use AT&T/Intel mnemonic\n" msgstr "" -#: config/tc-i386.c:9944 +#: config/tc-i386.c:10047 #, c-format msgid " -msyntax=[att|intel] use AT&T/Intel syntax\n" msgstr "" -#: config/tc-i386.c:9946 +#: config/tc-i386.c:10049 #, c-format msgid " -mindex-reg support pseudo index registers\n" msgstr "" -#: config/tc-i386.c:9948 +#: config/tc-i386.c:10051 #, c-format msgid " -mnaked-reg don't require `%%' prefix for registers\n" msgstr "" -#: config/tc-i386.c:9950 +#: config/tc-i386.c:10053 #, c-format msgid " -mold-gcc support old (<= 2.8.1) versions of gcc\n" msgstr "" -#: config/tc-i386.c:9952 +#: config/tc-i386.c:10055 #, c-format msgid " -madd-bnd-prefix add BND prefix for all valid branches\n" msgstr "" -#: config/tc-i386.c:10026 +#: config/tc-i386.c:10058 +#, c-format +msgid " -mbig-obj generate big object files\n" +msgstr "" + +#: config/tc-i386.c:10061 +#, c-format +msgid "" +" -momit-lock-prefix=[no|yes]\n" +" strip all lock prefixes\n" +msgstr "" + +#: config/tc-i386.c:10139 msgid "Intel L1OM is 64bit only" msgstr "" -#: config/tc-i386.c:10032 +#: config/tc-i386.c:10145 msgid "Intel K1OM is 64bit only" msgstr "" -#: config/tc-i386.c:10213 +#: config/tc-i386.c:10326 msgid "symbol size computation overflow" msgstr "" -#: config/tc-i386.c:10277 +#: config/tc-i386.c:10390 #, c-format msgid "can not do %d byte pc-relative relocation" msgstr "" -#: config/tc-i386.c:10298 +#: config/tc-i386.c:10411 #, c-format msgid "can not do %d byte relocation" msgstr "" -#: config/tc-i386.c:10366 +#: config/tc-i386.c:10479 #, c-format msgid "cannot represent relocation type %s in x32 mode" msgstr "" -#: config/tc-i386.c:10402 config/tc-s390.c:2479 +#: config/tc-i386.c:10515 config/tc-s390.c:2478 #, c-format msgid "cannot represent relocation type %s" msgstr "" -#: config/tc-i386.c:10519 +#: config/tc-i386.c:10632 msgid "bad .section directive: want a,l,w,x,M,S,G,T in string" msgstr "" -#: config/tc-i386.c:10522 +#: config/tc-i386.c:10635 msgid "bad .section directive: want a,w,x,M,S,G,T in string" msgstr "" -#: config/tc-i386.c:10541 +#: config/tc-i386.c:10654 msgid ".largecomm supported only in 64bit mode, producing .comm" msgstr "" -#: config/tc-i860.c:122 +#: config/tc-i860.c:121 msgid "Directive .dual available only with -mintel-syntax option" msgstr "" -#: config/tc-i860.c:132 +#: config/tc-i860.c:131 msgid "Directive .enddual available only with -mintel-syntax option" msgstr "" -#: config/tc-i860.c:145 +#: config/tc-i860.c:144 msgid "Directive .atmp available only with -mintel-syntax option" msgstr "" -#: config/tc-i860.c:167 config/tc-i860.c:171 +#: config/tc-i860.c:166 config/tc-i860.c:170 msgid "Unknown temporary pseudo register" msgstr "" -#: config/tc-i860.c:247 +#: config/tc-i860.c:246 msgid "Defective assembler. No assembly attempted." msgstr "" -#: config/tc-i860.c:393 config/tc-i860.c:939 config/tc-m68k.c:3918 -#: config/tc-m68k.c:3950 config/tc-sparc.c:2897 +#: config/tc-i860.c:392 config/tc-i860.c:938 config/tc-m68k.c:3916 +#: config/tc-m68k.c:3948 config/tc-sparc.c:2978 msgid "failed sanity check." msgstr "" -#: config/tc-i860.c:400 +#: config/tc-i860.c:399 #, c-format msgid "Expanded opcode after delayed branch: `%s'" msgstr "" -#: config/tc-i860.c:404 +#: config/tc-i860.c:403 #, c-format msgid "Expanded opcode in dual mode: `%s'" msgstr "" -#: config/tc-i860.c:408 +#: config/tc-i860.c:407 #, c-format msgid "An instruction was expanded (%s)" msgstr "" -#: config/tc-i860.c:675 +#: config/tc-i860.c:674 msgid "Pipelined instruction: fsrc1 = fdest" msgstr "" -#: config/tc-i860.c:878 config/tc-i860.c:885 config/tc-i860.c:892 +#: config/tc-i860.c:877 config/tc-i860.c:884 config/tc-i860.c:891 msgid "Assembler does not yet support PIC" msgstr "" -#: config/tc-i860.c:956 +#: config/tc-i860.c:955 #, c-format msgid "Illegal operands for %s" msgstr "" -#: config/tc-i860.c:973 +#: config/tc-i860.c:972 #, c-format msgid "'d.%s' must be 8-byte aligned" msgstr "" -#: config/tc-i860.c:981 +#: config/tc-i860.c:980 #, c-format msgid "Prefix 'd.' invalid for instruction `%s'" msgstr "" -#: config/tc-i860.c:1134 +#: config/tc-i860.c:1133 #, c-format msgid "" " -EL\t\t\t generate code for little endian mode (default)\n" @@ -7555,127 +7684,127 @@ msgid "" msgstr "" #. SVR4 compatibility flags. -#: config/tc-i860.c:1142 +#: config/tc-i860.c:1141 #, c-format msgid "" " -V\t\t\t print assembler version number\n" " -Qy, -Qn\t\t ignored\n" msgstr "" -#: config/tc-i860.c:1205 +#: config/tc-i860.c:1204 msgid "This immediate requires 0 MOD 2 alignment" msgstr "" -#: config/tc-i860.c:1208 +#: config/tc-i860.c:1207 msgid "This immediate requires 0 MOD 4 alignment" msgstr "" -#: config/tc-i860.c:1211 +#: config/tc-i860.c:1210 msgid "This immediate requires 0 MOD 8 alignment" msgstr "" -#: config/tc-i860.c:1214 +#: config/tc-i860.c:1213 msgid "This immediate requires 0 MOD 16 alignment" msgstr "" -#: config/tc-i860.c:1309 +#: config/tc-i860.c:1308 msgid "5-bit immediate too large" msgstr "" -#: config/tc-i860.c:1312 +#: config/tc-i860.c:1311 msgid "5-bit field must be absolute" msgstr "" -#: config/tc-i860.c:1357 config/tc-i860.c:1380 +#: config/tc-i860.c:1356 config/tc-i860.c:1379 msgid "A branch offset requires 0 MOD 4 alignment" msgstr "" -#: config/tc-i860.c:1401 +#: config/tc-i860.c:1400 #, c-format msgid "Unrecognized fix-up (0x%08lx)" msgstr "" -#: config/tc-i960.c:486 +#: config/tc-i960.c:483 #, c-format msgid "Hashing returned \"%s\"." msgstr "" -#: config/tc-i960.c:582 config/tc-i960.c:1112 +#: config/tc-i960.c:579 config/tc-i960.c:1109 msgid "expression syntax error" msgstr "" -#: config/tc-i960.c:618 +#: config/tc-i960.c:615 msgid "attempt to branch into different segment" msgstr "" -#: config/tc-i960.c:622 +#: config/tc-i960.c:619 #, c-format msgid "target of %s instruction must be a label" msgstr "" -#: config/tc-i960.c:732 +#: config/tc-i960.c:729 msgid "unaligned register" msgstr "" -#: config/tc-i960.c:754 +#: config/tc-i960.c:751 msgid "no such sfr in this architecture" msgstr "" -#: config/tc-i960.c:792 +#: config/tc-i960.c:789 msgid "illegal literal" msgstr "" -#: config/tc-i960.c:942 +#: config/tc-i960.c:939 msgid "invalid index register" msgstr "" -#: config/tc-i960.c:965 +#: config/tc-i960.c:962 msgid "invalid scale factor" msgstr "" -#: config/tc-i960.c:1189 +#: config/tc-i960.c:1186 msgid "architecture of opcode conflicts with that of earlier instruction(s)" msgstr "" -#: config/tc-i960.c:1423 config/tc-xtensa.c:11519 +#: config/tc-i960.c:1420 config/tc-xtensa.c:12074 msgid "too many operands" msgstr "" #. We never moved: there was no opcode either! -#: config/tc-i960.c:1471 +#: config/tc-i960.c:1468 msgid "missing opcode" msgstr "" -#: config/tc-i960.c:1611 +#: config/tc-i960.c:1608 msgid "branch prediction invalid on this opcode" msgstr "" -#: config/tc-i960.c:1649 +#: config/tc-i960.c:1646 #, c-format msgid "invalid opcode, \"%s\"." msgstr "" -#: config/tc-i960.c:1651 +#: config/tc-i960.c:1648 #, c-format msgid "improper number of operands. expecting %d, got %d" msgstr "" -#: config/tc-i960.c:1751 +#: config/tc-i960.c:1748 #, c-format msgid "Fixup of %ld too large for field width of %d" msgstr "" -#: config/tc-i960.c:1861 +#: config/tc-i960.c:1858 #, c-format msgid "invalid architecture %s" msgstr "" -#: config/tc-i960.c:1881 +#: config/tc-i960.c:1878 #, c-format msgid "I960 options:\n" msgstr "" -#: config/tc-i960.c:1884 +#: config/tc-i960.c:1881 #, c-format msgid "" "\n" @@ -7687,56 +7816,56 @@ msgid "" "\t\t\tlong displacements\n" msgstr "" -#: config/tc-i960.c:2146 +#: config/tc-i960.c:2143 msgid "should have 1 or 2 operands" msgstr "" -#: config/tc-i960.c:2154 config/tc-i960.c:2169 +#: config/tc-i960.c:2151 config/tc-i960.c:2166 #, c-format msgid "Redefining leafproc %s" msgstr "" -#: config/tc-i960.c:2199 +#: config/tc-i960.c:2196 msgid "should have two operands" msgstr "" -#: config/tc-i960.c:2209 +#: config/tc-i960.c:2206 msgid "'entry_num' must be absolute number in [0,31]" msgstr "" -#: config/tc-i960.c:2217 +#: config/tc-i960.c:2214 #, c-format msgid "Redefining entrynum for sysproc %s" msgstr "" #. Should not happen: see block comment above. -#: config/tc-i960.c:2317 +#: config/tc-i960.c:2314 #, c-format msgid "Trying to 'bal' to %s" msgstr "" -#: config/tc-i960.c:2327 +#: config/tc-i960.c:2324 msgid "Looks like a proc, but can't tell what kind.\n" msgstr "" -#: config/tc-i960.c:2346 +#: config/tc-i960.c:2343 msgid "big endian mode is not supported" msgstr "" -#: config/tc-i960.c:2348 +#: config/tc-i960.c:2345 #, c-format msgid "ignoring unrecognized .endian type `%s'" msgstr "" -#: config/tc-i960.c:2393 +#: config/tc-i960.c:2390 msgid "can't use COBR format with external label" msgstr "" -#: config/tc-i960.c:2568 +#: config/tc-i960.c:2565 msgid "option --link-relax is only supported in b.out format" msgstr "" -#: config/tc-i960.c:2595 +#: config/tc-i960.c:2592 #, c-format msgid "No 'bal' entry point for leafproc %s" msgstr "" @@ -7757,7 +7886,7 @@ msgstr "" msgid "Unwind directive not followed by an instruction." msgstr "" -#: config/tc-ia64.c:1025 config/tc-ia64.c:7648 +#: config/tc-ia64.c:1025 config/tc-ia64.c:7649 msgid "qualifying predicate not followed by instruction" msgstr "" @@ -8078,271 +8207,271 @@ msgstr "" msgid "Second operand to .prologue must be the first of %d general registers" msgstr "" -#: config/tc-ia64.c:4499 +#: config/tc-ia64.c:4500 #, c-format msgid "`%s' was not defined within procedure" msgstr "" -#: config/tc-ia64.c:4537 +#: config/tc-ia64.c:4538 msgid "Empty argument of .endp" msgstr "" -#: config/tc-ia64.c:4551 +#: config/tc-ia64.c:4552 #, c-format msgid "`%s' was not specified with previous .proc" msgstr "" -#: config/tc-ia64.c:4566 +#: config/tc-ia64.c:4567 #, c-format msgid "`%s' should be an operand to this .endp" msgstr "" -#: config/tc-ia64.c:4607 config/tc-ia64.c:4945 config/tc-ia64.c:5252 +#: config/tc-ia64.c:4608 config/tc-ia64.c:4946 config/tc-ia64.c:5253 msgid "Comma expected" msgstr "" -#: config/tc-ia64.c:4648 +#: config/tc-ia64.c:4649 msgid "Expected '['" msgstr "" -#: config/tc-ia64.c:4657 config/tc-ia64.c:7783 +#: config/tc-ia64.c:4658 config/tc-ia64.c:7784 msgid "Expected ']'" msgstr "" -#: config/tc-ia64.c:4662 +#: config/tc-ia64.c:4663 msgid "Number of elements must be positive" msgstr "" -#: config/tc-ia64.c:4673 +#: config/tc-ia64.c:4674 #, c-format msgid "Used more than the declared %d rotating registers" msgstr "" -#: config/tc-ia64.c:4681 +#: config/tc-ia64.c:4682 msgid "Used more than the available 96 rotating registers" msgstr "" -#: config/tc-ia64.c:4688 +#: config/tc-ia64.c:4689 msgid "Used more than the available 48 rotating registers" msgstr "" -#: config/tc-ia64.c:4716 +#: config/tc-ia64.c:4717 #, c-format msgid "Attempt to redefine register set `%s'" msgstr "" -#: config/tc-ia64.c:4782 +#: config/tc-ia64.c:4783 #, c-format msgid "Unknown psr option `%s'" msgstr "" -#: config/tc-ia64.c:4830 +#: config/tc-ia64.c:4831 msgid "Missing section name" msgstr "" -#: config/tc-ia64.c:4840 +#: config/tc-ia64.c:4841 msgid "Comma expected after section name" msgstr "" -#: config/tc-ia64.c:4851 +#: config/tc-ia64.c:4852 msgid "Creating sections with .xdataN/.xrealN/.xstringZ is deprecated." msgstr "" -#: config/tc-ia64.c:4940 +#: config/tc-ia64.c:4941 msgid "Register name expected" msgstr "" -#: config/tc-ia64.c:4953 +#: config/tc-ia64.c:4954 msgid "Register value annotation ignored" msgstr "" -#: config/tc-ia64.c:4992 +#: config/tc-ia64.c:4993 msgid "Directive invalid within a bundle" msgstr "" -#: config/tc-ia64.c:5083 +#: config/tc-ia64.c:5084 msgid "Missing predicate relation type" msgstr "" -#: config/tc-ia64.c:5089 +#: config/tc-ia64.c:5090 msgid "Unrecognized predicate relation type" msgstr "" -#: config/tc-ia64.c:5135 +#: config/tc-ia64.c:5136 msgid "Bad register range" msgstr "" -#: config/tc-ia64.c:5144 config/tc-ia64.c:7728 +#: config/tc-ia64.c:5145 config/tc-ia64.c:7729 msgid "Predicate register expected" msgstr "" -#: config/tc-ia64.c:5149 +#: config/tc-ia64.c:5150 msgid "Duplicate predicate register ignored" msgstr "" -#: config/tc-ia64.c:5165 +#: config/tc-ia64.c:5166 msgid "Predicate source and target required" msgstr "" -#: config/tc-ia64.c:5167 config/tc-ia64.c:5179 +#: config/tc-ia64.c:5168 config/tc-ia64.c:5180 msgid "Use of p0 is not valid in this context" msgstr "" -#: config/tc-ia64.c:5174 +#: config/tc-ia64.c:5175 msgid "At least two PR arguments expected" msgstr "" -#: config/tc-ia64.c:5188 +#: config/tc-ia64.c:5189 msgid "At least one PR argument expected" msgstr "" -#: config/tc-ia64.c:5223 +#: config/tc-ia64.c:5224 #, c-format msgid "Inserting \"%s\" into entry hint table failed: %s" msgstr "" #. FIXME -- need 62-bit relocation type -#: config/tc-ia64.c:5702 +#: config/tc-ia64.c:5703 msgid "62-bit relocation not yet implemented" msgstr "" #. XXX technically, this is wrong: we should not be issuing warning #. messages until we're sure this instruction pattern is going to #. be used! -#: config/tc-ia64.c:5788 +#: config/tc-ia64.c:5789 msgid "lower 16 bits of mask ignored" msgstr "" -#: config/tc-ia64.c:6017 +#: config/tc-ia64.c:6018 msgid "stride must be a multiple of 64; lower 6 bits ignored" msgstr "" -#: config/tc-ia64.c:6135 +#: config/tc-ia64.c:6136 msgid "Expected separator `='" msgstr "" -#: config/tc-ia64.c:6169 +#: config/tc-ia64.c:6170 msgid "Duplicate equal sign (=) in instruction" msgstr "" -#: config/tc-ia64.c:6176 +#: config/tc-ia64.c:6177 #, c-format msgid "Illegal operand separator `%c'" msgstr "" -#: config/tc-ia64.c:6291 +#: config/tc-ia64.c:6292 #, c-format msgid "Operand %u of `%s' should be %s" msgstr "" -#: config/tc-ia64.c:6295 +#: config/tc-ia64.c:6296 msgid "Wrong number of output operands" msgstr "" -#: config/tc-ia64.c:6297 +#: config/tc-ia64.c:6298 msgid "Wrong number of input operands" msgstr "" -#: config/tc-ia64.c:6299 +#: config/tc-ia64.c:6300 msgid "Operand mismatch" msgstr "" -#: config/tc-ia64.c:6381 +#: config/tc-ia64.c:6382 #, c-format msgid "Invalid use of `%c%d' as output operand" msgstr "" -#: config/tc-ia64.c:6384 +#: config/tc-ia64.c:6385 #, c-format msgid "Invalid use of `r%d' as base update address operand" msgstr "" -#: config/tc-ia64.c:6408 +#: config/tc-ia64.c:6409 #, c-format msgid "Invalid duplicate use of `%c%d'" msgstr "" -#: config/tc-ia64.c:6415 +#: config/tc-ia64.c:6416 #, c-format msgid "Invalid simultaneous use of `f%d' and `f%d'" msgstr "" -#: config/tc-ia64.c:6421 +#: config/tc-ia64.c:6422 #, c-format msgid "Dangerous simultaneous use of `f%d' and `f%d'" msgstr "" -#: config/tc-ia64.c:6465 +#: config/tc-ia64.c:6466 msgid "Value truncated to 62 bits" msgstr "" -#: config/tc-ia64.c:6533 +#: config/tc-ia64.c:6534 #, c-format msgid "Bad operand value: %s" msgstr "" #. Give an error if a frag containing code is not aligned to a 16 byte #. boundary. -#: config/tc-ia64.c:6608 config/tc-ia64.h:177 +#: config/tc-ia64.c:6609 config/tc-ia64.h:177 msgid "instruction address is not a multiple of 16" msgstr "" -#: config/tc-ia64.c:6676 +#: config/tc-ia64.c:6677 #, c-format msgid "`%s' must be last in bundle" msgstr "" -#: config/tc-ia64.c:6708 +#: config/tc-ia64.c:6709 #, c-format msgid "Internal error: don't know how to force %s to end of instruction group" msgstr "" -#: config/tc-ia64.c:6721 +#: config/tc-ia64.c:6722 #, c-format msgid "`%s' must be last in instruction group" msgstr "" -#: config/tc-ia64.c:6751 +#: config/tc-ia64.c:6752 msgid "Label must be first in a bundle" msgstr "" -#: config/tc-ia64.c:6828 +#: config/tc-ia64.c:6829 msgid "hint in B unit may be treated as nop" msgstr "" -#: config/tc-ia64.c:6839 +#: config/tc-ia64.c:6840 msgid "hint in B unit can't be used" msgstr "" -#: config/tc-ia64.c:6853 +#: config/tc-ia64.c:6854 msgid "emit_one_bundle: unexpected dynamic op" msgstr "" -#: config/tc-ia64.c:6978 +#: config/tc-ia64.c:6979 #, c-format msgid "`%s' does not fit into %s template" msgstr "" -#: config/tc-ia64.c:6993 +#: config/tc-ia64.c:6994 #, c-format msgid "`%s' does not fit into bundle" msgstr "" -#: config/tc-ia64.c:7005 +#: config/tc-ia64.c:7006 #, c-format msgid "`%s' can't go in %s of %s template" msgstr "" -#: config/tc-ia64.c:7011 +#: config/tc-ia64.c:7012 msgid "Missing '}' at end of file" msgstr "" -#: config/tc-ia64.c:7158 +#: config/tc-ia64.c:7159 #, c-format msgid "Unrecognized option '-x%s'" msgstr "" -#: config/tc-ia64.c:7185 +#: config/tc-ia64.c:7186 msgid "" "IA-64 options:\n" " --mconstant-gp\t mark output file as using the constant-GP model\n" @@ -8362,7 +8491,7 @@ msgid "" msgstr "" #. Note for translators: "automagically" can be translated as "automatically" here. -#: config/tc-ia64.c:7202 +#: config/tc-ia64.c:7203 msgid "" " -xauto\t\t automagically remove dependency violations (default)\n" " -xnone\t\t turn off dependency violation checking\n" @@ -8373,315 +8502,315 @@ msgid "" "\t\t\t dependency violation checking\n" msgstr "" -#: config/tc-ia64.c:7217 +#: config/tc-ia64.c:7218 msgid "--gstabs is not supported for ia64" msgstr "" -#: config/tc-ia64.c:7455 +#: config/tc-ia64.c:7456 #, c-format msgid "ia64.md_begin: can't hash `%s': %s" msgstr "" -#: config/tc-ia64.c:7519 +#: config/tc-ia64.c:7520 #, c-format msgid "Inserting \"%s\" into constant hash table failed: %s" msgstr "" -#: config/tc-ia64.c:7531 config/tc-tilegx.c:263 +#: config/tc-ia64.c:7532 config/tc-tilegx.c:263 msgid "Could not set architecture and machine" msgstr "" -#: config/tc-ia64.c:7663 +#: config/tc-ia64.c:7664 msgid "Explicit stops are ignored in auto mode" msgstr "" -#: config/tc-ia64.c:7672 +#: config/tc-ia64.c:7673 msgid "Found '{' when manual bundling is already turned on" msgstr "" -#: config/tc-ia64.c:7685 +#: config/tc-ia64.c:7686 msgid "Found '{' after explicit switch to automatic mode" msgstr "" -#: config/tc-ia64.c:7691 +#: config/tc-ia64.c:7692 msgid "Found '}' when manual bundling is off" msgstr "" -#: config/tc-ia64.c:7718 +#: config/tc-ia64.c:7719 msgid "Expected ')'" msgstr "" -#: config/tc-ia64.c:7723 +#: config/tc-ia64.c:7724 msgid "Qualifying predicate expected" msgstr "" -#: config/tc-ia64.c:7742 +#: config/tc-ia64.c:7743 msgid "Tag must come before qualifying predicate." msgstr "" -#: config/tc-ia64.c:7772 +#: config/tc-ia64.c:7773 msgid "Expected ':'" msgstr "" -#: config/tc-ia64.c:7788 +#: config/tc-ia64.c:7789 msgid "Tag name expected" msgstr "" -#: config/tc-ia64.c:7890 +#: config/tc-ia64.c:7891 msgid "Rotating register index must be a non-negative constant" msgstr "" -#: config/tc-ia64.c:7895 +#: config/tc-ia64.c:7896 #, c-format msgid "Index out of range 0..%u" msgstr "" -#: config/tc-ia64.c:7907 +#: config/tc-ia64.c:7908 msgid "Indirect register index must be a general register" msgstr "" -#: config/tc-ia64.c:7916 +#: config/tc-ia64.c:7917 msgid "Index can only be applied to rotating or indirect registers" msgstr "" -#: config/tc-ia64.c:7952 config/tc-xstormy16.c:146 +#: config/tc-ia64.c:7953 config/tc-xstormy16.c:145 msgid "Expected '('" msgstr "" -#: config/tc-ia64.c:7960 config/tc-pdp11.c:448 config/tc-pdp11.c:512 -#: config/tc-pdp11.c:546 config/tc-tilegx.c:1046 config/tc-tilepro.c:938 -#: config/tc-xstormy16.c:155 +#: config/tc-ia64.c:7961 config/tc-pdp11.c:447 config/tc-pdp11.c:511 +#: config/tc-pdp11.c:545 config/tc-tilegx.c:1046 config/tc-tilepro.c:938 +#: config/tc-xstormy16.c:154 msgid "Missing ')'" msgstr "" -#: config/tc-ia64.c:7978 config/tc-xstormy16.c:162 +#: config/tc-ia64.c:7979 config/tc-xstormy16.c:161 msgid "Not a symbolic expression" msgstr "" -#: config/tc-ia64.c:7983 config/tc-ia64.c:7997 +#: config/tc-ia64.c:7984 config/tc-ia64.c:7998 msgid "Illegal combination of relocation functions" msgstr "" -#: config/tc-ia64.c:8086 +#: config/tc-ia64.c:8087 msgid "No current frame" msgstr "" -#: config/tc-ia64.c:8088 +#: config/tc-ia64.c:8089 #, c-format msgid "Register number out of range 0..%u" msgstr "" -#: config/tc-ia64.c:8126 +#: config/tc-ia64.c:8127 msgid "Standalone `#' is illegal" msgstr "" -#: config/tc-ia64.c:8129 +#: config/tc-ia64.c:8130 msgid "Redundant `#' suffix operators" msgstr "" -#: config/tc-ia64.c:8287 +#: config/tc-ia64.c:8288 #, c-format msgid "Unhandled dependency %s for %s (%s), note %d" msgstr "" -#: config/tc-ia64.c:9599 +#: config/tc-ia64.c:9600 #, c-format msgid "Unrecognized dependency specifier %d\n" msgstr "" -#: config/tc-ia64.c:10475 +#: config/tc-ia64.c:10476 msgid "Only the first path encountering the conflict is reported" msgstr "" -#: config/tc-ia64.c:10477 +#: config/tc-ia64.c:10478 msgid "This is the location of the conflicting usage" msgstr "" -#: config/tc-ia64.c:10738 +#: config/tc-ia64.c:10739 #, c-format msgid "Unknown opcode `%s'" msgstr "" -#: config/tc-ia64.c:10816 +#: config/tc-ia64.c:10817 #, c-format msgid "AR %d can only be accessed by %c-unit" msgstr "" -#: config/tc-ia64.c:10828 +#: config/tc-ia64.c:10829 msgid "hint.b may be treated as nop" msgstr "" -#: config/tc-ia64.c:10831 +#: config/tc-ia64.c:10832 msgid "hint.b shouldn't be used" msgstr "" -#: config/tc-ia64.c:10870 +#: config/tc-ia64.c:10871 #, c-format msgid "`%s' cannot be predicated" msgstr "" -#: config/tc-ia64.c:10942 +#: config/tc-ia64.c:10943 msgid "Closing bracket missing" msgstr "" -#: config/tc-ia64.c:10951 +#: config/tc-ia64.c:10952 msgid "Index must be a general register" msgstr "" -#: config/tc-ia64.c:11116 +#: config/tc-ia64.c:11117 #, c-format msgid "Unsupported fixup size %d" msgstr "" #. This should be an error, but since previously there wasn't any #. diagnostic here, don't make it fail because of this for now. -#: config/tc-ia64.c:11388 +#: config/tc-ia64.c:11389 #, c-format msgid "Cannot express %s%d%s relocation" msgstr "" -#: config/tc-ia64.c:11407 +#: config/tc-ia64.c:11408 msgid "No addend allowed in @fptr() relocation" msgstr "" -#: config/tc-ia64.c:11446 +#: config/tc-ia64.c:11447 msgid "integer operand out of range" msgstr "" -#: config/tc-ia64.c:11513 +#: config/tc-ia64.c:11514 #, c-format msgid "%s must have a constant value" msgstr "" -#: config/tc-ia64.c:11533 +#: config/tc-ia64.c:11534 msgid "cannot resolve @slotcount parameter" msgstr "" -#: config/tc-ia64.c:11566 +#: config/tc-ia64.c:11567 msgid "invalid @slotcount value" msgstr "" -#: config/tc-ia64.c:11603 config/tc-z8k.c:1371 +#: config/tc-ia64.c:11604 config/tc-z8k.c:1370 #, c-format msgid "Cannot represent %s relocation in object file" msgstr "" -#: config/tc-ia64.c:11714 +#: config/tc-ia64.c:11715 msgid "Can't add stop bit to mark end of instruction group" msgstr "" -#: config/tc-ia64.c:11824 read.c:2540 read.c:3234 read.c:3571 stabs.c:469 +#: config/tc-ia64.c:11825 read.c:2544 read.c:3238 read.c:3575 stabs.c:468 #, c-format msgid "expected comma after \"%s\"" msgstr "" -#: config/tc-ia64.c:11866 +#: config/tc-ia64.c:11867 #, c-format msgid "`%s' is already the alias of %s `%s'" msgstr "" -#: config/tc-ia64.c:11876 +#: config/tc-ia64.c:11877 #, c-format msgid "%s `%s' already has an alias `%s'" msgstr "" -#: config/tc-ia64.c:11887 +#: config/tc-ia64.c:11888 #, c-format msgid "inserting \"%s\" into %s alias hash table failed: %s" msgstr "" -#: config/tc-ia64.c:11895 +#: config/tc-ia64.c:11896 #, c-format msgid "inserting \"%s\" into %s name hash table failed: %s" msgstr "" -#: config/tc-ia64.c:11921 +#: config/tc-ia64.c:11922 #, c-format msgid "symbol `%s' aliased to `%s' is not used" msgstr "" -#: config/tc-ia64.c:11944 +#: config/tc-ia64.c:11945 #, c-format msgid "section `%s' aliased to `%s' is not used" msgstr "" -#: config/tc-ip2k.c:158 +#: config/tc-ip2k.c:157 #, c-format msgid "IP2K specific command line options:\n" msgstr "" -#: config/tc-ip2k.c:159 +#: config/tc-ip2k.c:158 #, c-format msgid " -mip2022 restrict to IP2022 insns \n" msgstr "" -#: config/tc-ip2k.c:160 +#: config/tc-ip2k.c:159 #, c-format msgid " -mip2022ext permit extended IP2022 insn\n" msgstr "" -#: config/tc-iq2000.c:364 +#: config/tc-iq2000.c:363 #, c-format msgid "the yielding instruction %s may not be in a delay slot." msgstr "" -#: config/tc-iq2000.c:372 +#: config/tc-iq2000.c:371 #, c-format msgid "Register number (R%ld) for double word access must be even." msgstr "" -#: config/tc-iq2000.c:381 config/tc-iq2000.c:386 config/tc-iq2000.c:391 -#: config/tc-iq2000.c:408 config/tc-mt.c:244 config/tc-mt.c:249 +#: config/tc-iq2000.c:380 config/tc-iq2000.c:385 config/tc-iq2000.c:390 +#: config/tc-iq2000.c:407 config/tc-mt.c:244 config/tc-mt.c:249 #, c-format msgid "operand references R%ld of previous load." msgstr "" -#: config/tc-iq2000.c:396 +#: config/tc-iq2000.c:395 msgid "instruction implicitly accesses R31 of previous load." msgstr "" -#: config/tc-iq2000.c:651 config/tc-mep.c:2008 +#: config/tc-iq2000.c:650 config/tc-mep.c:2007 msgid "Unmatched high relocation" msgstr "" -#: config/tc-iq2000.c:829 config/tc-mips.c:17570 config/tc-score.c:5815 +#: config/tc-iq2000.c:828 config/tc-mips.c:18314 config/tc-score.c:5815 msgid ".end not in text section" msgstr "" -#: config/tc-iq2000.c:833 config/tc-score.c:5818 +#: config/tc-iq2000.c:832 config/tc-score.c:5818 msgid ".end directive without a preceding .ent directive." msgstr "" -#: config/tc-iq2000.c:842 config/tc-score.c:5826 +#: config/tc-iq2000.c:841 config/tc-score.c:5826 msgid ".end symbol does not match .ent symbol." msgstr "" -#: config/tc-iq2000.c:845 config/tc-mips.c:17590 config/tc-score.c:5831 +#: config/tc-iq2000.c:844 config/tc-mips.c:18334 config/tc-score.c:5831 msgid ".end directive missing or unknown symbol" msgstr "" -#: config/tc-iq2000.c:863 +#: config/tc-iq2000.c:862 msgid "Expected simple number." msgstr "" -#: config/tc-iq2000.c:892 config/tc-mips.c:17495 config/tc-score.c:5667 +#: config/tc-iq2000.c:891 config/tc-mips.c:18239 config/tc-score.c:5667 #, c-format msgid " *input_line_pointer == '%c' 0x%02x\n" msgstr "" -#: config/tc-iq2000.c:894 +#: config/tc-iq2000.c:893 msgid "Invalid number" msgstr "" -#: config/tc-iq2000.c:928 config/tc-score.c:5705 +#: config/tc-iq2000.c:927 config/tc-score.c:5705 msgid ".ent or .aent not in text section." msgstr "" -#: config/tc-iq2000.c:931 +#: config/tc-iq2000.c:930 msgid "missing `.end'" msgstr "" -#: config/tc-lm32.c:236 config/tc-moxie.c:579 config/tc-nios2.c:283 +#: config/tc-lm32.c:236 config/tc-moxie.c:579 config/tc-nios2.c:274 msgid "bad call to md_atof" msgstr "" @@ -8691,241 +8820,241 @@ msgid " M32C specific command line options:\n" msgstr "" #. Pretend that we do not recognise this option. -#: config/tc-m32r.c:331 +#: config/tc-m32r.c:330 msgid "Unrecognised option: -hidden" msgstr "" -#: config/tc-m32r.c:358 config/tc-sparc.c:619 +#: config/tc-m32r.c:357 config/tc-sparc.c:648 msgid "Unrecognized option following -K" msgstr "" -#: config/tc-m32r.c:373 +#: config/tc-m32r.c:372 #, c-format msgid " M32R specific command line options:\n" msgstr "" -#: config/tc-m32r.c:375 +#: config/tc-m32r.c:374 #, c-format msgid "" " -m32r disable support for the m32rx instruction set\n" msgstr "" -#: config/tc-m32r.c:377 +#: config/tc-m32r.c:376 #, c-format msgid " -m32rx support the extended m32rx instruction set\n" msgstr "" -#: config/tc-m32r.c:379 +#: config/tc-m32r.c:378 #, c-format msgid " -m32r2 support the extended m32r2 instruction set\n" msgstr "" -#: config/tc-m32r.c:381 +#: config/tc-m32r.c:380 #, c-format msgid " -EL,-little produce little endian code and data\n" msgstr "" -#: config/tc-m32r.c:383 +#: config/tc-m32r.c:382 #, c-format msgid " -EB,-big produce big endian code and data\n" msgstr "" -#: config/tc-m32r.c:385 +#: config/tc-m32r.c:384 #, c-format msgid " -parallel try to combine instructions in parallel\n" msgstr "" -#: config/tc-m32r.c:387 +#: config/tc-m32r.c:386 #, c-format msgid " -no-parallel disable -parallel\n" msgstr "" -#: config/tc-m32r.c:389 +#: config/tc-m32r.c:388 #, c-format msgid "" " -no-bitinst disallow the M32R2's extended bit-field " "instructions\n" msgstr "" -#: config/tc-m32r.c:391 +#: config/tc-m32r.c:390 #, c-format msgid " -O try to optimize code. Implies -parallel\n" msgstr "" -#: config/tc-m32r.c:394 +#: config/tc-m32r.c:393 #, c-format msgid "" " -warn-explicit-parallel-conflicts warn when parallel instructions\n" msgstr "" -#: config/tc-m32r.c:396 +#: config/tc-m32r.c:395 #, c-format msgid " might violate contraints\n" msgstr "" -#: config/tc-m32r.c:398 +#: config/tc-m32r.c:397 #, c-format msgid " -no-warn-explicit-parallel-conflicts do not warn when parallel\n" msgstr "" -#: config/tc-m32r.c:400 +#: config/tc-m32r.c:399 #, c-format msgid "" " instructions might violate " "contraints\n" msgstr "" -#: config/tc-m32r.c:402 +#: config/tc-m32r.c:401 #, c-format msgid "" " -Wp synonym for -warn-explicit-parallel-conflicts\n" msgstr "" -#: config/tc-m32r.c:404 +#: config/tc-m32r.c:403 #, c-format msgid "" " -Wnp synonym for -no-warn-explicit-parallel-conflicts\n" msgstr "" -#: config/tc-m32r.c:406 +#: config/tc-m32r.c:405 #, c-format msgid "" " -ignore-parallel-conflicts do not check parallel instructions\n" msgstr "" -#: config/tc-m32r.c:408 +#: config/tc-m32r.c:407 #, c-format msgid " for constraint violations\n" msgstr "" -#: config/tc-m32r.c:410 +#: config/tc-m32r.c:409 #, c-format msgid "" " -no-ignore-parallel-conflicts check parallel instructions for\n" msgstr "" -#: config/tc-m32r.c:412 +#: config/tc-m32r.c:411 #, c-format msgid " constraint violations\n" msgstr "" -#: config/tc-m32r.c:414 +#: config/tc-m32r.c:413 #, c-format msgid " -Ip synonym for -ignore-parallel-conflicts\n" msgstr "" -#: config/tc-m32r.c:416 +#: config/tc-m32r.c:415 #, c-format msgid " -nIp synonym for -no-ignore-parallel-conflicts\n" msgstr "" -#: config/tc-m32r.c:419 +#: config/tc-m32r.c:418 #, c-format msgid "" " -warn-unmatched-high warn when an (s)high reloc has no matching low " "reloc\n" msgstr "" -#: config/tc-m32r.c:421 +#: config/tc-m32r.c:420 #, c-format msgid " -no-warn-unmatched-high do not warn about missing low relocs\n" msgstr "" -#: config/tc-m32r.c:423 +#: config/tc-m32r.c:422 #, c-format msgid " -Wuh synonym for -warn-unmatched-high\n" msgstr "" -#: config/tc-m32r.c:425 +#: config/tc-m32r.c:424 #, c-format msgid " -Wnuh synonym for -no-warn-unmatched-high\n" msgstr "" -#: config/tc-m32r.c:428 +#: config/tc-m32r.c:427 #, c-format msgid " -KPIC generate PIC\n" msgstr "" -#: config/tc-m32r.c:850 +#: config/tc-m32r.c:849 msgid "instructions write to the same destination register." msgstr "" -#: config/tc-m32r.c:858 +#: config/tc-m32r.c:857 msgid "Instructions do not use parallel execution pipelines." msgstr "" -#: config/tc-m32r.c:866 +#: config/tc-m32r.c:865 msgid "Instructions share the same execution pipeline" msgstr "" -#: config/tc-m32r.c:931 config/tc-m32r.c:1045 +#: config/tc-m32r.c:930 config/tc-m32r.c:1044 #, c-format msgid "not a 16 bit instruction '%s'" msgstr "" -#: config/tc-m32r.c:943 config/tc-m32r.c:1057 config/tc-m32r.c:1241 +#: config/tc-m32r.c:942 config/tc-m32r.c:1056 config/tc-m32r.c:1240 #, c-format msgid "instruction '%s' is for the M32R2 only" msgstr "" -#: config/tc-m32r.c:956 config/tc-m32r.c:1070 config/tc-m32r.c:1254 +#: config/tc-m32r.c:955 config/tc-m32r.c:1069 config/tc-m32r.c:1253 #, c-format msgid "unknown instruction '%s'" msgstr "" -#: config/tc-m32r.c:965 config/tc-m32r.c:1077 config/tc-m32r.c:1261 +#: config/tc-m32r.c:964 config/tc-m32r.c:1076 config/tc-m32r.c:1260 #, c-format msgid "instruction '%s' is for the M32RX only" msgstr "" -#: config/tc-m32r.c:974 config/tc-m32r.c:1086 +#: config/tc-m32r.c:973 config/tc-m32r.c:1085 #, c-format msgid "instruction '%s' cannot be executed in parallel." msgstr "" -#: config/tc-m32r.c:1029 config/tc-m32r.c:1111 config/tc-m32r.c:1318 +#: config/tc-m32r.c:1028 config/tc-m32r.c:1110 config/tc-m32r.c:1317 msgid "internal error: lookup/get operands failed" msgstr "" -#: config/tc-m32r.c:1096 +#: config/tc-m32r.c:1095 #, c-format msgid "'%s': only the NOP instruction can be issued in parallel on the m32r" msgstr "" -#: config/tc-m32r.c:1125 +#: config/tc-m32r.c:1124 #, c-format msgid "" "%s: output of 1st instruction is the same as an input to 2nd instruction - " "is this intentional ?" msgstr "" -#: config/tc-m32r.c:1129 +#: config/tc-m32r.c:1128 #, c-format msgid "" "%s: output of 2nd instruction is the same as an input to 1st instruction - " "is this intentional ?" msgstr "" -#: config/tc-m32r.c:1503 +#: config/tc-m32r.c:1502 #, c-format msgid ".SCOMMon length (%ld.) <0! Ignored." msgstr "" -#: config/tc-m32r.c:1553 +#: config/tc-m32r.c:1552 #, c-format msgid "Length of .scomm \"%s\" is already %ld. Not changed to %ld." msgstr "" -#: config/tc-m32r.c:1930 config/tc-m32r.c:1983 config/tc-nds32.c:4060 -#: config/tc-nds32.c:4092 config/tc-sh.c:775 config/tc-sh.c:2455 +#: config/tc-m32r.c:1929 config/tc-m32r.c:1982 config/tc-nds32.c:4150 +#: config/tc-nds32.c:4186 config/tc-sh.c:774 config/tc-sh.c:2454 msgid "Invalid PIC expression." msgstr "" -#: config/tc-m32r.c:2074 +#: config/tc-m32r.c:2073 msgid "Unmatched high/shigh reloc" msgstr "" -#: config/tc-m68hc11.c:418 +#: config/tc-m68hc11.c:416 #, c-format msgid "" "Motorola 68HC11/68HC12/68HCS12 options:\n" @@ -8948,76 +9077,76 @@ msgid "" " (used for testing)\n" msgstr "" -#: config/tc-m68hc11.c:466 config/tc-xgate.c:285 +#: config/tc-m68hc11.c:464 config/tc-xgate.c:284 #, c-format msgid "Default target `%s' is not supported." msgstr "" #. Dump the opcode statistics table. -#: config/tc-m68hc11.c:484 +#: config/tc-m68hc11.c:482 #, c-format msgid "Name # Modes Min ops Max ops Modes mask # Used\n" msgstr "" -#: config/tc-m68hc11.c:563 +#: config/tc-m68hc11.c:561 #, c-format msgid "Option `%s' is not recognized." msgstr "" -#: config/tc-m68hc11.c:753 +#: config/tc-m68hc11.c:751 msgid "imm3" msgstr "" -#: config/tc-m68hc11.c:761 +#: config/tc-m68hc11.c:759 msgid "RD" msgstr "" -#: config/tc-m68hc11.c:769 +#: config/tc-m68hc11.c:767 msgid "RD,RS" msgstr "" -#: config/tc-m68hc11.c:777 +#: config/tc-m68hc11.c:775 msgid "RI, #imm4" msgstr "" -#: config/tc-m68hc11.c:809 +#: config/tc-m68hc11.c:807 msgid "RD, (RI,#offs5)" msgstr "" -#: config/tc-m68hc11.c:861 +#: config/tc-m68hc11.c:859 msgid "#" msgstr "" -#: config/tc-m68hc11.c:870 +#: config/tc-m68hc11.c:868 msgid "#" msgstr "" -#: config/tc-m68hc11.c:879 config/tc-m68hc11.c:888 +#: config/tc-m68hc11.c:877 config/tc-m68hc11.c:886 msgid ",X" msgstr "" -#: config/tc-m68hc11.c:915 +#: config/tc-m68hc11.c:913 msgid "*" msgstr "" -#: config/tc-m68hc11.c:927 +#: config/tc-m68hc11.c:925 msgid "#" msgstr "" -#: config/tc-m68hc11.c:937 +#: config/tc-m68hc11.c:935 #, c-format msgid "symbol%d" msgstr "" -#: config/tc-m68hc11.c:939 +#: config/tc-m68hc11.c:937 msgid "" msgstr "" -#: config/tc-m68hc11.c:958 +#: config/tc-m68hc11.c:956 msgid "