[ARC] Fix case-sensitivity for extension instructions.
authorclaziss <claziss@synopsys.com>
Mon, 23 Jul 2018 09:09:43 +0000 (11:09 +0200)
committerClaudiu Zissulescu <claziss@gmail.com>
Mon, 23 Jul 2018 09:09:43 +0000 (11:09 +0200)
In ARC assembler, we accept case insensitive mnemonics, but this was
not the case for extension instruction, fix it and add a test.

gas/
Claudiu Zissulescu <claziss@synopsys.com>

* config/tc-arc.c (tokenize_extinsn): Convert to lower case the
name of extension instructions.
* testsuite/gas/arc/textinsn_case.d: New file.
* testsuite/gas/arc/textinsn_case.s: Likewise.

gas/ChangeLog
gas/config/tc-arc.c
gas/testsuite/gas/arc/textinsn_case.d [new file with mode: 0644]
gas/testsuite/gas/arc/textinsn_case.s [new file with mode: 0644]

index 5df3556..dbaa02d 100644 (file)
@@ -1,3 +1,10 @@
+2018-07-23  Claudiu Zissulescu <claziss@synopsys.com>
+
+       * config/tc-arc.c (tokenize_extinsn): Convert to lower case the
+       name of extension instructions.
+       * testsuite/gas/arc/textinsn_case.d: New file.
+       * testsuite/gas/arc/textinsn_case.s: Likewise.
+
 2018-07-22  H.J. Lu  <hongjiu.lu@intel.com>
 
        * config/tc-i386.c (build_vex_prefix): Determine vector
index cd90fdf..a1ce34d 100644 (file)
@@ -4369,6 +4369,10 @@ tokenize_extinsn (extInstruction_t *einsn)
   insn_name = xstrdup (p);
   restore_line_pointer (c);
 
+  /* Convert to lower case.  */
+  for (p = insn_name; *p; ++p)
+    *p = TOLOWER (*p);
+
   /* 2nd: get major opcode.  */
   if (*input_line_pointer != ',')
     {
diff --git a/gas/testsuite/gas/arc/textinsn_case.d b/gas/testsuite/gas/arc/textinsn_case.d
new file mode 100644 (file)
index 0000000..f7ef91f
--- /dev/null
@@ -0,0 +1,9 @@
+#objdump: -d
+
+.*: +file format .*arc.*
+
+
+Disassembly of section .text:
+
+[0-9a-f]+ <test>:
+\s+[0-9a-f]+:\s+3a25 00c1\s+aes_qroundf\s+r1,r2,r3
diff --git a/gas/testsuite/gas/arc/textinsn_case.s b/gas/testsuite/gas/arc/textinsn_case.s
new file mode 100644 (file)
index 0000000..4d04968
--- /dev/null
@@ -0,0 +1,6 @@
+       .cpu em
+       .extInstruction aes_qRoundF, 7, 0x25, SUFFIX_COND, SYNTAX_3OP
+
+       .text
+test:
+       aes_qRoundF  r1,r2,r3