mirror of https://github.com/xemu-project/xemu.git
target/riscv: rvk: add support for zbkc extension
- reuse partial instructions of zbc extension, update extension check for them Signed-off-by: Weiwei Li <liweiwei@iscas.ac.cn> Signed-off-by: Junqiang Wang <wangjunqiang@iscas.ac.cn> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20220423023510.30794-4-liweiwei@iscas.ac.cn> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
d8e81e3c18
commit
5cc69ceb68
|
@ -770,9 +770,10 @@ clzw 0110000 00000 ..... 001 ..... 0011011 @r2
|
||||||
ctzw 0110000 00001 ..... 001 ..... 0011011 @r2
|
ctzw 0110000 00001 ..... 001 ..... 0011011 @r2
|
||||||
cpopw 0110000 00010 ..... 001 ..... 0011011 @r2
|
cpopw 0110000 00010 ..... 001 ..... 0011011 @r2
|
||||||
|
|
||||||
# *** RV32 Zbc Standard Extension ***
|
# *** RV32 Zbc/Zbkc Standard Extension ***
|
||||||
clmul 0000101 .......... 001 ..... 0110011 @r
|
clmul 0000101 .......... 001 ..... 0110011 @r
|
||||||
clmulh 0000101 .......... 011 ..... 0110011 @r
|
clmulh 0000101 .......... 011 ..... 0110011 @r
|
||||||
|
# *** RV32 extra Zbc Standard Extension ***
|
||||||
clmulr 0000101 .......... 010 ..... 0110011 @r
|
clmulr 0000101 .......... 010 ..... 0110011 @r
|
||||||
|
|
||||||
# *** RV32 Zbs Standard Extension ***
|
# *** RV32 Zbs Standard Extension ***
|
||||||
|
|
|
@ -489,7 +489,7 @@ static bool trans_slli_uw(DisasContext *ctx, arg_slli_uw *a)
|
||||||
|
|
||||||
static bool trans_clmul(DisasContext *ctx, arg_clmul *a)
|
static bool trans_clmul(DisasContext *ctx, arg_clmul *a)
|
||||||
{
|
{
|
||||||
REQUIRE_ZBC(ctx);
|
REQUIRE_EITHER_EXT(ctx, zbc, zbkc);
|
||||||
return gen_arith(ctx, a, EXT_NONE, gen_helper_clmul, NULL);
|
return gen_arith(ctx, a, EXT_NONE, gen_helper_clmul, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -501,7 +501,7 @@ static void gen_clmulh(TCGv dst, TCGv src1, TCGv src2)
|
||||||
|
|
||||||
static bool trans_clmulh(DisasContext *ctx, arg_clmulr *a)
|
static bool trans_clmulh(DisasContext *ctx, arg_clmulr *a)
|
||||||
{
|
{
|
||||||
REQUIRE_ZBC(ctx);
|
REQUIRE_EITHER_EXT(ctx, zbc, zbkc);
|
||||||
return gen_arith(ctx, a, EXT_NONE, gen_clmulh, NULL);
|
return gen_arith(ctx, a, EXT_NONE, gen_clmulh, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue