On 19/07/2023 11.44, Ilya Leoshkevich wrote:
Add a small test to prevent regressions.

Signed-off-by: Ilya Leoshkevich <i...@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


Reply via email to