qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 13/21] target-mips: add Compact Branches


From: Leon Alrae
Subject: Re: [Qemu-devel] [PATCH 13/21] target-mips: add Compact Branches
Date: Tue, 3 Jun 2014 10:29:45 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:8.0) Gecko/20111124 Thunderbird/8.0

On 02/06/14 20:16, Aurelien Jarno wrote:
>> -    case OPC_DADDI:
>> +    case OPC_DADDI: /* OPC_BNVC, OPC_BNEZALC, OPC_BNEC */
>> +        if (ctx->insn_flags & ISA_MIPS32R6) {
>> +            /* OPC_BNVC, OPC_BNEZALC, OPC_BNEC */
>> +            gen_compute_compact_branch(ctx, op, rs, rt, imm << 2);
>> +        } else {
>> +            /* OPC_DADDI */
>> +            check_insn(ctx, ISA_MIPS3);
>> +            check_mips_64(ctx);
>> +            gen_arith_imm(ctx, op, rt, rs, imm);
>> +        }
>> +        break;
>>      case OPC_DADDIU:
>>          check_insn(ctx, ISA_MIPS3);
>>          check_mips_64(ctx);
>>          gen_arith_imm(ctx, op, rt, rs, imm);
>>          break;
>> +#else
>> +    case OPC_BNVC: /* OPC_BNEZALC, OPC_BNEC */
>> +        if (ctx->insn_flags & ISA_MIPS32R6) {
>> +            gen_compute_compact_branch(ctx, op, rs, rt, imm << 2);
>> +        } else {
>> +            MIPS_INVAL("major opcode");
>> +            generate_exception(ctx, EXCP_RI);
>> +        }
>> +        break;
> 
> Why is that introduced only in the MIPS32 case, but not in the MIPS64
> case.
Do you mean BNVC, BNEZALC and BNEC instructions? They are introduced in
MIPS64 as well, you'll find them in OPC_DADDI case. OPC_DADDI was
removed in R6 and its encoding has been reused for those instructions.



There's quite a number of good findings. Thanks for the comments and
suggestions.

Leon



reply via email to

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