On 11 February 2011 16:14, Peter Maydell wrote:
> +void HELPER(neon_unzip)(CPUState *env, uint32_t insn)
> +{
> + int rd = ((insn >> 18) & 0x10) | ((insn >> 12) & 0x0f);
> + int rm = ((insn >> 1) & 0x10) | (insn & 0x0f);
> + int size = (insn >> 18) & 3;
> + if (insn & 0x40) { /* Q */
>
On Fri, Feb 11, 2011 at 04:53:30PM +, Peter Maydell wrote:
> On 11 February 2011 16:14, Peter Maydell wrote:
> > +void HELPER(neon_unzip)(CPUState *env, uint32_t insn)
> > +{
> > + int rd = ((insn >> 18) & 0x10) | ((insn >> 12) & 0x0f);
> > + int rm = ((insn >> 1) & 0x10) | (insn & 0x0f)
From: Juha Riihimäki
Move the implementation of the Neon VUZP unzip instruction from inline
code to a helper function. (At 50+ TCG ops it was well over the
ecommended limit for coding inline.) The helper implementation also
fixes the handling of the quadword version of the instruction.
Signed-of
On 11 February 2011 17:03, Nathan Froyd wrote:
> On Fri, Feb 11, 2011 at 04:53:30PM +, Peter Maydell wrote:
>> On 11 February 2011 16:14, Peter Maydell wrote:
>> > +void HELPER(neon_unzip)(CPUState *env, uint32_t insn)
>> > +{
>> > + int rd = ((insn >> 18) & 0x10) | ((insn >> 12) & 0x0f);
On Fri, Feb 11, 2011 at 05:12:32PM +, Peter Maydell wrote:
> On 11 February 2011 17:03, Nathan Froyd wrote:
> > I do think the preferred way would be to extract rd, rm, size, and Q
> > up-front, rather than having the helper twiddle instruction bits.
>
> OK. You're happy to still have the hel