MIPS/opcodes: Address issues with NAL disassembly
Address issues with the disassembly of the NAL assembly idiom and R6
instruction introduced with commit 7361da2c952e ("Add support for MIPS
R6.") and then further tweaked with commit b9121b573e2e ("Add in a JALRC
alias and fix the NAL instruction."). As from R6 this instruction has
replaced the encoding of `bltzal $0, . + 4' as the solely supported form
of the former BLTZAL instruction for the regular MIPS ISA.
The instruction is marked as an alias only in our regular MIPS opcode
table, making it fail to disassemble in R6 code if the `no-aliases'
machine option has been passed to `objdump':
$ cat test.s
.text
foo:
nal
$ as -mips64r6 -o test.o test.s
$ objdump -dr --prefix-addresses --show-raw-insn -M no-aliases test.o
nal.o: file format elf32-tradbigmips
Disassembly of section .text:
00000000 <foo> 04100000 0x4100000
...
$
This is because the `bltzal' entry has been marked as pre-R6 only in the
opcode table and there is no other opcode pattern to match.
Additionally the changes referred made NAL replace the equivalent
`bltzal $0, . + 4' instruction in disassembly, unless the `no-aliases'
machine option has been used, in legacy code. Seeing NAL, especially in
its updated form lacking the branch target argument, in the disassembly
of such code may be confusing to people. This is because unlike with
EHB only used in R2 and newer code -- the machine encoding of which we
anyway always disassemble to its corresponding current architecture's
mnemonic rather than its legacy meaning of `sll $0, $0, 3' -- BLTZAL has
been indeed used in legacy code. Even though `bltzal $0, . + 8' and its
machine code encoding (0x04100001) -- which is not equivalent to NAL and
still disassembles as BLTZAL -- has been the predominant form as opposed
to NAL's `bltzal $0, . + 4' (0x04100000), it makes sense to always keep
the old form in disassembly, while still accepting `nal' in assembly.
Remove the alias marking then from the the `nal' instruction pattern,
making it always match for R6 code, even with the `no-aliases' option.
And move the entry beyond the `bltzal' entry, making the latter one take
precedence for legacy binary code, while letting the former still match
any `nal' mnemonic in source code assembled for a legacy target.
Add a suitable test case to the GAS test suite. While the change
affects the disassembler more than the assembler, so placing the test
case in the binutils test suite might be more appropriate, the intent is
also to verify that `nal' is still accepted by GAS for legacy targets,
plus we have test infrastructure available in the GAS test suite for
automatic multiple ISA level testing, which we lack from the binutils
framework.
opcodes/
* mips-opc.c (mips_builtin_opcodes): Remove the INSN2_ALIAS
annotation from the "nal" entry and reorder it beyond "bltzal".
gas/
* testsuite/gas/mips/nal-1.d: New test.
* testsuite/gas/mips/mipsr6@nal-1.d: New test.
* testsuite/gas/mips/nal-2.d: New test.
* testsuite/gas/mips/mipsr6@nal-2.d: New test.
* testsuite/gas/mips/nal.s: New test source.
* testsuite/gas/mips/mips.exp: Run the new tests.
2016-07-08 17:07:39 +02:00
|
|
|
|
2016-07-13 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* mips-opc.c (mips_builtin_opcodes): Remove the INSN2_ALIAS
|
|
|
|
|
annotation from the "nal" entry and reorder it beyond "bltzal".
|
|
|
|
|
|
2016-07-13 10:42:28 +02:00
|
|
|
|
2016-07-12 Jose E. Marchesi <jose.marchesi@oracle.com>
|
|
|
|
|
|
|
|
|
|
* sparc-opc.c (ldtxa): New macro.
|
|
|
|
|
(sparc_opcodes): Use the macro defined above to add entries for
|
|
|
|
|
the LDTXA instructions.
|
|
|
|
|
(asi_table): Add the ASI_TWINX_* asis used in the LDTXA
|
|
|
|
|
instruction.
|
|
|
|
|
|
2016-07-08 20:38:35 +02:00
|
|
|
|
2016-07-07 James Bowman <james.bowman@ftdichip.com>
|
|
|
|
|
|
|
|
|
|
* ft32-opc.c (ft32_opc_info): Correct mask for "callc"
|
|
|
|
|
and "jmpc".
|
|
|
|
|
|
2016-07-01 09:01:41 +02:00
|
|
|
|
2016-07-01 Jan Beulich <jbeulich@suse.com>
|
|
|
|
|
|
|
|
|
|
* i386-opc.tbl (movzbl, movzbw, movzbq, movzwl, movzwq): Remove.
|
|
|
|
|
(movzb): Adjust to cover all permitted suffixes.
|
|
|
|
|
(movzw): New.
|
|
|
|
|
* i386-tbl.h: Re-generate.
|
|
|
|
|
|
2016-07-01 08:57:21 +02:00
|
|
|
|
2016-07-01 Jan Beulich <jbeulich@suse.com>
|
|
|
|
|
|
|
|
|
|
* i386-opc.tbl (jmp): Remove Disp32S from non-64-bit variant.
|
|
|
|
|
(lgdt): Remove Tbyte from non-64-bit variant.
|
|
|
|
|
(fxsave64, fxrstor64, xsave64, xrstor64, xsaveopt64, xrstors64,
|
|
|
|
|
xsaves64, xsavec64): Remove Disp16.
|
|
|
|
|
(cvtsi2ss, cvtsi2sd, invept, invvpid, invpcid, vcvtsi2sd):
|
|
|
|
|
Remove Disp32S from non-64-bit variants. Remove Disp16 from
|
|
|
|
|
64-bit variants.
|
|
|
|
|
(vcvtsi2ss, vcvtsd2si, vcvtsd2usi, vcvtsi2sd, vcvtusi2sd,
|
|
|
|
|
vcvtusi2ss, vcvtss2si, vcvtss2usi, vcvttsd2si, vcvttsd2usi,
|
|
|
|
|
vcvttss2si, vcvttss2usi, vmovd, vmovq): Remove Disp16 from
|
|
|
|
|
64-bit variants.
|
|
|
|
|
* i386-tbl.h: Re-generate.
|
|
|
|
|
|
2016-07-01 08:56:13 +02:00
|
|
|
|
2016-07-01 Jan Beulich <jbeulich@suse.com>
|
|
|
|
|
|
|
|
|
|
* i386-opc.tbl (xlat): Remove RepPrefixOk.
|
|
|
|
|
* i386-tbl.h: Re-generate.
|
|
|
|
|
|
2016-06-30 17:03:07 +02:00
|
|
|
|
2016-06-30 Yao Qi <yao.qi@linaro.org>
|
|
|
|
|
|
|
|
|
|
* arm-dis.c (print_insn): Fix typo in comment.
|
|
|
|
|
|
2016-06-28 10:21:04 +02:00
|
|
|
|
2016-06-28 Richard Sandiford <richard.sandiford@arm.com>
|
|
|
|
|
|
|
|
|
|
* aarch64-opc.c (operand_general_constraint_met_p): Check the
|
|
|
|
|
range of ldst_elemlist operands.
|
|
|
|
|
(print_register_list): Use PRIi64 to print the index.
|
|
|
|
|
(aarch64_print_operand): Likewise.
|
|
|
|
|
|
2016-04-21 15:56:50 +02:00
|
|
|
|
2016-06-25 Trevor Saunders <tbsaunde+binutils@tbsaunde.org>
|
|
|
|
|
|
|
|
|
|
* mcore-opc.h: Remove sentinal.
|
|
|
|
|
* mcore-dis.c (print_insn_mcore): Adjust.
|
|
|
|
|
|
[ARC] Misc minor edits/fixes
The code supporting -mspfp, -mdpfp, and -mfpuda options are in
sections of code that are commented as being for backward
compatibility only, and having no effect. However, they do have an
effect, enabling the SPX, DPX, and DPA instruction subclasses
respectively. This commit moves the code supporting these options
away from the comments indicating that they are dummy options, and
also fixes a small issue where -mnps400 had the additional effect
of enabling SPX instructions.
A couple of other minor edits (that make no functional change) are
also included.
gas/ChangeLog:
* config/tc-arc.c (options, md_longopts, md_parse_option):
Move -mspfp, -mdpfp and -mfpuda out of the sections for
dummy options. Correct erroneous enabling of SPFP
instructions when using -mnps400.
include/ChangeLog:
* opcode/arc.h: Make insn_class_t alphabetical again.
opcodes/ChangeLog:
* arc-opc.c: Correct description of availability of NPS400
features.
2016-06-21 21:25:29 +02:00
|
|
|
|
2016-06-23 Graham Markall <graham.markall@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-opc.c: Correct description of availability of NPS400
|
|
|
|
|
features.
|
|
|
|
|
|
Add support for yet some more new ISA 3.0 instructions.
opcodes/
* ppc-opc.c (RM, DRM, VXASH, VXASH_MASK, XMMF, XMMF_MASK): New defines.
(powerpc_opcodes) <brd, brh, brw, mffsce, mffscdrn, mffscdrni,
mffscrn, mffscrni, mffsl, nandxor, rldixor, setbool,
xor3>: New mnemonics.
<setb>: Change to a VX form instruction.
(insert_sh6): Add support for rldixor.
(extract_sh6): Likewise.
gas/
* testsuite/gas/ppc/power9.d <brd, brh, brw, mffs, mffs., mffsce,
mffscdrn, mffscdrni, mffscrn, mffscrni, mffsl, nandxor, rldixor,
setbool, xor3>: New tests.
* testsuite/gas/ppc/power9.s: Likewise.
2016-06-23 00:55:17 +02:00
|
|
|
|
2016-06-22 Peter Bergner <bergner@vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* ppc-opc.c (RM, DRM, VXASH, VXASH_MASK, XMMF, XMMF_MASK): New defines.
|
|
|
|
|
(powerpc_opcodes) <brd, brh, brw, mffsce, mffscdrn, mffscdrni,
|
|
|
|
|
mffscrn, mffscrni, mffsl, nandxor, rldixor, setbool,
|
|
|
|
|
xor3>: New mnemonics.
|
|
|
|
|
<setb>: Change to a VX form instruction.
|
|
|
|
|
(insert_sh6): Add support for rldixor.
|
|
|
|
|
(extract_sh6): Likewise.
|
|
|
|
|
|
2016-06-04 05:11:46 +02:00
|
|
|
|
2016-06-22 Trevor Saunders <tbsaunde+binutils@tbsaunde.org>
|
|
|
|
|
|
|
|
|
|
* arc-ext.h: Wrap in extern C.
|
|
|
|
|
|
2016-06-21 15:03:08 +02:00
|
|
|
|
2016-06-21 Graham Markall <graham.markall@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-dis.c (arc_insn_length): Add comment on instruction length.
|
|
|
|
|
Use same method for determining instruction length on ARC700 and
|
|
|
|
|
NPS-400.
|
|
|
|
|
(arc_insn_length, print_insn_arc): Remove bfd_mach_arc_nps400.
|
|
|
|
|
* arc-nps400-tbl.h: Make all nps400 instructions ARC700 instructions
|
|
|
|
|
with the NPS400 subclass.
|
|
|
|
|
* arc-opc.c: Likewise.
|
|
|
|
|
|
opcodes,gas: sparc: fix rdasr,wrasr,rdpr,wrpr,rdhpr,wrhpr insns.
This patch fixes and expands the definition of the read/write
instructions for ancillary-state, privileged and hyperprivileged
registers in opcodes.
It also adds support for three new v9m hyperprivileged registers:
%hmcdper, %hmcddfr and %hva_mask_nz.
Finally, the patch expands existing tests (and adds several new ones) in
order to cover all the read/write instructions in all its variants.
opcodes/ChangeLog:
2016-06-17 Jose E. Marchesi <jose.marchesi@oracle.com>
* sparc-opc.c (rdasr): New macro.
(wrasr): Likewise.
(rdpr): Likewise.
(wrpr): Likewise.
(rdhpr): Likewise.
(wrhpr): Likewise.
(sparc_opcodes): Use the macros above to fix and expand the
definition of read/write instructions from/to
asr/privileged/hyperprivileged instructions.
* sparc-dis.c (v9_hpriv_reg_names): Add %hmcdper, %hmcddfr and
%hva_mask_nz. Prefer softint_set and softint_clear over
set_softint and clear_softint.
(print_insn_sparc): Support %ver in Rd.
gas/ChangeLog:
2016-06-17 Jose E. Marchesi <jose.marchesi@oracle.com>
* config/tc-sparc.c (hpriv_reg_table): Add registers %hmcdper,
%hmcddfr and %hva_mask_nz.
(sparc_ip): New handling of asr/privileged/hyperprivileged
registers, adapted to the new form of the sparc opcodes table.
* testsuite/gas/sparc/rdasr.s: New file.
* testsuite/gas/sparc/rdasr.d: Likewise.
* testsuite/gas/sparc/wrasr.s: Likewise.
* testsuite/gas/sparc/wrasr.d: Likewise.
* testsuite/gas/sparc/sparc.exp (sparc_elf_setup): Add rdasr and
wrasr tests.
* testsuite/gas/sparc/rdpr.d: Use -Av9m, as some privileged
registers require it.
* testsuite/gas/sparc/wrpr.s: Complete to cover all privileged
registers and write instruction modalities.
* testsuite/gas/sparc/wrpr.d: Likewise.
* testsuite/gas/sparc/rdhpr.s: Likewise for hyperprivileged
registers.
* testsuite/gas/sparc/rdhpr.d: Likewise.
* testsuite/gas/sparc/wrhpr.s: Likewise.
* testsuite/gas/sparc/wrhpr.d: Likewise.
2016-06-17 11:15:43 +02:00
|
|
|
|
2016-06-17 Jose E. Marchesi <jose.marchesi@oracle.com>
|
|
|
|
|
|
|
|
|
|
* sparc-opc.c (rdasr): New macro.
|
|
|
|
|
(wrasr): Likewise.
|
|
|
|
|
(rdpr): Likewise.
|
|
|
|
|
(wrpr): Likewise.
|
|
|
|
|
(rdhpr): Likewise.
|
|
|
|
|
(wrhpr): Likewise.
|
|
|
|
|
(sparc_opcodes): Use the macros above to fix and expand the
|
|
|
|
|
definition of read/write instructions from/to
|
|
|
|
|
asr/privileged/hyperprivileged instructions.
|
|
|
|
|
* sparc-dis.c (v9_hpriv_reg_names): Add %hmcdper, %hmcddfr and
|
|
|
|
|
%hva_mask_nz. Prefer softint_set and softint_clear over
|
|
|
|
|
set_softint and clear_softint.
|
|
|
|
|
(print_insn_sparc): Support %ver in Rd.
|
|
|
|
|
|
opcodes,gas: adjust sparc insns and make GAS aware of it
This patch marks the SPARC instructions in the opcodes table with their
proper opcode architectures, and makes the assembler aware of them.
This allows the assembler to properly realize when a new instruction
needs a higher architecture (after v9b) and to react accordingly
emitting an error message or bumping the architecture.
It also expands architecture mismatch tests to cover architectures
higher than v9b, and fixes a couple of minor bugs in the GAS testsuite.
opcodes/ChangeLog:
2016-06-17 Jose E. Marchesi <jose.marchesi@oracle.com>
* sparc-opc.c (sparc_opcodes): Adjust instructions opcode
architecture according to the hardware capabilities they require.
(sparc_priv_regs): New table.
(sparc_hpriv_regs): Likewise.
(sparc_asr_regs): Likewise.
(v9anotv9m): Define.
gas/ChangeLog:
2016-06-17 Jose E. Marchesi <jose.marchesi@oracle.com>
* config/tc-sparc.c (sparc_arch_table): adjust the GAS
architectures to use the right opcode architecture.
(sparc_md_end): Handle v9{c,d,e,v,m}.
(sparc_ip): Fix some comments.
* testsuite/gas/sparc/ldx_efsr.d: Fix the architecture of this
instruction, which is v9d.
* testsuite/gas/sparc/mwait.s: Remove the `rd %mwait,%g1'
instruction from the test, as %mwait is not readable.
* testsuite/gas/sparc/mwait.d: Likewise.
* testsuite/gas/sparc/mism-1.s: Expand to check v9b and v9e
mismatch architecture errors.
* testsuite/gas/sparc/mism-2.s: New file.
2016-06-17 11:14:18 +02:00
|
|
|
|
2016-06-17 Jose E. Marchesi <jose.marchesi@oracle.com>
|
|
|
|
|
|
|
|
|
|
* sparc-opc.c (sparc_opcodes): Adjust instructions opcode
|
|
|
|
|
architecture according to the hardware capabilities they require.
|
|
|
|
|
|
bfd,opcodes: sparc: new opcode v9{c,d,e,v,m} architectures and bfd machine numbers.
This patch adds support for the opcode architectures
SPARC_OPCODE_ARCH_V9{C,D,E,V,M} and its associated BFD machine numbers
bfd_mach_sparc_v9{c,d,e,v,m} and bfd_mach_sparc_v8plus{c,d,e,v,m}.
Note that for arches up to v9b (UltraSPARC III), the detection of the
BFD machine type was based on the bits in the e_machine field of the ELF
header. However, there are no more available bits in that field, so
this patch takes the approach of using the hardware capabilities stored
in the object attributes HWCAPS/HWCAPS2 in order to characterize the
machine the object was built for.
bfd/ChangeLog:
2016-06-17 Jose E. Marchesi <jose.marchesi@oracle.com>
* archures.c (bfd_mach_sparc_v8plusc): Define.
(bfd_mach_sparc_v9c): Likewise.
(bfd_mach_sparc_v8plusd): Likewise.
(bfd_mach_sparc_v9d): Likewise.
(bfd_mach_sparc_v8pluse): Likewise.
(bfd_mach_sparc_v9e): Likewise.
(bfd_mach_sparc_v8plusv): Likewise
(bfd_mach_sparc_v9v): Likewise.
(bfd_mach_sparc_v8plusm): Likewise.
(bfd_mach_sparc_v9m): Likewise.
(bfd_mach_sparc_v9_p): Adapt to v8plusm and v9m.
(bfd_mach_sparc_64bit_p): Likewise.
* bfd-in2.h: Regenerate.
* cpu-sparc.c (arch_info_struct): Add entries for
bfd_mach_sparc_v8plus{c,d,e,v,m} and bfd_mach_sparc_v9{c,d,e,v,m}.
* aoutx.h (machine_type): Handle bfd_mach_sparc_v8plus{c,d,e,v,m}
and bfd_mach_sparc_v9{c,d,e,v,m}.
* elf32-sparc.c (elf32_sparc_final_write_processing): Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_object_p): Likewise.
include/ChangeLog:
2016-06-17 Jose E. Marchesi <jose.marchesi@oracle.com>
* opcode/sparc.h (enum sparc_opcode_arch_val): Add
SPARC_OPCODE_ARCH_V9C, SPARC_OPCODE_ARCH_V9D,
SPARC_OPCODE_ARCH_V9E, SPARC_OPCODE_ARCH_V9V and
SPARC_OPCODE_ARCH_V9M.
opcodes/ChangeLog:
2016-06-17 Jose E. Marchesi <jose.marchesi@oracle.com>
* sparc-dis.c (MASK_V9): Add SPARC_OPCODE_ARCH_V9{C,D,E,V,M}.
(compute_arch_mask): Handle bfd_mach_sparc_v8plus{c,d,e,v,m} and
bfd_mach_sparc_v9{c,d,e,v,m}.
* sparc-opc.c (MASK_V9C): Define.
(MASK_V9D): Likewise.
(MASK_V9E): Likewise.
(MASK_V9V): Likewise.
(MASK_V9M): Likewise.
(v6): Add MASK_V9{C,D,E,V,M}.
(v6notlet): Likewise.
(v7): Likewise.
(v8): Likewise.
(v9): Likewise.
(v9andleon): Likewise.
(v9a): Likewise.
(v9b): Likewise.
(v9c): Define.
(v9d): Likewise.
(v9e): Likewise.
(v9v): Likewise.
(v9m): Likewise.
(sparc_opcode_archs): Add entry for v9{c,d,e,v,m}.
2016-06-17 11:12:48 +02:00
|
|
|
|
2016-06-17 Jose E. Marchesi <jose.marchesi@oracle.com>
|
|
|
|
|
|
|
|
|
|
* sparc-dis.c (MASK_V9): Add SPARC_OPCODE_ARCH_V9{C,D,E,V,M}.
|
|
|
|
|
(compute_arch_mask): Handle bfd_mach_sparc_v8plus{c,d,e,v,m} and
|
|
|
|
|
bfd_mach_sparc_v9{c,d,e,v,m}.
|
|
|
|
|
* sparc-opc.c (MASK_V9C): Define.
|
|
|
|
|
(MASK_V9D): Likewise.
|
|
|
|
|
(MASK_V9E): Likewise.
|
|
|
|
|
(MASK_V9V): Likewise.
|
|
|
|
|
(MASK_V9M): Likewise.
|
|
|
|
|
(v6): Add MASK_V9{C,D,E,V,M}.
|
|
|
|
|
(v6notlet): Likewise.
|
|
|
|
|
(v7): Likewise.
|
|
|
|
|
(v8): Likewise.
|
|
|
|
|
(v9): Likewise.
|
|
|
|
|
(v9andleon): Likewise.
|
|
|
|
|
(v9a): Likewise.
|
|
|
|
|
(v9b): Likewise.
|
|
|
|
|
(v9c): Define.
|
|
|
|
|
(v9d): Likewise.
|
|
|
|
|
(v9e): Likewise.
|
|
|
|
|
(v9v): Likewise.
|
|
|
|
|
(v9m): Likewise.
|
|
|
|
|
(sparc_opcode_archs): Add entry for v9{c,d,e,v,m}.
|
|
|
|
|
|
2016-06-15 17:25:34 +02:00
|
|
|
|
2016-06-15 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* nds32-dis.c (nds32_parse_audio_ext): Change printing of integer
|
|
|
|
|
constants to match expected behaviour.
|
|
|
|
|
(nds32_parse_opcode): Likewise. Also for whitespace.
|
|
|
|
|
|
2016-06-14 22:48:11 +02:00
|
|
|
|
2016-06-15 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-opc.c (extract_rhv1): Extract value from insn.
|
|
|
|
|
|
2016-06-14 22:53:04 +02:00
|
|
|
|
2016-06-14 Graham Markall <graham.markall@embecosm.com>
|
2016-06-13 10:03:05 +02:00
|
|
|
|
|
|
|
|
|
* arc-nps400-tbl.h: Add ldbit instruction.
|
|
|
|
|
* arc-opc.c: Add flag classes required for ldbit.
|
|
|
|
|
|
2016-06-14 22:53:04 +02:00
|
|
|
|
2016-06-14 Graham Markall <graham.markall@embecosm.com>
|
2016-06-09 09:38:34 +02:00
|
|
|
|
|
|
|
|
|
* arc-nps400-tbl.h: Add hash, hash.p[0-3], tr, utf8, e4by, and addf
|
|
|
|
|
* arc-opc.c: Add flag classes, insert/extract functions, and operands to
|
|
|
|
|
support the above instructions.
|
|
|
|
|
|
2016-06-14 22:53:04 +02:00
|
|
|
|
2016-06-14 Graham Markall <graham.markall@embecosm.com>
|
2016-06-03 11:48:49 +02:00
|
|
|
|
|
|
|
|
|
* arc-nps400-tbl.h: Add calcbsd, calcbxd, calckey, calcxkey, mxb,
|
|
|
|
|
imxb, addl, subl, andl, orl, xorl, andab, orab, lbdsize, bdlen, csms,
|
|
|
|
|
csma, cbba, zncv, and hofs.
|
|
|
|
|
* arc-opc.c: Add flag classes, insert/extract functions, and operands to
|
|
|
|
|
support the above instructions.
|
|
|
|
|
|
|
|
|
|
2016-06-06 Graham Markall <graham.markall@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-nps400-tbl.h: Add andab and orab instructions.
|
|
|
|
|
|
|
|
|
|
2016-06-06 Graham Markall <graham.markall@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-nps400-tbl.h: Add addl-like instructions.
|
|
|
|
|
|
|
|
|
|
2016-06-06 Graham Markall <graham.markall@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-nps400-tbl.h: Add mxb and imxb instructions.
|
|
|
|
|
|
|
|
|
|
2016-06-06 Graham Markall <graham.markall@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-nps400-tbl.h: Add calcbsd, calcbxd, calckey and calcxkey
|
|
|
|
|
instructions.
|
|
|
|
|
|
2016-06-10 13:40:48 +02:00
|
|
|
|
2016-06-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* s390-dis.c (option_use_insn_len_bits_p): New file scope
|
|
|
|
|
variable.
|
|
|
|
|
(init_disasm): Handle new command line option "insnlength".
|
|
|
|
|
(print_s390_disassembler_options): Mention new option in help
|
|
|
|
|
output.
|
|
|
|
|
(print_insn_s390): Use the encoded insn length when dumping
|
|
|
|
|
unknown instructions.
|
|
|
|
|
|
2016-06-09 18:00:57 +02:00
|
|
|
|
2016-06-03 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
|
|
|
|
|
|
|
|
|
|
* avr-dis.c (avr_operand): Add default data address space origin (0x800000)
|
|
|
|
|
to the address and set as symbol address for LDS/ STS immediate operands.
|
|
|
|
|
|
PowerPC VLE
VLE is an encoding, not a particular processor architecture, so it
isn't really proper to select insns based on PPC_OPCODE_VLE. For
example
{"evaddw", VX (4, 512), VX_MASK, PPCSPE|PPCVLE, PPCNONE, {RS, RA, RB}},
{"vaddubs", VX (4, 512), VX_MASK, PPCVEC|PPCVLE, PPCNONE, {VD, VA, VB}},
shows two insns that have the same encoding, both available with VLE.
Enabling both with VLE means we can't disassemble the second variant
even if -Maltivec is given rather than -Mspe. Also, we don't check
user assembly against the processor type as well as we could.
Another problem is that when using the VLE encoding, insns from the
main ppc opcode table are not available, except those using opcode 4
and 31. Correcting this revealed two errors in the ld testsuite,
use of "nop" and "rfmci" when -mvle.
This patch fixes those problems in the opcode table, and removes
PPCNONE. I find a plain 0 distracts less from other values.
In addition, I've implemented code to recognize some machine values
from the apuinfo note present in ppc32 objects. It's not a complete
disambiguation since we're lacking info to detect newer chips, but
what we have should help with disassembly.
include/
* elf/ppc.h (APUINFO_SECTION_NAME, APUINFO_LABEL, PPC_APUINFO_ISEL,
PPC_APUINFO_PMR, PPC_APUINFO_RFMCI, PPC_APUINFO_CACHELCK,
PPC_APUINFO_SPE, PPC_APUINFO_EFS, PPC_APUINFO_BRLOCK,
PPC_APUINFO_VLE: Define.
opcodes/
* ppc-dis.c (ppc_opts): Delete extraneous parentheses. Default
cpu for "vle" to e500.
* ppc-opc.c (ALLOW8_SPRG): Remove PPC_OPCODE_VLE.
(NO371, PPCSPE, PPCISEL, PPCEFS, MULHW, DCBT_EO): Likewise.
(PPCNONE): Delete, substitute throughout.
(powerpc_opcodes): Remove PPCVLE from "flags". Add to "deprecated"
except for major opcode 4 and 31.
(vle_opcodes <se_rfmci>): Add PPCRFMCI to flags.
bfd/
* cpu-powerpc.c (powerpc_compatible): Allow bfd_mach_ppc_vle entry
to match other 32-bit archs.
* elf32-ppc.c (_bfd_elf_ppc_set_arch): New function.
(ppc_elf_object_p): Call it.
(ppc_elf_special_sections): Use APUINFO_SECTION_NAME. Fix
overlong line.
(APUINFO_SECTION_NAME, APUINFO_LABEL): Don't define here.
* elf64-ppc.c (ppc64_elf_object_p): Call _bfd_elf_ppc_set_arch.
* bfd-in.h (_bfd_elf_ppc_at_tls_transform,
_bfd_elf_ppc_at_tprel_transform): Move to..
* elf-bfd.h: ..here.
(_bfd_elf_ppc_set_arch): Declare.
* bfd-in2.h: Regenerate.
gas/
* config/tc-ppc.c (PPC_APUINFO_ISEL, PPC_APUINFO_PMR,
PPC_APUINFO_RFMCI, PPC_APUINFO_CACHELCK, PPC_APUINFO_SPE,
PPC_APUINFO_EFS, PPC_APUINFO_BRLOCK, PPC_APUINFO_VLE): Don't define.
(ppc_setup_opcodes): Check vle disables powerpc_opcodes overridden
by vle_opcodes, and that vle flag doesn't enable opcodes. Don't
add vle_opcodes twice.
(ppc_cleanup): Use APUINFO_SECTION_NAME and APUINFO_LABEL.
ld/
* testsuite/ld-powerpc/apuinfo1.s: Delete nop.
* testsuite/ld-powerpc/apuinfo-vle2.s: New.
* testsuite/ld-powerpc/powerpc.exp: Use apuinfo-vle2.s.
2016-06-07 14:34:38 +02:00
|
|
|
|
2016-06-07 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ppc-dis.c (ppc_opts): Delete extraneous parentheses. Default
|
|
|
|
|
cpu for "vle" to e500.
|
|
|
|
|
* ppc-opc.c (ALLOW8_SPRG): Remove PPC_OPCODE_VLE.
|
|
|
|
|
(NO371, PPCSPE, PPCISEL, PPCEFS, MULHW, DCBT_EO): Likewise.
|
|
|
|
|
(PPCNONE): Delete, substitute throughout.
|
|
|
|
|
(powerpc_opcodes): Remove PPCVLE from "flags". Add to "deprecated"
|
|
|
|
|
except for major opcode 4 and 31.
|
|
|
|
|
(vle_opcodes <se_rfmci>): Add PPCRFMCI to flags.
|
|
|
|
|
|
2016-06-07 10:56:42 +02:00
|
|
|
|
2016-06-07 Matthew Wahab <matthew.wahab@arm.com>
|
|
|
|
|
|
|
|
|
|
* arm-dis.c (arm_opcodes): Replace ARM_EXT_V8_2A with
|
|
|
|
|
ARM_EXT_RAS in relevant entries.
|
|
|
|
|
|
Re-add support for lbarx, lharx, stbcx. and sthcx. insns back to the E6500 cpu.
opcodes/
PR binutils/20196
* ppc-opc.c (powerpc_opcodes <lbarx, lharx, stbcx., sthcx.>): Enable
opcodes for E6500.
gas/
PR binutils/20196
* gas/testsuite/gas/ppc/e6500.s <lbarx, lharx, lwarx, ldarx,
stbcx., sthcx., stwcx., stdcx.>: Add tests.
* gas/testsuite/gas/ppc/e6500.d: Likewise.
* gas/testsuite/gas/ppc/power8.s: Likewise.
* gas/testsuite/gas/ppc/power8.d: Likewise.
* gas/testsuite/gas/ppc/power4.s <lwarx, ldarx, stwcx.,
stdcx.>: Add tests.
* gas/testsuite/gas/ppc/power4.d: Likewise.
2016-06-04 01:38:02 +02:00
|
|
|
|
2016-06-03 Peter Bergner <bergner@vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
PR binutils/20196
|
|
|
|
|
* ppc-opc.c (powerpc_opcodes <lbarx, lharx, stbcx., sthcx.>): Enable
|
|
|
|
|
opcodes for E6500.
|
|
|
|
|
|
2016-06-04 00:55:29 +02:00
|
|
|
|
2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR binutis/18386
|
|
|
|
|
* i386-dis.c (indirEv): Replace stack_v_mode with indir_v_mode.
|
|
|
|
|
(indir_v_mode): New.
|
|
|
|
|
Add comments for '&'.
|
|
|
|
|
(reg_table): Replace "{T|}" with "{&|}" on call and jmp.
|
|
|
|
|
(putop): Handle '&'.
|
|
|
|
|
(intel_operand_size): Handle indir_v_mode.
|
|
|
|
|
(OP_E_register): Likewise.
|
|
|
|
|
* i386-opc.tbl: Mark 64-bit indirect call/jmp as AMD64. Add
|
|
|
|
|
64-bit indirect call/jmp for AMD64.
|
|
|
|
|
* i386-tbl.h: Regenerated
|
|
|
|
|
|
2016-06-02 15:03:23 +02:00
|
|
|
|
2016-06-02 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-dis.c (struct arc_operand_iterator): New structure.
|
|
|
|
|
(find_format_from_table): All the old content from find_format,
|
|
|
|
|
with some minor adjustments, and parameter renaming.
|
|
|
|
|
(find_format_long_instructions): New function.
|
|
|
|
|
(find_format): Rewritten.
|
|
|
|
|
(arc_insn_length): Add LSB parameter.
|
|
|
|
|
(extract_operand_value): New function.
|
|
|
|
|
(operand_iterator_next): New function.
|
|
|
|
|
(print_insn_arc): Use new functions to find opcode, and iterator
|
|
|
|
|
over operands.
|
|
|
|
|
* arc-opc.c (insert_nps_3bit_dst_short): New function.
|
|
|
|
|
(extract_nps_3bit_dst_short): New function.
|
|
|
|
|
(insert_nps_3bit_src2_short): New function.
|
|
|
|
|
(extract_nps_3bit_src2_short): New function.
|
|
|
|
|
(insert_nps_bitop1_size): New function.
|
|
|
|
|
(extract_nps_bitop1_size): New function.
|
|
|
|
|
(insert_nps_bitop2_size): New function.
|
|
|
|
|
(extract_nps_bitop2_size): New function.
|
|
|
|
|
(insert_nps_bitop_mod4_msb): New function.
|
|
|
|
|
(extract_nps_bitop_mod4_msb): New function.
|
|
|
|
|
(insert_nps_bitop_mod4_lsb): New function.
|
|
|
|
|
(extract_nps_bitop_mod4_lsb): New function.
|
|
|
|
|
(insert_nps_bitop_dst_pos3_pos4): New function.
|
|
|
|
|
(extract_nps_bitop_dst_pos3_pos4): New function.
|
|
|
|
|
(insert_nps_bitop_ins_ext): New function.
|
|
|
|
|
(extract_nps_bitop_ins_ext): New function.
|
|
|
|
|
(arc_operands): Add new operands.
|
|
|
|
|
(arc_long_opcodes): New global array.
|
|
|
|
|
(arc_num_long_opcodes): New global.
|
|
|
|
|
* arc-nps400-tbl.h: Add comments referencing arc_long_opcodes.
|
|
|
|
|
|
2016-05-29 10:29:22 +02:00
|
|
|
|
2016-06-01 Trevor Saunders <tbsaunde+binutils@tbsaunde.org>
|
|
|
|
|
|
|
|
|
|
* nds32-asm.h: Add extern "C".
|
|
|
|
|
* sh-opc.h: Likewise.
|
|
|
|
|
|
Add support for some variants of the ARC nps400 rflt instruction.
gas * testsuite/gas/arc/nps-400-1.s: Add rflt variants with
operands of types a,b,u6, 0,b,u6, and 0,b,limm.
* testsuite/gas/arc/nps-400-1.d: Likewise.
opcodes * arc-nps400-tbl.h: Add operands a,b,u6, 0,b,u6, and
0,b,limm to the rflt instruction.
2016-06-01 17:29:27 +02:00
|
|
|
|
2016-06-01 Graham Markall <graham.markall@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-nps400-tbl.h: Add operands a,b,u6, 0,b,u6, and
|
|
|
|
|
0,b,limm to the rflt instruction.
|
|
|
|
|
|
2016-05-29 02:29:54 +02:00
|
|
|
|
2016-05-31 Trevor Saunders <tbsaunde+binutils@tbsaunde.org>
|
|
|
|
|
|
|
|
|
|
* sh-opc.h (ARCH_SH_HAS_DSP): Make the shifted value an unsigned
|
|
|
|
|
constant.
|
|
|
|
|
|
2016-05-29 17:26:43 +02:00
|
|
|
|
2016-05-29 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR gas/20145
|
|
|
|
|
* i386-gen.c (cpu_flag_init): Add CPU_ANY_AVX512F_FLAGS,
|
|
|
|
|
CPU_ANY_AVX512CD_FLAGS, CPU_ANY_AVX512ER_FLAGS,
|
|
|
|
|
CPU_ANY_AVX512PF_FLAGS, CPU_ANY_AVX512DQ_FLAGS,
|
|
|
|
|
CPU_ANY_AVX512BW_FLAGS, CPU_ANY_AVX512VL_FLAGS,
|
|
|
|
|
CPU_ANY_AVX512IFMA_FLAGS and CPU_ANY_AVX512VBMI_FLAGS.
|
|
|
|
|
* i386-init.h: Regenerated.
|
|
|
|
|
|
Update x86 CPU_XXX_FLAGS handling
Support defining CPU_XXX_FLAGS with other CPU_XXX_FLAGS. Update
CPU_XXX_FLAGS to enable more bits like x87 and SYSCALL. Don't enable
MMX when enabling SSE, AVX or AVX512. Don't disable AVX nor AVX512 when
disabling SSE. Don't disable AVX512 when disabling AVX. Disable F16C,
FMA, FMA4 and XOP when disabling AVX. Add 87, no287, no387, no687,
nosse2, nosse3, nossse3, nosse4.1, nosse4.2, nosse4 and noavx2 directives
to x86 assembler.
TODO: Add more .noXXX, like .noavx512f, directives to x86 assembler.
gas/
PR gas/20145
* config/tc-i386.c (cpu_arch): Add 687.
(cpu_noarch): Add no287, no387, no687, nosse2, nosse3, nossse3,
nosse4.1, nosse4.2, nosse4 and noavx2.
(parse_real_register): Check cpuregmmx instead of cpummx for MMX
register. Check cpuregxmm instead of cpusse for XMM register.
Check cpuregymm instead of cpuavx for YMM register. Check
cpuregzmm/cpuregmask instead of cpuavx512f for ZMMM/mask register.
* doc/c-i386.texi: Mention 687, no287, no387, no687, nosse2,
nosse3, nossse3, nosse4.1, nosse4.2, nosse4 and noavx2.
* testsuite/gas/i386/arch-10-prefetchw.d (as): Add mmx.
* testsuite/gas/i386/arch-10.d (as): Likewise.
* testsuite/gas/i386/arch-11.s: Add ".arch .mmx".
* testsuite/gas/i386/i386.exp: Pass mmx to assembler for
arch-10-3 and arch-10-4. Run no87-3, nosse-4, nosse-5, noavx-3
and noavx-4.
* testsuite/gas/i386/no87-3.l: New file.
* testsuite/gas/i386/no87-3.s: Likewise.
* testsuite/gas/i386/noavx-3.l: Likewise.
* testsuite/gas/i386/noavx-3.s: Likewise.
* testsuite/gas/i386/noavx-4.d: Likewise.
* testsuite/gas/i386/noavx-4.s: Likewise.
* testsuite/gas/i386/nosse-4.l: Likewise.
* testsuite/gas/i386/nosse-4.s: Likewise.
* testsuite/gas/i386/nosse-5.d: Likewise.
* testsuite/gas/i386/nosse-5.s: Likewise.
opcodes/
PR gas/20145
* i386-gen.c (cpu_flag_init): Update CPU_XXX_FLAGS. Remove
CpuMMX from CPU_SSE_FLAGS. Remove AVX and AVX512 bits from
CPU_ANY_SSE_FLAGS. Remove AVX512 bits from CPU_ANY_AVX_FLAGS.
Add CPU_XSAVE_FLAGS to CPU_XSAVEOPT_FLAGS, CPU_XSAVE_FLAGS and
CpuXSAVEC. Add CPU_AVX_FLAGS to CpuF16C. Remove CpuMMX from
CPU_AVX512F_FLAGS, CPU_AVX512CD_FLAGS, CPU_AVX512ER_FLAGS,
CPU_AVX512PF_FLAGS, CPU_AVX512DQ_FLAGS and CPU_AVX512BW_FLAGS.
Add CPU_SSE2_FLAGS to CPU_SHA_FLAGS. Add CPU_ANY_287_FLAGS,
CPU_ANY_387_FLAGS, CPU_ANY_687_FLAGS, CPU_ANY_SSE2_FLAGS,
CPU_ANY_SSE3_FLAGS, CPU_ANY_SSSE3_FLAGS, CPU_ANY_SSE4_1_FLAGS,
CPU_ANY_SSE4_2_FLAGS and CPU_ANY_AVX2_FLAGS. Enable CpuRegMMX
for MMX. Enable CpuRegXMM for SSE, AVX and AVX512. Enable
CpuRegYMM for AVX and AVX512VL, Enable CpuRegZMM and
CpuRegMask for AVX512.
(cpu_flags): Add CpuRegMMX, CpuRegXMM, CpuRegYMM, CpuRegZMM
and CpuRegMask.
(set_bitfield_from_cpu_flag_init): New function.
(set_bitfield): Remove const on f. Call
set_bitfield_from_cpu_flag_init to handle CPU_XXX_FLAGS.
* i386-opc.h (CpuRegMMX): New.
(CpuRegXMM): Likewise.
(CpuRegYMM): Likewise.
(CpuRegZMM): Likewise.
(CpuRegMask): Likewise.
(i386_cpu_flags): Add cpuregmmx, cpuregxmm, cpuregymm, cpuregzmm
and cpuregmask.
* i386-init.h: Regenerated.
* i386-tbl.h: Likewise.
2016-05-27 19:05:39 +02:00
|
|
|
|
2016-05-27 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR gas/20145
|
|
|
|
|
* i386-gen.c (cpu_flag_init): Update CPU_XXX_FLAGS. Remove
|
|
|
|
|
CpuMMX from CPU_SSE_FLAGS. Remove AVX and AVX512 bits from
|
|
|
|
|
CPU_ANY_SSE_FLAGS. Remove AVX512 bits from CPU_ANY_AVX_FLAGS.
|
|
|
|
|
Add CPU_XSAVE_FLAGS to CPU_XSAVEOPT_FLAGS, CPU_XSAVE_FLAGS and
|
|
|
|
|
CpuXSAVEC. Add CPU_AVX_FLAGS to CpuF16C. Remove CpuMMX from
|
|
|
|
|
CPU_AVX512F_FLAGS, CPU_AVX512CD_FLAGS, CPU_AVX512ER_FLAGS,
|
|
|
|
|
CPU_AVX512PF_FLAGS, CPU_AVX512DQ_FLAGS and CPU_AVX512BW_FLAGS.
|
|
|
|
|
Add CPU_SSE2_FLAGS to CPU_SHA_FLAGS. Add CPU_ANY_287_FLAGS,
|
|
|
|
|
CPU_ANY_387_FLAGS, CPU_ANY_687_FLAGS, CPU_ANY_SSE2_FLAGS,
|
|
|
|
|
CPU_ANY_SSE3_FLAGS, CPU_ANY_SSSE3_FLAGS, CPU_ANY_SSE4_1_FLAGS,
|
|
|
|
|
CPU_ANY_SSE4_2_FLAGS and CPU_ANY_AVX2_FLAGS. Enable CpuRegMMX
|
|
|
|
|
for MMX. Enable CpuRegXMM for SSE, AVX and AVX512. Enable
|
|
|
|
|
CpuRegYMM for AVX and AVX512VL, Enable CpuRegZMM and
|
|
|
|
|
CpuRegMask for AVX512.
|
|
|
|
|
(cpu_flags): Add CpuRegMMX, CpuRegXMM, CpuRegYMM, CpuRegZMM
|
|
|
|
|
and CpuRegMask.
|
|
|
|
|
(set_bitfield_from_cpu_flag_init): New function.
|
|
|
|
|
(set_bitfield): Remove const on f. Call
|
|
|
|
|
set_bitfield_from_cpu_flag_init to handle CPU_XXX_FLAGS.
|
|
|
|
|
* i386-opc.h (CpuRegMMX): New.
|
|
|
|
|
(CpuRegXMM): Likewise.
|
|
|
|
|
(CpuRegYMM): Likewise.
|
|
|
|
|
(CpuRegZMM): Likewise.
|
|
|
|
|
(CpuRegMask): Likewise.
|
|
|
|
|
(i386_cpu_flags): Add cpuregmmx, cpuregxmm, cpuregymm, cpuregzmm
|
|
|
|
|
and cpuregmask.
|
|
|
|
|
* i386-init.h: Regenerated.
|
|
|
|
|
* i386-tbl.h: Likewise.
|
|
|
|
|
|
2016-05-27 17:02:56 +02:00
|
|
|
|
2016-05-27 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR gas/20154
|
|
|
|
|
* i386-gen.c (cpu_flags): Remove CpuAMD64 and CpuIntel64.
|
|
|
|
|
(opcode_modifiers): Add AMD64 and Intel64.
|
|
|
|
|
(main): Properly verify CpuMax.
|
|
|
|
|
* i386-opc.h (CpuAMD64): Removed.
|
|
|
|
|
(CpuIntel64): Likewise.
|
|
|
|
|
(CpuMax): Set to CpuNo64.
|
|
|
|
|
(i386_cpu_flags): Remove cpuamd64 and cpuintel64.
|
|
|
|
|
(AMD64): New.
|
|
|
|
|
(Intel64): Likewise.
|
|
|
|
|
(i386_opcode_modifier): Add amd64 and intel64.
|
|
|
|
|
(i386-opc.tbl): Replace CpuAMD64/CpuIntel64 with AMD64/Intel64
|
|
|
|
|
on call and jmp.
|
|
|
|
|
* i386-init.h: Regenerated.
|
|
|
|
|
* i386-tbl.h: Likewise.
|
|
|
|
|
|
2016-05-27 15:55:42 +02:00
|
|
|
|
2016-05-27 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR gas/20154
|
|
|
|
|
* i386-gen.c (main): Fail if CpuMax is incorrect.
|
|
|
|
|
* i386-opc.h (CpuMax): Set to CpuIntel64.
|
|
|
|
|
* i386-tbl.h: Regenerated.
|
|
|
|
|
|
2016-05-27 14:49:58 +02:00
|
|
|
|
2016-05-27 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/20150
|
|
|
|
|
* msp430-dis.c (msp430dis_read_two_bytes): New function.
|
|
|
|
|
(msp430dis_opcode_unsigned): New function.
|
|
|
|
|
(msp430dis_opcode_signed): New function.
|
|
|
|
|
(msp430_singleoperand): Use the new opcode reading functions.
|
|
|
|
|
Only disassenmble bytes if they were successfully read.
|
|
|
|
|
(msp430_doubleoperand): Likewise.
|
|
|
|
|
(msp430_branchinstr): Likewise.
|
|
|
|
|
(msp430x_callx_instr): Likewise.
|
|
|
|
|
(print_insn_msp430): Check that it is safe to read bytes before
|
|
|
|
|
attempting disassembly. Use the new opcode reading functions.
|
|
|
|
|
|
2016-05-27 02:06:51 +02:00
|
|
|
|
2016-05-26 Peter Bergner <bergner@vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* ppc-opc.c (CY): New define. Document it.
|
|
|
|
|
(powerpc_opcodes) <addex[.], lwzmx, vmsumudm>: New mnemonics.
|
|
|
|
|
|
2016-05-25 20:23:40 +02:00
|
|
|
|
2016-05-25 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* i386-gen.c (cpu_flag_init): Add CpuVREX to CPU_AVX512DQ_FLAGS,
|
|
|
|
|
CPU_AVX512BW_FLAGS, CPU_AVX512VL_FLAGS, CPU_AVX512IFMA_FLAGS
|
|
|
|
|
and CPU_AVX512VBMI_FLAGS. Add CpuAVX512DQ, CpuAVX512BW,
|
|
|
|
|
CpuAVX512VL, CpuAVX512IFMA and CpuAVX512VBMI to
|
|
|
|
|
CPU_ANY_AVX_FLAGS.
|
|
|
|
|
* i386-init.h: Regenerated.
|
|
|
|
|
|
2016-05-25 19:49:25 +02:00
|
|
|
|
2016-05-25 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR gas/20141
|
|
|
|
|
* i386-gen.c (cpu_flag_init): Add CpuVREX to CPU_AVX512F_FLAGS,
|
|
|
|
|
CPU_AVX512CD_FLAGS, CPU_AVX512ER_FLAGS and CPU_AVX512PF_FLAGS.
|
|
|
|
|
* i386-init.h: Regenerated.
|
|
|
|
|
|
2016-05-25 19:25:50 +02:00
|
|
|
|
2016-05-25 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* i386-gen.c (cpu_flag_init): Rename CPU_ANY87_FLAGS to
|
|
|
|
|
CPU_ANY_X87_FLAGS. Add CPU_ANY_MMX_FLAGS.
|
|
|
|
|
* i386-init.h: Regenerated.
|
|
|
|
|
|
[ARC] Update instruction type and delay slot info.
This patch corrects the instructioninformation passed into the
disassebler_info structure.
include/
2016-05-23 Claudiu Zissulescu <claziss@synopsys.com>
* opcode/arc.h (insn_subclass_t): Add COND.
(flag_class_t): Add F_CLASS_EXTEND.
opcodes/
2016-05-23 Claudiu Zissulescu <claziss@synopsys.com>
* arc-dis.c (print_flags): Set branch_delay_insns, and insn_type
information.
(print_insn_arc): Set insn_type information.
* arc-opc.c (C_CC): Add F_CLASS_COND.
* arc-tbl.h (bbit0, bbit1): Update subclass to COND.
(beq_s, bge_s, bgt_s, bhi_s, bhs_s): Likewise.
(ble_s, blo_s, bls_s, blt_s, bne_s): Likewise.
(breq, breq_s, brge, brhs, brlo, brlt): Likewise.
(brne, brne_s, jeq_s, jne_s): Likewise.
2016-05-19 12:19:32 +02:00
|
|
|
|
2016-05-23 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* arc-dis.c (print_flags): Set branch_delay_insns, and insn_type
|
|
|
|
|
information.
|
|
|
|
|
(print_insn_arc): Set insn_type information.
|
|
|
|
|
* arc-opc.c (C_CC): Add F_CLASS_COND.
|
|
|
|
|
* arc-tbl.h (bbit0, bbit1): Update subclass to COND.
|
|
|
|
|
(beq_s, bge_s, bgt_s, bhi_s, bhs_s): Likewise.
|
|
|
|
|
(ble_s, blo_s, bls_s, blt_s, bne_s): Likewise.
|
|
|
|
|
(breq, breq_s, brge, brhs, brlo, brlt): Likewise.
|
|
|
|
|
(brne, brne_s, jeq_s, jne_s): Likewise.
|
|
|
|
|
|
2016-05-19 12:33:17 +02:00
|
|
|
|
2016-05-23 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* arc-tbl.h (neg): New instruction variant.
|
|
|
|
|
|
2016-05-23 17:25:46 +02:00
|
|
|
|
2016-05-23 Cupertino Miranda <cmiranda@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* arc-dis.c (find_format, find_format, get_auxreg)
|
|
|
|
|
(print_insn_arc): Changed.
|
|
|
|
|
* arc-ext.h (INSERT_XOP): Likewise.
|
|
|
|
|
|
2016-05-19 05:48:48 +02:00
|
|
|
|
2016-05-23 Trevor Saunders <tbsaunde+binutils@tbsaunde.org>
|
|
|
|
|
|
|
|
|
|
* tic54x-dis.c (sprint_mmr): Adjust.
|
|
|
|
|
* tic54x-opc.c: Likewise.
|
|
|
|
|
|
2016-05-19 09:24:54 +02:00
|
|
|
|
2016-05-19 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ppc-opc.c (NSISIGNOPT): Use insert_nsi and extract_nsi.
|
|
|
|
|
|
2016-05-18 16:40:35 +02:00
|
|
|
|
2016-05-19 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ppc-opc.c: Formatting.
|
|
|
|
|
(NSISIGNOPT): Define.
|
|
|
|
|
(powerpc_opcodes <subis>): Use NSISIGNOPT.
|
|
|
|
|
|
2016-05-18 12:22:30 +02:00
|
|
|
|
2016-05-18 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* mips-dis.c (is_compressed_mode_p): Add `micromips_p' operand,
|
|
|
|
|
replacing references to `micromips_ase' throughout.
|
|
|
|
|
(_print_insn_mips): Don't use file-level microMIPS annotation to
|
|
|
|
|
determine the disassembly mode with the symbol table.
|
|
|
|
|
|
2016-05-13 22:15:00 +02:00
|
|
|
|
2016-05-13 Peter Bergner <bergner@vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* ppc-opc.c (IMM8): Use PPC_OPERAND_SIGNOPT.
|
|
|
|
|
|
2014-11-26 12:15:01 +01:00
|
|
|
|
2016-05-11 Andrew Bennett <andrew.bennett@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* mips-dis.c (mips_arch_choices): Add ASE_DSPR3 to mips32r6 and
|
|
|
|
|
mips64r6.
|
|
|
|
|
* mips-opc.c (D34): New macro.
|
|
|
|
|
(mips_builtin_opcodes): Define bposge32c for DSPr3.
|
|
|
|
|
|
2016-05-10 20:35:52 +02:00
|
|
|
|
2016-05-10 Alexander Fomin <alexander.fomin@intel.com>
|
|
|
|
|
|
|
|
|
|
* i386-dis.c (prefix_table): Add RDPID instruction.
|
|
|
|
|
* i386-gen.c (cpu_flag_init): Add RDPID flag.
|
|
|
|
|
(cpu_flags): Add RDPID bitfield.
|
|
|
|
|
* i386-opc.h (enum): Add RDPID element.
|
|
|
|
|
(i386_cpu_flags): Add RDPID field.
|
|
|
|
|
* i386-opc.tbl: Add RDPID instruction.
|
|
|
|
|
* i386-init.h: Regenerate.
|
|
|
|
|
* i386-tbl.h: Regenerate.
|
|
|
|
|
|
2016-05-10 17:14:23 +02:00
|
|
|
|
2016-05-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
|
|
|
|
|
|
|
|
|
* arm-dis.c (get_sym_code_type): Use ARM_GET_SYM_BRANCH_TYPE to get
|
|
|
|
|
branch type of a symbol.
|
|
|
|
|
(print_insn): Likewise.
|
|
|
|
|
|
2016-05-10 16:01:53 +02:00
|
|
|
|
2016-05-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
|
|
|
|
|
|
|
|
|
* arm-dis.c (coprocessor_opcodes): Add entries for VFP ARMv8-M
|
|
|
|
|
Mainline Security Extensions instructions.
|
|
|
|
|
(thumb_opcodes): Add entries for narrow ARMv8-M Security
|
|
|
|
|
Extensions instructions.
|
|
|
|
|
(thumb32_opcodes): Add entries for wide ARMv8-M Security Extensions
|
|
|
|
|
instructions.
|
|
|
|
|
(psr_name): Add new MSP_NS and PSP_NS ARMv8-M Security Extensions
|
|
|
|
|
special registers.
|
|
|
|
|
|
2016-05-09 13:09:53 +02:00
|
|
|
|
2016-05-09 Jose E. Marchesi <jose.marchesi@oracle.com>
|
|
|
|
|
|
|
|
|
|
* sparc-opc.c (sparc_opcodes): Fix mnemonic of faligndatai.
|
|
|
|
|
|
2016-05-03 13:44:13 +02:00
|
|
|
|
2016-05-03 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* arc-ext.c (dump_ARC_extmap): Handle SYNATX_NOP and SYNTAX_1OP.
|
|
|
|
|
(arcExtMap_genOpcode): Likewise.
|
|
|
|
|
* arc-opc.c (arg_32bit_rc): Define new variable.
|
|
|
|
|
(arg_32bit_u6): Likewise.
|
|
|
|
|
(arg_32bit_limm): Likewise.
|
|
|
|
|
|
2016-05-03 12:48:56 +02:00
|
|
|
|
2016-05-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
|
|
|
|
|
|
|
|
|
|
* aarch64-gen.c (VERIFIER): Define.
|
|
|
|
|
* aarch64-opc.c (VERIFIER): Define.
|
|
|
|
|
(verify_ldpsw): Use static linkage.
|
|
|
|
|
* aarch64-opc.h (verify_ldpsw): Remove.
|
|
|
|
|
* aarch64-tbl.h: Use VERIFIER for verifiers.
|
|
|
|
|
|
2016-04-28 10:11:03 +02:00
|
|
|
|
2016-04-28 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/19722
|
|
|
|
|
* aarch64-dis.c (aarch64_opcode_decode): Run verifier if present.
|
|
|
|
|
* aarch64-opc.c (verify_ldpsw): New function.
|
|
|
|
|
* aarch64-opc.h (verify_ldpsw): New prototype.
|
|
|
|
|
* aarch64-tbl.h: Add initialiser for verifier field.
|
|
|
|
|
(LDPSW): Set verifier to verify_ldpsw.
|
|
|
|
|
|
2016-04-23 18:32:59 +02:00
|
|
|
|
2016-04-23 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR binutils/19983
|
|
|
|
|
PR binutils/19984
|
|
|
|
|
* i386-dis.c (print_insn): Return -1 if size of bfd_vma is
|
|
|
|
|
smaller than address size.
|
|
|
|
|
|
2016-04-14 00:30:46 +02:00
|
|
|
|
2016-04-20 Trevor Saunders <tbsaunde+binutils@tbsaunde.org>
|
|
|
|
|
|
|
|
|
|
* alpha-dis.c: Regenerate.
|
|
|
|
|
* crx-dis.c: Likewise.
|
|
|
|
|
* disassemble.c: Likewise.
|
|
|
|
|
* epiphany-opc.c: Likewise.
|
|
|
|
|
* fr30-opc.c: Likewise.
|
|
|
|
|
* frv-opc.c: Likewise.
|
|
|
|
|
* ip2k-opc.c: Likewise.
|
|
|
|
|
* iq2000-opc.c: Likewise.
|
|
|
|
|
* lm32-opc.c: Likewise.
|
|
|
|
|
* lm32-opinst.c: Likewise.
|
|
|
|
|
* m32c-opc.c: Likewise.
|
|
|
|
|
* m32r-opc.c: Likewise.
|
|
|
|
|
* m32r-opinst.c: Likewise.
|
|
|
|
|
* mep-opc.c: Likewise.
|
|
|
|
|
* mt-opc.c: Likewise.
|
|
|
|
|
* or1k-opc.c: Likewise.
|
|
|
|
|
* or1k-opinst.c: Likewise.
|
|
|
|
|
* tic80-opc.c: Likewise.
|
|
|
|
|
* xc16x-opc.c: Likewise.
|
|
|
|
|
* xstormy16-opc.c: Likewise.
|
|
|
|
|
|
opcodes/arc: Add yet more nps instructions
Add some more arc/nps400 instructions and the associated operands.
There's also a test added into the assembler.
gas/ChangeLog:
* testsuite/gas/arc/nps400-6.d: New file.
* testsuite/gas/arc/nps400-6.s: New file.
include/ChangeLog:
* opcode/arc.h (MAX_INSN_ARGS): Increase 6 to 8.
opcodes/ChangeLog:
* arc-nps400-tbl.h: Add addb, subb, adcb, sbcb, andb, xorb, orb,
fxorb, wxorb, shlb, shrb, notb, cntbb, div, mod, divm, and qcmp
instructions.
* arc-opc.c (insert_nps_bitop_size): Delete.
(extract_nps_bitop_size): Delete.
(MAKE_SRC_POS_INSERT_EXTRACT_FUNCS): Define, and use.
(extract_nps_qcmp_m3): Define.
(extract_nps_qcmp_m2): Define.
(extract_nps_qcmp_m1): Define.
(arc_flag_operands): Add F_NPS_SX, F_NPS_AR, F_NPS_AL.
(arc_flag_classes): Add C_NPS_SX, C_NPS_AR_AL
(arc_operands): Add NPS_SRC2_POS, NPS_SRC1_POS, NPS_ADDB_SIZE,
NPS_ANDB_SIZE, NPS_FXORB_SIZ, NPS_WXORB_SIZ, NPS_R_XLDST,
NPS_DIV_UIMM4, NPS_QCMP_SIZE, NPS_QCMP_M1, NPS_QCMP_M2, and
NPS_QCMP_M3.
2016-04-01 20:51:50 +02:00
|
|
|
|
2016-04-19 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-nps400-tbl.h: Add addb, subb, adcb, sbcb, andb, xorb, orb,
|
|
|
|
|
fxorb, wxorb, shlb, shrb, notb, cntbb, div, mod, divm, qcmp,
|
|
|
|
|
calcsd, and calcxd instructions.
|
|
|
|
|
* arc-opc.c (insert_nps_bitop_size): Delete.
|
|
|
|
|
(extract_nps_bitop_size): Delete.
|
|
|
|
|
(MAKE_SRC_POS_INSERT_EXTRACT_FUNCS): Define, and use.
|
|
|
|
|
(extract_nps_qcmp_m3): Define.
|
|
|
|
|
(extract_nps_qcmp_m2): Define.
|
|
|
|
|
(extract_nps_qcmp_m1): Define.
|
|
|
|
|
(arc_flag_operands): Add F_NPS_SX, F_NPS_AR, F_NPS_AL.
|
|
|
|
|
(arc_flag_classes): Add C_NPS_SX, C_NPS_AR_AL
|
|
|
|
|
(arc_operands): Add NPS_SRC2_POS, NPS_SRC1_POS, NPS_ADDB_SIZE,
|
|
|
|
|
NPS_ANDB_SIZE, NPS_FXORB_SIZ, NPS_WXORB_SIZ, NPS_R_XLDST,
|
|
|
|
|
NPS_DIV_UIMM4, NPS_QCMP_SIZE, NPS_QCMP_M1, NPS_QCMP_M2, and
|
|
|
|
|
NPS_QCMP_M3.
|
|
|
|
|
|
2016-03-31 20:51:14 +02:00
|
|
|
|
2016-04-19 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-nps400-tbl.h: Add dctcp, dcip, dcet, and dcacl instructions.
|
|
|
|
|
|
2016-04-16 01:20:02 +02:00
|
|
|
|
2016-04-15 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in: Regenerated with automake 1.11.6.
|
|
|
|
|
* aclocal.m4: Likewise.
|
|
|
|
|
|
arc/nps400 : New cmem instructions and associated relocation
Add support for arc/nps400 cmem instructions, these load and store
instructions are hard-wired to access "0x57f00000 + 16-bit-offset".
Supporting this relocation required some additions to the arc relocation
handling in the bfd library, as well as the standard changes required to
add a new relocation type.
There's a test of the new instructions in the assembler, and a test of
the relocation in the linker.
bfd/ChangeLog:
* reloc.c: Add BFD_RELOC_ARC_NPS_CMEM16 entry.
* bfd-in2.h: Regenerate.
* libbfd.h: Regenerate.
* elf32-arc.c: Add 'opcode/arc.h' include.
(struct arc_relocation_data): Add symbol_name.
(arc_special_overflow_checks): New function.
(arc_do_relocation): Use arc_special_overflow_checks, reindent as
required, add an extra comment.
(elf_arc_relocate_section): Setup symbol_name in reloc_data.
gas/ChangeLog:
* testsuite/gas/arc/nps400-3.d: New file.
* testsuite/gas/arc/nps400-3.s: New file.
include/ChangeLog:
* elf/arc-reloc.def: Add ARC_NPS_CMEM16 reloc.
* opcode/arc.h (NPS_CMEM_HIGH_VALUE): Define.
ld/ChangeLog:
* testsuite/ld-arc/arc.exp: New file.
* testsuite/ld-arc/nps-1.s: New file.
* testsuite/ld-arc/nps-1a.d: New file.
* testsuite/ld-arc/nps-1b.d: New file.
* testsuite/ld-arc/nps-1b.err: New file.
opcodes/ChangeLog:
* arc-nps400-tbl.h: Add xldb, xldw, xld, xstb, xstw, and xst
instructions.
* arc-opc.c (insert_nps_cmem_uimm16): New function.
(extract_nps_cmem_uimm16): New function.
(arc_operands): Add NPS_XLDST_UIMM16 operand.
2016-03-30 01:02:19 +02:00
|
|
|
|
2016-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-nps400-tbl.h: Add xldb, xldw, xld, xstb, xstw, and xst
|
|
|
|
|
instructions.
|
|
|
|
|
* arc-opc.c (insert_nps_cmem_uimm16): New function.
|
|
|
|
|
(extract_nps_cmem_uimm16): New function.
|
|
|
|
|
(arc_operands): Add NPS_XLDST_UIMM16 operand.
|
|
|
|
|
|
2016-03-24 17:54:37 +01:00
|
|
|
|
2016-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-dis.c (arc_insn_length): New function.
|
|
|
|
|
(print_insn_arc): Use arc_insn_length, change insnLen to unsigned.
|
|
|
|
|
(find_format): Change insnLen parameter to unsigned.
|
|
|
|
|
|
2016-04-13 16:09:25 +02:00
|
|
|
|
2016-04-13 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/19937
|
|
|
|
|
* v850-opc.c (v850_opcodes): Correct masks for long versions of
|
|
|
|
|
the LD.B and LD.BU instructions.
|
|
|
|
|
|
2016-04-06 16:08:04 +02:00
|
|
|
|
2016-04-12 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* arc-dis.c (find_format): Check for extension flags.
|
|
|
|
|
(print_flags): New function.
|
|
|
|
|
(print_insn_arc): Update for .extCondCode, .extCoreRegister and
|
|
|
|
|
.extAuxRegister.
|
|
|
|
|
* arc-ext.c (arcExtMap_coreRegName): Use
|
|
|
|
|
LAST_EXTENSION_CORE_REGISTER.
|
|
|
|
|
(arcExtMap_coreReadWrite): Likewise.
|
|
|
|
|
(dump_ARC_extmap): Update printing.
|
|
|
|
|
* arc-opc.c (arc_flag_classes): Add F_CLASS_EXTEND flag.
|
|
|
|
|
(arc_aux_regs): Add cpu field.
|
|
|
|
|
* arc-regs.h: Add cpu field, lower case name aux registers.
|
|
|
|
|
|
2016-04-06 16:47:56 +02:00
|
|
|
|
2016-04-12 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* arc-tbl.h: Add rtsc, sleep with no arguments.
|
|
|
|
|
|
Add support for .extInstruction pseudo-op.
gas/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* testsuite/gas/arc/textinsn-errors.d: New File.
* testsuite/gas/arc/textinsn-errors.err: Likewise.
* testsuite/gas/arc/textinsn-errors.s: Likewise.
* testsuite/gas/arc/textinsn2op.d: Likewise.
* testsuite/gas/arc/textinsn2op.s: Likewise.
* testsuite/gas/arc/textinsn2op01.d: Likewise.
* testsuite/gas/arc/textinsn2op01.s: Likewise.
* testsuite/gas/arc/textinsn3op.d: Likewise.
* testsuite/gas/arc/textinsn3op.s: Likewise.
* doc/c-arc.texi (ARC Directives): Add .extInstruction
documentation.
* config/tc-arc.c (arcext_section): New variable.
(arc_extinsn): New function.
(md_pseudo_table): Add .extInstruction pseudo op.
(attributes_t): New type.
(suffixclass, syntaxclass, syntaxclassmod): New constant
structures.
(find_opcode_match): Remove arc_num_opcodes.
(md_begin): Likewise.
(tokenize_extinsn): New function.
(arc_set_ext_seg): Likewise.
(create_extinst_section): Likewise.
include/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* opcode/arc.h (arc_num_opcodes): Remove.
(ARC_SYNTAX_3OP, ARC_SYNTAX_2OP, ARC_OP1_MUST_BE_IMM)
(ARC_OP1_IMM_IMPLIED, ARC_SUFFIX_NONE, ARC_SUFFIX_COND)
(ARC_SUFFIX_FLAG): Define.
(flags_none, flags_f, flags_cc, flags_ccf): Declare.
(arg_none, arg_32bit_rarbrc, arg_32bit_zarbrc, arg_32bit_rbrbrc)
(arg_32bit_rarbu6, arg_32bit_zarbu6, arg_32bit_rbrbu6)
(arg_32bit_rbrbs12, arg_32bit_ralimmrc, arg_32bit_rarblimm)
(arg_32bit_zalimmrc, arg_32bit_zarblimm, arg_32bit_rbrblimm)
(arg_32bit_ralimmu6, arg_32bit_zalimmu6, arg_32bit_zalimms12)
(arg_32bit_ralimmlimm, arg_32bit_zalimmlimm, arg_32bit_rbrc)
(arg_32bit_zarc, arg_32bit_rbu6, arg_32bit_zau6, arg_32bit_rblimm)
(arg_32bit_zalimm, arg_32bit_limmrc, arg_32bit_limmu6)
(arg_32bit_limms12, arg_32bit_limmlimm): Likewise.
opcodes/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* arc-opc.c (flags_none, flags_f, flags_cc, flags_ccf):
Initialize.
(arg_none, arg_32bit_rarbrc, arg_32bit_zarbrc, arg_32bit_rbrbrc)
(arg_32bit_rarbu6, arg_32bit_zarbu6, arg_32bit_rbrbu6)
(arg_32bit_rbrbs12, arg_32bit_ralimmrc, arg_32bit_rarblimm)
(arg_32bit_zalimmrc, arg_32bit_zarblimm, arg_32bit_rbrblimm)
(arg_32bit_ralimmu6, arg_32bit_zalimmu6, arg_32bit_zalimms12)
(arg_32bit_ralimmlimm, arg_32bit_zalimmlimm, arg_32bit_rbrc)
(arg_32bit_zarc, arg_32bit_rbu6, arg_32bit_zau6, arg_32bit_rblimm)
(arg_32bit_zalimm, arg_32bit_limmrc, arg_32bit_limmu6)
(arg_32bit_limms12, arg_32bit_limmlimm): Likewise.
(arc_opcode arc_opcodes): Null terminate the array.
(arc_num_opcodes): Remove.
* arc-ext.h (INSERT_XOP): Define.
(extInstruction_t): Likewise.
(arcExtMap_instName): Delete.
(arcExtMap_insn): New function.
(arcExtMap_genOpcode): Likewise.
* arc-ext.c (ExtInstruction): Remove.
(create_map): Zero initialize instruction fields.
(arcExtMap_instName): Remove.
(arcExtMap_insn): New function.
(dump_ARC_extmap): More info while debuging.
(arcExtMap_genOpcode): New function.
* arc-dis.c (find_format): New function.
(print_insn_arc): Use find_format.
(arc_get_disassembler): Enable dump_ARC_extmap only when
debugging.
Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
2016-04-04 16:03:53 +02:00
|
|
|
|
2016-04-12 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* arc-opc.c (flags_none, flags_f, flags_cc, flags_ccf):
|
|
|
|
|
Initialize.
|
|
|
|
|
(arg_none, arg_32bit_rarbrc, arg_32bit_zarbrc, arg_32bit_rbrbrc)
|
|
|
|
|
(arg_32bit_rarbu6, arg_32bit_zarbu6, arg_32bit_rbrbu6)
|
|
|
|
|
(arg_32bit_rbrbs12, arg_32bit_ralimmrc, arg_32bit_rarblimm)
|
|
|
|
|
(arg_32bit_zalimmrc, arg_32bit_zarblimm, arg_32bit_rbrblimm)
|
|
|
|
|
(arg_32bit_ralimmu6, arg_32bit_zalimmu6, arg_32bit_zalimms12)
|
|
|
|
|
(arg_32bit_ralimmlimm, arg_32bit_zalimmlimm, arg_32bit_rbrc)
|
|
|
|
|
(arg_32bit_zarc, arg_32bit_rbu6, arg_32bit_zau6, arg_32bit_rblimm)
|
|
|
|
|
(arg_32bit_zalimm, arg_32bit_limmrc, arg_32bit_limmu6)
|
|
|
|
|
(arg_32bit_limms12, arg_32bit_limmlimm): Likewise.
|
|
|
|
|
(arc_opcode arc_opcodes): Null terminate the array.
|
|
|
|
|
(arc_num_opcodes): Remove.
|
|
|
|
|
* arc-ext.h (INSERT_XOP): Define.
|
|
|
|
|
(extInstruction_t): Likewise.
|
|
|
|
|
(arcExtMap_instName): Delete.
|
|
|
|
|
(arcExtMap_insn): New function.
|
|
|
|
|
(arcExtMap_genOpcode): Likewise.
|
|
|
|
|
* arc-ext.c (ExtInstruction): Remove.
|
|
|
|
|
(create_map): Zero initialize instruction fields.
|
|
|
|
|
(arcExtMap_instName): Remove.
|
|
|
|
|
(arcExtMap_insn): New function.
|
|
|
|
|
(dump_ARC_extmap): More info while debuging.
|
|
|
|
|
(arcExtMap_genOpcode): New function.
|
|
|
|
|
* arc-dis.c (find_format): New function.
|
|
|
|
|
(print_insn_arc): Use find_format.
|
|
|
|
|
(arc_get_disassembler): Enable dump_ARC_extmap only when
|
|
|
|
|
debugging.
|
|
|
|
|
|
2016-04-11 18:56:01 +02:00
|
|
|
|
2016-04-11 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* mips-dis.c (print_mips16_insn_arg): Mask unused extended
|
|
|
|
|
instruction bits out.
|
|
|
|
|
|
2016-03-29 00:05:09 +02:00
|
|
|
|
2016-04-07 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-nps400-tbl.h: Add schd, sync, and hwschd instructions.
|
|
|
|
|
* arc-opc.c (arc_flag_operands): Add new flags.
|
|
|
|
|
(arc_flag_classes): Add new classes.
|
|
|
|
|
|
2016-03-28 18:08:29 +02:00
|
|
|
|
2016-04-07 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-opc.c (arc_opcodes): Extend comment to discus table layout.
|
|
|
|
|
|
arc/nps400: Add additional instructions
Adds the movbi, decode1, fbset, fbclear, encode0, encode1, rflt, crc16,
and crc32 instructions for the nps400 arc machine type.
gas/ChangeLog:
* testsuite/gas/arc/nps400-1.d: Update expected results.
* testsuite/gas/arc/nps400-1.s: Additional test cases.
opcodes/ChangeLog:
* arc-nps400-tbl.h: Add movbi, decode1, fbset, fbclear, encode0,
encode1, rflt, crc16, and crc32 instructions.
* arc-opc.c (arc_flag_operands): Add F_NPS_R.
(arc_flag_classes): Add C_NPS_R.
(insert_nps_bitop_size_2b): New function.
(extract_nps_bitop_size_2b): Likewise.
(insert_nps_bitop_uimm8): Likewise.
(extract_nps_bitop_uimm8): Likewise.
(arc_operands): Add new operand entries.
2016-03-21 19:49:34 +01:00
|
|
|
|
2016-04-05 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-nps400-tbl.h: Add movbi, decode1, fbset, fbclear, encode0,
|
|
|
|
|
encode1, rflt, crc16, and crc32 instructions.
|
|
|
|
|
* arc-opc.c (arc_flag_operands): Add F_NPS_R.
|
|
|
|
|
(arc_flag_classes): Add C_NPS_R.
|
|
|
|
|
(insert_nps_bitop_size_2b): New function.
|
|
|
|
|
(extract_nps_bitop_size_2b): Likewise.
|
|
|
|
|
(insert_nps_bitop_uimm8): Likewise.
|
|
|
|
|
(extract_nps_bitop_uimm8): Likewise.
|
|
|
|
|
(arc_operands): Add new operand entries.
|
|
|
|
|
|
2016-04-05 17:37:29 +02:00
|
|
|
|
2016-04-05 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
Add support for .extInstruction pseudo-op.
gas/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* testsuite/gas/arc/textinsn-errors.d: New File.
* testsuite/gas/arc/textinsn-errors.err: Likewise.
* testsuite/gas/arc/textinsn-errors.s: Likewise.
* testsuite/gas/arc/textinsn2op.d: Likewise.
* testsuite/gas/arc/textinsn2op.s: Likewise.
* testsuite/gas/arc/textinsn2op01.d: Likewise.
* testsuite/gas/arc/textinsn2op01.s: Likewise.
* testsuite/gas/arc/textinsn3op.d: Likewise.
* testsuite/gas/arc/textinsn3op.s: Likewise.
* doc/c-arc.texi (ARC Directives): Add .extInstruction
documentation.
* config/tc-arc.c (arcext_section): New variable.
(arc_extinsn): New function.
(md_pseudo_table): Add .extInstruction pseudo op.
(attributes_t): New type.
(suffixclass, syntaxclass, syntaxclassmod): New constant
structures.
(find_opcode_match): Remove arc_num_opcodes.
(md_begin): Likewise.
(tokenize_extinsn): New function.
(arc_set_ext_seg): Likewise.
(create_extinst_section): Likewise.
include/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* opcode/arc.h (arc_num_opcodes): Remove.
(ARC_SYNTAX_3OP, ARC_SYNTAX_2OP, ARC_OP1_MUST_BE_IMM)
(ARC_OP1_IMM_IMPLIED, ARC_SUFFIX_NONE, ARC_SUFFIX_COND)
(ARC_SUFFIX_FLAG): Define.
(flags_none, flags_f, flags_cc, flags_ccf): Declare.
(arg_none, arg_32bit_rarbrc, arg_32bit_zarbrc, arg_32bit_rbrbrc)
(arg_32bit_rarbu6, arg_32bit_zarbu6, arg_32bit_rbrbu6)
(arg_32bit_rbrbs12, arg_32bit_ralimmrc, arg_32bit_rarblimm)
(arg_32bit_zalimmrc, arg_32bit_zarblimm, arg_32bit_rbrblimm)
(arg_32bit_ralimmu6, arg_32bit_zalimmu6, arg_32bit_zalimms12)
(arg_32bit_ralimmlimm, arg_32bit_zalimmlimm, arg_32bit_rbrc)
(arg_32bit_zarc, arg_32bit_rbu6, arg_32bit_zau6, arg_32bit_rblimm)
(arg_32bit_zalimm, arg_32bit_limmrc, arg_32bit_limmu6)
(arg_32bit_limms12, arg_32bit_limmlimm): Likewise.
opcodes/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* arc-opc.c (flags_none, flags_f, flags_cc, flags_ccf):
Initialize.
(arg_none, arg_32bit_rarbrc, arg_32bit_zarbrc, arg_32bit_rbrbrc)
(arg_32bit_rarbu6, arg_32bit_zarbu6, arg_32bit_rbrbu6)
(arg_32bit_rbrbs12, arg_32bit_ralimmrc, arg_32bit_rarblimm)
(arg_32bit_zalimmrc, arg_32bit_zarblimm, arg_32bit_rbrblimm)
(arg_32bit_ralimmu6, arg_32bit_zalimmu6, arg_32bit_zalimms12)
(arg_32bit_ralimmlimm, arg_32bit_zalimmlimm, arg_32bit_rbrc)
(arg_32bit_zarc, arg_32bit_rbu6, arg_32bit_zau6, arg_32bit_rblimm)
(arg_32bit_zalimm, arg_32bit_limmrc, arg_32bit_limmu6)
(arg_32bit_limms12, arg_32bit_limmlimm): Likewise.
(arc_opcode arc_opcodes): Null terminate the array.
(arc_num_opcodes): Remove.
* arc-ext.h (INSERT_XOP): Define.
(extInstruction_t): Likewise.
(arcExtMap_instName): Delete.
(arcExtMap_insn): New function.
(arcExtMap_genOpcode): Likewise.
* arc-ext.c (ExtInstruction): Remove.
(create_map): Zero initialize instruction fields.
(arcExtMap_instName): Remove.
(arcExtMap_insn): New function.
(dump_ARC_extmap): More info while debuging.
(arcExtMap_genOpcode): New function.
* arc-dis.c (find_format): New function.
(print_insn_arc): Use find_format.
(arc_get_disassembler): Enable dump_ARC_extmap only when
debugging.
Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
2016-04-04 16:03:53 +02:00
|
|
|
|
* arc-regs.h: Add a new subclass field. Add double assist
|
|
|
|
|
accumulator register values.
|
|
|
|
|
* arc-tbl.h: Use DPA subclass to mark the double assist
|
|
|
|
|
instructions. Use DPX/SPX subclas to mark the FPX instructions.
|
|
|
|
|
* arc-opc.c (RSP): Define instead of SP.
|
|
|
|
|
(arc_aux_regs): Add the subclass field.
|
2016-04-05 17:37:29 +02:00
|
|
|
|
|
2016-04-05 16:54:00 +02:00
|
|
|
|
2016-04-05 Jiong Wang <jiong.wang@arm.com>
|
|
|
|
|
|
|
|
|
|
* arm-dis.c: Support FP16 vmul, vmla, vmls (by scalar).
|
|
|
|
|
|
2016-03-31 15:16:10 +02:00
|
|
|
|
2016-03-31 Andrew Burgess <andrew.burgess@embecosm.com>
|
2016-03-24 18:18:41 +01:00
|
|
|
|
|
|
|
|
|
* arc-opc.c (arc_operands): Fix operand flags for NPS_R_DST, and
|
|
|
|
|
NPS_R_SRC1.
|
|
|
|
|
|
2016-03-30 19:13:31 +02:00
|
|
|
|
2016-03-30 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-nps400-tbl.h: Add a header comment, and fix some whitespace
|
|
|
|
|
issues. No functional changes.
|
|
|
|
|
|
[ARC] Cleanup AUX register names.
opcodes/
2016-03-30 Claudiu Zissulescu <claziss@synopsys.com>
* arc-regs.h (IC_RAM_ADDRESS, IC_TAG, IC_WP, IC_DATA, CONTROL0)
(AX2, AY2, MX2, MY2, AY0, AY1, DC_RAM_ADDR, DC_TAG, CONTROL1)
(RTT): Remove duplicate.
(LCDINSTR, LCDDATA, LCDSTAT, CC_*, PCT_COUNT*, PCT_SNAP*)
(PCT_CONFIG*): Remove.
(D1L, D1H, D2H, D2L): Define.
2016-03-30 16:06:54 +02:00
|
|
|
|
2016-03-30 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
Add support for .extInstruction pseudo-op.
gas/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* testsuite/gas/arc/textinsn-errors.d: New File.
* testsuite/gas/arc/textinsn-errors.err: Likewise.
* testsuite/gas/arc/textinsn-errors.s: Likewise.
* testsuite/gas/arc/textinsn2op.d: Likewise.
* testsuite/gas/arc/textinsn2op.s: Likewise.
* testsuite/gas/arc/textinsn2op01.d: Likewise.
* testsuite/gas/arc/textinsn2op01.s: Likewise.
* testsuite/gas/arc/textinsn3op.d: Likewise.
* testsuite/gas/arc/textinsn3op.s: Likewise.
* doc/c-arc.texi (ARC Directives): Add .extInstruction
documentation.
* config/tc-arc.c (arcext_section): New variable.
(arc_extinsn): New function.
(md_pseudo_table): Add .extInstruction pseudo op.
(attributes_t): New type.
(suffixclass, syntaxclass, syntaxclassmod): New constant
structures.
(find_opcode_match): Remove arc_num_opcodes.
(md_begin): Likewise.
(tokenize_extinsn): New function.
(arc_set_ext_seg): Likewise.
(create_extinst_section): Likewise.
include/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* opcode/arc.h (arc_num_opcodes): Remove.
(ARC_SYNTAX_3OP, ARC_SYNTAX_2OP, ARC_OP1_MUST_BE_IMM)
(ARC_OP1_IMM_IMPLIED, ARC_SUFFIX_NONE, ARC_SUFFIX_COND)
(ARC_SUFFIX_FLAG): Define.
(flags_none, flags_f, flags_cc, flags_ccf): Declare.
(arg_none, arg_32bit_rarbrc, arg_32bit_zarbrc, arg_32bit_rbrbrc)
(arg_32bit_rarbu6, arg_32bit_zarbu6, arg_32bit_rbrbu6)
(arg_32bit_rbrbs12, arg_32bit_ralimmrc, arg_32bit_rarblimm)
(arg_32bit_zalimmrc, arg_32bit_zarblimm, arg_32bit_rbrblimm)
(arg_32bit_ralimmu6, arg_32bit_zalimmu6, arg_32bit_zalimms12)
(arg_32bit_ralimmlimm, arg_32bit_zalimmlimm, arg_32bit_rbrc)
(arg_32bit_zarc, arg_32bit_rbu6, arg_32bit_zau6, arg_32bit_rblimm)
(arg_32bit_zalimm, arg_32bit_limmrc, arg_32bit_limmu6)
(arg_32bit_limms12, arg_32bit_limmlimm): Likewise.
opcodes/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* arc-opc.c (flags_none, flags_f, flags_cc, flags_ccf):
Initialize.
(arg_none, arg_32bit_rarbrc, arg_32bit_zarbrc, arg_32bit_rbrbrc)
(arg_32bit_rarbu6, arg_32bit_zarbu6, arg_32bit_rbrbu6)
(arg_32bit_rbrbs12, arg_32bit_ralimmrc, arg_32bit_rarblimm)
(arg_32bit_zalimmrc, arg_32bit_zarblimm, arg_32bit_rbrblimm)
(arg_32bit_ralimmu6, arg_32bit_zalimmu6, arg_32bit_zalimms12)
(arg_32bit_ralimmlimm, arg_32bit_zalimmlimm, arg_32bit_rbrc)
(arg_32bit_zarc, arg_32bit_rbu6, arg_32bit_zau6, arg_32bit_rblimm)
(arg_32bit_zalimm, arg_32bit_limmrc, arg_32bit_limmu6)
(arg_32bit_limms12, arg_32bit_limmlimm): Likewise.
(arc_opcode arc_opcodes): Null terminate the array.
(arc_num_opcodes): Remove.
* arc-ext.h (INSERT_XOP): Define.
(extInstruction_t): Likewise.
(arcExtMap_instName): Delete.
(arcExtMap_insn): New function.
(arcExtMap_genOpcode): Likewise.
* arc-ext.c (ExtInstruction): Remove.
(create_map): Zero initialize instruction fields.
(arcExtMap_instName): Remove.
(arcExtMap_insn): New function.
(dump_ARC_extmap): More info while debuging.
(arcExtMap_genOpcode): New function.
* arc-dis.c (find_format): New function.
(print_insn_arc): Use find_format.
(arc_get_disassembler): Enable dump_ARC_extmap only when
debugging.
Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
2016-04-04 16:03:53 +02:00
|
|
|
|
* arc-regs.h (IC_RAM_ADDRESS, IC_TAG, IC_WP, IC_DATA, CONTROL0)
|
|
|
|
|
(AX2, AY2, MX2, MY2, AY0, AY1, DC_RAM_ADDR, DC_TAG, CONTROL1)
|
|
|
|
|
(RTT): Remove duplicate.
|
|
|
|
|
(LCDINSTR, LCDDATA, LCDSTAT, CC_*, PCT_COUNT*, PCT_SNAP*)
|
|
|
|
|
(PCT_CONFIG*): Remove.
|
|
|
|
|
(D1L, D1H, D2H, D2L): Define.
|
[ARC] Cleanup AUX register names.
opcodes/
2016-03-30 Claudiu Zissulescu <claziss@synopsys.com>
* arc-regs.h (IC_RAM_ADDRESS, IC_TAG, IC_WP, IC_DATA, CONTROL0)
(AX2, AY2, MX2, MY2, AY0, AY1, DC_RAM_ADDR, DC_TAG, CONTROL1)
(RTT): Remove duplicate.
(LCDINSTR, LCDDATA, LCDSTAT, CC_*, PCT_COUNT*, PCT_SNAP*)
(PCT_CONFIG*): Remove.
(D1L, D1H, D2H, D2L): Define.
2016-03-30 16:06:54 +02:00
|
|
|
|
|
2016-03-29 19:05:31 +02:00
|
|
|
|
2016-03-29 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
Add support for .extInstruction pseudo-op.
gas/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* testsuite/gas/arc/textinsn-errors.d: New File.
* testsuite/gas/arc/textinsn-errors.err: Likewise.
* testsuite/gas/arc/textinsn-errors.s: Likewise.
* testsuite/gas/arc/textinsn2op.d: Likewise.
* testsuite/gas/arc/textinsn2op.s: Likewise.
* testsuite/gas/arc/textinsn2op01.d: Likewise.
* testsuite/gas/arc/textinsn2op01.s: Likewise.
* testsuite/gas/arc/textinsn3op.d: Likewise.
* testsuite/gas/arc/textinsn3op.s: Likewise.
* doc/c-arc.texi (ARC Directives): Add .extInstruction
documentation.
* config/tc-arc.c (arcext_section): New variable.
(arc_extinsn): New function.
(md_pseudo_table): Add .extInstruction pseudo op.
(attributes_t): New type.
(suffixclass, syntaxclass, syntaxclassmod): New constant
structures.
(find_opcode_match): Remove arc_num_opcodes.
(md_begin): Likewise.
(tokenize_extinsn): New function.
(arc_set_ext_seg): Likewise.
(create_extinst_section): Likewise.
include/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* opcode/arc.h (arc_num_opcodes): Remove.
(ARC_SYNTAX_3OP, ARC_SYNTAX_2OP, ARC_OP1_MUST_BE_IMM)
(ARC_OP1_IMM_IMPLIED, ARC_SUFFIX_NONE, ARC_SUFFIX_COND)
(ARC_SUFFIX_FLAG): Define.
(flags_none, flags_f, flags_cc, flags_ccf): Declare.
(arg_none, arg_32bit_rarbrc, arg_32bit_zarbrc, arg_32bit_rbrbrc)
(arg_32bit_rarbu6, arg_32bit_zarbu6, arg_32bit_rbrbu6)
(arg_32bit_rbrbs12, arg_32bit_ralimmrc, arg_32bit_rarblimm)
(arg_32bit_zalimmrc, arg_32bit_zarblimm, arg_32bit_rbrblimm)
(arg_32bit_ralimmu6, arg_32bit_zalimmu6, arg_32bit_zalimms12)
(arg_32bit_ralimmlimm, arg_32bit_zalimmlimm, arg_32bit_rbrc)
(arg_32bit_zarc, arg_32bit_rbu6, arg_32bit_zau6, arg_32bit_rblimm)
(arg_32bit_zalimm, arg_32bit_limmrc, arg_32bit_limmu6)
(arg_32bit_limms12, arg_32bit_limmlimm): Likewise.
opcodes/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* arc-opc.c (flags_none, flags_f, flags_cc, flags_ccf):
Initialize.
(arg_none, arg_32bit_rarbrc, arg_32bit_zarbrc, arg_32bit_rbrbrc)
(arg_32bit_rarbu6, arg_32bit_zarbu6, arg_32bit_rbrbu6)
(arg_32bit_rbrbs12, arg_32bit_ralimmrc, arg_32bit_rarblimm)
(arg_32bit_zalimmrc, arg_32bit_zarblimm, arg_32bit_rbrblimm)
(arg_32bit_ralimmu6, arg_32bit_zalimmu6, arg_32bit_zalimms12)
(arg_32bit_ralimmlimm, arg_32bit_zalimmlimm, arg_32bit_rbrc)
(arg_32bit_zarc, arg_32bit_rbu6, arg_32bit_zau6, arg_32bit_rblimm)
(arg_32bit_zalimm, arg_32bit_limmrc, arg_32bit_limmu6)
(arg_32bit_limms12, arg_32bit_limmlimm): Likewise.
(arc_opcode arc_opcodes): Null terminate the array.
(arc_num_opcodes): Remove.
* arc-ext.h (INSERT_XOP): Define.
(extInstruction_t): Likewise.
(arcExtMap_instName): Delete.
(arcExtMap_insn): New function.
(arcExtMap_genOpcode): Likewise.
* arc-ext.c (ExtInstruction): Remove.
(create_map): Zero initialize instruction fields.
(arcExtMap_instName): Remove.
(arcExtMap_insn): New function.
(dump_ARC_extmap): More info while debuging.
(arcExtMap_genOpcode): New function.
* arc-dis.c (find_format): New function.
(print_insn_arc): Use find_format.
(arc_get_disassembler): Enable dump_ARC_extmap only when
debugging.
Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
2016-04-04 16:03:53 +02:00
|
|
|
|
* arc-ext-tbl.h (dsp_fp_i2flt): Fix typo.
|
2016-03-29 19:05:31 +02:00
|
|
|
|
|
[ARC] Add support for Quarkse opcodes.
gas/
2016-03-29 Claudiu Zissulescu <claziss@synopsys.com>
* testsuite/gas/arc/ext2op.d: New file.
* testsuite/gas/arc/ext2op.s: Likewise.
* testsuite/gas/arc/ext3op.d: Likewise.
* testsuite/gas/arc/ext3op.s: Likewise.
opcodes/
2016-03-29 Claudiu Zissulescu <claziss@synopsys.com>
* arc-tbl.h (invld07): Remove.
* arc-ext-tbl.h: New file.
* arc-dis.c (FIELDA, FIELDB, FIELDC): Remove.
* arc-opc.c (arc_opcodes): Add ext-tbl include.
include/
2016-03-29 Claudiu Zissulescu <claziss@synopsys.com>
* opcode/arc.h (insn_subclass_t): Add QUARKSE subclass.
(FIELDA, FIELDB, FIELDC, FIELDF, FIELDQ, INSN3OP, INSN2OP)
(INSN2OP, INSN3OP_ABC, INSN3OP_ALC, INSN3OP_ABL, INSN3OP_ALL)
(INSN3OP_0BC, INSN3OP_0LC, INSN3OP_0BL, INSN3OP_0LL, INSN3OP_ABU)
(INSN3OP_ALU, INSN3OP_0BU, INSN3OP_0LU, INSN3OP_BBS, INSN3OP_0LS)
(INSN3OP_CBBC, INSN3OP_CBBL, INSN3OP_C0LC, INSN3OP_C0LL)
(INSN3OP_CBBU, INSN3OP_C0LU, MINSN3OP_ABC, MINSN3OP_ALC)
(MINSN3OP_ABL, MINSN3OP_ALL, MINSN3OP_0BC, MINSN3OP_0LC)
(MINSN3OP_0BL, MINSN3OP_0LL, MINSN3OP_ABU, MINSN3OP_ALU)
(MINSN3OP_0BU, MINSN3OP_0LU, MINSN3OP_BBS, MINSN3OP_0LS)
(MINSN3OP_CBBC, MINSN3OP_CBBL, MINSN3OP_C0LC, MINSN3OP_C0LL)
(MINSN3OP_CBBU, MINSN3OP_C0LU, INSN2OP_BC, INSN2OP_BL, INSN2OP_0C)
(INSN2OP_0L INSN2OP_BU, INSN2OP_0U, MINSN2OP_BC, MINSN2OP_BL)
(MINSN2OP_0C, MINSN2OP_0L, MINSN2OP_BU, MINSN2OP_0U): Define.
2016-03-29 14:49:22 +02:00
|
|
|
|
2016-03-29 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
Add support for .extInstruction pseudo-op.
gas/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* testsuite/gas/arc/textinsn-errors.d: New File.
* testsuite/gas/arc/textinsn-errors.err: Likewise.
* testsuite/gas/arc/textinsn-errors.s: Likewise.
* testsuite/gas/arc/textinsn2op.d: Likewise.
* testsuite/gas/arc/textinsn2op.s: Likewise.
* testsuite/gas/arc/textinsn2op01.d: Likewise.
* testsuite/gas/arc/textinsn2op01.s: Likewise.
* testsuite/gas/arc/textinsn3op.d: Likewise.
* testsuite/gas/arc/textinsn3op.s: Likewise.
* doc/c-arc.texi (ARC Directives): Add .extInstruction
documentation.
* config/tc-arc.c (arcext_section): New variable.
(arc_extinsn): New function.
(md_pseudo_table): Add .extInstruction pseudo op.
(attributes_t): New type.
(suffixclass, syntaxclass, syntaxclassmod): New constant
structures.
(find_opcode_match): Remove arc_num_opcodes.
(md_begin): Likewise.
(tokenize_extinsn): New function.
(arc_set_ext_seg): Likewise.
(create_extinst_section): Likewise.
include/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* opcode/arc.h (arc_num_opcodes): Remove.
(ARC_SYNTAX_3OP, ARC_SYNTAX_2OP, ARC_OP1_MUST_BE_IMM)
(ARC_OP1_IMM_IMPLIED, ARC_SUFFIX_NONE, ARC_SUFFIX_COND)
(ARC_SUFFIX_FLAG): Define.
(flags_none, flags_f, flags_cc, flags_ccf): Declare.
(arg_none, arg_32bit_rarbrc, arg_32bit_zarbrc, arg_32bit_rbrbrc)
(arg_32bit_rarbu6, arg_32bit_zarbu6, arg_32bit_rbrbu6)
(arg_32bit_rbrbs12, arg_32bit_ralimmrc, arg_32bit_rarblimm)
(arg_32bit_zalimmrc, arg_32bit_zarblimm, arg_32bit_rbrblimm)
(arg_32bit_ralimmu6, arg_32bit_zalimmu6, arg_32bit_zalimms12)
(arg_32bit_ralimmlimm, arg_32bit_zalimmlimm, arg_32bit_rbrc)
(arg_32bit_zarc, arg_32bit_rbu6, arg_32bit_zau6, arg_32bit_rblimm)
(arg_32bit_zalimm, arg_32bit_limmrc, arg_32bit_limmu6)
(arg_32bit_limms12, arg_32bit_limmlimm): Likewise.
opcodes/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* arc-opc.c (flags_none, flags_f, flags_cc, flags_ccf):
Initialize.
(arg_none, arg_32bit_rarbrc, arg_32bit_zarbrc, arg_32bit_rbrbrc)
(arg_32bit_rarbu6, arg_32bit_zarbu6, arg_32bit_rbrbu6)
(arg_32bit_rbrbs12, arg_32bit_ralimmrc, arg_32bit_rarblimm)
(arg_32bit_zalimmrc, arg_32bit_zarblimm, arg_32bit_rbrblimm)
(arg_32bit_ralimmu6, arg_32bit_zalimmu6, arg_32bit_zalimms12)
(arg_32bit_ralimmlimm, arg_32bit_zalimmlimm, arg_32bit_rbrc)
(arg_32bit_zarc, arg_32bit_rbu6, arg_32bit_zau6, arg_32bit_rblimm)
(arg_32bit_zalimm, arg_32bit_limmrc, arg_32bit_limmu6)
(arg_32bit_limms12, arg_32bit_limmlimm): Likewise.
(arc_opcode arc_opcodes): Null terminate the array.
(arc_num_opcodes): Remove.
* arc-ext.h (INSERT_XOP): Define.
(extInstruction_t): Likewise.
(arcExtMap_instName): Delete.
(arcExtMap_insn): New function.
(arcExtMap_genOpcode): Likewise.
* arc-ext.c (ExtInstruction): Remove.
(create_map): Zero initialize instruction fields.
(arcExtMap_instName): Remove.
(arcExtMap_insn): New function.
(dump_ARC_extmap): More info while debuging.
(arcExtMap_genOpcode): New function.
* arc-dis.c (find_format): New function.
(print_insn_arc): Use find_format.
(arc_get_disassembler): Enable dump_ARC_extmap only when
debugging.
Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
2016-04-04 16:03:53 +02:00
|
|
|
|
* arc-tbl.h (invld07): Remove.
|
|
|
|
|
* arc-ext-tbl.h: New file.
|
|
|
|
|
* arc-dis.c (FIELDA, FIELDB, FIELDC): Remove.
|
|
|
|
|
* arc-opc.c (arc_opcodes): Add ext-tbl include.
|
[ARC] Add support for Quarkse opcodes.
gas/
2016-03-29 Claudiu Zissulescu <claziss@synopsys.com>
* testsuite/gas/arc/ext2op.d: New file.
* testsuite/gas/arc/ext2op.s: Likewise.
* testsuite/gas/arc/ext3op.d: Likewise.
* testsuite/gas/arc/ext3op.s: Likewise.
opcodes/
2016-03-29 Claudiu Zissulescu <claziss@synopsys.com>
* arc-tbl.h (invld07): Remove.
* arc-ext-tbl.h: New file.
* arc-dis.c (FIELDA, FIELDB, FIELDC): Remove.
* arc-opc.c (arc_opcodes): Add ext-tbl include.
include/
2016-03-29 Claudiu Zissulescu <claziss@synopsys.com>
* opcode/arc.h (insn_subclass_t): Add QUARKSE subclass.
(FIELDA, FIELDB, FIELDC, FIELDF, FIELDQ, INSN3OP, INSN2OP)
(INSN2OP, INSN3OP_ABC, INSN3OP_ALC, INSN3OP_ABL, INSN3OP_ALL)
(INSN3OP_0BC, INSN3OP_0LC, INSN3OP_0BL, INSN3OP_0LL, INSN3OP_ABU)
(INSN3OP_ALU, INSN3OP_0BU, INSN3OP_0LU, INSN3OP_BBS, INSN3OP_0LS)
(INSN3OP_CBBC, INSN3OP_CBBL, INSN3OP_C0LC, INSN3OP_C0LL)
(INSN3OP_CBBU, INSN3OP_C0LU, MINSN3OP_ABC, MINSN3OP_ALC)
(MINSN3OP_ABL, MINSN3OP_ALL, MINSN3OP_0BC, MINSN3OP_0LC)
(MINSN3OP_0BL, MINSN3OP_0LL, MINSN3OP_ABU, MINSN3OP_ALU)
(MINSN3OP_0BU, MINSN3OP_0LU, MINSN3OP_BBS, MINSN3OP_0LS)
(MINSN3OP_CBBC, MINSN3OP_CBBL, MINSN3OP_C0LC, MINSN3OP_C0LL)
(MINSN3OP_CBBU, MINSN3OP_C0LU, INSN2OP_BC, INSN2OP_BL, INSN2OP_0C)
(INSN2OP_0L INSN2OP_BU, INSN2OP_0U, MINSN2OP_BC, MINSN2OP_BL)
(MINSN2OP_0C, MINSN2OP_0L, MINSN2OP_BU, MINSN2OP_0U): Define.
2016-03-29 14:49:22 +02:00
|
|
|
|
|
2016-03-24 22:42:09 +01:00
|
|
|
|
2016-03-24 Jan Kratochvil <jan.kratochvil@redhat.com>
|
|
|
|
|
|
|
|
|
|
Fix -Wstack-usage warnings.
|
|
|
|
|
* aarch64-dis.c (print_operands): Substitute size.
|
|
|
|
|
* aarch64-opc.c (print_register_offset_address): Substitute tblen.
|
|
|
|
|
|
2016-03-24 18:20:45 +01:00
|
|
|
|
2016-03-22 Jose E. Marchesi <jose.marchesi@oracle.com>
|
|
|
|
|
|
|
|
|
|
* sparc-opc.c (sparc_opcodes): Reorder entries for `rd' in order
|
|
|
|
|
to get a proper diagnostic when an invalid ASR register is used.
|
|
|
|
|
|
2016-03-22 10:41:16 +01:00
|
|
|
|
2016-03-22 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2016-03-15 23:01:34 +01:00
|
|
|
|
2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-nps400-tbl.h: New file.
|
|
|
|
|
* arc-opc.c: Add top level comment.
|
|
|
|
|
(insert_nps_3bit_dst): New function.
|
|
|
|
|
(extract_nps_3bit_dst): New function.
|
|
|
|
|
(insert_nps_3bit_src2): New function.
|
|
|
|
|
(extract_nps_3bit_src2): New function.
|
|
|
|
|
(insert_nps_bitop_size): New function.
|
|
|
|
|
(extract_nps_bitop_size): New function.
|
|
|
|
|
(arc_flag_operands): Add nps400 entries.
|
|
|
|
|
(arc_flag_classes): Add nps400 entries.
|
|
|
|
|
(arc_operands): Add nps400 entries.
|
|
|
|
|
(arc_opcodes): Add nps400 include.
|
|
|
|
|
|
arc/opcodes: Use flag operand class to handle multiple flag matches
When parsing the operand instruction flags we don't currently detect the
case where multiple flags are provided from the same class set, these
will be accepted and the bit values merged together, resulting in the
wrong instruction being assembled. For example:
adc.n.eq r0,r0,r2
Will assemble without error, yet, upon disassembly, the instruction will
actually be:
adc.c r0,r0,r2
In a later commit the concept of required flags will be introduced.
Required flags are just like normal instruction flags, except that they
must be present for the instruction to match. Adding this will allow
for simpler instructions in the instruction table, and allow for more
sharing of operand extraction and insertion functions.
To solve both of the above issues (multiple flags being invalid, and
required flags), this commit reworks the flag class mechanism.
Currently the flag class is never used. Each instruction can reference
multiple flag classes, each flag class has a class type and a set of
flags. However, at present, the class type is never used. The current
values identify the type of instruction that the flag will be used in,
but this is not required information.
Instead, this commit discards the old flag classes, and introduces 3 new
classes. The first F_CLASS_NONE, is just a NULL marker value, and is
only used in the NULL marker flag class. The other two flag classes are
F_FLAG_OPTIONAL, and F_FLAG_REQUIRED.
The class F_FLAG_OPTIONAL has the property that at most one of the flags
in the flag set for that class must be present in the instruction. The
"at most" one means that no flags being present is fine.
The class F_FLAG_REQUIRED is not currently used, but will be soon. With
this class, exactly one of the flags from this class must be present in
the instruction. If the flag class contains a single flag, then of
course that flag must be present. However, if the flag class contained
two or more, then one, and only one of them must be present.
gas/ChangeLog:
* config/tc-arc.c (find_opcode_match): Move lnflg, and i
declarations to start of block. Reset code on all flags before
attempting to match them. Handle multiple hits on the same flag.
Handle flag class.
* testsuite/gas/arc/asm-errors.d: New file.
* testsuite/gas/arc/asm-errors.err: New file.
* testsuite/gas/arc/asm-errors.s: New file.
include/ChangeLog:
* opcode/arc.h (flag_class_t): Remove all old flag classes, add 3
new classes instead.
opcodes/ChangeLog:
* arc-opc.c (arc_flag_classes): Convert all flag classes to use
the new class enum values.
2016-03-14 23:17:47 +01:00
|
|
|
|
2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-opc.c (arc_flag_classes): Convert all flag classes to use
|
|
|
|
|
the new class enum values.
|
|
|
|
|
|
2016-03-15 22:51:50 +01:00
|
|
|
|
2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-dis.c (print_insn_arc): Handle nps400.
|
|
|
|
|
|
2016-03-01 12:41:12 +01:00
|
|
|
|
2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* arc-opc.c (BASE): Delete.
|
|
|
|
|
|
2016-03-18 18:02:20 +01:00
|
|
|
|
2016-03-18 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/19721
|
|
|
|
|
* aarch64-tbl.h (aarch64_opcode_table): Fix type of second operand
|
|
|
|
|
of MOV insn that aliases an ORR insn.
|
|
|
|
|
|
2016-03-16 17:11:59 +01:00
|
|
|
|
2016-03-16 Jiong Wang <jiong.wang@arm.com>
|
|
|
|
|
|
|
|
|
|
* arm-dis.c (neon_opcodes): Support new FP16 instructions.
|
|
|
|
|
|
2016-03-07 16:16:28 +01:00
|
|
|
|
2016-03-07 Trevor Saunders <tbsaunde+binutils@tbsaunde.org>
|
|
|
|
|
|
|
|
|
|
* mcore-opc.h: Add const qualifiers.
|
|
|
|
|
* microblaze-opc.h (struct op_code_struct): Likewise.
|
|
|
|
|
* sh-opc.h: Likewise.
|
|
|
|
|
* tic4x-dis.c (tic4x_print_indirect): Likewise.
|
|
|
|
|
(tic4x_print_op): Likewise.
|
|
|
|
|
|
2016-03-01 23:28:07 +01:00
|
|
|
|
2016-03-02 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
2016-03-02 14:50:27 +01:00
|
|
|
|
* or1k-desc.h: Regenerate.
|
2016-03-01 23:28:07 +01:00
|
|
|
|
* fr30-ibld.c: Regenerate.
|
2016-03-02 03:11:01 +01:00
|
|
|
|
* rl78-decode.c: Regenerate.
|
2016-03-01 23:28:07 +01:00
|
|
|
|
|
2016-03-01 11:52:24 +01:00
|
|
|
|
2016-03-01 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/19747
|
|
|
|
|
* rl78-dis.c (print_insn_rl78_common): Fix typo.
|
|
|
|
|
|
2016-02-24 15:08:39 +01:00
|
|
|
|
2016-02-24 Renlin Li <renlin.li@arm.com>
|
|
|
|
|
|
|
|
|
|
* arm-dis.c (coprocessor_opcodes): Add fp16 instruction entries.
|
|
|
|
|
(print_insn_coprocessor): Support fp16 instructions.
|
|
|
|
|
|
2016-02-24 14:55:30 +01:00
|
|
|
|
2016-02-24 Renlin Li <renlin.li@arm.com>
|
|
|
|
|
|
|
|
|
|
* arm-dis.c (print_insn_coprocessor): Fix mask for vsel, vmaxnm,
|
|
|
|
|
vminnm, vrint(mpna).
|
|
|
|
|
|
2016-02-24 14:48:59 +01:00
|
|
|
|
2016-02-24 Renlin Li <renlin.li@arm.com>
|
|
|
|
|
|
|
|
|
|
* arm-dis.c (print_insn_coprocessor): Check co-processor number for
|
|
|
|
|
cpd/cpd2, mcr/mcr2, mrc/mrc2, ldc/ldc2, stc/stc2.
|
|
|
|
|
|
2016-02-16 00:58:42 +01:00
|
|
|
|
2016-02-15 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* i386-dis.c (print_insn): Parenthesize expression to prevent
|
|
|
|
|
truncated addresses.
|
|
|
|
|
(OP_J): Likewise.
|
|
|
|
|
|
Add support for ARC instruction relaxation in the assembler.
gas/
2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
Janek van Oirschot <jvanoirs@synopsys.com>
* config/tc-arc.h (TC_FRAG_TYPE, TC_PCREL_ADJUST, MAX_INSN_ARGS)
(MAX_INSN_FLGS, MAX_FLAG_NAME_LENGHT, TC_GENERIC_RELAX_TABLE):
Define.
(arc_flags, arc_relax_type): New structure.
* config/tc-arc.c (FRAG_MAX_GROWTH, RELAX_TABLE_ENTRY)
(RELAX_TABLE_ENTRY_MAX): New define.
(relaxation_state, md_relax_table, arc_relaxable_insns)
(arc_num_relaxable_ins): New variable.
(rlx_operand_type, arc_rlx_types): New enums.
(arc_relaxable_ins): New structure.
(OPTION_RELAX): New option.
(arc_insn): New relax member.
(arc_flags): Remove.
(relax_insn_p): New function.
(apply_fixups): Likewise.
(relaxable_operand): Likewise.
(may_relax_expr): Likewise.
(relaxable_flag): Likewise.
(arc_pcrel_adjust): Likewise.
(md_estimate_size_before_relax): Implement.
(md_convert_frag): Likewise.
(md_parse_option): Handle new mrelax option.
(md_show_usage): Likewise.
(assemble_insn): Set relax member.
(emit_insn0): New function.
(emit_insn1): Likewise.
(emit_insn): Handle relaxation case.
* NEWS: Mention the new relaxation option.
* doc/c-arc.texi (ARC Options): Document new mrelax option.
gas/testsuite
2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
* gas/arc/relax-avoid1.d: New file.
* gas/arc/relax-avoid1.s: Likewise.
* gas/arc/relax-avoid2.d: Likewise.
* gas/arc/relax-avoid2.s: Likewise.
* gas/arc/relax-avoid3.d: Likewise.
* gas/arc/relax-avoid3.s: Likewise.
* gas/arc/relax-b.d: Likewise.
* gas/arc/relax-b.s: Likewise.
include/opcode/
2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
Janek van Oirschot <jvanoirs@synopsys.com>
* arc.h (arc_opcode arc_relax_opcodes, arc_num_relax_opcodes):
Declare.
opcodes/
2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
Janek van Oirschot <jvanoirs@synopsys.com>
* arc-opc.c (arc_relax_opcodes, arc_num_relax_opcodes): New
variable.
2016-02-10 13:09:01 +01:00
|
|
|
|
2016-02-10 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
Janek van Oirschot <jvanoirs@synopsys.com>
|
|
|
|
|
|
Add support for .extInstruction pseudo-op.
gas/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* testsuite/gas/arc/textinsn-errors.d: New File.
* testsuite/gas/arc/textinsn-errors.err: Likewise.
* testsuite/gas/arc/textinsn-errors.s: Likewise.
* testsuite/gas/arc/textinsn2op.d: Likewise.
* testsuite/gas/arc/textinsn2op.s: Likewise.
* testsuite/gas/arc/textinsn2op01.d: Likewise.
* testsuite/gas/arc/textinsn2op01.s: Likewise.
* testsuite/gas/arc/textinsn3op.d: Likewise.
* testsuite/gas/arc/textinsn3op.s: Likewise.
* doc/c-arc.texi (ARC Directives): Add .extInstruction
documentation.
* config/tc-arc.c (arcext_section): New variable.
(arc_extinsn): New function.
(md_pseudo_table): Add .extInstruction pseudo op.
(attributes_t): New type.
(suffixclass, syntaxclass, syntaxclassmod): New constant
structures.
(find_opcode_match): Remove arc_num_opcodes.
(md_begin): Likewise.
(tokenize_extinsn): New function.
(arc_set_ext_seg): Likewise.
(create_extinst_section): Likewise.
include/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* opcode/arc.h (arc_num_opcodes): Remove.
(ARC_SYNTAX_3OP, ARC_SYNTAX_2OP, ARC_OP1_MUST_BE_IMM)
(ARC_OP1_IMM_IMPLIED, ARC_SUFFIX_NONE, ARC_SUFFIX_COND)
(ARC_SUFFIX_FLAG): Define.
(flags_none, flags_f, flags_cc, flags_ccf): Declare.
(arg_none, arg_32bit_rarbrc, arg_32bit_zarbrc, arg_32bit_rbrbrc)
(arg_32bit_rarbu6, arg_32bit_zarbu6, arg_32bit_rbrbu6)
(arg_32bit_rbrbs12, arg_32bit_ralimmrc, arg_32bit_rarblimm)
(arg_32bit_zalimmrc, arg_32bit_zarblimm, arg_32bit_rbrblimm)
(arg_32bit_ralimmu6, arg_32bit_zalimmu6, arg_32bit_zalimms12)
(arg_32bit_ralimmlimm, arg_32bit_zalimmlimm, arg_32bit_rbrc)
(arg_32bit_zarc, arg_32bit_rbu6, arg_32bit_zau6, arg_32bit_rblimm)
(arg_32bit_zalimm, arg_32bit_limmrc, arg_32bit_limmu6)
(arg_32bit_limms12, arg_32bit_limmlimm): Likewise.
opcodes/
2016-04-04 Claudiu Zissulescu <claziss@synopsys.com>
* arc-opc.c (flags_none, flags_f, flags_cc, flags_ccf):
Initialize.
(arg_none, arg_32bit_rarbrc, arg_32bit_zarbrc, arg_32bit_rbrbrc)
(arg_32bit_rarbu6, arg_32bit_zarbu6, arg_32bit_rbrbu6)
(arg_32bit_rbrbs12, arg_32bit_ralimmrc, arg_32bit_rarblimm)
(arg_32bit_zalimmrc, arg_32bit_zarblimm, arg_32bit_rbrblimm)
(arg_32bit_ralimmu6, arg_32bit_zalimmu6, arg_32bit_zalimms12)
(arg_32bit_ralimmlimm, arg_32bit_zalimmlimm, arg_32bit_rbrc)
(arg_32bit_zarc, arg_32bit_rbu6, arg_32bit_zau6, arg_32bit_rblimm)
(arg_32bit_zalimm, arg_32bit_limmrc, arg_32bit_limmu6)
(arg_32bit_limms12, arg_32bit_limmlimm): Likewise.
(arc_opcode arc_opcodes): Null terminate the array.
(arc_num_opcodes): Remove.
* arc-ext.h (INSERT_XOP): Define.
(extInstruction_t): Likewise.
(arcExtMap_instName): Delete.
(arcExtMap_insn): New function.
(arcExtMap_genOpcode): Likewise.
* arc-ext.c (ExtInstruction): Remove.
(create_map): Zero initialize instruction fields.
(arcExtMap_instName): Remove.
(arcExtMap_insn): New function.
(dump_ARC_extmap): More info while debuging.
(arcExtMap_genOpcode): New function.
* arc-dis.c (find_format): New function.
(print_insn_arc): Use find_format.
(arc_get_disassembler): Enable dump_ARC_extmap only when
debugging.
Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com>
2016-04-04 16:03:53 +02:00
|
|
|
|
* arc-opc.c (arc_relax_opcodes, arc_num_relax_opcodes): New
|
|
|
|
|
variable.
|
Add support for ARC instruction relaxation in the assembler.
gas/
2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
Janek van Oirschot <jvanoirs@synopsys.com>
* config/tc-arc.h (TC_FRAG_TYPE, TC_PCREL_ADJUST, MAX_INSN_ARGS)
(MAX_INSN_FLGS, MAX_FLAG_NAME_LENGHT, TC_GENERIC_RELAX_TABLE):
Define.
(arc_flags, arc_relax_type): New structure.
* config/tc-arc.c (FRAG_MAX_GROWTH, RELAX_TABLE_ENTRY)
(RELAX_TABLE_ENTRY_MAX): New define.
(relaxation_state, md_relax_table, arc_relaxable_insns)
(arc_num_relaxable_ins): New variable.
(rlx_operand_type, arc_rlx_types): New enums.
(arc_relaxable_ins): New structure.
(OPTION_RELAX): New option.
(arc_insn): New relax member.
(arc_flags): Remove.
(relax_insn_p): New function.
(apply_fixups): Likewise.
(relaxable_operand): Likewise.
(may_relax_expr): Likewise.
(relaxable_flag): Likewise.
(arc_pcrel_adjust): Likewise.
(md_estimate_size_before_relax): Implement.
(md_convert_frag): Likewise.
(md_parse_option): Handle new mrelax option.
(md_show_usage): Likewise.
(assemble_insn): Set relax member.
(emit_insn0): New function.
(emit_insn1): Likewise.
(emit_insn): Handle relaxation case.
* NEWS: Mention the new relaxation option.
* doc/c-arc.texi (ARC Options): Document new mrelax option.
gas/testsuite
2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
* gas/arc/relax-avoid1.d: New file.
* gas/arc/relax-avoid1.s: Likewise.
* gas/arc/relax-avoid2.d: Likewise.
* gas/arc/relax-avoid2.s: Likewise.
* gas/arc/relax-avoid3.d: Likewise.
* gas/arc/relax-avoid3.s: Likewise.
* gas/arc/relax-b.d: Likewise.
* gas/arc/relax-b.s: Likewise.
include/opcode/
2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
Janek van Oirschot <jvanoirs@synopsys.com>
* arc.h (arc_opcode arc_relax_opcodes, arc_num_relax_opcodes):
Declare.
opcodes/
2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
Janek van Oirschot <jvanoirs@synopsys.com>
* arc-opc.c (arc_relax_opcodes, arc_num_relax_opcodes): New
variable.
2016-02-10 13:09:01 +01:00
|
|
|
|
|
2016-02-04 10:55:10 +01:00
|
|
|
|
2016-02-04 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/19561
|
|
|
|
|
* msp430-dis.c (print_insn_msp430): Add a special case for
|
|
|
|
|
decoding an RRC instruction with the ZC bit set in the extension
|
|
|
|
|
word.
|
|
|
|
|
|
opcodes/cgen: Rework calculation of shift when inserting fields
The calculation of the shift amount, used to insert fields into the
instruction buffer, is not correct when the following conditions are all
true:
- CGEN_INT_INSN_P is defined, and true.
- CGEN_INSN_LSB0_P is true
- Total instruction length is greater than the length of a single
instruction word (the instruction is made of multiple words)
- The word offset is non-zero (the field is outside the first word)
When the above conditions are all true, the calculated shift fails to
take account of the total instruction length.
After this commit the calculation of the shift amount is split into two
parts, first we calculate the shift required to get to BIT0 of the word
in which the field lives, then we calculate the shift required to place
the field within the instruction word.
The change in this commit only effects the CGEN_INT_INSN_P defined true
case, but changes the code for both CGEN_INSN_LSB0_P true, and false.
In the case of CGEN_INSN_LSB0_P being false, the code used to say:
shift = total_length - (word_offset + start + length);
Now it says:
shift_to_word = total_length - (word_offset + word_length);
shift_within_word = word_length - start - length;
shift = shift_to_word + shift_within_word;
From which we can see that in all cases the computed shift value should
be unchanged.
In the case of CGEN_INSN_LSB0_P being true, the code used to say:
shift = (word_offset + start + 1) - length;
Now it says:
shift_to_word = total_length - (word_offset + word_length);
shift_within_word = start + 1 - length;
shift = shift_to_word + shift_within_word;
In the case where 'total_length == word_length' AND 'word_offset ==
0' (which indicates an instruction of a single word), we see that the
computed shift value will be unchanged. However, when the total_length
and word_length are different, and the word_offset is non-zero then the
computed shift value will be different (and correct).
opcodes/ChangeLog:
* cgen-ibld.in (insert_normal): Rework calculation of shift.
* epiphany-ibld.c: Regenerate.
* fr30-ibld.c: Regenerate.
* frv-ibld.c: Regenerate.
* ip2k-ibld.c: Regenerate.
* iq2000-ibld.c: Regenerate.
* lm32-ibld.c: Regenerate.
* m32c-ibld.c: Regenerate.
* m32r-ibld.c: Regenerate.
* mep-ibld.c: Regenerate.
* mt-ibld.c: Regenerate.
* or1k-ibld.c: Regenerate.
* xc16x-ibld.c: Regenerate.
* xstormy16-ibld.c: Regenerate.
2016-01-31 01:41:12 +01:00
|
|
|
|
2016-02-02 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* cgen-ibld.in (insert_normal): Rework calculation of shift.
|
|
|
|
|
* epiphany-ibld.c: Regenerate.
|
|
|
|
|
* fr30-ibld.c: Regenerate.
|
|
|
|
|
* frv-ibld.c: Regenerate.
|
|
|
|
|
* ip2k-ibld.c: Regenerate.
|
|
|
|
|
* iq2000-ibld.c: Regenerate.
|
|
|
|
|
* lm32-ibld.c: Regenerate.
|
|
|
|
|
* m32c-ibld.c: Regenerate.
|
|
|
|
|
* m32r-ibld.c: Regenerate.
|
|
|
|
|
* mep-ibld.c: Regenerate.
|
|
|
|
|
* mt-ibld.c: Regenerate.
|
|
|
|
|
* or1k-ibld.c: Regenerate.
|
|
|
|
|
* xc16x-ibld.c: Regenerate.
|
|
|
|
|
* xstormy16-ibld.c: Regenerate.
|
|
|
|
|
|
2016-02-01 19:21:37 +01:00
|
|
|
|
2016-02-02 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* epiphany-dis.c: Regenerated from latest cpu files.
|
|
|
|
|
|
2016-02-01 11:41:32 +01:00
|
|
|
|
2016-02-01 Michael McConville <mmcco@mykolab.com>
|
|
|
|
|
|
|
|
|
|
* cgen-dis.c (count_decodable_bits): Use unsigned value for mask
|
|
|
|
|
test bit.
|
|
|
|
|
|
2016-01-25 16:06:54 +01:00
|
|
|
|
2016-01-25 Renlin Li <renlin.li@arm.com>
|
|
|
|
|
|
|
|
|
|
* arm-dis.c (mapping_symbol_for_insn): New function.
|
|
|
|
|
(find_ifthen_state): Call mapping_symbol_for_insn().
|
|
|
|
|
|
2016-01-20 15:25:46 +01:00
|
|
|
|
2016-01-20 Matthew Wahab <matthew.wahab@arm.com>
|
|
|
|
|
|
|
|
|
|
* aarch64-opc.c (operand_general_constraint_met_p): Check validity
|
|
|
|
|
of MSR UAO immediate operand.
|
|
|
|
|
|
MIPS: Remove remnants of 48-bit microMIPS instruction support
The POOL48A major opcode was defined in early revisions of the 64-bit
microMIPS ISA, has never been implemented, and was removed before the
64-bit microMIPS ISA specification[1] has been finalized.
This complements commit a6c7053929dd ("MIPS/opcodes: Remove microMIPS
48-bit LI instruction").
References:
[1] "MIPS Architecture for Programmers, Volume II-B: The microMIPS64
Instruction Set", MIPS Technologies, Inc., Document Number: MD00594,
Revision 3.06, October 17, 2012, Table 6.2 "microMIPS64 Encoding of
Major Opcode Field", p. 578
gas/
* config/tc-mips.c (micromips_insn_length): Remove the mention
of 48-bit microMIPS instructions.
gdb/
* mips-tdep.c (mips_insn_size): Remove 48-bit microMIPS
instruction support.
(micromips_next_pc): Likewise.
(micromips_scan_prologue): Likewise.
(micromips_deal_with_atomic_sequence): Likewise.
(micromips_stack_frame_destroyed_p): Likewise.
(mips_breakpoint_from_pc): Likewise.
opcodes/
* mips-dis.c (print_insn_micromips): Remove 48-bit microMIPS
instruction support.
2016-01-18 22:29:37 +01:00
|
|
|
|
2016-01-18 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* mips-dis.c (print_insn_micromips): Remove 48-bit microMIPS
|
|
|
|
|
instruction support.
|
|
|
|
|
|
2016-01-17 02:50:55 +01:00
|
|
|
|
2016-01-17 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2016-01-14 17:23:35 +01:00
|
|
|
|
2016-01-14 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* rl78-decode.opc (rl78_decode_opcode): Add 's' operand to movw
|
|
|
|
|
instructions that can support stack pointer operations.
|
|
|
|
|
* rl78-decode.c: Regenerate.
|
|
|
|
|
* rl78-dis.c: Fix display of stack pointer in MOVW based
|
|
|
|
|
instructions.
|
|
|
|
|
|
2016-01-14 11:55:11 +01:00
|
|
|
|
2016-01-14 Matthew Wahab <matthew.wahab@arm.com>
|
|
|
|
|
|
|
|
|
|
* aarch64-opc.c (aarch64_sys_reg_supported_p): Merge conditionals
|
|
|
|
|
testing for RAS support. Add checks for erxfr_el1, erxctlr_el1,
|
|
|
|
|
erxtatus_el1 and erxaddr_el1.
|
|
|
|
|
|
2016-01-12 17:35:30 +01:00
|
|
|
|
2016-01-12 Matthew Wahab <matthew.wahab@arm.com>
|
|
|
|
|
|
|
|
|
|
* arm-dis.c (arm_opcodes): Add "esb".
|
|
|
|
|
(thumb_opcodes): Likewise.
|
|
|
|
|
|
2016-01-11 18:54:58 +01:00
|
|
|
|
2016-01-11 Peter Bergner <bergner@vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* ppc-opc.c <xscmpnedp>: Delete.
|
|
|
|
|
<xvcmpnedp>: Likewise.
|
|
|
|
|
<xvcmpnedp.>: Likewise.
|
|
|
|
|
<xvcmpnesp>: Likewise.
|
|
|
|
|
<xvcmpnesp.>: Likewise.
|
|
|
|
|
|
2016-01-08 11:38:00 +01:00
|
|
|
|
2016-01-08 Andreas Schwab <schwab@linux-m68k.org>
|
|
|
|
|
|
|
|
|
|
PR gas/13050
|
|
|
|
|
* m68k-opc.c (moveb, movew): For ISA_B/C only allow #,d(An) in
|
|
|
|
|
addition to ISA_A.
|
|
|
|
|
|
2016-01-01 12:25:12 +01:00
|
|
|
|
2016-01-01 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
Update year range in copyright notice of all files.
|
|
|
|
|
|
2016-01-01 11:44:31 +01:00
|
|
|
|
For older changes see ChangeLog-2015
|
|
|
|
|
|
|
|
|
|
Copyright (C) 2016 Free Software Foundation, Inc.
|
|
|
|
|
|
|
|
|
|
Copying and distribution of this file, with or without modification,
|
|
|
|
|
are permitted in any medium without royalty provided the copyright
|
|
|
|
|
notice and this notice are preserved.
|
|
|
|
|
|
|
|
|
|
Local Variables:
|
|
|
|
|
mode: change-log
|
|
|
|
|
left-margin: 8
|
|
|
|
|
fill-column: 74
|
|
|
|
|
version-control: never
|
|
|
|
|
End:
|