aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2016-03-21 18:49:34 +0000
committerAndrew Burgess <andrew.burgess@embecosm.com>2016-04-05 22:45:55 +0100
commit820f03ffe027367f275e9debb5f3f3376820ab37 (patch)
treee69feb8a812bbd46eb965333b7e77765e3ae0ed8 /gas
parent6e774b13c3b81ac2599812adf058796948ce7e95 (diff)
downloadgdb-820f03ffe027367f275e9debb5f3f3376820ab37.zip
gdb-820f03ffe027367f275e9debb5f3f3376820ab37.tar.gz
gdb-820f03ffe027367f275e9debb5f3f3376820ab37.tar.bz2
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.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/testsuite/gas/arc/nps400-1.d78
-rw-r--r--gas/testsuite/gas/arc/nps400-1.s60
3 files changed, 138 insertions, 5 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 53cf66a..ec9c4e2 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2016-04-05 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * testsuite/gas/arc/nps400-1.d: Update expected results.
+ * testsuite/gas/arc/nps400-1.s: Additional test cases.
+
2016-04-05 Claudiu Zissulescu <claziss@synopsys.com>
* config/tc-arc.c (is_code_density_p): Compare directly the
diff --git a/gas/testsuite/gas/arc/nps400-1.d b/gas/testsuite/gas/arc/nps400-1.d
index 294356a..6d4bc8d 100644
--- a/gas/testsuite/gas/arc/nps400-1.d
+++ b/gas/testsuite/gas/arc/nps400-1.d
@@ -9,10 +9,78 @@ Disassembly of section .text:
0: 4821 1485 movb r0,r0,r1,0x4,0x5,0x6
4: 4881 1485 movb r0,r0,r12,0x4,0x5,0x6
8: 4f81 1485 movb r15,r15,r12,0x4,0x5,0x6
- c: 4821 9485 movb.cl r0,r1,0x4,0x5,0x6
- 10: 48c1 9485 movb.cl r0,r14,0x4,0x5,0x6
- 14: 4d21 9485 movb.cl r13,r1,0x4,0x5,0x6
+ c: 4821 9485 movb\.cl r0,r1,0x4,0x5,0x6
+ 10: 48c1 9485 movb\.cl r0,r14,0x4,0x5,0x6
+ 14: 4d21 9485 movb\.cl r13,r1,0x4,0x5,0x6
18: 4808 04d2 movh r0,r0,0x4d2
1c: 4868 ffff movh r3,r3,0xffff
- 20: 4818 04d2 movh.cl r0,0x4d2
- 24: 4878 ffff movh.cl r3,0xffff
+ 20: 4818 04d2 movh\.cl r0,0x4d2
+ 24: 4878 ffff movh\.cl r3,0xffff
+ 28: 49cf 0906 movbi r14,r14,0x6,0x8,0x4
+ 2c: 4aff 0174 movbi\.f r23,r23,0x14,0xb,0x1
+ 30: 4bcf 864a movbi\.cl r30,0xa,0x12,0x2
+ 34: 48df 8c09 movbi\.f\.cl r6,0x9,0,0x8
+ 38: 4843 a845 decode1 r0,r0,r2,0x5,0xb
+ 3c: 4853 a845 decode1\.f r0,r0,r2,0x5,0xb
+ 40: 4843 d06b decode1\.cl r0,r2,0xb
+ 44: 4853 b472 decode1\.cl\.f r0,r2,0x12
+ 48: 4963 b803 fbset r1,r1,r3,0x3,0xf
+ 4c: 4973 b803 fbset\.f r1,r1,r3,0x3,0xf
+ 50: 4a83 3803 fbclr r2,r2,r12,0x3,0xf
+ 54: 4b93 3803 fbclr\.f r3,r3,r12,0x3,0xf
+ 58: 4a24 0012 encode0 r2,r1,0x12,0x1
+ 5c: 4814 7c00 encode0\.f r0,r0,0,0x20
+ 60: 4a24 801f encode1 r2,r1,0x1f,0x1
+ 64: 4814 fc00 encode1\.f r0,r0,0,0x20
+ 68: 3c2e 150a rflt r10,r12,r20
+ 6c: 3e2e 7500 1234 5678 rflt r0,0x12345678,r20
+ 74: 3e2e 137e rflt 0,r14,r13
+ 78: 3e2e 72be ffff ffff rflt 0,0xffffffff,r10
+ 80: 3d6e 0044 rflt r4,r5,0x1
+ 84: 3e6e 7083 1234 5678 rflt r3,0x12345678,0x2
+ 8c: 396e 013e rflt 0,r1,0x4
+ 90: 3e6e 707e ffff ffff rflt 0,0xffffffff,0x1
+ 98: 3a33 00c1 crc16 r1,r2,r3
+ 9c: 3e33 7144 ffff ffff crc16 r4,0xffffffff,r5
+ a4: 3f33 0f86 ffff ffff crc16 r6,r7,0xffffffff
+ ac: 3e33 7f88 ffff ffff crc16 r8,0xffffffff,0xffffffff
+ b4: 3933 12be crc16 0,r9,r10
+ b8: 3e33 72fe ffff ffff crc16 0,0xffffffff,r11
+ c0: 3c33 1fbe ffff ffff crc16 0,r12,0xffffffff
+ c8: 3e73 1fcd crc16 r13,r14,0x3f
+ cc: 3e73 7fcf ffff ffff crc16 r15,0xffffffff,0x3f
+ d4: 3873 2ffe crc16 0,r16,0x3f
+ d8: 3e73 7ffe ffff ffff crc16 0,0xffffffff,0x3f
+ e0: 3a33 80c1 crc16\.r r1,r2,r3
+ e4: 3e33 f144 ffff ffff crc16\.r r4,0xffffffff,r5
+ ec: 3f33 8f86 ffff ffff crc16\.r r6,r7,0xffffffff
+ f4: 3e33 ff88 ffff ffff crc16\.r r8,0xffffffff,0xffffffff
+ fc: 3933 92be crc16\.r 0,r9,r10
+ 100: 3e33 f2fe ffff ffff crc16\.r 0,0xffffffff,r11
+ 108: 3c33 9fbe ffff ffff crc16\.r 0,r12,0xffffffff
+ 110: 3e73 9fcd crc16\.r r13,r14,0x3f
+ 114: 3e73 ffcf ffff ffff crc16\.r r15,0xffffffff,0x3f
+ 11c: 3873 affe crc16\.r 0,r16,0x3f
+ 120: 3e73 fffe ffff ffff crc16\.r 0,0xffffffff,0x3f
+ 128: 3a34 00c1 crc32 r1,r2,r3
+ 12c: 3e34 7144 ffff ffff crc32 r4,0xffffffff,r5
+ 134: 3f34 0f86 ffff ffff crc32 r6,r7,0xffffffff
+ 13c: 3e34 7f88 ffff ffff crc32 r8,0xffffffff,0xffffffff
+ 144: 3934 12be crc32 0,r9,r10
+ 148: 3e34 72fe ffff ffff crc32 0,0xffffffff,r11
+ 150: 3c34 1fbe ffff ffff crc32 0,r12,0xffffffff
+ 158: 3e74 1fcd crc32 r13,r14,0x3f
+ 15c: 3e74 7fcf ffff ffff crc32 r15,0xffffffff,0x3f
+ 164: 3874 2ffe crc32 0,r16,0x3f
+ 168: 3e74 7ffe ffff ffff crc32 0,0xffffffff,0x3f
+ 170: 3a34 80c1 crc32\.r r1,r2,r3
+ 174: 3e34 f144 ffff ffff crc32\.r r4,0xffffffff,r5
+ 17c: 3f34 8f86 ffff ffff crc32\.r r6,r7,0xffffffff
+ 184: 3e34 ff88 ffff ffff crc32\.r r8,0xffffffff,0xffffffff
+ 18c: 3934 92be crc32\.r 0,r9,r10
+ 190: 3e34 f2fe ffff ffff crc32\.r 0,0xffffffff,r11
+ 198: 3c34 9fbe ffff ffff crc32\.r 0,r12,0xffffffff
+ 1a0: 3e74 9fcd crc32\.r r13,r14,0x3f
+ 1a4: 3e74 ffcf ffff ffff crc32\.r r15,0xffffffff,0x3f
+ 1ac: 3874 affe crc32\.r 0,r16,0x3f
+ 1b0: 3e74 fffe ffff ffff crc32\.r 0,0xffffffff,0x3f
diff --git a/gas/testsuite/gas/arc/nps400-1.s b/gas/testsuite/gas/arc/nps400-1.s
index 34d43d0..0c7c108 100644
--- a/gas/testsuite/gas/arc/nps400-1.s
+++ b/gas/testsuite/gas/arc/nps400-1.s
@@ -10,3 +10,63 @@
movh r3, r3, 0xffff
movh.cl r0, 1234
movh.cl r3, 0xffff
+
+ /* movbi */
+ movbi r14, r14, 6, 8, 4
+ movbi.f r23, r23, 20, 11, 1
+ movbi.cl r30, 10, 18, 2
+ movbi.f.cl r6, 9, 0, 8
+
+ /* decode1 */
+ decode1 r0, r0, r2, 5, 11
+ decode1.f r0, r0, r2, 5, 11
+ decode1.cl r0, r2, 11
+ decode1.cl.f r0, r2, 18
+
+ /* fbset */
+ fbset r1, r1, r3, 3, 15
+ fbset.f r1, r1, r3, 3, 15
+
+ /* fbclear */
+ fbclr r2, r2, r12, 3, 15
+ fbclr.f r3, r3, r12, 3, 15
+
+ /* encode0 */
+ encode0 r2, r1, 18, 1
+ encode0.f r0, r0, 0, 32
+
+ /* encode1 */
+ encode1 r2, r1, 31, 1
+ encode1.f r0, r0, 0, 32
+
+ /* rflt */
+ rflt r10,r12,r20
+ rflt r0,0x12345678,r20
+ rflt 0,r14,r13
+ rflt 0,0xffffffff,r10
+ rflt r4,r5,0x1
+ rflt r3,0x12345678,0x2
+ rflt 0,r1,0x4
+ rflt 0,0xffffffff,0x1
+
+ .macro crc_test mnem
+ \mnem r1,r2,r3
+ \mnem r4,0xffffffff,r5
+ \mnem r6,r7,0xffffffff
+ \mnem r8,0xffffffff,0xffffffff
+ \mnem 0,r9,r10
+ \mnem 0,0xffffffff,r11
+ \mnem 0,r12,0xffffffff
+ \mnem r13,r14,0x3f
+ \mnem r15,0xffffffff,0x3f
+ \mnem 0,r16,0x3f
+ \mnem 0,0xffffffff,0x3f
+ .endm
+
+ /* crc16 */
+ crc_test crc16
+ crc_test crc16.r
+
+ /* crc32 */
+ crc_test crc32
+ crc_test crc32.r