On Wed, 2023-07-19 at 16:20 +0200, Thomas Huth wrote:
> On 19/07/2023 11.44, Ilya Leoshkevich wrote:
> > Add a small test to prevent regressions.
> >
> > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
> > ---
> > tests/tcg/s390x/Makefile.softmmu-target | 1 +
> > tests/tcg/s390x/cksm.S | 29
> > +++++++++++++++++++++++++
> > 2 files changed, 30 insertions(+)
> > create mode 100644 tests/tcg/s390x/cksm.S
> >
> > diff --git a/tests/tcg/s390x/Makefile.softmmu-target
> > b/tests/tcg/s390x/Makefile.softmmu-target
> > index 242c7b0f83c..e813e318db9 100644
> > --- a/tests/tcg/s390x/Makefile.softmmu-target
> > +++ b/tests/tcg/s390x/Makefile.softmmu-target
> > @@ -16,6 +16,7 @@ LDFLAGS=-nostdlib -static
> >
> > ASM_TESTS
> > =
> > \
> >
> > bal
> > \
> > +
> > cksm
> > \
> > exrl-ssm-
> > early \
> >
> > sam
> > \
> >
> > lpsw
> > \
> > diff --git a/tests/tcg/s390x/cksm.S b/tests/tcg/s390x/cksm.S
> > new file mode 100644
> > index 00000000000..a45f3ef6bfd
> > --- /dev/null
> > +++ b/tests/tcg/s390x/cksm.S
> > @@ -0,0 +1,29 @@
> > + .org 0x8e
> > +program_interruption_code:
> > + .org 0x1d0 /* program new PSW */
> > + .quad 0,pgm
> > + .org 0x200 /* lowcore padding */
> > + .globl _start
> > +_start:
> > + lmg %r0,%r1,cksm_args
> > + cksm %r2,%r0
> > + c %r2,cksm_exp
> > + jne failure
> > + cksm %r2,%r15
>
> Clang is smart enough to detect that this is a bad instruction:
>
> $ make check-tcg
> BUILD s390x-softmmu guest-tests
> tests/tcg/s390x/cksm.S:12:14: error: invalid register pair
> cksm %r2,%r15
> ^
>
> I guess you have to manually create the opcode here?
>
> Thomas
Argh, I really need to start testing my submissions with clang.
Thanks for noticing, I will fix this.