qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] target-arm: implement ARMv8 VSEL instruction


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH] target-arm: implement ARMv8 VSEL instruction
Date: Tue, 2 Jul 2013 13:56:45 +0100

On 21 June 2013 00:25, Måns Rullgård <address@hidden> wrote:
> Peter Maydell <address@hidden> writes:
>> On 18 June 2013 15:30, Mans Rullgard <address@hidden> wrote:
>>> @@ -6699,6 +6742,12 @@ static void disas_arm_insn(CPUARMState * env, 
>>> DisasContext *s)
>>>              }
>>>              return; /* v7MP: Unallocated memory hint: must NOP */
>>>          }
>>> +        if ((insn & 0x0f000010) == 0x0e000000) {
>>> +            /* cdp2 */
>>> +            if (disas_coproc_insn(env, s, insn))
>>> +                goto illegal_op;
>>> +            return;
>>> +        }
>>
>> This hunk is oddly placed, because it's neither next to the neon
>> decode (which is further up) nor the mrc2/mcr2 decode (which is
>> further down).
>
> That's because it is neither.  It is CDP2, previously not decoded at all.
> This seemed as logical a place as any to me.  If you disagree, please
> say where you'd prefer that it go.

Well, if we're treating it in the same way as Neon (ie pulling
the VFP decode out of the decode_coproc() function as I suggest),
then the logical place to put VFP decode is next to the Neon
decode.

At that point the need to actually decode CDP2 into a call
to disas_coproc_insn() goes away, but if we did want to include
it then the logical place to put that decode is next to the
MCR2/MRC2 decode, because both CDP2 and MCR2/MRC2 deal with
coprocessor instructions and are in the same table in the ARM ARM.

-- PMM



reply via email to

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