mirror of https://gitee.com/openkylin/qemu.git
target/mips/tx79: Introduce PCGT* (Parallel Compare for Greater Than)
Introduce the 'Parallel Compare for Greater Than' opcodes: - PCGTB (Parallel Compare for Greater Than Byte) - PCGTH (Parallel Compare for Greater Than Halfword) - PCGTW (Parallel Compare for Greater Than Word) Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20210309145653.743937-15-f4bug@amsat.org>
This commit is contained in:
parent
82fbf9fc80
commit
8bd42c00f2
|
@ -32,8 +32,11 @@ MTLO1 011100 ..... 0000000000 00000 010011 @rs
|
|||
# MMI0
|
||||
|
||||
PSUBW 011100 ..... ..... ..... 00001 001000 @rs_rt_rd
|
||||
PCGTW 011100 ..... ..... ..... 00010 001000 @rs_rt_rd
|
||||
PSUBH 011100 ..... ..... ..... 00101 001000 @rs_rt_rd
|
||||
PCGTH 011100 ..... ..... ..... 00110 001000 @rs_rt_rd
|
||||
PSUBB 011100 ..... ..... ..... 01001 001000 @rs_rt_rd
|
||||
PCGTB 011100 ..... ..... ..... 01010 001000 @rs_rt_rd
|
||||
PEXTLW 011100 ..... ..... ..... 10010 001000 @rs_rt_rd
|
||||
PEXTLH 011100 ..... ..... ..... 10110 001000 @rs_rt_rd
|
||||
PEXTLB 011100 ..... ..... ..... 11010 001000 @rs_rt_rd
|
||||
|
|
|
@ -285,18 +285,36 @@ static bool trans_parallel_compare(DisasContext *ctx, arg_rtype *a,
|
|||
return true;
|
||||
}
|
||||
|
||||
/* Parallel Compare for Greater Than Byte */
|
||||
static bool trans_PCGTB(DisasContext *ctx, arg_rtype *a)
|
||||
{
|
||||
return trans_parallel_compare(ctx, a, TCG_COND_GE, 8);
|
||||
}
|
||||
|
||||
/* Parallel Compare for Equal Byte */
|
||||
static bool trans_PCEQB(DisasContext *ctx, arg_rtype *a)
|
||||
{
|
||||
return trans_parallel_compare(ctx, a, TCG_COND_EQ, 8);
|
||||
}
|
||||
|
||||
/* Parallel Compare for Greater Than Halfword */
|
||||
static bool trans_PCGTH(DisasContext *ctx, arg_rtype *a)
|
||||
{
|
||||
return trans_parallel_compare(ctx, a, TCG_COND_GE, 16);
|
||||
}
|
||||
|
||||
/* Parallel Compare for Equal Halfword */
|
||||
static bool trans_PCEQH(DisasContext *ctx, arg_rtype *a)
|
||||
{
|
||||
return trans_parallel_compare(ctx, a, TCG_COND_EQ, 16);
|
||||
}
|
||||
|
||||
/* Parallel Compare for Greater Than Word */
|
||||
static bool trans_PCGTW(DisasContext *ctx, arg_rtype *a)
|
||||
{
|
||||
return trans_parallel_compare(ctx, a, TCG_COND_GE, 32);
|
||||
}
|
||||
|
||||
/* Parallel Compare for Equal Word */
|
||||
static bool trans_PCEQW(DisasContext *ctx, arg_rtype *a)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue