This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] [ARC] Fix case-sensitivity for extension instructions.


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f02806be1ff3d25fdf4d9e06ced33c4b138458aa

commit f02806be1ff3d25fdf4d9e06ced33c4b138458aa
Author: claziss <claziss@synopsys.com>
Date:   Mon Jul 23 11:09:43 2018 +0200

    [ARC] Fix case-sensitivity for extension instructions.
    
    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.

Diff:
---
 gas/ChangeLog                         | 7 +++++++
 gas/config/tc-arc.c                   | 4 ++++
 gas/testsuite/gas/arc/textinsn_case.d | 9 +++++++++
 gas/testsuite/gas/arc/textinsn_case.s | 6 ++++++
 4 files changed, 26 insertions(+)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index 5df35569..dbaa02d 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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
diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c
index cd90fdf..a1ce34d 100644
--- a/gas/config/tc-arc.c
+++ b/gas/config/tc-arc.c
@@ -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
index 0000000..f7ef91f
--- /dev/null
+++ b/gas/testsuite/gas/arc/textinsn_case.d
@@ -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
index 0000000..4d04968
--- /dev/null
+++ b/gas/testsuite/gas/arc/textinsn_case.s
@@ -0,0 +1,6 @@
+	.cpu em
+	.extInstruction aes_qRoundF, 7, 0x25, SUFFIX_COND, SYNTAX_3OP
+
+	.text
+test:
+	aes_qRoundF  r1,r2,r3


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]