Signed-off-by: Michael Rolnik <mrol...@gmail.com> --- target-arc/translate-inst.c | 29 +++++++++++++++++++++++++++++ target-arc/translate-inst.h | 3 +++ 2 files changed, 32 insertions(+)
diff --git a/target-arc/translate-inst.c b/target-arc/translate-inst.c index ac13c86..5404f35 100644 --- a/target-arc/translate-inst.c +++ b/target-arc/translate-inst.c @@ -894,3 +894,32 @@ int arc_gen_SYNC(DisasCtxt *ctx) return BS_NONE; } + +/* + MAX +*/ +int arc_gen_MAX(DisasCtxt *ctx, TCGv dest, TCGv src1, TCGv src2) +{ + if (ctx->opt.f) { + arc_gen_CMP(ctx, src1, src2); + } + + tcg_gen_movcond_tl(TCG_COND_GEU, dest, src1, src2, src1, src2); + + return BS_NONE; +} + +/* + MIN +*/ +int arc_gen_MIN(DisasCtxt *ctx, TCGv dest, TCGv src1, TCGv src2) +{ + if (ctx->opt.f) { + arc_gen_CMP(ctx, src1, src2); + } + + tcg_gen_movcond_tl(TCG_COND_GEU, dest, src1, src2, src2, src1); + + return BS_NONE; +} + diff --git a/target-arc/translate-inst.h b/target-arc/translate-inst.h index 0038645..0dc7f4c 100644 --- a/target-arc/translate-inst.h +++ b/target-arc/translate-inst.h @@ -61,3 +61,6 @@ int arc_gen_STB(DisasCtxt *ctx, TCGv dest, TCGv src1, TCGv src2); int arc_gen_PREFETCH(DisasCtxt *c, TCGv src1, TCGv src2); int arc_gen_SYNC(DisasCtxt *c); +int arc_gen_MAX(DisasCtxt *c, TCGv dest, TCGv src1, TCGv src2); +int arc_gen_MIN(DisasCtxt *c, TCGv dest, TCGv src1, TCGv src2); + -- 2.4.9 (Apple Git-60)