mirror of https://github.com/xemu-project/xemu.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
|
# MMI0
|
||||||
|
|
||||||
PSUBW 011100 ..... ..... ..... 00001 001000 @rs_rt_rd
|
PSUBW 011100 ..... ..... ..... 00001 001000 @rs_rt_rd
|
||||||
|
PCGTW 011100 ..... ..... ..... 00010 001000 @rs_rt_rd
|
||||||
PSUBH 011100 ..... ..... ..... 00101 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
|
PSUBB 011100 ..... ..... ..... 01001 001000 @rs_rt_rd
|
||||||
|
PCGTB 011100 ..... ..... ..... 01010 001000 @rs_rt_rd
|
||||||
PEXTLW 011100 ..... ..... ..... 10010 001000 @rs_rt_rd
|
PEXTLW 011100 ..... ..... ..... 10010 001000 @rs_rt_rd
|
||||||
PEXTLH 011100 ..... ..... ..... 10110 001000 @rs_rt_rd
|
PEXTLH 011100 ..... ..... ..... 10110 001000 @rs_rt_rd
|
||||||
PEXTLB 011100 ..... ..... ..... 11010 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;
|
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 */
|
/* Parallel Compare for Equal Byte */
|
||||||
static bool trans_PCEQB(DisasContext *ctx, arg_rtype *a)
|
static bool trans_PCEQB(DisasContext *ctx, arg_rtype *a)
|
||||||
{
|
{
|
||||||
return trans_parallel_compare(ctx, a, TCG_COND_EQ, 8);
|
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 */
|
/* Parallel Compare for Equal Halfword */
|
||||||
static bool trans_PCEQH(DisasContext *ctx, arg_rtype *a)
|
static bool trans_PCEQH(DisasContext *ctx, arg_rtype *a)
|
||||||
{
|
{
|
||||||
return trans_parallel_compare(ctx, a, TCG_COND_EQ, 16);
|
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 */
|
/* Parallel Compare for Equal Word */
|
||||||
static bool trans_PCEQW(DisasContext *ctx, arg_rtype *a)
|
static bool trans_PCEQW(DisasContext *ctx, arg_rtype *a)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue