]> git.ipfire.org Git - thirdparty/binutils-gdb.git/log
thirdparty/binutils-gdb.git
7 years agoAutomatic date update in version.in
GDB Administrator [Thu, 22 Jan 2015 00:01:10 +0000 (00:01 +0000)] 
Automatic date update in version.in

7 years agoAutomatic date update in version.in
GDB Administrator [Wed, 21 Jan 2015 00:01:08 +0000 (00:01 +0000)] 
Automatic date update in version.in

7 years agoBackport from master:
Chung-Lin Tang [Tue, 20 Jan 2015 04:26:39 +0000 (20:26 -0800)] 
Backport from master:

Define elf_backend_default_execstack as 0 for Nios II.

7 years agoAutomatic date update in version.in
GDB Administrator [Tue, 20 Jan 2015 00:00:58 +0000 (00:00 +0000)] 
Automatic date update in version.in

7 years agoAutomatic date update in version.in
GDB Administrator [Mon, 19 Jan 2015 00:00:54 +0000 (00:00 +0000)] 
Automatic date update in version.in

7 years agoAutomatic date update in version.in
GDB Administrator [Sun, 18 Jan 2015 00:02:20 +0000 (00:02 +0000)] 
Automatic date update in version.in

7 years agoAutomatic date update in version.in
GDB Administrator [Sat, 17 Jan 2015 00:01:02 +0000 (00:01 +0000)] 
Automatic date update in version.in

7 years agoAutomatic date update in version.in
GDB Administrator [Fri, 16 Jan 2015 00:00:50 +0000 (00:00 +0000)] 
Automatic date update in version.in

7 years agoAutomatic date update in version.in
GDB Administrator [Thu, 15 Jan 2015 00:01:07 +0000 (00:01 +0000)] 
Automatic date update in version.in

7 years agoAutomatic date update in version.in
GDB Administrator [Wed, 14 Jan 2015 00:00:49 +0000 (00:00 +0000)] 
Automatic date update in version.in

7 years agoAutomatic date update in version.in
GDB Administrator [Tue, 13 Jan 2015 00:00:56 +0000 (00:00 +0000)] 
Automatic date update in version.in

7 years agoAutomatic date update in version.in
GDB Administrator [Mon, 12 Jan 2015 00:01:01 +0000 (00:01 +0000)] 
Automatic date update in version.in

7 years agoOnly discard space for pc-relative relocs symbols
H.J. Lu [Sun, 11 Jan 2015 16:04:27 +0000 (08:04 -0800)] 
Only discard space for pc-relative relocs symbols

When building PIE, we should only discard space for pc-relative relocs
symbols which turn out to need copy relocs.

bfd/

PR ld/17827
* elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): For PIE,
only discard space for pc-relative relocs symbols which turn
out to need copy relocs.

ld/testsuite/

PR ld/17827
* ld-x86-64/pr17689.out: Updated.
* ld-x86-64/pr17689b.S: Likewise.

* ld-x86-64/pr17827.rd: New file.

* ld-x86-64/x86-64.exp: Run PR ld/17827 test.

7 years agoAutomatic date update in version.in
GDB Administrator [Sun, 11 Jan 2015 00:01:13 +0000 (00:01 +0000)] 
Automatic date update in version.in

7 years agoAutomatic date update in version.in
GDB Administrator [Sat, 10 Jan 2015 00:01:04 +0000 (00:01 +0000)] 
Automatic date update in version.in

7 years agoAutomatic date update in version.in
GDB Administrator [Fri, 9 Jan 2015 00:01:10 +0000 (00:01 +0000)] 
Automatic date update in version.in

7 years agoAutomatic date update in version.in
GDB Administrator [Thu, 8 Jan 2015 00:00:59 +0000 (00:00 +0000)] 
Automatic date update in version.in

7 years agoHandle stack split for x32
H.J. Lu [Thu, 18 Dec 2014 19:09:28 +0000 (11:09 -0800)] 
Handle stack split for x32

X32 uses cmp %fs:NN,%esp, lea NN(%rsp),%r10d, lea NN(%rsp),%r11d,
instead of cmp %fs:NN,%rsp, lea NN(%rsp),%r10, lea NN(%rsp),%r11.
This patch handles it.

PR gold/17729
* configure.ac (DEFAULT_TARGET_X86_64): Don't set for x32.
(DEFAULT_TARGET_X32): Set for x32.
* x86_64.cc (cmp_insn_32): New.
(lea_r10_insn_32): Likewise.
(lea_r11_insn_32): Likewise.
(cmp_insn_64): Likewise.
(lea_r10_insn_64): Likewise.
(lea_r11_insn_64): Likewise.
(Target_x86_64<size>::do_calls_non_split): Handle x32.
* testsuite/Makefile.am (check_SCRIPTS): Add split_x32.sh.
(check_DATA): Add split_x32 files.
(split_x32_[1234n].o): New targets.
(split_x32_[124]): New targets.
(split_x32_[1234r].stdout): New targets.
* testsuite/split_x32.sh: New file.
* testsuite/split_x32_1.s: Likewise.
* testsuite/split_x32_2.s: Likewise.
* testsuite/split_x32_3.s: Likewise.
* testsuite/split_x32_4.s: Likewise.
* testsuite/split_x32_n.s: Likewise.
* configure: Regenerated.
* testsuite/Makefile.in: Likewise.

7 years agoAutomatic date update in version.in
GDB Administrator [Wed, 7 Jan 2015 00:01:02 +0000 (00:01 +0000)] 
Automatic date update in version.in

7 years agoHandle Initial-Exec to Local-Exec for x32
H.J. Lu [Tue, 6 Jan 2015 20:58:54 +0000 (12:58 -0800)] 
Handle Initial-Exec to Local-Exec for x32

PR gold/17809
* x86_64.cc (Target_x86_64<size>::Relocate::tls_ie_to_le): Handle
x32.

7 years agoAutomatic date update in version.in
GDB Administrator [Tue, 6 Jan 2015 00:00:59 +0000 (00:00 +0000)] 
Automatic date update in version.in

7 years agoCreate ChangeLog.linaro files for backports, and fix ChangeLog files.
Adhemerval Zanella [Thu, 20 Oct 2016 14:57:41 +0000 (12:57 -0200)] 
Create ChangeLog.linaro files for backports, and fix ChangeLog files.

7 years agobfd/version.h: Increment Linaro version to 2016_02 to reflect commits in 2016.01
Ryan S. Arnold [Fri, 1 Jul 2016 22:10:27 +0000 (17:10 -0500)] 
bfd/version.h: Increment Linaro version to 2016_02 to reflect commits in 2016.01

7 years ago[ARM] Support ARMv8.2 RAS extension.
Matthew Wahab [Tue, 12 Jan 2016 16:35:30 +0000 (16:35 +0000)] 
[ARM] Support ARMv8.2 RAS extension.

The ARMv8.2 architecture includes the RAS extension which adds an
instruction, ESB, and a number of coprocessor registers. This patch adds
the instruction to binutils, making it available when -march=armv8.2-a
is selected. It also adds tests for the instruction and for the
coprocessor registers.

gas/
2016-01-12  Matthew Wahab  <matthew.wahab@arm.com>

* config/tc-arm.c (arm_ext_v8_2): New.
(insns): Add "esb".
* testsuite/gas/arm/armv8_2-a.d: New.
* testsuite/gas/arm/armv8_2-a.s: New.

opcodes/
2016-01-12  Matthew Wahab  <matthew.wahab@arm.com>

* arm-dis.c (arm_opcodes): Add "esb".
(thumb_opcodes): Likewise.

Change-Id: I67f3d70789db78d1c66a56c4994675f99ac15e34

7 years agoFix ldah being disassembled as ldaexh
Andre Vieira [Wed, 25 Nov 2015 13:56:55 +0000 (13:56 +0000)] 
Fix ldah being disassembled as ldaexh

2015-12-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>

opcodes/
    * arm-dis.c (arm_opcodes): <ldaexh>: Fix typo...
    <ldah>: ... to this.

gas/testsuite/
    * gas/arm/armv8-a.d: <ldaexh>: Rename mismatched mnemonics ...
    <ldah>: ... to this.

7 years ago[ARM] Enable CRC by default for ARMv8.1 and later.
Matthew Wahab [Tue, 15 Dec 2015 16:37:38 +0000 (16:37 +0000)] 
[ARM] Enable CRC by default for ARMv8.1 and later.

ARMv8.1 includes CRC as a required extension but the +crc feature isn't
enabled by -march=armv8.1-a as it should be. This patch fixes that.

opcode/include
2015-12-15  Matthew Wahab  <matthew.wahab@arm.com>

* arm.h (ARM_ARCH_V8_1A): Add the CRC_EXT_ARMV8 co-processor
feature macro.
(ARM_ARCH_V8_2A): Likewise.

Change-Id: Id1fe0e6fa51dede19d61e1fd08e68628ea1b1e9e

7 years agoFixes a compile time warnng about left shifting a negative value.
Szabolcs Nagy [Tue, 16 Jun 2015 12:35:33 +0000 (13:35 +0100)] 
Fixes a compile time warnng about left shifting a negative value.

* arm-dis.c (print_insn_coprocessor): Avoid negative shift.

7 years ago[AArch64][Patch 5/5] Add instruction PSB CSYNC
Matthew Wahab [Fri, 11 Dec 2015 10:22:40 +0000 (10:22 +0000)] 
[AArch64][Patch 5/5] Add instruction PSB CSYNC

The Statistical Profile Extension adds the instruction PSB CSYNC as an
alias for the HINT #17 instruction. This patch adds the instruction to
binutils as a HINT alias that takes an operand.

A new operand type, AARCH64_OPND_BARRIER_PSB, is added to represent the
operand to PSB. A parser for the operand type is added to the assembler
and a printer to the disassembler. The operand name "csync" is added to
the list of HINT options with HINT number #17. Encoding and decoding of
the operand is handled by the ins_hint/ext_hint functions added in the
preceding patches.

gas/
2015-12-11  Matthew Wahab  <matthew.wahab@arm.com>

* config/tc-aarch64.c (aarch64_hint_opt_hsh): New.
(parse_barrier_psb): New.
(parse_operands): Add case for AARCH64_OPND_BARRIER_PSB.
(md_begin): Set up aarch64_hint_opt_hsh.

gas/testsuite/
2015-12-11  Matthew Wahab  <matthew.wahab@arm.com>

* gas/aarch64/system-2.d: Enable the statistical profiling
extension.  Update the expected output.
* gas/aarch64/system-2.s: Add tests for PSB CSYNC.
* gas/aarch64/system.d: Update the expected output.

include/opcode/
2015-12-11  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64.h (aarch64_opnd): Add AARCH64_OPND_BARRIER_PSB.
* aarch64-asm-2.c: Regenerate.
* aarch64-dis-2.c: Regenerate.
* aarch64-opc-2.c: Regenerate.
* aarch64-opc.c (aarch64_hint_options): Add "csync".
(aarch64_print_operands): Handle AARCH64_OPND_BARRIER_PSB.
* aarch64-tbl.h (aarch64_feature_stat_profile): New.
(STAT_PROFILE): New.
(aarch64_opcode_table): Add "psb".
(AARCH64_OPERANDS): Add "BARRIER_PSB".

Change-Id: I5ffb672d26a8b15b48785478d359350a9b70ca09

7 years ago[AArch64][Patch 4/5] Support HINT aliases taking operands.
Matthew Wahab [Fri, 11 Dec 2015 10:11:27 +0000 (10:11 +0000)] 
[AArch64][Patch 4/5] Support HINT aliases taking operands.

The Statistical Profile Extension adds the instruction PSB CSYNC as an
alias for the HINT #17 instruction. This patch adds support for aliases
of HINT which take an operand, adding a table to store operand names and
their matching hint number as well as encoding and decoding functions
for such operands. Parsing and printing the operands are deferred to any
support added for aliases with such operands.

include/opcode/
2015-12-11  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64.h (aarch64_hint_options): Declare.
(aarch64_opnd_info): Add field hint_option.

opcodes/
2015-12-11  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-asm.c (aarch64_ins_hint): New.
* aarch64-asm.h (aarch64_ins_hint): Declare.
* aarch64-dis.c (aarch64_ext_hint): New.
* aarch64-dis.h (aarch64_ext_hint): Declare.
* aarch64-opc-2.c: Regenerate.
* aarch64-opc.c (aarch64_hint_options): New.
* aarch64-tbl.h (AARCH64_OPERANDS): Fix typos.

Change-Id: I2205038fc1c47d3025d1f0bc2fbf405b5575b287

7 years ago[AArch64][Patch 3/5] Adjust maximum number of instruction aliases.
Matthew Wahab [Fri, 11 Dec 2015 09:56:07 +0000 (09:56 +0000)] 
[AArch64][Patch 3/5] Adjust maximum number of instruction aliases.

The Statistical Profile Extension adds the instruction PSB CSYNC as an
alias for the HINT #17 instruction. The HINT instruction currently has 8
aliases, which is the maximum number allowed. This patch raises to 16
the limit on the number of aliases an instruction can have.

opcodes/
2015-12-11  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-gen.c (find_alias_opcode): Set max_num_aliases to 16.

Change-Id: I131044bf6e0fe0940a9e7478d9bf52137748907d

7 years ago[AArch64][Patch 2/5] Add Statistical Profiling Extension system registers.
Matthew Wahab [Fri, 11 Dec 2015 09:52:11 +0000 (09:52 +0000)] 
[AArch64][Patch 2/5] Add Statistical Profiling Extension system registers.

The Statistical Profile extension included in the ARMv8.2 architecture
adds a number of system registers. This patch adds the registers to
binutils, making them available when the architecture extension
"+profile" is enabled.

opcodes/
2015-12-11  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-opc.c (aarch64_sys_reg): Add pbmlimitr_el1, pmbptr_el1,
pmbsr_el1, pmbidr_el1, pmscr_el1, pmsicr_el1, pmsirr_el1,
pmsfcr_el1, pmsevfr_el1, pmslatfr_el1, pmsidr_el1, pmscr_el2 and
pmscr_el2.
(aarch64_sys_reg_supported_p): Add architecture feature tests for
the new registers.

gas/testsuite/
2015-12-11  Matthew Wahab  <matthew.wahab@arm.com>

* gas/aarch64/sysreg-2.s: Add tests for the statistical profiling
system registers.
* gas/aarch64/sysreg-2.d: Enable the statistical profiling
extension and update the expected output.

Change-Id: Ibf23ad34db7c33f0fcd30010b796748b38be6efb

7 years ago[AArch64][Patch 1/5] Support the ARMv8.2 Statistical Profiling Extension.
Matthew Wahab [Fri, 11 Dec 2015 09:30:26 +0000 (09:30 +0000)] 
[AArch64][Patch 1/5] Support the ARMv8.2 Statistical Profiling Extension.

The Statistical Profile extension included in the ARMv8.2 architecture
adds a number of system registers and a new instruction. This patch set
adds support for the extension to binutils, enabled when
-march=armv8.2-a+profile is given.

The patches in this series:
- Add the new command line option and feature flags.
- Add the new system registers.
- Adjust the maximum number of aliases permitted for an instruction.
- Add support for HINT aliases which take operands.
- Add the new instruction, an alias of the HINT instruction.

This patch adds the option "profile" to the permitted architecture
extensions, disabling it by default.

gas/
2015-12-11  Matthew Wahab  <matthew.wahab@arm.com>

* config/tc-aarch64.c (aarch64_features): Add "profile".
* doc/c-aarch64.texi (AArch64 Extensions): Add "profile".

include/opcode/
2015-12-11  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64.h (AARCH64_FEATURE_PROFILE): New.

Change-Id: If9bb4a9b69a264180f96f8ffaf10b15ced273699

7 years ago[Aarch64] Support ARMv8.2 AT instructions
Matthew Wahab [Thu, 10 Dec 2015 16:58:51 +0000 (16:58 +0000)] 
[Aarch64] Support ARMv8.2 AT instructions

ARMv8.2 adds new instructions AT S1E1RP and AT S1E1WP to Aarch64. This
patch adds support for the instructions, making them available when
-march=armv8.2-a is selected.

gas/testsuite/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* gas/aarch64/sysreg-2.d: Update for new tests for AT S1E1RP and
AT S1E1WP.
* gas/aarch64/sysreg-2.s: Add tests for AT S1E1RP and AT S1E1WP.

opcodes/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-opc.c (aarch64_sys_regs_at): Add "s1e1rp" and "s1e1wp".
(aarch64_sys_ins_reg_supported_p): Add ARMv8.2 system register
feature test for "s1e1rp" and "s1e1wp".

Change-Id: I09e1044b629ab0a34b03c423e8d4e71ff92daad4

7 years ago[AArch64][PATCH 2/2] Support ARMv8.2 DC CVAP instruction.
Matthew Wahab [Thu, 10 Dec 2015 16:38:44 +0000 (16:38 +0000)] 
[AArch64][PATCH 2/2] Support ARMv8.2 DC CVAP instruction.

ARMv8.2 adds the new system instruction DC CVAP. This patch adds support
for the instruction to binutils, enabled when -march=armv8.2-a is
selected.

gas/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* config/tc-aarch64.c (parse_sys_ins_reg): Add check of
architectural support for system register.

gas/testsuite/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* gas/aarch64/sysreg-2.d: Add tests for dc instruction.
* gas/aarch64/sysreg-2.s: Add uses of dc instruction.

include/opcode/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64.h (aarch64_sys_ins_reg_supported_p): Declare.

opcodes/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-opc.c (aarch64_sys_regs_dc): Add "cvap".
(aarch64_sys_ins_reg_supported_p): New.

Change-Id: I3158b97d9bbee9644c2d0e2986db807412ef1053

7 years ago[AArch64][PATCH 1/2] Add support for ARMv8.2 DC CVAP instruction.
Matthew Wahab [Thu, 10 Dec 2015 16:31:35 +0000 (16:31 +0000)] 
[AArch64][PATCH 1/2] Add support for ARMv8.2 DC CVAP instruction.

ARMv8.2 adds the new system instruction DC CVAP. This patch series adds
support for this instruction to binutils, enabled when -march=armv8.2-a
is selected.

The AArch64 binutils record of some system registers uses a boolean
value to hold the single flag currently supported for them. To allow
these registers to be limited to specific architectures, the first patch
in this series replaces the boolean flag with a bitset and feature test.

include/opcode/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64.h (aarch64_sys_ins_reg): Replace has_xt with flags.
(aarch64_sys_ins_reg_has_xt): Declare.

opcodes/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-dis.c (aarch64_ext_regrt_sysins): Replace use of has_xt
with aarch64_sys_ins_reg_has_xt.
(aarch64_ext_sysins_op): Likewise.
* aarch64-opc.c (operand_general_constraint_met_p): Likewise.
(F_HASXT): New.
(aarch64_sys_regs_ic): Update for changes to aarch64_sys_ins_reg.
(aarch64_sys_regs_dc): Likewise.
(aarch64_sys_regs_at): Likewise.
(aarch64_sys_regs_tlbi): Likewise.
(aarch64_sys_ins_reg_has_xt): New.

Change-Id: I363637a6c3f54d7ffff953b3a0734e8139cae819

7 years ago[AArch64][binutils] Add support for ARMv8.2 PSTATE.UAO.
Matthew Wahab [Thu, 10 Dec 2015 16:01:29 +0000 (16:01 +0000)] 
[AArch64][binutils] Add support for ARMv8.2 PSTATE.UAO.

ARMv8.2 adds a new control bit PSTATE.UAO. This patch adds support for
this bit to binutils, following the same basic pattern as for
PSTATE.PAN. The new control bit is only available when -march=armv8.2-a
is specified.

gas/testsuite/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* gas/aarch64/uao-directive.d: New.
* gas/aarch64/uao.d: New.
* gas/aarch64/uao.s: New.

opcodes/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-opc.c (aarch64_sys_regs): Add "uao".
(aarch64_sys_reg_supported_p): Add comment.  Add checks for "uao".
(aarch64_pstatefields): Add "uao".
(aarch64_pstatefield_supported_p): Add checks for "uao".

Change-Id: Id571628ac5227b78aaf1876e85d15d7b6c0a2896

7 years ago[AArch64][PATCH 2/2] Add RAS system registers.
Matthew Wahab [Thu, 10 Dec 2015 14:09:03 +0000 (14:09 +0000)] 
[AArch64][PATCH 2/2] Add RAS system registers.

The ARMv8.2 RAS extension adds a number of new registers. This patch
adds the registers and makes them available whenever the RAS extension
is enabled, as it is when -march=armv8.2-a is selected.

The new registers are:
    erridr_el1, errselr_el1, erxfr_el1, erxctlr, erxaddr_el1,
    erxmisc0_el1, erxmisc1_el1, vsesr_el2, disr_el1 and
    vdisr_el2.

gas/testsuite/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* gas/aarch64/sysreg-2.d: Add tests for new registers.
* gas/aarch64/sysreg-2.s: Likewise.  Also replace some spaces with
tabs.

opcodes/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-opc.c (aarch64_sys_regs): Add "vsesr_el2", "erridr_el1",
"errselr_el1", "erxfr_el1", "erxctlr", "erxaddr_el1",
"erxmisc0_el1", "erxmisc1_el1", "disr_el1" and "vdisr_el2".
(aarch64_sys_reg_supported_p): Add architecture feature tests for
new registers.

Change-Id: I8a01a0f0ee7987f89eead32650f6afcc749b3c74

7 years ago[AArch64][PATCH 1/2] Add support for RAS instruction ESB.
Matthew Wahab [Thu, 10 Dec 2015 14:05:01 +0000 (14:05 +0000)] 
[AArch64][PATCH 1/2] Add support for RAS instruction ESB.

The ARMv8.2 RAS extension adds a new barrier instruction ESB as an alias
and the preferred form of HINT 16.

This patch adds an architectural feature flag for the RAS extension and
includes it in the features selected enabled by -march=armv8.2-a. It
also adds the ESB instruction, making it available whenever the RAS
feature is enabled.

Because ESB is the preferred form and because the target architecture
isn't available to the disassembler, HINT 16 will be disassembled as ESB
even when the target has no support for the RAS extension.

gas/testsuite/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* gas/aarch64/system-2.d: New.
* gas/aarch64/system-2.s: New.
* gas/aarch64/system.d: Adjust expected output for HINT 16.

include/opcode/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64.h (AARCH64_FEATURE_RAS): New.
(AARCH64_ARCH_V8_2): Add AARCH64_FEATURE_RAS.

opcodes/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-asm-2.c: Regenerate.
* aarch64-dis-2.c: Regenerate.
* aarch64-tbl.h (aarch64_feature_ras): New.
(RAS): New.
(aarch64_opcode_table): Add "esb".

Change-Id: Id4713917da15cca3b977284f43febd1c9b3d9faf

7 years ago[AArch64] Fix ARMv8.1 and ARMv8.2 feature settings.
Matthew Wahab [Thu, 10 Dec 2015 13:58:21 +0000 (13:58 +0000)] 
[AArch64] Fix ARMv8.1 and ARMv8.2 feature settings.

ARMv8.1 includes CRC as a required extension but this isn't reflected in
the features enabled by -march=armv8.1-a. The FP16 feature modifier also
clashes with AARCH64_FEATURE_V8_1 and the list of features for ARMv8.2
is missing ARMv8.1 features.

This patch enables +crc for -march values of armv8.1-a and later. It
also fixes the values for AARCH64_FEATURE_F16 and makes
AARCH64_ARCH_V8_2 and superset of AARCH64_ARCH_V8_2.

gas/
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* doc/c-aarch64.texi (AArch64 Extensions): Update entry for crc.

include/opcode
2015-12-10  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64.h (AARCH64_FEATURE_F16): Fix clash with
AARCH64_FEATURE_V8_1.
(AARCH64_ARCH_V8_1): Add AARCH64_FEATURE_CRC.
(AARCH64_ARCH_V8_2): Add AARCH64_FEATURE_CRC and
AARCH64_FEATURE_V8_1.

Change-Id: I8af5369f6df2430b28f6cec92870d2a4d14a7431

7 years ago[AArch64][PATCH 3/3] Add floating-point FP16 instructions
Matthew Wahab [Fri, 27 Nov 2015 16:32:21 +0000 (16:32 +0000)] 
[AArch64][PATCH 3/3] Add floating-point FP16 instructions

ARMv8.2 adds 16-bit floating point operations as an optional extension
to the ARMv8 FP support. This patch adds the new FP16 instructions,
making them available when the architecture extension +fp+fp16 is
specified.

The instructions added are:

- Comparisons and conditionals: FCMP, FCCMPE, FCMP, FCMPE and FCSEL.
- Arithmetic: FABS, FNEG, FSQRT, FMUL, FDIV, FADD, FSUB, FMADD, FMSUB,
  FNMADD and FNMSUB.
- Rounding: FRINTN, FRINTP, FRINTM, FRINTZ, FRINTA, FRINTX and FRINTI.
- Conversions: SCVTF (fixed-point), SCVTF (integer), UCVTF (fixed-point)
  UCVTF (integer), FCVTZS (fixed-point), FCVTZS (integer), FCVTZU
  (fixed-point), FCVTZU (integer), FCVTNS, FCVTNU, FCVTAS, FCVTAU,
  FCVTPS, FCVTPU, FCVTMS and  FCVTMU.
- Scalar FMOV: immediate, general and register

gas/testsuite/
2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>

* gas/aarch64/float-fp16.d: New.
* gas/aarch64/float-fp16.s: New.

opcodes/
2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-asm-2.c: Regenerate.
* aarch64-dis-2.c: Regenerate.
* aarch64-opc-2.c: Regenerate.
* aarch64-tbl.h (QL_FIX2FP_H, QL_FP2FIX_H): New.
(QL_INT2FP_H, QL_FP2INT_H): New.
(QL_FP2_H, QL_FP3_H, QL_FP4_H): New
(QL_DST_H): New.
(QL_FCCMP_H): New.
(aarch64_opcode_table): Add 16-bit variants of scvt, ucvtf,
fcvtzs, fcvtzu, fcvtns, fcvtnu, scvtf, ucvtf, fcvtas, fcvtau,
fmov, fcvtpos, fcvtpu, fcvtms, fcvtmu, fcvtzs, fcvtzu, fccmp,
fccmpe, fcmp, fcmpe, fabs, fneg, fsqrt, frintn, frintp, frintm,
frintz, frinta, frintx, frinti, fmul, fdiv, fadd, fsub, fmax,
fmin, fmaxnm, fminnm, fnmul, fmadd, fmsub, fnmadd, fnmsub and
fcsel.

Change-Id: Ie6d40bd1b215a9bc024e12ba75e52afbe1675eb7

7 years ago[AArch64][PATCH 2/3] Adjust a utility function for floating point values.
Matthew Wahab [Fri, 27 Nov 2015 16:25:52 +0000 (16:25 +0000)] 
[AArch64][PATCH 2/3] Adjust a utility function for floating point values.

ARMv8.2 adds 16-bit floating point operations as an optional
extension. This patch adjusts the utility function expand_fp_imm to
support 16-bit values.

The function is intended to convert an 8-bit immediate representing a
floating point value to a representation that can be passed to
fprintf. Because of the limited use of the results, the only change made
to the function is to treat a request for a 16-bit float as a request
for a 32-bit float.

opcodes/
2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-opc.c (half_conv_t): New.
(expand_fp_imm): Replace is_dp flag with the parameter size to
specify the number of bytes for the required expansion.  Treat
a 16-bit expansion like a 32-bit expansion.  Add check for an
unsupported size request.  Update comment.
(aarch64_print_operand): Update to support 16-bit floating point
values.  Update for changes to expand_fp_imm.

Change-Id: I1ae3df3864be375d71925197ab03397ed1ad2d15

7 years ago[AArch64][PATCH 1/3] Support ARMv8.2 FP16 floating point instructions.
Matthew Wahab [Fri, 27 Nov 2015 15:47:53 +0000 (15:47 +0000)] 
[AArch64][PATCH 1/3] Support ARMv8.2 FP16 floating point instructions.

ARMv8.2 adds 16-bit floating point operations as an optional extension
to the ARMv8 FP support. This patch set adds support for the 16-bit FP
instructions to binutils, enabling the instructions when both +fp and
+fp16 architecture extensions are enabled.

The patches in this series:
- Add a feature macro for use by the encoding/decoding mechanism.
- Adjust a utility function, used when disassembling, to support 16-bit
  floating point values.
- Add the new scalar floating-point instructions.

This patch adds the feature macro FP_F16 to the AArch64 encoding/decoding
mechanism, enabling it when both +fp and +fp16 are selected.

opcodes/
2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-tbl.h (aarch64_feature_fp_f16): New.
(FP_F16): New.

Change-Id: Ie370e43e3d77a7d54b4416b4be901b363a37f3d5

7 years ago[AArch64] Add ARMv8.2 instruction alias REV64.
Matthew Wahab [Fri, 27 Nov 2015 15:39:12 +0000 (15:39 +0000)] 
[AArch64] Add ARMv8.2 instruction alias REV64.

This patch adds the alias REV64 <Rd>, <Rs> as an alias for REV <Rd>,
<Rs>. However, REV is still the preferred form for the instruction.

gas/testsuite/
2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>

* gas/aarch64/alias-2.d: Add tests for REV.
* gas/aarch64/alias-2.s: Likewise.

opcodes/
2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-asm-2.c: Regenerate.
* aarch64-dis-2.c: Regenerate.
* aarch64-opc-2.c: Regenerate.
* aarch64-tbl.h (aarchr64_opcode_table): Update "rev", add
"rev64".

Change-Id: I331567c8d3618ba9fec1673c6e0b5977222dde61

7 years ago[AArch64] Add ARMv8.2 instructions BFC and REV64.
Matthew Wahab [Fri, 27 Nov 2015 15:25:08 +0000 (15:25 +0000)] 
[AArch64] Add ARMv8.2 instructions BFC and REV64.

ARMv8.2 adds two new instructions: BFC as an alias for BFM and REV64 as
an alias for REV. This patch set adds support for these to binutils,
enabled when the -march=armv8.2-a is given. It depends on the support
for an instruction being its preferred form which was added in an
earlier patch.

This patch adds the alias BFC <Rd>, #<imm>, #<width> as the preferred
form for BFM when the source is a zero register and the conditions for
using the BFI form are met (in other words, BFC is the preferred form
for BFI <Rd>, <Rs>, #<imm>, #<width> when the <Rs> is a zero register).

gas/testsuite/
2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>

* gas/aarch64/alias-2.d: New.
* gas/aarch64/alias-2.s: New.

include/opcode/
2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64.h (aarch64_op): Add OP_BFC.

opcodes/
2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-asm-2.c: Regenerate.
* aarch64-asm.c (convert_bfc_to_bfm): New.
(convert_to_real): Add case for OP_BFC.
* aarch64-dis-2.c: Regenerate.
* aarch64-dis.c: (convert_bfm_to_bfc): New.
(convert_to_alias): Add case for OP_BFC.
* aarch64-opc-2.c: Regenerate.
* aarch64-opc.c (operand_general_constraint_met_p): Weaken assert
to allow width operand in three-operand instructions.
* aarch64-tbl.h (QL_BF1): New.
(aarch64_feature_v8_2): New.
(ARMV8_2): New.
(aarch64_opcode_table): Add "bfc".

Change-Id: I6efe318b2538ba11f0caece7c6d70957441c872b

7 years ago[AArch64] Let aliased instructions be their preferred form.
Matthew Wahab [Fri, 27 Nov 2015 15:02:26 +0000 (15:02 +0000)] 
[AArch64] Let aliased instructions be their preferred form.

Although the AArch64 backend supports aliased instructions, the aliasing
forms are always preferred over the real instruction. This makes it
awkward to handle instructions which have aliases but which are their
own preferred form.

This patch includes the instruction being aliased in the list of
alternatives which is searched when considering which form to use.

opcodes/
2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-asm-2.c: Regenerate.
* aarch64-dis-2.c: Regenerate.
* aarch64-dis.c: Weaken assert.
* aarch64-gen.c: Include the instruction in the list of its
possible aliases.

Change-Id: I1f23eb25fccef76a64d3d732d58761bd25fad94e

7 years ago[Aarch64] Support an ARMv8.2 system register.
Matthew Wahab [Fri, 27 Nov 2015 13:44:10 +0000 (13:44 +0000)] 
[Aarch64] Support an ARMv8.2 system register.

ARMv8.2 adds a new system register id_aa64mmfr2_el1. This patch adds
support for the register to binutils, making it available when
-march=armv8.2-a is selected.

opcodes/
2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-opc.c (aarch64_sys_regs): Add "id_aa64mmfr2_el1".
(aarch64_sys_reg_supported_p): Add ARMv8.2 system register
feature test.

gas/testsuite/
2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>

* gas/aarch64/sysreg-2.d: New.
* gas/aarch64/sysreg-2.s: New.

Change-Id: I767f18a60e2bd70ce74c89f6abfe07afdc9e601f

7 years ago[AArch64] Add feature flags and command line for ARMv8.2 FP16 support.
Matthew Wahab [Fri, 27 Nov 2015 13:19:50 +0000 (13:19 +0000)] 
[AArch64] Add feature flags and command line for ARMv8.2 FP16 support.

ARMv8.2 adds optional support for 16-bit operations to the FP and
Adv.SIMD instructions. This patch adds a feature macro for this support
with a new command line option "+fp16" to enable/disable it.

Although the command line option is added as an architecture extension,
it only affects instructions available with when +fp or +simd is
enabled. If +fp16 is specified then it will also enable +fp.

There are currently no FP16 instructions implemented in binutils, this
patch is to enable subsequent work on supporting the extension.

gas/
2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>

* config/tc-aarch64.c (aarch64_features): Add "fp16".
* doc/c-aarch64.texi (Architecture Extensions): Add "fp16".

include/opcode/
2015-11-27  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64.h (AARCH64_FEATURE_F16): New.
(AARCH64_ARCH_V8_2): Add AARCH64_FEATURE_F16 to ARMv8.2
features.

Change-Id: Id2021e0513946e16d0935c2a5b9605574cdff95a

7 years ago[AArch64] Add support for ARMv8.1 Virtulization Host Extensions.
Matthew Wahab [Fri, 20 Nov 2015 16:09:34 +0000 (16:09 +0000)] 
[AArch64] Add support for ARMv8.1 Virtulization Host Extensions.

The ARMv8.1 architecture includes the Virtualization Host Extensions
which add a number of system registers. This patch adds support for
these system registers, making them available when -march=armv8.1-a is
selected.

include/opcode/
2015-11-20  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64.h (AARCH64_FEATURE_V8_1): New.
(AARCH64_ARCH_v8_1): Add AARCH64_FEATURE_V8_1.

opcodes/
2015-11-20  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64-opc.c (aarch64_sys_regs): Add spsr_el12, elr_el12,
sctlr_el12, cpacr_el12, ttbr1_el2, ttbr0_el12, ttbr1_el12,
tcr_el12, afsr0_el12, afsr1_el12, esr_el12, far_el12, mair_el12,
amair_el12, vbar_el12, contextidr_el2, contextidr_el12,
cntkctl_el12, cntp_tval_el02, cntp_ctl_el02, cntp_cval_el02,
cntv_tval_el02, cntv_ctl_el02, cntv_cval_el02, cnthv_tval_el2,
cnthv_ctl_el2, cnthv_cval_el2.
(aarch64_sys_reg_supported_p): Update for the new system
registers.

gas/testsuite/
2015-11-20  Matthew Wahab  <matthew.wahab@arm.com>

* gas/aarch64/virthostext-directive.d: New.
* gas/aarch64/virthostext.d: New.
* gas/aarch64/virthostext.s: New.

Change-Id: Iecb370591b1b6e9e00d81c8ccd9ae3b0f71794a2

7 years ago[ARM] Add ARMv8.2 architecture feature and command line option.
Matthew Wahab [Thu, 19 Nov 2015 09:24:14 +0000 (09:24 +0000)] 
[ARM] Add ARMv8.2 architecture feature and command line option.

ARMv8.2 is an architectural extension of ARMv8. This patch adds an
architecture feature macro for ARMv8.2 to the binutils ARM target
with GAS command line option -march=armv8.2-a.

gas/
2015-11-19  Matthew Wahab  <matthew.wahab@arm.com>

* config/tc-arm.c (arm_archs): Add "armv8.2-a".
* doc/c-arm.texi (-march): Add "armv8.2-a".

include/opcode/
2015-11-19  Matthew Wahab  <matthew.wahab@arm.com>

* arm.h (ARM_EXT2_V8_2A): New.
(ARM_ARCH_V8_2A): New.

Change-Id: I9e0f50e3c6cea24e6b87b8b862fd4e1cdcc1052e

7 years ago[AArch64] Add ARMv8.2 command line option and feature flag.
Matthew Wahab [Thu, 19 Nov 2015 09:12:49 +0000 (09:12 +0000)] 
[AArch64] Add ARMv8.2 command line option and feature flag.

ARMv8.2 is an architectural extension of ARMv8. This patch adds an
architecture feature macro for ARMv8.2 to the binutils AArch64 target
with GAS command line option -march=armv8.2-a.

gas/
2015-11-19  Matthew Wahab  <matthew.wahab@arm.com>

* config/tc-aarch64.c (aarch64_archs): Add "armv8.2-a".
* doc/c-aarch64.texi (-march): Likewise.

include/opcode/
2015-11-19  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64.h (AARCH64_FEATURE_V8_2): New.
(AARCH64_ARCH_V8_2): New.

Change-Id: I129232ab00234a07d18ce4b619607344acb3cbaf

7 years ago[Patch ARM] Fix build attributes for armv8-a in case of assembler files that contain...
Ramana Radhakrishnan [Thu, 17 Dec 2015 10:55:54 +0000 (10:55 +0000)] 
[Patch ARM] Fix build attributes for armv8-a in case of assembler files that contain no directives.

There is currently a problem in the way in which we produce
build attributes for simple assembler files that have armv8-a
instructions.

In these case we need to generate TAG_ISA_THUMB_Use to be Thumb-2
and set the architecture profile to be 'A' rather than not
setting architecture profile to be 'A' and setting TAG_ISA_THUMB_Use
to be Thumb-1.

This is a pre-requisite for any v8-m patches that have been posted.
arm-none-eabi gas testsuite run. no regressions.

2015-12-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

* gas/config/tc-arm.c (aeabi_set_public_attributes): Adjust
TAG_ARCH_profile for armv8-a.
* gas/testsuite/gas/arm/armv8a-automatic-hlt.d: New test.
* gas/testsuite/gas/arm/armv8a-automatic-hlt.s: New test.
* gas/testsuite/gas/arm/armv8a-automatic-lda.d: New test.
* gas/testsuite/gas/arm/armv8a-automatic-lda.s: New test.

7 years agoFix detection of GNU LD version in GCC's scripts
Maxim Kuvyrkov [Wed, 4 Nov 2015 13:52:34 +0000 (14:52 +0100)] 
Fix detection of GNU LD version in GCC's scripts

GCC's configure scripts are confused by YYYY.MM format of Linaro releases
and mistake YYYY for major version (currently 2) and MM for minor version
(currently 25).  This, in turn, makes GCC think that GNU LD doesn't support
plugins, which disables -fuse-linker-plugin functionality used by LTO.

This problem was already fixed before, and there is a comment about avoiding
"." in the BFD_VERSION_STRING, but, for reasons I can't explain, the problem
occurred again.  So fixing it ... again.

7 years agobfd/version.h: Update VERSION for 2.25 2015.10 release
Adhemerval Zanella [Tue, 6 Oct 2015 19:34:14 +0000 (19:34 +0000)] 
bfd/version.h: Update VERSION for 2.25 2015.10 release

7 years ago[AArch64] Fix function pointer variable with -Bsymbolic-functions
Jiong Wang [Tue, 13 Jan 2015 11:36:54 +0000 (11:36 +0000)] 
[AArch64] Fix function pointer variable with -Bsymbolic-functions

bfd/ChangeLog

2015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com>

    * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Use
    SYMBOLIC_BIND to check if a symbol should be bound symbolically.

ld/testsuite/ChangeLog

2015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com>

    * ld-aarch64/aarch64-elf.exp: Added relocs-257-symbolic-func test.
    * ld-aarch64/relocs-257-symbolic-func.d: New file.
    * ld-aarch64/relocs-257-symbolic-func.s: Likewise.

Change-Id: I892147fc9dea1dfc5d688ea90a7bbf912ab2d8ac

7 years agoFix broken -Bsymbolic-functions
Alan Modra [Sat, 25 Jul 2015 07:08:42 +0000 (16:38 +0930)] 
Fix broken -Bsymbolic-functions

For selected targets.  The testcase reveals a number of targets that
still need fixing.

bfd/
* elf32-arm.c (elf32_arm_final_link_relocate): Use SYMBOLIC_BIND to
check if a symbol should be bound symbolically.
* elf32-hppa.c (elf32_hppa_check_relocs,
elf32_hppa_adjust_dynamic_symbol, elf32_hppa_relocate_section,
elf32_hppa_finish_dynamic_symbol): Likewise.
* elf32-m68k.c (elf_m68k_check_relocs,
elf_m68k_relocate_section): Likewise.
* elf32-nios2.c (nios2_elf32_relocate_section,
nios2_elf32_check_relocs, allocate_dynrelocs): Likewise.
* elf32-tic6x.c (elf32_tic6x_finish_dynamic_symbol,
elf32_tic6x_relocate_section): Likewise.
ld/testsuite/
* ld-elf/symbolic-func.s,
* ld-elf/symbolic-func.r: New test.
* ld-elf/elf.exp: Run it.

Change-Id: Icf55fbc85d64ef220d212b8bff2181e0671415a7

7 years ago[ARM] Add crypto-neon-fp-armv8.1 as an fpu option
Matthew Wahab [Thu, 16 Jul 2015 14:11:30 +0000 (15:11 +0100)] 
[ARM] Add crypto-neon-fp-armv8.1 as an fpu option

2015-07-16  Matthew Wahab  <matthew.wahab@arm.com>

gas/
  * config/tc-arm.c (arm_fpus): Add crypto-neon-fp-armv8.1.
  * doc/c-arm.texi (-mfpu=): Likewise.  Correct the entry for
  neon-fp-armv8.1.

Change-Id: I0dd66a64d2027a948c256424cb7158d8d3025a2d

7 years ago[AArch64] Add support for ARMv8.1 command line option
Matthew Wahab [Thu, 4 Jun 2015 10:14:07 +0000 (11:14 +0100)] 
[AArch64] Add support for ARMv8.1 command line option

Change-Id: I0e9ad907d64ca64fcb2eda7d90e850a57348192a

7 years ago[ARM] Commit approaved testcases missed in previous commit
Matthew Wahab [Wed, 3 Jun 2015 09:52:34 +0000 (10:52 +0100)] 
[ARM] Commit approaved testcases missed in previous commit

2015-06-03  Matthew Wahab  <matthew.wahab@arm.com>

* gas/arm/armv8-a+rdma.d: New.
* gas/arm/armv8-a+rdma.s: New.

7 years ago[AArch64] Revert local changes included in Matthew's commit
Jiong Wang [Wed, 3 Jun 2015 09:06:42 +0000 (10:06 +0100)] 
[AArch64] Revert local changes included in Matthew's commit

When commit the following code for Matthew, I wrongly included my local changes. Revert it. Sorry.

commit a5932920ef397c2cbe02efa915686022b78d59a7
Author: Matthew Wahab <matthew.wahab@arm.com>
Date:   Wed Jun 3 10:03:50 2015 +0100

7 years ago[ARM] Support for ARMv8.1 command line option
Matthew Wahab [Wed, 3 Jun 2015 09:03:50 +0000 (10:03 +0100)] 
[ARM] Support for ARMv8.1 command line option

2015-06-03  Matthew Wahab  <matthew.wahab@arm.com>

gas/
* config/tc-arm.c (arm_archs): Add "armv8.1-a".
* doc/c-arm.texi (ARM Options, -march): Add "armv8.1-a".
* NEWS: Mention ARMv8.1 support.

include/opcode/
* arm.h (FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1): New.
(ARM_ARCH_V8_1A): New.
(ARM_ARCH_V8_1A_FP): New.
(ARM_ARCH_V8_1A_SIMD): New.
(ARM_ARCH_V8_1A_CRYPTOV1): New.
(ARM_FEATURE_CORE): New.

Change-Id: Iaa670f1c06dd40af79eba182663daf794d63edb5

7 years ago[ARM] Support for ARMv8.1 Adv.SIMD extension
Matthew Wahab [Tue, 2 Jun 2015 11:35:21 +0000 (12:35 +0100)] 
[ARM] Support for ARMv8.1 Adv.SIMD extension

Change-Id: Ib2beb4ae047a4f5edb04af794a17836f6229673f

7 years ago[ARM] Add support for ARMv8.1 PAN extension
Matthew Wahab [Tue, 2 Jun 2015 11:30:38 +0000 (12:30 +0100)] 
[ARM] Add support for ARMv8.1 PAN extension

Change-Id: I2fdfcca78ffa4acc26854429ccd7b939ef3819d9

7 years ago[ARM] Rework CPU feature selection in the disassembler
Matthew Wahab [Tue, 2 Jun 2015 11:24:24 +0000 (12:24 +0100)] 
[ARM] Rework CPU feature selection in the disassembler

include/opcode/
* arm.h (ARM_FEATURE_ALL): New.

opcodes/
* arm-dis.c (select_arm_features): Rework to avoid used of
redefined macros.

Change-Id: I55383e81473254b8dd31251634f7bd5af87d8a9d

7 years agoExtend arm_feature_set struct to provide more bits
Terry Guo [Tue, 24 Mar 2015 06:08:08 +0000 (14:08 +0800)] 
Extend arm_feature_set struct to provide more bits

gas/ChangeLog:
2015-03-24  Terry Guo  <terry.guo@arm.com>

* config/tc-arm.c (no_cpu_selected): Use new macro to compare
features.
(parse_psr): Likewise.
(do_t_mrs): Likewise.
(do_t_msr): Likewise.
(static const arm_feature_set arm_ext_*): Defined with new
macros.
(static const arm_feature_set arm_cext_*): Likewise.
(static const arm_feature_set fpu_fpa_ext_*): Likewise.
(static const arm_feature_set fpu_vfp_ext_*): Likewise.
(deprecated_coproc_regs): Likewise.
(UL_BARRIER): Likewise.
(barrier_opt_names): Likewise.
(arm_cpus): Likewise.
(arm_extensions): Likewise.

include/opcode/ChangeLog:
2015-03-24  Terry Guo  <terry.guo@arm.com>

* arm.h (arm_feature_set): Extended to provide more available
* bits.
(ARM_ANY): Updated to follow above new definition.
(ARM_CPU_HAS_FEATURE): Likewise.
(ARM_CPU_IS_ANY): Likewise.
(ARM_MERGE_FEATURE_SETS): Likewise.
(ARM_CLEAR_FEATURE): Likewise.
(ARM_FEATURE): Likewise.
(ARM_FEATURE_COPY): New macro.
(ARM_FEATURE_EQUAL): Likewise.
(ARM_FEATURE_ZERO): Likewise.
(ARM_FEATURE_CORE_EQUAL): Likewise.
(ARM_FEATURE_LOW): Likewise.
(ARM_FEATURE_CORE_LOW): Likewise.
(ARM_FEATURE_CORE_COPROC): Likewise.

opcodes/ChangeLog:
2015-03-24  Terry Guo  <terry.guo@arm.com>

* arm-dis.c (opcode32): Updated to use new arm feature struct.
(opcode16): Likewise.
(coprocessor_opcodes): Replace bit with feature struct.
(neon_opcodes): Likewise.
(arm_opcodes): Likewise.
(thumb_opcodes): Likewise.
(thumb32_opcodes): Likewise.
(print_insn_coprocessor): Likewise.
(print_insn_arm): Likewise.
(select_arm_features): Follow new feature struct.

Change-Id: Iac30a957260d56f6041ce6b2746edb9437a6a79b

7 years ago[AArch64] Support for ARMv8.1a Adv.SIMD instructions
Matthew Wahab [Tue, 2 Jun 2015 11:20:00 +0000 (12:20 +0100)] 
[AArch64] Support for ARMv8.1a Adv.SIMD instructions

2015-06-02  Matthew Wahab  <matthew.wahab@arm.com>

gas/
  * config/tc-aarch64.c (aarch64_features): Add "rdma".
  * doc/c-aarch64.texi (AArch64 Extensions): Add "rdma".

gas/testsuite/
  * rdma-directive.d: New.
  * rdma.d: New.
  * rdma.s: New.

include/opcode/
  * aarch64.h (AARCH64_FEATURE_RDMA): New.

opcode/
  * aarch64-tbl.h (aarch64_feature_rdma): New.
  (RDMA): New.
  (aarch64_opcode_table): Add "sqrmlah" and "sqrdmlsh" instructions.
  * aarch64-asm-2.c: Regenerate.
  * aarch64-dis-2.c: Regenerate.
  * aarch64-opc-2.c: Regenerate.

7 years ago[AArch64] Support for ARMv8.1a Limited Ordering Regions extension
Matthew Wahab [Tue, 2 Jun 2015 10:29:15 +0000 (11:29 +0100)] 
[AArch64] Support for ARMv8.1a Limited Ordering Regions extension

2015-06-02  Matthew Wahab  <matthew.wahab@arm.com>
include/
  * aarch64.h (AARCH64_FEATURE_LOR): New.

opcodes/
  * aarch64-tbl.h (aarch64_feature_lor): New.
  (LOR): New.
  (aarch64_opdocde_table): Add "ldlar", "ldlarb", "ldlarh", "stllr",
  "stllrb", "stllrh".
  * aarch64-asm-2.c: Regenerate.
  * aarch64-dis-2.c: Regenerate.
  * aarch64-opc-2.c: Regenerate.

gas/
  * config/tc-aarch64.c (aarch64_features): Add "lor".
  * doc/c-aarch64.c (Aarch64 Extensions): Add "lor" to list of
  architecture extensions.

gas/testsuite/
  * lor-directive.d: New.
  * lor.d: New.
  * lor.s: New.

7 years ago[AArch64][GAS] Add support for PAN architecture extension
Adhemerval Zanella [Tue, 6 Oct 2015 17:42:12 +0000 (17:42 +0000)] 
[AArch64][GAS] Add support for PAN architecture extension

2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
gas/
* config/tc-aarch64.c (parse_sys_reg): New parameter.  Check
target support.  Fix whitespace.
(parse_operands): Update for parse_sys_reg changes.
(aarch64_features): Add "pan".
* doc/c-aarch64.texi (Aarch64 Extensions): Add "pan".

gas/testsuite/
* pan-directive.d: New.
* pan.d: New.
* pan.s: New

Change-Id: I161395ecea6aa607c6c7dccec797b5c558a9efad

7 years ago[AARCH64] Document .arch and .arch_extension directive
Jiong Wang [Tue, 3 Feb 2015 14:02:24 +0000 (14:02 +0000)] 
[AARCH64] Document .arch and .arch_extension directive

2015-02-03  Renlin Li  <renlin.li@arm.com>

  gas/
    * doc/c-aarch64.texi (.arch): Document the directive.
    (.arch_extension): Likewise.

Change-Id: I8ec6bf2a389dd1c39fa0a65648a816c61764962c

7 years agoaarch64: allow adding/removing just feature flags via .arch_extension
Jan Beulich [Tue, 18 Nov 2014 13:08:28 +0000 (14:08 +0100)] 
aarch64: allow adding/removing just feature flags via .arch_extension

Rather than requiring to always also set/change the base architecture,
allow just en-/disabling of architecture extensions, matching what ARM
has.

Change-Id: Ibef421216db84a1e90679141be1153fdc115c6d0

7 years agoarm: fix extension feature disabling
Jan Beulich [Wed, 7 Jan 2015 08:39:27 +0000 (09:39 +0100)] 
arm: fix extension feature disabling

Using e.g.

.arch_extension simd
.arch_extension nocrypto

so far results in SIMD support getting disabled, which I can't see being
the purpose of the "no"-prefixed variants of architecture extension
specifications.

Of course it is questionable whether the current, counter intuitive
behavior needs to be retained, and the new behavior perhaps be made work
through e.g. a newly recognized "no-" prefix.

gas/
2015-01-07  Jan Beulich <jbeulich@suse.com>

* gas/config/tc-arm.c (struct arm_option_extension_value_table):
Split field "value" into fields "merge_value" and "clear_value".
(arm_extensions): Adjust initializer accordingly.

Change-Id: I1e06fe022e4b592dd52b702c8653140af2fffa5b

7 years ago[AArch64][libopcode] Add support for PAN architecture extension
Matthew Wahab [Mon, 1 Jun 2015 15:00:28 +0000 (16:00 +0100)] 
[AArch64][libopcode] Add support for PAN architecture extension

The ARMv8.1 architecture introduced the Privileged Access Never extension. This
adds a processor state field PSTATE.PAN which can be accessed using the MRS/MSR
instructions.

This patch adds support for the PAN architecture feature and processor state
field to libopcode.

include/opcode
2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>

* aarch64.h (AARCH64_FEATURE_PAN): New.
(aarch64_sys_reg_supported_p): Declare.
(aarch64_pstatefield_supported_p): Declare.

opcodes/
2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
* aarch64-opc.c (F_ARCHEXT): New.
(aarch64_sys_regs): Add "pan".
(aarch64_sys_reg_supported_p): New.
(aarch64_pstatefields): Add "pan".
(aarch64_pstatefield_supported_p): New.

Change-Id: I536285a540ecb6ab4fe265e342003c58e9851bca

7 years agogas: section name substitution sequence
Nicolas Pitre [Wed, 10 Jun 2015 03:06:29 +0000 (23:06 -0400)] 
gas: section name substitution sequence

This patch adds the ability to automatically construct a section name
based on the prior section.

When gas is invoked with --sectname-subst, the occurrence of %S in a
section name will be substituted by the name of the current section. For
example:

.macro exception_code
.pushsection %S.exception
[exception code here]
.popsection
.endm

.text
[code]
exception_code
[...]

.section .init
[init code]
exception_code
[...]

The first and second exception_code invocations create the
.text.exception and the .init.exception sections respectively.  This is
useful e.g. to discriminate between anciliary sections that are tied to
.init code and can be discarded at run time when initialization is over
vs anciliary sections tied to .text sections that need to stay resident.

* as.c (show_usage): Document --sectname-subst.
(parse_args): Add --sectname-subst.
* as.h (flag_sectname_subst): New.
* config/obj-elf.c (obj_elf_section_name): Add %S substitution.
* doc/as.texinfo: Document it.

Change-Id: Id580667a5ef03a1d7a11e9bdabd8012703025311

7 years agoChange format of version string
Maxim Kuvyrkov [Wed, 29 Apr 2015 16:41:50 +0000 (18:41 +0200)] 
Change format of version string

7 years agoWorkaround for Cortex A53 erratum 843419
Marcus Shawcroft [Tue, 24 Feb 2015 12:04:41 +0000 (12:04 +0000)] 
Workaround for Cortex A53 erratum 843419

Some early revisions of the Cortex-A53 have an erratum (843419).  The
details of the erratum are quite complex and involve dynamic
conditions.  For the purposes of the workaround we have simplified the
static conditions to an ADRP in the last two instructions of a 4KByte
page, followed within four instructions by a load/store dependent on
the ADRP.

This patch adds support to conservatively scan for and workaround
Cortex A53 erratum 843419.  There are two different workaround
strategies used.  The first is to rewrite ADRP instructions which form
part of an erratum sequence with an ADR instruction.  In situations
where the ADR provides insufficient offset the dependent load or store
instruction from the sequence is moved to a stub section and branches
are inserted from the original sequence to the relocated instruction
and back again.

Stub section sizes are rounded up to a multiple of 4096 in order to
ensure that the act of inserting work around stubs does not create
more errata sequences.

Workaround stubs are always inserted into the stub section associated
with the input section containing the erratum sequence.  This ensures
that the fully relocated form of the veneered load store instruction
is available at the point in time when the stub section is written.

7 years agoImplement branch over stub section.
Marcus Shawcroft [Sun, 22 Mar 2015 08:31:18 +0000 (08:31 +0000)] 
Implement branch over stub section.

Ensure that injection of a stub section does not break a link where
there is an xpectation that flow of control can pass from one input
section to another simply by linking the input sections in series.

The solution here is to allow stub sections to be inserted after any
input section (existing behaviour), but inject an additional branch at
the start of each stub section such that control flow falling into the
stub section will branch over the stub section.

7 years agoRemove padding before stub sections.
Marcus Shawcroft [Sun, 22 Mar 2015 07:48:07 +0000 (07:48 +0000)] 
Remove padding before stub sections.

Lower stub alignment from 8 to 4 bytes thus removing padding between
input section content and stub section content.

7 years agoAdjust veneer count.
Marcus Shawcroft [Wed, 25 Mar 2015 14:39:14 +0000 (14:39 +0000)] 
Adjust veneer count.

7 years agoFactor out _bfd_aarch64_get_stub_for_link_section.
Marcus Shawcroft [Mon, 2 Mar 2015 12:11:40 +0000 (12:11 +0000)] 
Factor out _bfd_aarch64_get_stub_for_link_section.

7 years agoRefactor section_group[] representation.
Marcus Shawcroft [Sat, 28 Feb 2015 00:17:22 +0000 (00:17 +0000)] 
Refactor section_group[] representation.

Change the behaviour of section_group[] such that .stub_sec points to
the stub section attached to the indexed section rather than the stub
section attached to the link_section pointed to be the index section.

This provides a mechanism to get to the stub section following any
input section.  While still allowing the section grouping mechanism to
find the section group stub section associated with an input section
by first following the link_sec pointer.

7 years agoRefactor generation of 835769 workaround stubs.
Marcus Shawcroft [Fri, 20 Mar 2015 19:08:00 +0000 (19:08 +0000)] 
Refactor generation of 835769 workaround stubs.

This patch recognizes that we only need to perform one scan for the
835769 errata and that this scan can take place before we insert
branch stubs.  The erratum scan code is relocated and adjusted to
create stub entries directly rather than populating an intermediate
representation.  Since stub entries are created immediately we can
drop the adhoc stub size adjustment code and allow the generic stub
sizing code to deal with 835769 stub entries.

This patch restructures the code but does not change the workaround
used to deal with erratum 83679, the exact placement of workaround
stubs in the final image may change slightly after this patch due to
stubs being created in a different order.

7 years agoUse _bfd_aarch64_add_stub_entry_in_group.
Marcus Shawcroft [Tue, 24 Mar 2015 11:24:50 +0000 (11:24 +0000)] 
Use _bfd_aarch64_add_stub_entry_in_group.

Adjust the 835769 workaround code to use
_bfd_aarch64_add_stub_entry_in_group rather than inspect the
underlying section_group structure directly.

7 years agoFix build -- missing ';'
Keith Seitz [Mon, 23 Mar 2015 18:41:11 +0000 (11:41 -0700)] 
Fix build -- missing ';'

bfd/ChangeLog

* elfnn-aarch64.c (_bfd_aarch64_create_or_find_stub_sec): Add
missing ';'.

7 years agoFactor out _bfd_aarch64_erratum_835769_stub_name
Marcus Shawcroft [Fri, 20 Mar 2015 18:54:59 +0000 (18:54 +0000)] 
Factor out _bfd_aarch64_erratum_835769_stub_name

7 years agoFactor out _bfd_aarch64_resize_stubs()
Marcus Shawcroft [Fri, 20 Mar 2015 20:20:35 +0000 (20:20 +0000)] 
Factor out _bfd_aarch64_resize_stubs()

7 years agoFactor stub creation code into _bfd_aarch64_create_stub_section.
Marcus Shawcroft [Tue, 10 Mar 2015 13:16:28 +0000 (13:16 +0000)] 
Factor stub creation code into _bfd_aarch64_create_stub_section.

7 years agoFactor out common behaviour between elf_aarch64_create_or_find_stub_sec and elfNN_aar...
Marcus Shawcroft [Sat, 28 Feb 2015 00:10:21 +0000 (00:10 +0000)] 
Factor out common behaviour between elf_aarch64_create_or_find_stub_sec and elfNN_aarch64_add_stub

7 years agoFlip sense of erratum_835769_scan.
Marcus Shawcroft [Fri, 20 Mar 2015 18:49:29 +0000 (18:49 +0000)] 
Flip sense of erratum_835769_scan.

7 years agoDrop unused argument to elf_aarch64_create_or_find_stub_sec
Marcus Shawcroft [Sat, 28 Feb 2015 00:06:26 +0000 (00:06 +0000)] 
Drop unused argument to elf_aarch64_create_or_find_stub_sec

7 years agoRemove unused variable.
Marcus Shawcroft [Sun, 22 Mar 2015 07:59:48 +0000 (07:59 +0000)] 
Remove unused variable.

7 years agoRemove dead code.
Marcus Shawcroft [Sun, 22 Mar 2015 07:57:18 +0000 (07:57 +0000)] 
Remove dead code.

7 years agoRemoving unused functions.
Marcus Shawcroft [Wed, 4 Mar 2015 12:21:02 +0000 (12:21 +0000)] 
Removing unused functions.

Removing a group of unused functions from the AArch64 BFD backend.

7 years agoRemove Load/Store register (unscaled immediate) alias.
Jiong Wang [Tue, 10 Mar 2015 11:27:56 +0000 (11:27 +0000)] 
Remove Load/Store register (unscaled immediate) alias.

opcodes/ChangeLog:

2015-03-10  Renlin Li  <renlin.li@arm.com>

* aarch64-tbl.h (aarch64_opcode_table): Remove strub, ldurb, ldursb,
         stur, ldur, sturh, ldurh, ldursh, ldursw, prfum F_HAS_ALIAS flag and
         related alias.
* aarch64-asm-2.c: Regenerate.
* aarch64-dis-2.c: Likewise.
* aarch64-opc-2.c: Likewise.

gas/testsuite/ChangeLog:

2015-03-10  Renlin Li  <renlin.li@arm.com>

* gas/aarch64/ldst-reg-uns-imm.d: Adjust expected output.
* gas/aarch64/ldst-reg-unscaled-imm.d: Likewise.
* gas/aarch64/reloc-insn.d: Likewise.

Change-Id: I4fb72ef042024f5c9ea6df5dc365a7e36e92068c

10 years agobfd/version.h: Bump VERSION
Will Newton [Mon, 5 Jan 2015 16:40:40 +0000 (16:40 +0000)] 
bfd/version.h: Bump VERSION

10 years agobfd/version.h: Update VERSION for 2.25 2015.01 release
Will Newton [Mon, 5 Jan 2015 16:30:49 +0000 (16:30 +0000)] 
bfd/version.h: Update VERSION for 2.25 2015.01 release

10 years agosrc-release.sh: Use configure.ac instead of configure.in
Will Newton [Mon, 5 Jan 2015 16:29:56 +0000 (16:29 +0000)] 
src-release.sh: Use configure.ac instead of configure.in

10 years agobfd/version.h: Bump version
Will Newton [Mon, 5 Jan 2015 16:29:39 +0000 (16:29 +0000)] 
bfd/version.h: Bump version

10 years agobfd/version.h: Update version for 2.25 2015.01-1 release
Will Newton [Mon, 5 Jan 2015 16:09:57 +0000 (16:09 +0000)] 
bfd/version.h: Update version for 2.25 2015.01-1 release

10 years agosrc-release.sh: Add support for building binutils-linaro
Will Newton [Mon, 5 Jan 2015 16:08:47 +0000 (16:08 +0000)] 
src-release.sh: Add support for building binutils-linaro

10 years agobfd/version.h: Bump VERSION
Will Newton [Mon, 5 Jan 2015 16:08:31 +0000 (16:08 +0000)] 
bfd/version.h: Bump VERSION

10 years agobfd/version.h: Update version for 2.25 2015.01 release
Will Newton [Mon, 5 Jan 2015 15:53:23 +0000 (15:53 +0000)] 
bfd/version.h: Update version for 2.25 2015.01 release