qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 07/35] target/mips: Add nanoMIPS save and restor


From: Richard Henderson
Subject: Re: [Qemu-devel] [PATCH 07/35] target/mips: Add nanoMIPS save and restore
Date: Thu, 21 Jun 2018 22:11:00 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0

On 06/20/2018 05:05 AM, Yongbok Kim wrote:
> +static void gen_restore(DisasContext *ctx, uint8_t rt, uint8_t count,
> +                        uint8_t gp, uint16_t u)
> +{
> +    int counter = 0;
> +    TCGv va = tcg_temp_new();
> +    TCGv t0 = tcg_temp_new();
> +
> +    while (counter != count) {

Better written as a for loop?

> +        bool use_gp = gp && (counter == count - 1);
> +        int this_rt = use_gp ? 28 : (rt & 0x10) | ((rt + counter) & 0x1f);
> +        int this_offset = u - ((counter + 1) << 2);
> +        gen_base_offset_addr(ctx, va, 29, this_offset);
> +        tcg_gen_qemu_ld_tl(t0, va, ctx->mem_idx, MO_TESL |
> +                        ctx->default_tcg_memop_mask);

Indentation.

> +        tcg_gen_ext32s_tl(t0, t0);

You do not need to sign-extend; you've just loaded a sign-extended 32-bit value
via MO_TESL.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]