+2016-10-14 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.
+
2016-10-11 Nick Clifton <nickc@redhat.com>
* gas/arm/tls.d: Adjust output to match change in objdump.
--- /dev/null
+#objdump: -d
+
+.*: +file format .*arc.*
+
+
+Disassembly of section .text:
+
+00000000 <.text>:
+ 0: 70c7 0000 1000 add_s r0,r0,0x1000
+ 6: 72d7 0000 1000 cmp_s r2,0x1000
+ c: 72cf 0000 1000 mov_s r2,0x1000
--- /dev/null
+ .cpu ARC700
+ .text
+ add_s r0,r0,0x1000
+ cmp_s r2,0x1000
+ mov_s r2,0x1000
--- /dev/null
+#objdump: -d
+
+.*: +file format .*arc.*
+
+
+Disassembly of section .text:
+
+00000000 <.text>:
+ 0: 70c3 0000 1000 add_s r0,r0,0x1000
+ 6: 71c7 0000 1001 add_s 0,0x1001,1
+ c: 72d3 0000 1000 cmp_s r2,0x1000
+ 12: 71d7 0000 1000 cmp_s 0x1000,1
+ 18: 42c3 0000 1000 mov_s r2,0x1000
+ 1e: 46db 0000 1000 mov_s 0,0x1000
+ 24: 72df 0000 1000 mov_s.ne r2,0x1000
--- /dev/null
+ .cpu HS
+ .text
+ add_s r0,r0,0x1000
+ add_s 0,0x1001,1
+ cmp_s r2,0x1000
+ cmp_s 0x1000,1
+ mov_s r2,0x1000
+ mov_s 0,0x1000
+ mov_s.ne r2,0x1000
+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.
#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
+2016-10-14 Claudiu Zissulescu <claziss@synopsys.com>
+
+ * arc-dis.c (find_format_from_table): Discriminate LIMM indicator
+ usage on ISA basis.
+
2016-10-11 Jiong Wang <jiong.wang@arm.com>
PR target/20666
/* Possible candidate, check the operands. */
for (opidx = opcode->operands; *opidx; opidx++)
{
- int value;
+ int value, limmind;
const struct arc_operand *operand = &arc_operands[*opidx];
if (operand->flags & ARC_OPERAND_FAKE)
/* Check for LIMM indicator. If it is there, then make sure
we pick the right format. */
+ limmind = (isa_mask & ARC_OPCODE_ARCV2) ? 0x1E : 0x3E;
if (operand->flags & ARC_OPERAND_IR
&& !(operand->flags & ARC_OPERAND_LIMM))
{
if ((value == 0x3E && insn_len == 4)
- || (value == 0x1E && insn_len == 2))
+ || (value == limmind && insn_len == 2))
{
invalid = TRUE;
break;