On 30 May 2017 at 16:39, Peter Maydell <peter.mayd...@linaro.org> wrote: > On 30 May 2017 at 16:26, Nikunj A Dadhania <nik...@linux.vnet.ibm.com> wrote: >> Sandipan Das <sandipandas1...@gmail.com> writes: >> >>> The patterns for the following instructions are fixed: >>> * Rotate Left Doubleword then Clear Right (rldcr[.]) >>> * Rotate Left Doubleword Immediate then Clear Right (rldicr[.]) >>> * Rotate Left Doubleword Immediate then Mask Insert (rldimi[.]) >>> >>> The first instruction has a typo. For the other two instructions, >>> the extended opcodes are incorrect and the shift field 'sha' is >>> absent. Also, the shift field 'sh' should be used in place of the >>> register field 'rb'. >>> >>> Signed-off-by: Sandipan Das <sandipandas1...@gmail.com> >> >> Reviewed-by: Nikunj A Dadhania <nik...@linux.vnet.ibm.com> > > Thanks; applied to risu master.
...but I foolishly didn't run build-all-archs first, which points out that there's a bug: Syntax error detected evaluating RLDIMId PPC64LE constraints string: ] { $rs != 1 && $ra != 1 && $rb != 1 && $rs != 13 && $ra != 13 && $rb != 13; } Global symbol "$rb" requires explicit package name (did you forget to declare "my $rb"?) at (eval 429) line 1. Global symbol "$rb" requires explicit package name (did you forget to declare "my $rb"?) at (eval 429) line 1. You forgot to update the constraints when you changed the field names... I think that the constraints on $rb should be removed rather than just changed to use $sh because this field is an immediate, not a register number, so we don't need to make it avoid 1 and 13. This would bring them into line with the other rotate-immediates. I'll post a patch in a second. thanks -- PMM