[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 4/7] target/m68k: Use tcg_gen_ext_i32
|
From: |
Richard Henderson |
|
Subject: |
[PATCH 4/7] target/m68k: Use tcg_gen_ext_i32 |
|
Date: |
Thu, 19 Oct 2023 11:29:18 -0700 |
We still need to check OS_{BYTE,WORD,LONG},
because m68k includes floating point in OS_*.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/m68k/translate.c | 23 +++--------------------
1 file changed, 3 insertions(+), 20 deletions(-)
diff --git a/target/m68k/translate.c b/target/m68k/translate.c
index 4d0110de95..4a0b0b2703 100644
--- a/target/m68k/translate.c
+++ b/target/m68k/translate.c
@@ -520,21 +520,9 @@ static inline void gen_ext(TCGv res, TCGv val, int opsize,
int sign)
{
switch (opsize) {
case OS_BYTE:
- if (sign) {
- tcg_gen_ext8s_i32(res, val);
- } else {
- tcg_gen_ext8u_i32(res, val);
- }
- break;
case OS_WORD:
- if (sign) {
- tcg_gen_ext16s_i32(res, val);
- } else {
- tcg_gen_ext16u_i32(res, val);
- }
- break;
case OS_LONG:
- tcg_gen_mov_i32(res, val);
+ tcg_gen_ext_i32(res, val, opsize | (sign ? MO_SIGN : 0));
break;
default:
g_assert_not_reached();
@@ -1072,15 +1060,10 @@ static int gen_ea_mode_fp(CPUM68KState *env,
DisasContext *s, int mode,
tmp = tcg_temp_new();
switch (opsize) {
case OS_BYTE:
- tcg_gen_ext8s_i32(tmp, reg);
- gen_helper_exts32(tcg_env, fp, tmp);
- break;
case OS_WORD:
- tcg_gen_ext16s_i32(tmp, reg);
- gen_helper_exts32(tcg_env, fp, tmp);
- break;
case OS_LONG:
- gen_helper_exts32(tcg_env, fp, reg);
+ tcg_gen_ext_i32(tmp, reg, opsize | MO_SIGN);
+ gen_helper_exts32(tcg_env, fp, tmp);
break;
case OS_SINGLE:
gen_helper_extf32(tcg_env, fp, reg);
--
2.34.1
[PATCH 4/7] target/m68k: Use tcg_gen_ext_i32,
Richard Henderson <=
[PATCH 5/7] target/rx: Use tcg_gen_ext_i32, Richard Henderson, 2023/10/19
[PATCH 2/7] target/arm: Use tcg_gen_ext_i64, Richard Henderson, 2023/10/19
[PATCH 6/7] target/tricore: Use tcg_gen_*extract_tl, Richard Henderson, 2023/10/19
[PATCH 7/7] target/xtensa: Use tcg_gen_sextract_i32, Richard Henderson, 2023/10/19