diff options
author | Claudiu Zissulescu <claziss@synopsys.com> | 2016-10-13 15:01:19 +0200 |
---|---|---|
committer | Claudiu Zissulescu <claziss@synopsys.com> | 2016-10-14 13:52:15 +0200 |
commit | e5b06ef06b062f0626462abb182ee5470cf798bc (patch) | |
tree | c0df3f5db56418cfaf7e1cd62bcc070d9d1cf53e /include | |
parent | afb1110bfa4fe150cb2f2c58329551bd82cb3627 (diff) | |
download | fsf-binutils-gdb-e5b06ef06b062f0626462abb182ee5470cf798bc.zip fsf-binutils-gdb-e5b06ef06b062f0626462abb182ee5470cf798bc.tar.gz fsf-binutils-gdb-e5b06ef06b062f0626462abb182ee5470cf798bc.tar.bz2 |
[ARC] Disassembler: fix LIMM detection for short instructions.
The ARC (short) instructions are using a special register number to
indicate is the instruction uses a long immediate (LIMM). In the case
of short instruction, this LIMM indicator depends on the ISA version
used. Thus, for ARCv1 processors, the LIMM indicator is 0x3E, the same
value used in "long" instructions. However, for the ARCv2 processors,
this LIMM indicator is 0x1E.
This patch fixes the LIMM detection for ARCv1 ISA and adds two tests.
gas/
2016-10-13 Claudiu Zissulescu <claziss@synopsys.com>
* testsuite/gas/arc/shortlimm_a7.d: New file.
* testsuite/gas/arc/shortlimm_a7.s: Likewise.
* testsuite/gas/arc/shortlimm_hs.d: Likewise.
* testsuite/gas/arc/shortlimm_hs.s: Likewise.
include/
2016-10-13 Claudiu Zissulescu <claziss@synopsys.com>
* opcode/arc.h (ARC_OPCODE_ARCV2): New define.
opcodes/
2016-10-13 Claudiu Zissulescu <claziss@synopsys.com>
* arc-dis.c (find_format_from_table): Discriminate LIMM indicator
usage on ISA basis.
Diffstat (limited to 'include')
-rw-r--r-- | include/ChangeLog | 4 | ||||
-rw-r--r-- | include/opcode/arc.h | 1 |
2 files changed, 5 insertions, 0 deletions
diff --git a/include/ChangeLog b/include/ChangeLog index 652bb21..6f68130 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2016-10-14 Claudiu Zissulescu <claziss@synopsys.com> + + * opcode/arc.h (ARC_OPCODE_ARCV2): New define. + 2016-09-29 Alan Modra <amodra@gmail.com> * opcode/ppc.h (PPC_OPERAND_OPTIONAL32): Define. diff --git a/include/opcode/arc.h b/include/opcode/arc.h index 09e973b..724fdee 100644 --- a/include/opcode/arc.h +++ b/include/opcode/arc.h @@ -186,6 +186,7 @@ extern const struct arc_opcode arc_opcodes[]; #define ARC_OPCODE_ARCALL (ARC_OPCODE_ARC600 | ARC_OPCODE_ARC700 \ | ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS) #define ARC_OPCODE_ARCFPX (ARC_OPCODE_ARC700 | ARC_OPCODE_ARCv2EM) +#define ARC_OPCODE_ARCV2 (ARC_OPCODE_ARCv2EM | ARC_OPCODE_ARCv2HS) /* CPU extensions. */ #define ARC_EA 0x0001 |