[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 3/7] target/i386: Use tcg_gen_ext_tl
From: |
Richard Henderson |
Subject: |
[PATCH 3/7] target/i386: Use tcg_gen_ext_tl |
Date: |
Thu, 19 Oct 2023 11:29:17 -0700 |
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/i386/tcg/translate.c | 28 +++-------------------------
1 file changed, 3 insertions(+), 25 deletions(-)
diff --git a/target/i386/tcg/translate.c b/target/i386/tcg/translate.c
index 0c81e066de..d420ed8f0a 100644
--- a/target/i386/tcg/translate.c
+++ b/target/i386/tcg/translate.c
@@ -701,33 +701,11 @@ static inline void gen_op_movl_T0_Dshift(DisasContext *s,
MemOp ot)
static TCGv gen_ext_tl(TCGv dst, TCGv src, MemOp size, bool sign)
{
- switch (size) {
- case MO_8:
- if (sign) {
- tcg_gen_ext8s_tl(dst, src);
- } else {
- tcg_gen_ext8u_tl(dst, src);
- }
- return dst;
- case MO_16:
- if (sign) {
- tcg_gen_ext16s_tl(dst, src);
- } else {
- tcg_gen_ext16u_tl(dst, src);
- }
- return dst;
-#ifdef TARGET_X86_64
- case MO_32:
- if (sign) {
- tcg_gen_ext32s_tl(dst, src);
- } else {
- tcg_gen_ext32u_tl(dst, src);
- }
- return dst;
-#endif
- default:
+ if (memop_size(size) == TARGET_LONG_BITS) {
return src;
}
+ tcg_gen_ext_tl(dst, src, size | (sign ? MO_SIGN : 0));
+ return dst;
}
static void gen_extu(MemOp ot, TCGv reg)
--
2.34.1
- [PATCH 4/7] target/m68k: Use tcg_gen_ext_i32, (continued)
- [PATCH 4/7] target/m68k: Use tcg_gen_ext_i32, Richard Henderson, 2023/10/19
- [PATCH 1/7] tcg: Export tcg_gen_ext_{i32,i64,tl}, Richard Henderson, 2023/10/19
- [PATCH 5/7] target/rx: Use tcg_gen_ext_i32, Richard Henderson, 2023/10/19
- [PATCH 6/7] target/tricore: Use tcg_gen_*extract_tl, Richard Henderson, 2023/10/19
- [PATCH 3/7] target/i386: Use tcg_gen_ext_tl,
Richard Henderson <=
[PATCH 7/7] target/xtensa: Use tcg_gen_sextract_i32, Richard Henderson, 2023/10/19