aboutsummaryrefslogtreecommitdiff
path: root/opcodes/csky-dis.c
diff options
context:
space:
mode:
authorCooper Qu <cooper.qu@linux.alibaba.com>2020-08-24 20:13:47 +0800
committerLifang Xia <lifang_xia@c-sky.com>2020-08-24 20:27:07 +0800
commit531c73a37bb4477f8337bb9dddc36d552ee76056 (patch)
treee9602367da318d2f52ee872304c8fe3f95d6dc60 /opcodes/csky-dis.c
parentf1a9fbd995b8997b7ed7e8e6a83129e923400a58 (diff)
downloadgdb-531c73a37bb4477f8337bb9dddc36d552ee76056.zip
gdb-531c73a37bb4477f8337bb9dddc36d552ee76056.tar.gz
gdb-531c73a37bb4477f8337bb9dddc36d552ee76056.tar.bz2
CSKY: Add new arch CK860.
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
Diffstat (limited to 'opcodes/csky-dis.c')
-rw-r--r--opcodes/csky-dis.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/opcodes/csky-dis.c b/opcodes/csky-dis.c
index bc6820a..537725b 100644
--- a/opcodes/csky-dis.c
+++ b/opcodes/csky-dis.c
@@ -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)