mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-24 12:09:58 +00:00
target/xtensa: implement salt/saltu
SALT/SALTU are recent additions to the core Xtensa ISA that do signed/unsigned setcond. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
This commit is contained in:
parent
13f6a7cd3a
commit
d1e9b0068a
@ -2194,6 +2194,16 @@ static void translate_s32e(DisasContext *dc, const uint32_t arg[],
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void translate_salt(DisasContext *dc, const uint32_t arg[],
|
||||||
|
const uint32_t par[])
|
||||||
|
{
|
||||||
|
if (gen_window_check3(dc, arg[0], arg[1], arg[2])) {
|
||||||
|
tcg_gen_setcond_i32(par[0],
|
||||||
|
cpu_R[arg[0]],
|
||||||
|
cpu_R[arg[1]], cpu_R[arg[2]]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void translate_sext(DisasContext *dc, const uint32_t arg[],
|
static void translate_sext(DisasContext *dc, const uint32_t arg[],
|
||||||
const uint32_t par[])
|
const uint32_t par[])
|
||||||
{
|
{
|
||||||
@ -3661,6 +3671,14 @@ static const XtensaOpcodeOps core_ops[] = {
|
|||||||
.name = "s8i",
|
.name = "s8i",
|
||||||
.translate = translate_ldst,
|
.translate = translate_ldst,
|
||||||
.par = (const uint32_t[]){MO_UB, false, true},
|
.par = (const uint32_t[]){MO_UB, false, true},
|
||||||
|
}, {
|
||||||
|
.name = "salt",
|
||||||
|
.translate = translate_salt,
|
||||||
|
.par = (const uint32_t[]){TCG_COND_LT},
|
||||||
|
}, {
|
||||||
|
.name = "saltu",
|
||||||
|
.translate = translate_salt,
|
||||||
|
.par = (const uint32_t[]){TCG_COND_LTU},
|
||||||
}, {
|
}, {
|
||||||
.name = "sext",
|
.name = "sext",
|
||||||
.translate = translate_sext,
|
.translate = translate_sext,
|
||||||
|
Loading…
Reference in New Issue
Block a user