On 11 February 2011 15:11, <christophe.l...@st.com> wrote: > From: Christophe Lyon <christophe.l...@st.com> > > Fix decoding of 64 bits variants of VSHRN, VRSHRN, VQSHRN, VQSHRUN, VQRSHRN, > VQRSHRUN, taking into account whether inputs are unsigned or not. > > Signed-off-by: Christophe Lyon <christophe.l...@st.com>
Mostly OK (gives correct answers). Style issues: > tmp = neon_load_reg(rm + pass, 0); > - gen_neon_shift_narrow(size, tmp, tmp2, q, u); > + gen_neon_shift_narrow(size, tmp, tmp2, q, > input_unsigned); > tmp3 = neon_load_reg(rm + pass, 1); > - gen_neon_shift_narrow(size, tmp3, tmp2, q, u); > + gen_neon_shift_narrow(size, tmp3, tmp2, q, > input_unsigned); These lines are >80 chars now. > } else { > - if (op == 8) > + if (u) { /* VQSHRN / VQRSHRN */ > + gen_neon_narrow_satu(size - 1, tmp, cpu_V0); > + } else { /* VQSHRN / VQRSHRN */ Missing indentation. The other problem with this area of the code is that it is not correctly handling the case where pass 1 wants to read a register which is the target for pass 2. I have a patch to fix this which I'll post in a moment. -- PMM