From dc46d1c68aa107b8e3c95f66e87cd9d02e6452a9 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 19 Feb 2013 23:52:04 -0800 Subject: [PATCH] target-s390x: Use mulu2 for mlgr insn Signed-off-by: Richard Henderson Signed-off-by: Blue Swirl --- target-s390x/helper.h | 1 - target-s390x/int_helper.c | 8 -------- target-s390x/translate.c | 3 +-- 3 files changed, 1 insertion(+), 11 deletions(-) diff --git a/target-s390x/helper.h b/target-s390x/helper.h index dd90d93bee..0d80aa046f 100644 --- a/target-s390x/helper.h +++ b/target-s390x/helper.h @@ -8,7 +8,6 @@ DEF_HELPER_FLAGS_4(mvc, TCG_CALL_NO_WG, void, env, i32, i64, i64) DEF_HELPER_FLAGS_4(clc, TCG_CALL_NO_WG, i32, env, i32, i64, i64) DEF_HELPER_3(mvcl, i32, env, i32, i32) DEF_HELPER_FLAGS_4(clm, TCG_CALL_NO_WG, i32, env, i32, i32, i64) -DEF_HELPER_FLAGS_3(mul128, TCG_CALL_NO_RWG, i64, env, i64, i64) DEF_HELPER_FLAGS_3(divs32, TCG_CALL_NO_WG, s64, env, s64, s64) DEF_HELPER_FLAGS_3(divu32, TCG_CALL_NO_WG, i64, env, i64, i64) DEF_HELPER_FLAGS_3(divs64, TCG_CALL_NO_WG, s64, env, s64, s64) diff --git a/target-s390x/int_helper.c b/target-s390x/int_helper.c index 685830124f..af16b21baa 100644 --- a/target-s390x/int_helper.c +++ b/target-s390x/int_helper.c @@ -29,14 +29,6 @@ #define HELPER_LOG(x...) #endif -/* 64/64 -> 128 unsigned multiplication */ -uint64_t HELPER(mul128)(CPUS390XState *env, uint64_t v1, uint64_t v2) -{ - uint64_t reth; - mulu64(&env->retxl, &reth, v1, v2); - return reth; -} - /* 64/32 -> 32 signed division */ int64_t HELPER(divs32)(CPUS390XState *env, int64_t a, int64_t b64) { diff --git a/target-s390x/translate.c b/target-s390x/translate.c index a57296c64f..bdf69a3c7c 100644 --- a/target-s390x/translate.c +++ b/target-s390x/translate.c @@ -2566,8 +2566,7 @@ static ExitStatus op_mul(DisasContext *s, DisasOps *o) static ExitStatus op_mul128(DisasContext *s, DisasOps *o) { - gen_helper_mul128(o->out, cpu_env, o->in1, o->in2); - return_low128(o->out2); + tcg_gen_mulu2_i64(o->out2, o->out, o->in1, o->in2); return NO_EXIT; } -- 2.11.0