diff options
author | Cooper Qu <cooper.qu@linux.alibaba.com> | 2020-08-24 20:13:47 +0800 |
---|---|---|
committer | Lifang Xia <lifang_xia@c-sky.com> | 2020-08-24 20:27:07 +0800 |
commit | 531c73a37bb4477f8337bb9dddc36d552ee76056 (patch) | |
tree | e9602367da318d2f52ee872304c8fe3f95d6dc60 /opcodes/csky-dis.c | |
parent | f1a9fbd995b8997b7ed7e8e6a83129e923400a58 (diff) | |
download | gdb-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.c | 9 |
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) |