aboutsummaryrefslogtreecommitdiff
path: root/riscv/insns/pack.h
AgeCommit message (Collapse)AuthorFilesLines
2022-02-17Split Xbitmanip into its proposed component extensions (#918)Rupert Swarbrick1-1/+4
Before this patch, spike just had an "Xbitmanip" extension which covered everything in the proposed bitmanip extension that hadn't been ratified. The problem is that if you want to model (or verify) a processor that targetted just some of the proposed bitmanip extension, you couldn't configure Spike to do that. For example, the lowRISC Ibex processor has several different configurations. The "balanced" configuration targetted Zba, Zbb, Zbs, Zbf and Zbt of the 0.92 spec. With the Zba, Zbb and Zbs ratified, we'll now be able to use an ISA string like rv32imc_Zba_Zbb_Zbs_XZbf_XZbt and Spike will correctly fail to decode instructions like 'bcompress', which would have been decoded with Xbitmanip. This patch adds a new custom extension name for each part of the extension that wasn't fully ratified. These have an 'X' prefix so, for example, the bit permutation instructions that were proposed as Zbp can be found under XZbp. Specifying "Xbitmanip" gets all of these extensions, so its behaviour should be unchanged. Note that the slo(i) / sro(i) instructions have been moved from the proposed Zbb to XZbp. This matches a comment in the Change History section of v0.93 of the bitmanip spec: it seems that the authors forgot to also move them in Table 2.1 (which gives the lists of instructions for each extension). This change won't break anything that currently exists, but it took quite a while to figure out what was going on so I thought I'd leave a breadcrumb trail for the next engineer! The bulk of the patch is just defining some more entries in the isa_extension_t enum and rewriting each of the instructions to depend on the relevant entry. This is mostly a straight textual replacement but it's slightly more complicated for things like the "pack" instruction that are defined by several different proposed extensions.
2021-10-18Delete SHAMT check in pack (#838)liweiwei901-1/+0
2021-10-14Split 'P' to EXT_ZPN and friends (#830)marcfedorow1-0/+1
* Added ZMMUL extension * Splitted P-ext to its zeds * Typo fix
2021-09-14Added insn overlapping (bitmanip / krypto) (#801)marcfedorow1-5/+4
2021-09-06Move bitmanip instructions outside Zba/Zbb/Zbc/Zbs into XbitmanipAndrew Waterman1-1/+1
2021-06-02Accept Zba, Zbb, Zbc, Zbs ISA stringsAndrew Waterman1-1/+6
The B extension still implies the presence of Zba/Zbb/Zbc/Zbs.
2020-10-22[riscv-bitmanip] Add bitmanip instructionsClifford Wolf1-0/+4
Signed-off-by: Clifford Wolf <clifford@clifford.at>