diff options
author | Weiwei Li <liweiwei@iscas.ac.cn> | 2022-04-13 15:22:41 +0800 |
---|---|---|
committer | Weiwei Li <liweiwei@iscas.ac.cn> | 2022-04-14 09:40:17 +0800 |
commit | 750f008e723bb3b20cec41a47ed5cec549447665 (patch) | |
tree | b2f2bc14c74ea90073803517579465c7c7f368a2 /riscv/rocc.cc | |
parent | c3c04a8be2c641de2b198b90df6c1538eb204120 (diff) | |
download | spike-750f008e723bb3b20cec41a47ed5cec549447665.zip spike-750f008e723bb3b20cec41a47ed5cec549447665.tar.gz spike-750f008e723bb3b20cec41a47ed5cec549447665.tar.bz2 |
add support for overlap instructions
* add DECLARE_OVERLAP_INSN to bind instructions with extension
* add overlap_list.h to contain the declare of all overlapping instructions
* make func function for overlapping instruction return NULL when the coresponding
extension(s) is not supported.
Diffstat (limited to 'riscv/rocc.cc')
-rw-r--r-- | riscv/rocc.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/riscv/rocc.cc b/riscv/rocc.cc index f50934f..2d09095 100644 --- a/riscv/rocc.cc +++ b/riscv/rocc.cc @@ -32,10 +32,10 @@ customX(3) std::vector<insn_desc_t> rocc_t::get_instructions() { std::vector<insn_desc_t> insns; - insns.push_back((insn_desc_t){0x0b, 0x7f, &::illegal_instruction, c0, &::illegal_instruction, c0}); - insns.push_back((insn_desc_t){0x2b, 0x7f, &::illegal_instruction, c1, &::illegal_instruction, c1}); - insns.push_back((insn_desc_t){0x5b, 0x7f, &::illegal_instruction, c2, &::illegal_instruction, c2}); - insns.push_back((insn_desc_t){0x7b, 0x7f, &::illegal_instruction, c3, &::illegal_instruction, c3}); + insns.push_back((insn_desc_t){true, 0x0b, 0x7f, &::illegal_instruction, c0, &::illegal_instruction, c0}); + insns.push_back((insn_desc_t){true, 0x2b, 0x7f, &::illegal_instruction, c1, &::illegal_instruction, c1}); + insns.push_back((insn_desc_t){true, 0x5b, 0x7f, &::illegal_instruction, c2, &::illegal_instruction, c2}); + insns.push_back((insn_desc_t){true, 0x7b, 0x7f, &::illegal_instruction, c3, &::illegal_instruction, c3}); return insns; } |