[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 1/4] tcg/arm: Fix double-word comparisons
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH v2 1/4] tcg/arm: Fix double-word comparisons |
Date: |
Tue, 16 Jan 2018 11:33:24 +0000 |
On 16 January 2018 at 03:45, Richard Henderson
<address@hidden> wrote:
> The code sequence we were generating was only good for unsigned
> comparisons. For signed comparisions, use the sequence from gcc.
>
> Fixes booting of ppc64 firmware, with a patch changing the code
> sequence for ppc comparisons.
>
> Tested-by: Michael Roth <address@hidden>
> Signed-off-by: Richard Henderson <address@hidden>
> ---
> tcg/arm/tcg-target.inc.c | 97
> ++++++++++++++++++++++++++++++++----------------
> 1 file changed, 65 insertions(+), 32 deletions(-)
>
> diff --git a/tcg/arm/tcg-target.inc.c b/tcg/arm/tcg-target.inc.c
> index 98a12535a5..0ff283d84f 100644
> --- a/tcg/arm/tcg-target.inc.c
> +++ b/tcg/arm/tcg-target.inc.c
> @@ -239,10 +239,10 @@ static void patch_reloc(tcg_insn_unit *code_ptr, int
> type,
> }
> }
>
> -#define TCG_CT_CONST_ARM 0x100
> -#define TCG_CT_CONST_INV 0x200
> -#define TCG_CT_CONST_NEG 0x400
> -#define TCG_CT_CONST_ZERO 0x800
> +#define TCG_CT_CONST_ARM 0x0100
> +#define TCG_CT_CONST_INV 0x0200
> +#define TCG_CT_CONST_NEG 0x0400
> +#define TCG_CT_CONST_ZERO 0x1000
You might as well just drop this hunk now you're not adding a new entry.
> /* parse target specific constraints */
> static const char *target_parse_constraint(TCGArgConstraint *ct,
> @@ -351,8 +351,7 @@ static inline int check_fit_imm(uint32_t imm)
> static inline int tcg_target_const_match(tcg_target_long val, TCGType type,
> const TCGArgConstraint *arg_ct)
> {
> - int ct;
> - ct = arg_ct->ct;
> + int ct = arg_ct->ct;
> if (ct & TCG_CT_CONST) {
> return 1;
> } else if ((ct & TCG_CT_CONST_ARM) && check_fit_imm(val)) {
Ditto.
Otherwise
Reviewed-by: Peter Maydell <address@hidden>
thanks
-- PMM