CSKY: Add new arch CK860.
authorCooper Qu <cooper.qu@linux.alibaba.com>
Mon, 24 Aug 2020 12:13:47 +0000 (20:13 +0800)
committerLifang Xia <lifang_xia@c-sky.com>
Mon, 24 Aug 2020 12:27:07 +0000 (20:27 +0800)
bfd/
        * bfd-in2.h (bfd_mach_ck860): New.
        * cpu-csky.c (arch_info_struct): Add item for CK860.

gas/
        * config/tc-csky.c (csky_archs): Add item for CK860,
        change ck810 and ck807's arch_flag.
        (csky_cpus): Add item for CK860.
        (md_begin): Enable DSP for CK810 and CK807 by default.
        (md_apply_fix): Fix CKCORE_TLS_IE32 relocation failure.
        * gas/testsuite/gas/csky/cskyv2_all.d: Change 'sync 0'
        to 'sync'.
        * gas/testsuite/gas/csky/cskyv2_all.s: Likewise.
        * gas/testsuite/gas/csky/cskyv2_ck860.d: New.
        * gas/testsuite/gas/csky/cskyv2_ck860.s: New.
        * gas/testsuite/gas/csky/enhance_dsp.d: Change plsli.u16
        to plsli.16.
        * gas/testsuite/gas/csky/enhance_dsp.s: Likewise.

include/
        * opcode/csky.h (CSKYV2_ISA_10E60): New.
        (CSKY_ARCH_860): New.

opcode/
        * csky-dis.c (csky_find_inst_info): Skip CK860's instructions
        in other CPUs to speed up disassembling.
        * csky-opc.h (csky_v2_opcodes): Add CK860's instructions,
        Change plsli.u16 to plsli.16, change sync's operand format.

Change-Id: I80ec1a9c0cc600d668082a9b91ae6d45b33ec0fc

16 files changed:
bfd/ChangeLog
bfd/bfd-in2.h
bfd/cpu-csky.c
gas/ChangeLog
gas/config/tc-csky.c
gas/testsuite/gas/csky/cskyv2_all.d
gas/testsuite/gas/csky/cskyv2_all.s
gas/testsuite/gas/csky/cskyv2_ck860.d [new file with mode: 0644]
gas/testsuite/gas/csky/cskyv2_ck860.s [new file with mode: 0644]
gas/testsuite/gas/csky/enhance_dsp.d
gas/testsuite/gas/csky/enhance_dsp.s
include/ChangeLog
include/opcode/csky.h
opcodes/ChangeLog
opcodes/csky-dis.c
opcodes/csky-opc.h

index 08e9763afb3d28b0b685b832f3be9450598cbcb8..490aec6d9de0d61c8c49d2a3622bf82c756c108e 100644 (file)
@@ -1,3 +1,8 @@
+2020-08-24  Cooper Qu  <cooper.qu@linux.alibaba.com>
+
+       * bfd-in2.h (bfd_mach_ck860): New.
+       * cpu-csky.c (arch_info_struct): Add item for CK860.
+
 2020-08-24  Alan Modra  <amodra@gmail.com>
 
        * elf32-ppc.c (ppc_elf_check_relocs): Set has_tls_reloc for
index 94d3195836a4d19882f0a03b716ce795cb340e02..a16d03780e2fa2f8428d36e1e180a577c203737e 100644 (file)
@@ -1952,6 +1952,7 @@ enum bfd_architecture
 #define bfd_mach_ck803         5
 #define bfd_mach_ck807         6
 #define bfd_mach_ck810         7
+#define bfd_mach_ck860         8
   bfd_arch_last
   };
 
index cd537278f04d880a5e26efcf60f86878030ddcda..4ec6db62984465a6368ac5c14c6c9eec215038c9 100644 (file)
@@ -53,6 +53,7 @@ static const bfd_arch_info_type arch_info_struct[] =
   N (bfd_mach_ck803,   "csky:ck803",    FALSE, & arch_info_struct[5]),
   N (bfd_mach_ck807,   "csky:ck807",    FALSE, & arch_info_struct[6]),
   N (bfd_mach_ck810,   "csky:ck810",    FALSE, & arch_info_struct[7]),
+  N (bfd_mach_ck860,   "csky:ck860",    FALSE, & arch_info_struct[8]),
   N (bfd_mach_ck_unknown, "csky:any",   FALSE, NULL)
 };
 
index 60114ed2226dc607a9700e7661407ec2124446bd..b6f4eddaa091b0a3d15a623d20642a0bf6a71e71 100644 (file)
@@ -1,3 +1,19 @@
+2020-08-24  Cooper Qu  <cooper.qu@linux.alibaba.com>
+
+       * config/tc-csky.c (csky_archs): Add item for CK860,
+       change ck810 and ck807's arch_flag.
+       (csky_cpus): Add item for CK860.
+       (md_begin): Enable DSP for CK810 and CK807 by default.
+       (md_apply_fix): Fix CKCORE_TLS_IE32 relocation failure.
+       * gas/testsuite/gas/csky/cskyv2_all.d: Change 'sync 0'
+       to 'sync'.
+       * gas/testsuite/gas/csky/cskyv2_all.s: Likewise.
+       * gas/testsuite/gas/csky/cskyv2_ck860.d: New.
+       * gas/testsuite/gas/csky/cskyv2_ck860.s: New.
+       * gas/testsuite/gas/csky/enhance_dsp.d: Change plsli.u16
+       to plsli.16.
+       * gas/testsuite/gas/csky/enhance_dsp.s: Likewise.
+
 2020-08-24  Alan Modra  <amodra@gmail.com>
 
        * config/tc-tic54x.c (stag_add_field_symbols): Don't free "name"
index d16c448f050ef7432f1a737e32432805245ed066..f621fa9824b2f4ed6a70148b187af843648c365d 100644 (file)
@@ -564,13 +564,15 @@ const struct csky_arch_info csky_archs[] =
   {"ck801",  CSKY_ARCH_801,  bfd_mach_ck801},
   {"ck802",  CSKY_ARCH_802,  bfd_mach_ck802},
   {"ck803",  CSKY_ARCH_803,  bfd_mach_ck803},
-#define CSKY_ARCH_807_BASE    CSKY_ARCH_807 | CSKY_ARCH_DSP
-#define CSKY_ARCH_810_BASE    CSKY_ARCH_810 | CSKY_ARCH_DSP
-  {"ck807",  CSKY_ARCH_807_BASE,  bfd_mach_ck807},
-  {"ck810",  CSKY_ARCH_810_BASE,  bfd_mach_ck810},
+  {"ck807",  CSKY_ARCH_807,  bfd_mach_ck807},
+  {"ck810",  CSKY_ARCH_810,  bfd_mach_ck810},
+  {"ck860",  CSKY_ARCH_860,  bfd_mach_ck860},
   {NULL, 0, 0}
 };
 
+#define CSKY_ARCH_807_BASE    CSKY_ARCH_807 | CSKY_ARCH_DSP
+#define CSKY_ARCH_810_BASE    CSKY_ARCH_810 | CSKY_ARCH_DSP
+
 /* C-SKY cpus table.  */
 const struct csky_cpu_info csky_cpus[] =
 {
@@ -683,6 +685,11 @@ const struct csky_cpu_info csky_cpus[] =
   {"ck810ft", CSKY_ARCH_810_BASE | CSKY_ARCH_FLOAT, CSKY_ISA_810 | CSKYV2_ISA_DSP | CSKY_ISA_VDSP | CSKY_ISA_FLOAT_810 | CSKY_ISA_TRUST},
   {"ck810ftv", CSKY_ARCH_810_BASE | CSKY_ARCH_FLOAT, CSKY_ISA_810 | CSKYV2_ISA_DSP | CSKY_ISA_VDSP | CSKY_ISA_FLOAT_810 | CSKY_ISA_TRUST},
 
+  /* CK860 Series.  */
+#define CSKY_ISA_860    (CSKY_ISA_810 | CSKYV2_ISA_10E60)
+#define CSKY_ISA_FLOAT_860 (CSKY_ISA_FLOAT_810)
+  {"ck860", CSKY_ARCH_860, CSKY_ISA_860},
+
   {NULL, 0, 0}
 };
 
@@ -1207,7 +1214,14 @@ md_begin (void)
        as_warn (_("-mcpu conflict with other model parameters, using -mcpu"));
     }
   else if (arch_flag != 0)
-    mach_flag |= arch_flag | flags;
+    {
+      if ((arch_flag & CSKY_ARCH_MASK) == CSKY_ARCH_810
+         || ((arch_flag & CSKY_ARCH_MASK) == CSKY_ARCH_807)) {
+         /* CK807 and CK810 have DSP instruction by default.  */
+         mach_flag |= CSKY_ARCH_DSP;
+      }
+      mach_flag |= arch_flag | flags;
+    }
   else
     {
 #ifdef TARGET_WITH_CPU
@@ -4941,6 +4955,7 @@ md_apply_fix (fixS   *fixP,
           struct tls_addend *ta = &(fixP->tc_fix_data);
           fixP->fx_offset = (fixP->fx_frag->fr_address + fixP->fx_where
                              - (ta->frag->fr_address + ta->offset));
+          *valP = fixP->fx_offset;
         }
         /* Fall through.  */
        case BFD_RELOC_CKCORE_TLS_LE32:
@@ -5002,6 +5017,7 @@ md_apply_fix (fixS   *fixP,
        struct tls_addend *ta = &(fixP->tc_fix_data);
        fixP->fx_offset = (fixP->fx_frag->fr_address + fixP->fx_where
                           - (ta->frag->fr_address + ta->offset));
+       *valP = fixP->fx_offset;
       }
       /* Fall through.  */
     case BFD_RELOC_CKCORE_TLS_LE32:
index b17a5e74f57a3cb63405fdf6ef1cd36b63f9b1f8..5092690aa3f515707f10c6432c5fa185a3a1cde1 100644 (file)
@@ -163,7 +163,7 @@ Disassembly of section \.text:
 \s*[0-9a-f]*:\s*c4139c40\s*mthi\s*r19
 \s*[0-9a-f]*:\s*c4009c83\s*mflo\s*r3
 \s*[0-9a-f]*:\s*c4089d00\s*mtlo\s*r8
-\s*[0-9a-f]*:\s*c0000420\s*sync\s*0
+\s*[0-9a-f]*:\s*c0000420\s*sync
 \s*[0-9a-f]*:\s*c0200420\s*sync\s*1
 \s*[0-9a-f]*:\s*c2800420\s*sync\s*20
 \s*[0-9a-f]*:\s*c0601c20\s*idly\s*4
index 3826b0602c8acce849db62c5a61d3a1ad1ee72fc..6e6902e077bd998d044c0dd5ceb05cf08eaab63d 100644 (file)
@@ -157,7 +157,7 @@ all:
    mthi   r19
    mflo   r3
    mtlo   r8
-   sync   0
+   sync
    sync   1
    sync   20
    idly   0
diff --git a/gas/testsuite/gas/csky/cskyv2_ck860.d b/gas/testsuite/gas/csky/cskyv2_ck860.d
new file mode 100644 (file)
index 0000000..2beb884
--- /dev/null
@@ -0,0 +1,41 @@
+# name: csky - ck860
+#as: -mcpu=ck860
+#objdump: -D
+
+.*: +file format .*csky.*
+
+Disassembly of section \.text:
+#...
+\s*[0-9a-f]*:\s*c0008820\s*tlbi.all
+\s*[0-9a-f]*:\s*c2008820\s*tlbi.alls
+\s*[0-9a-f]*:\s*c0618820\s*tlbi.va\s*r1
+\s*[0-9a-f]*:\s*c26f8820\s*tlbi.vas\s*r15
+\s*[0-9a-f]*:\s*c0218820\s*tlbi.asid\s*r1
+\s*[0-9a-f]*:\s*c22f8820\s*tlbi.asids\s*r15
+\s*[0-9a-f]*:\s*c04f8820\s*tlbi.vaa\s*r15
+\s*[0-9a-f]*:\s*c24f8820\s*tlbi.vaas\s*r15
+\s*[0-9a-f]*:\s*c1df9420\s*dcache.cisw\s*r31
+\s*[0-9a-f]*:\s*c1ff9420\s*dcache.civa\s*r31
+\s*[0-9a-f]*:\s*c1809420\s*dcache.ciall
+\s*[0-9a-f]*:\s*c0df9420\s*dcache.csw\s*r31
+\s*[0-9a-f]*:\s*c0ff9420\s*dcache.cva\s*r31
+\s*[0-9a-f]*:\s*c2ff9420\s*dcache.cval1\s*r31
+\s*[0-9a-f]*:\s*c0809420\s*dcache.call
+\s*[0-9a-f]*:\s*c15f9420\s*dcache.isw\s*r31
+\s*[0-9a-f]*:\s*c17f9420\s*dcache.iva\s*r31
+\s*[0-9a-f]*:\s*c1009420\s*dcache.iall
+\s*[0-9a-f]*:\s*c1009020\s*icache.iall
+\s*[0-9a-f]*:\s*c3009020\s*icache.ialls
+\s*[0-9a-f]*:\s*c0bf9020\s*icache.iva\s*r31
+\s*[0-9a-f]*:\s*c000842f\s*bar.brwarw
+\s*[0-9a-f]*:\s*c200842f\s*bar.brwarws
+\s*[0-9a-f]*:\s*c0008425\s*bar.brar
+\s*[0-9a-f]*:\s*c2008425\s*bar.brars
+\s*[0-9a-f]*:\s*c000842a\s*bar.bwaw
+\s*[0-9a-f]*:\s*c200842a\s*bar.bwaws
+\s*[0-9a-f]*:\s*c2200420\s*sync.is
+\s*[0-9a-f]*:\s*c0200420\s*sync.i
+\s*[0-9a-f]*:\s*c2000420\s*sync.s
+\s*[0-9a-f]*:\s*c0000420\s*sync
+\s*[0-9a-f]*:\s*d8437000\s*ldex.w\s*r2,\s*\(r3,\s*0x0\)
+\s*[0-9a-f]*:\s*dc437000\s*stex.w\s*r2,\s*\(r3,\s*0x0\)
\ No newline at end of file
diff --git a/gas/testsuite/gas/csky/cskyv2_ck860.s b/gas/testsuite/gas/csky/cskyv2_ck860.s
new file mode 100644 (file)
index 0000000..632b433
--- /dev/null
@@ -0,0 +1,35 @@
+ck860:
+     tlbi.all
+     tlbi.alls
+     tlbi.va  r1
+     tlbi.vas r15
+     tlbi.asid r1
+     tlbi.asids r15
+     tlbi.vaa r15
+     tlbi.vaas r15
+     dcache.cisw r31
+     dcache.civa r31
+     dcache.ciall
+     dcache.csw r31
+     dcache.cva r31
+     dcache.cval1 r31
+     dcache.call
+     dcache.isw r31
+     dcache.iva r31
+     dcache.iall
+     icache.iall
+     icache.ialls
+     icache.iva r31
+     bar.brwarw
+     bar.brwarws
+     bar.brar
+     bar.brars
+     bar.bwaw
+     bar.bwaws
+     sync.is
+     sync.i
+     sync.s
+     sync
+
+     ldex.w r2, (r3, 0)
+     stex.w r2, (r3, 0)
index eaf91259f8b86f838c4cd30f08ef646c79cdfa45..96d26ab6c50fd2f75c9abaa8f884eaba77067a64 100644 (file)
@@ -109,7 +109,7 @@ Disassembly of section \.text:
 \s*[0-9a-f]*:\s*f883d242\s*plsr\.u16\s*r2,\s*r3,\s*r4
 \s*[0-9a-f]*:\s*f8e3d302\s*plsri\.u16\.r\s*r2,\s*r3,\s*8
 \s*[0-9a-f]*:\s*f883d342\s*plsr\.u16\.r\s*r2,\s*r3,\s*r4
-\s*[0-9a-f]*:\s*f8e3d402\s*plsli\.u16\s*r2,\s*r3,\s*8
+\s*[0-9a-f]*:\s*f8e3d402\s*plsli\.16\s*r2,\s*r3,\s*8
 \s*[0-9a-f]*:\s*fa03d442\s*plsl\.u16\s*r2,\s*r3,\s*r16
 \s*[0-9a-f]*:\s*f8e3d502\s*plsli\.u16\.s\s*r2,\s*r3,\s*8
 \s*[0-9a-f]*:\s*f8e3d582\s*plsli\.s16\.s\s*r2,\s*r3,\s*8
index 755235dab3a8cf22dcd543144d756ea0d895e91f..32772e27097b11f43581ae3737a422b69bd41ba8 100644 (file)
@@ -109,7 +109,7 @@ hello:
     plsr.u16     r2, r3, r4
     plsri.u16.r  r2, r3, 8
     plsr.u16.r   r2, r3, r4
-    plsli.u16    r2, r3, 8
+    plsli.16    r2, r3, 8
     plsl.u16     r2, r3, r16
     plsli.u16.s  r2, r3, 8
     plsli.s16.s  r2, r3, 8
index 22bf5a4c0417a387c36c1b0e1cee499aadcdcb1a..2ec02dc5000e1e06b296ab4f40e40c4060f359ac 100644 (file)
@@ -1,3 +1,8 @@
+2020-08-24  Cooper Qu  <cooper.qu@linux.alibaba.com>
+
+       * opcode/csky.h (CSKYV2_ISA_10E60): New.
+       (CSKY_ARCH_860): New.
+
 2020-08-21  Cooper Qu  <cooper.qu@linux.alibaba.com>
 
        * csky.h (CSKYV2_ISA_3E3R2): New.
index 9b9dcc3289e855542ed6135820b3c80499faa24a..098bdc9ba651abcaf52d9e9e266c1c3b04658846 100644 (file)
@@ -30,6 +30,7 @@
 #define CSKYV2_ISA_7E10     (1 << 5)
 #define CSKYV2_ISA_3E3R1    (1 << 6)
 #define CSKYV2_ISA_3E3R2    (1 << 7)
+#define CSKYV2_ISA_10E60    (1 << 8)
 
 #define CSKY_ISA_TRUST      (1 << 11)
 #define CSKY_ISA_CACHE      (1 << 12)
@@ -70,6 +71,7 @@
 #define CSKY_ARCH_803       0x9
 #define CSKY_ARCH_807       0x6
 #define CSKY_ARCH_810       0x8
+#define CSKY_ARCH_860       0xb
 
 #define CSKY_ARCH_MAC       (1 << 15)
 #define CSKY_ARCH_DSP       (1 << 14)
index effcd63845faedbe55397b48d40cf94fedee54e6..f2dbc22e8065668dafeaa1ca11616ef9033266b3 100644 (file)
@@ -1,3 +1,10 @@
+2020-08-24  Cooper Qu  <cooper.qu@linux.alibaba.com>
+
+       * csky-dis.c (csky_find_inst_info): Skip CK860's instructions
+       in other CPUs to speed up disassembling.
+       * csky-opc.h (csky_v2_opcodes): Add CK860's instructions,
+       Change plsli.u16 to plsli.16, change sync's operand format.
+
 2020-08-21  Cooper Qu  <cooper.qu@linux.alibaba.com>
 
        * csky-opc.h (csky_v2_opcodes): Add instruction bnezad.
index bc6820ae0765f0e1404d189811c7008dd98bc9e8..537725baa405ff906632b65eb835c12df157b102 100644 (file)
@@ -159,6 +159,15 @@ csky_find_inst_info (struct csky_opcode_info const **pinfo,
   p = g_opcodeP;
   while (p->mnemonic)
     {
+      /* FIXME: Skip 860's instruction in other CPUs. It is not suitable.
+        These codes need to be optimized.  */
+      if (((CSKY_ARCH_MASK & mach_flag) != CSKY_ARCH_860)
+         && (p->isa_flag32 & CSKYV2_ISA_10E60))
+       {
+         p++;
+         continue;
+       }
+
       /* Get the opcode mask.  */
       for (i = 0; i < OP_TABLE_NUM; i++)
        if (length == 2)
index 30894033367a6bca5d9e1241bc962adbdd6cc230..796d3757024a13e0eb6bfcabd6dabdbbc551fb6f 100644 (file)
@@ -3401,11 +3401,6 @@ const struct csky_opcode csky_v2_opcodes[] =
                        (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
                        (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
          CSKY_ISA_FLOAT_1E2),
-    DOP32 ("sync",
-          OPCODE_INFO1 (0xc0000420,
-                        (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
-          OPCODE_INFO0 (0xc0000420),
-          CSKYV2_ISA_E1),
     DOP32 ("idly",
           OPCODE_INFO1 (0xc0001c20,
                         (21_25, OIMM5b_IDLY, OPRND_SHIFT_0_BIT)),
@@ -4681,6 +4676,117 @@ const struct csky_opcode csky_v2_opcodes[] =
 #undef _RELAX
 #define _RELAX      0
 
+  /* CK860 instructions.  */
+  OP32("sync.is",
+       OPCODE_INFO0(0xc2200420),
+       CSKYV2_ISA_10E60),
+  OP32("sync.i",
+       OPCODE_INFO0(0xc0200420),
+       CSKYV2_ISA_10E60),
+  OP32("sync.s",
+       OPCODE_INFO0(0xc2000420),
+       CSKYV2_ISA_10E60),
+  OP32("bar.brwarw",
+       OPCODE_INFO0(0xc000842f),
+       CSKYV2_ISA_10E60),
+  OP32("bar.brwarws",
+       OPCODE_INFO0(0xc200842f),
+       CSKYV2_ISA_10E60),
+  OP32("bar.brar",
+       OPCODE_INFO0(0xc0008425),
+       CSKYV2_ISA_10E60),
+  OP32("bar.brars",
+       OPCODE_INFO0(0xc2008425),
+       CSKYV2_ISA_10E60),
+  OP32("bar.bwaw",
+       OPCODE_INFO0(0xc000842a),
+       CSKYV2_ISA_10E60),
+  OP32("bar.bwaws",
+       OPCODE_INFO0(0xc200842a),
+       CSKYV2_ISA_10E60),
+  OP32("icache.iall",
+       OPCODE_INFO0(0xc1009020),
+       CSKYV2_ISA_10E60),
+  OP32("icache.ialls",
+       OPCODE_INFO0(0xc3009020),
+       CSKYV2_ISA_10E60),
+  OP32("icache.iva",
+       OPCODE_INFO1(0xc0a09020,
+                   (16_20, AREG, OPRND_SHIFT_0_BIT)),
+       CSKYV2_ISA_10E60),
+  OP32("dcache.iall",
+       OPCODE_INFO0(0xc1009420),
+       CSKYV2_ISA_10E60),
+  OP32("dcache.iva",
+       OPCODE_INFO1(0xc1609420,
+                   (16_20, AREG, OPRND_SHIFT_0_BIT)),
+       CSKYV2_ISA_10E60),
+  OP32("dcache.isw",
+       OPCODE_INFO1(0xc1409420,
+                   (16_20, AREG, OPRND_SHIFT_0_BIT)),
+       CSKYV2_ISA_10E60),
+  OP32("dcache.call",
+       OPCODE_INFO0(0xc0809420),
+       CSKYV2_ISA_10E60),
+  OP32("dcache.cva",
+       OPCODE_INFO1(0xc0e09420,
+                   (16_20, AREG, OPRND_SHIFT_0_BIT)),
+       CSKYV2_ISA_10E60),
+  OP32("dcache.cval1",
+       OPCODE_INFO1(0xc2e09420,
+                   (16_20, AREG, OPRND_SHIFT_0_BIT)),
+       CSKYV2_ISA_10E60),
+  OP32("dcache.csw",
+       OPCODE_INFO1(0xc0c09420,
+                   (16_20, AREG, OPRND_SHIFT_0_BIT)),
+       CSKYV2_ISA_10E60),
+  OP32("dcache.ciall",
+       OPCODE_INFO0(0xc1809420),
+       CSKYV2_ISA_10E60),
+  OP32("dcache.civa",
+       OPCODE_INFO1(0xc1e09420,
+                   (16_20, AREG, OPRND_SHIFT_0_BIT)),
+       CSKYV2_ISA_10E60),
+  OP32("dcache.cisw",
+       OPCODE_INFO1(0xc1c09420,
+                   (16_20, AREG, OPRND_SHIFT_0_BIT)),
+       CSKYV2_ISA_10E60),
+  OP32("tlbi.vaa",
+       OPCODE_INFO1(0xc0408820,
+                   (16_20, AREG, OPRND_SHIFT_0_BIT)),
+       CSKYV2_ISA_10E60),
+  OP32("tlbi.vaas",
+       OPCODE_INFO1(0xc2408820,
+                   (16_20, AREG, OPRND_SHIFT_0_BIT)),
+       CSKYV2_ISA_10E60),
+  OP32("tlbi.asid",
+       OPCODE_INFO1(0xc0208820,
+                   (16_20, AREG, OPRND_SHIFT_0_BIT)),
+       CSKYV2_ISA_10E60),
+  OP32("tlbi.asids",
+       OPCODE_INFO1(0xc2208820,
+                   (16_20, AREG, OPRND_SHIFT_0_BIT)),
+       CSKYV2_ISA_10E60),
+  OP32("tlbi.va",
+       OPCODE_INFO1(0xc0608820,
+                   (16_20, AREG, OPRND_SHIFT_0_BIT)),
+       CSKYV2_ISA_10E60),
+  OP32("tlbi.vas",
+       OPCODE_INFO1(0xc2608820,
+                   (16_20, AREG, OPRND_SHIFT_0_BIT)),
+       CSKYV2_ISA_10E60),
+  OP32("tlbi.all",
+       OPCODE_INFO0(0xc0008820),
+       CSKYV2_ISA_10E60),
+  OP32("tlbi.alls",
+       OPCODE_INFO0(0xc2008820),
+       CSKYV2_ISA_10E60),
+  DOP32("sync",
+       OPCODE_INFO0(0xc0000420),
+       OPCODE_INFO1(0xc0000420,
+                   (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
+       CSKYV2_ISA_E1),
+
     /* The followings are enhance DSP instructions.  */
     DOP32_WITH_WORK ("bloop",
                     OPCODE_INFO3 (0xe9c00000,
@@ -5325,7 +5431,7 @@ const struct csky_opcode csky_v2_opcodes[] =
                        (16_20, AREG, OPRND_SHIFT_0_BIT),
                        (21_25, AREG, OPRND_SHIFT_0_BIT)),
          CSKY_ISA_DSP_ENHANCE),
-    OP32 ("plsli.u16",
+    OP32 ("plsli.16",
          OPCODE_INFO3 (0xf800d400,
                        (0_4, AREG, OPRND_SHIFT_0_BIT),
                        (16_20, AREG, OPRND_SHIFT_0_BIT),