[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 4/5] target/sh4: do not use a helper to implement
From: |
Aurelien Jarno |
Subject: |
[Qemu-devel] [PATCH v2 4/5] target/sh4: do not use a helper to implement fneg |
Date: |
Sun, 2 Jul 2017 22:28:13 +0200 |
There is no need to use a helper to flip one bit, just use a TCG xor
instruction instead.
Signed-off-by: Aurelien Jarno <address@hidden>
---
target/sh4/helper.h | 1 -
target/sh4/op_helper.c | 5 -----
target/sh4/translate.c | 5 ++---
3 files changed, 2 insertions(+), 9 deletions(-)
diff --git a/target/sh4/helper.h b/target/sh4/helper.h
index f715224822..d2398922dd 100644
--- a/target/sh4/helper.h
+++ b/target/sh4/helper.h
@@ -32,7 +32,6 @@ DEF_HELPER_FLAGS_2(float_DT, TCG_CALL_NO_WG, f64, env, i32)
DEF_HELPER_FLAGS_4(fmac_FT, TCG_CALL_NO_WG, f32, env, f32, f32, f32)
DEF_HELPER_FLAGS_3(fmul_FT, TCG_CALL_NO_WG, f32, env, f32, f32)
DEF_HELPER_FLAGS_3(fmul_DT, TCG_CALL_NO_WG, f64, env, f64, f64)
-DEF_HELPER_FLAGS_1(fneg_T, TCG_CALL_NO_RWG_SE, f32, f32)
DEF_HELPER_FLAGS_3(fsub_FT, TCG_CALL_NO_WG, f32, env, f32, f32)
DEF_HELPER_FLAGS_3(fsub_DT, TCG_CALL_NO_WG, f64, env, f64, f64)
DEF_HELPER_FLAGS_2(fsqrt_FT, TCG_CALL_NO_WG, f32, env, f32)
diff --git a/target/sh4/op_helper.c b/target/sh4/op_helper.c
index f2e39c5ca6..64206cf803 100644
--- a/target/sh4/op_helper.c
+++ b/target/sh4/op_helper.c
@@ -384,11 +384,6 @@ float64 helper_fmul_DT(CPUSH4State *env, float64 t0,
float64 t1)
return t0;
}
-float32 helper_fneg_T(float32 t0)
-{
- return float32_chs(t0);
-}
-
float32 helper_fsqrt_FT(CPUSH4State *env, float32 t0)
{
set_float_exception_flags(0, &env->fp_status);
diff --git a/target/sh4/translate.c b/target/sh4/translate.c
index 7c40945908..8098228c51 100644
--- a/target/sh4/translate.c
+++ b/target/sh4/translate.c
@@ -1691,9 +1691,8 @@ static void _decode_opc(DisasContext * ctx)
return;
case 0xf04d: /* fneg FRn/DRn - FPSCR: Nothing */
CHECK_FPU_ENABLED
- {
- gen_helper_fneg_T(cpu_fregs[FREG(B11_8)], cpu_fregs[FREG(B11_8)]);
- }
+ tcg_gen_xori_i32(cpu_fregs[FREG(B11_8)], cpu_fregs[FREG(B11_8)],
+ 0x80000000);
return;
case 0xf05d: /* fabs FRn/DRn - FPCSR: Nothing */
CHECK_FPU_ENABLED
--
2.11.0
- [Qemu-devel] [PATCH v2 0/5] target/sh4: misc FPU fixes and optimizations, Aurelien Jarno, 2017/07/02
- [Qemu-devel] [PATCH v2 3/5] target/sh4: fix FPSCR cause vs flag inversion, Aurelien Jarno, 2017/07/02
- [Qemu-devel] [PATCH v2 4/5] target/sh4: do not use a helper to implement fneg,
Aurelien Jarno <=
- [Qemu-devel] [PATCH v2 5/5] target/sh4: return result of fcmp using TCG, Aurelien Jarno, 2017/07/02
- [Qemu-devel] [PATCH v2 2/5] target/sh4: fix FPU unorderered compare, Aurelien Jarno, 2017/07/02
- [Qemu-devel] [PATCH v2 1/5] target/sh4: do not check for PR bit for fabs instruction, Aurelien Jarno, 2017/07/02
- Re: [Qemu-devel] [PATCH v2 0/5] target/sh4: misc FPU fixes and optimizations, Bruno Haible, 2017/07/02
- Re: [Qemu-devel] [PATCH v2 0/5] target/sh4: misc FPU fixes and optimizations, Richard Henderson, 2017/07/03