mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-11 03:24:58 -06:00
target/m68k: Use tcg_gen_ext_i32
We still need to check OS_{BYTE,WORD,LONG}, because m68k includes floating point in OS_*. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
23f3d586e4
commit
443025e4d0
1 changed files with 3 additions and 20 deletions
|
@ -520,21 +520,9 @@ static inline void gen_ext(TCGv res, TCGv val, int opsize, int sign)
|
||||||
{
|
{
|
||||||
switch (opsize) {
|
switch (opsize) {
|
||||||
case OS_BYTE:
|
case OS_BYTE:
|
||||||
if (sign) {
|
|
||||||
tcg_gen_ext8s_i32(res, val);
|
|
||||||
} else {
|
|
||||||
tcg_gen_ext8u_i32(res, val);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case OS_WORD:
|
case OS_WORD:
|
||||||
if (sign) {
|
|
||||||
tcg_gen_ext16s_i32(res, val);
|
|
||||||
} else {
|
|
||||||
tcg_gen_ext16u_i32(res, val);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case OS_LONG:
|
case OS_LONG:
|
||||||
tcg_gen_mov_i32(res, val);
|
tcg_gen_ext_i32(res, val, opsize | (sign ? MO_SIGN : 0));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
g_assert_not_reached();
|
g_assert_not_reached();
|
||||||
|
@ -1072,15 +1060,10 @@ static int gen_ea_mode_fp(CPUM68KState *env, DisasContext *s, int mode,
|
||||||
tmp = tcg_temp_new();
|
tmp = tcg_temp_new();
|
||||||
switch (opsize) {
|
switch (opsize) {
|
||||||
case OS_BYTE:
|
case OS_BYTE:
|
||||||
tcg_gen_ext8s_i32(tmp, reg);
|
|
||||||
gen_helper_exts32(tcg_env, fp, tmp);
|
|
||||||
break;
|
|
||||||
case OS_WORD:
|
case OS_WORD:
|
||||||
tcg_gen_ext16s_i32(tmp, reg);
|
|
||||||
gen_helper_exts32(tcg_env, fp, tmp);
|
|
||||||
break;
|
|
||||||
case OS_LONG:
|
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;
|
break;
|
||||||
case OS_SINGLE:
|
case OS_SINGLE:
|
||||||
gen_helper_extf32(tcg_env, fp, reg);
|
gen_helper_extf32(tcg_env, fp, reg);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue