mirror of
https://git.proxmox.com/git/qemu
synced 2025-08-07 04:08:55 +00:00
tcg-arm: Don't implement rem
Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
ca675f46e6
commit
5e1108b370
@ -1926,18 +1926,6 @@ static inline void tcg_out_op(TCGContext *s, TCGOpcode opc,
|
|||||||
case INDEX_op_divu_i32:
|
case INDEX_op_divu_i32:
|
||||||
tcg_out_udiv(s, COND_AL, args[0], args[1], args[2]);
|
tcg_out_udiv(s, COND_AL, args[0], args[1], args[2]);
|
||||||
break;
|
break;
|
||||||
case INDEX_op_rem_i32:
|
|
||||||
tcg_out_sdiv(s, COND_AL, TCG_REG_TMP, args[1], args[2]);
|
|
||||||
tcg_out_mul32(s, COND_AL, TCG_REG_TMP, TCG_REG_TMP, args[2]);
|
|
||||||
tcg_out_dat_reg(s, COND_AL, ARITH_SUB, args[0], args[1], TCG_REG_TMP,
|
|
||||||
SHIFT_IMM_LSL(0));
|
|
||||||
break;
|
|
||||||
case INDEX_op_remu_i32:
|
|
||||||
tcg_out_udiv(s, COND_AL, TCG_REG_TMP, args[1], args[2]);
|
|
||||||
tcg_out_mul32(s, COND_AL, TCG_REG_TMP, TCG_REG_TMP, args[2]);
|
|
||||||
tcg_out_dat_reg(s, COND_AL, ARITH_SUB, args[0], args[1], TCG_REG_TMP,
|
|
||||||
SHIFT_IMM_LSL(0));
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
tcg_abort();
|
tcg_abort();
|
||||||
@ -2043,9 +2031,7 @@ static const TCGTargetOpDef arm_op_defs[] = {
|
|||||||
|
|
||||||
#if TCG_TARGET_HAS_div_i32
|
#if TCG_TARGET_HAS_div_i32
|
||||||
{ INDEX_op_div_i32, { "r", "r", "r" } },
|
{ INDEX_op_div_i32, { "r", "r", "r" } },
|
||||||
{ INDEX_op_rem_i32, { "r", "r", "r" } },
|
|
||||||
{ INDEX_op_divu_i32, { "r", "r", "r" } },
|
{ INDEX_op_divu_i32, { "r", "r", "r" } },
|
||||||
{ INDEX_op_remu_i32, { "r", "r", "r" } },
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
{ -1 },
|
{ -1 },
|
||||||
|
@ -76,11 +76,10 @@ typedef enum {
|
|||||||
|
|
||||||
#ifdef __ARM_ARCH_EXT_IDIV__
|
#ifdef __ARM_ARCH_EXT_IDIV__
|
||||||
#define TCG_TARGET_HAS_div_i32 1
|
#define TCG_TARGET_HAS_div_i32 1
|
||||||
#define TCG_TARGET_HAS_rem_i32 1
|
|
||||||
#else
|
#else
|
||||||
#define TCG_TARGET_HAS_div_i32 0
|
#define TCG_TARGET_HAS_div_i32 0
|
||||||
#define TCG_TARGET_HAS_rem_i32 0
|
|
||||||
#endif
|
#endif
|
||||||
|
#define TCG_TARGET_HAS_rem_i32 0
|
||||||
|
|
||||||
extern bool tcg_target_deposit_valid(int ofs, int len);
|
extern bool tcg_target_deposit_valid(int ofs, int len);
|
||||||
#define TCG_TARGET_deposit_i32_valid tcg_target_deposit_valid
|
#define TCG_TARGET_deposit_i32_valid tcg_target_deposit_valid
|
||||||
|
Loading…
Reference in New Issue
Block a user