tcg/tci: Merge extension operations
This includes ext8s, ext8u, ext16s, ext16u. Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
dd2bb20e41
commit
13a1d64045
44
tcg/tci.c
44
tcg/tci.c
@ -607,29 +607,29 @@ uintptr_t QEMU_DISABLE_CFI tcg_qemu_tb_exec(CPUArchState *env,
|
||||
tci_write_reg64(regs, t1, t0, (uint32_t)t2 * tmp64);
|
||||
break;
|
||||
#endif /* TCG_TARGET_REG_BITS == 32 */
|
||||
#if TCG_TARGET_HAS_ext8s_i32
|
||||
case INDEX_op_ext8s_i32:
|
||||
#if TCG_TARGET_HAS_ext8s_i32 || TCG_TARGET_HAS_ext8s_i64
|
||||
CASE_32_64(ext8s)
|
||||
t0 = *tb_ptr++;
|
||||
t1 = tci_read_r(regs, &tb_ptr);
|
||||
tci_write_reg(regs, t0, (int8_t)t1);
|
||||
break;
|
||||
#endif
|
||||
#if TCG_TARGET_HAS_ext16s_i32
|
||||
case INDEX_op_ext16s_i32:
|
||||
#if TCG_TARGET_HAS_ext16s_i32 || TCG_TARGET_HAS_ext16s_i64
|
||||
CASE_32_64(ext16s)
|
||||
t0 = *tb_ptr++;
|
||||
t1 = tci_read_r(regs, &tb_ptr);
|
||||
tci_write_reg(regs, t0, (int16_t)t1);
|
||||
break;
|
||||
#endif
|
||||
#if TCG_TARGET_HAS_ext8u_i32
|
||||
case INDEX_op_ext8u_i32:
|
||||
#if TCG_TARGET_HAS_ext8u_i32 || TCG_TARGET_HAS_ext8u_i64
|
||||
CASE_32_64(ext8u)
|
||||
t0 = *tb_ptr++;
|
||||
t1 = tci_read_r(regs, &tb_ptr);
|
||||
tci_write_reg(regs, t0, (uint8_t)t1);
|
||||
break;
|
||||
#endif
|
||||
#if TCG_TARGET_HAS_ext16u_i32
|
||||
case INDEX_op_ext16u_i32:
|
||||
#if TCG_TARGET_HAS_ext16u_i32 || TCG_TARGET_HAS_ext16u_i64
|
||||
CASE_32_64(ext16u)
|
||||
t0 = *tb_ptr++;
|
||||
t1 = tci_read_r(regs, &tb_ptr);
|
||||
tci_write_reg(regs, t0, (uint16_t)t1);
|
||||
@ -779,34 +779,6 @@ uintptr_t QEMU_DISABLE_CFI tcg_qemu_tb_exec(CPUArchState *env,
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
#if TCG_TARGET_HAS_ext8u_i64
|
||||
case INDEX_op_ext8u_i64:
|
||||
t0 = *tb_ptr++;
|
||||
t1 = tci_read_r(regs, &tb_ptr);
|
||||
tci_write_reg(regs, t0, (uint8_t)t1);
|
||||
break;
|
||||
#endif
|
||||
#if TCG_TARGET_HAS_ext8s_i64
|
||||
case INDEX_op_ext8s_i64:
|
||||
t0 = *tb_ptr++;
|
||||
t1 = tci_read_r(regs, &tb_ptr);
|
||||
tci_write_reg(regs, t0, (int8_t)t1);
|
||||
break;
|
||||
#endif
|
||||
#if TCG_TARGET_HAS_ext16s_i64
|
||||
case INDEX_op_ext16s_i64:
|
||||
t0 = *tb_ptr++;
|
||||
t1 = tci_read_r(regs, &tb_ptr);
|
||||
tci_write_reg(regs, t0, (int16_t)t1);
|
||||
break;
|
||||
#endif
|
||||
#if TCG_TARGET_HAS_ext16u_i64
|
||||
case INDEX_op_ext16u_i64:
|
||||
t0 = *tb_ptr++;
|
||||
t1 = tci_read_r(regs, &tb_ptr);
|
||||
tci_write_reg(regs, t0, (uint16_t)t1);
|
||||
break;
|
||||
#endif
|
||||
#if TCG_TARGET_HAS_ext32s_i64
|
||||
case INDEX_op_ext32s_i64:
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user