All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ilya Leoshkevich <iii@linux.ibm.com>
To: Richard Henderson <richard.henderson@linaro.org>
Cc: qemu-devel@nongnu.org, qemu-s390x@nongnu.org,
	Ilya Leoshkevich <iii@linux.ibm.com>
Subject: [PATCH 2/2] tests/tcg/s390x: Add per.S
Date: Wed, 30 Nov 2022 18:46:10 +0100	[thread overview]
Message-ID: <20221130174610.434590-2-iii@linux.ibm.com> (raw)
In-Reply-To: <20221130174610.434590-1-iii@linux.ibm.com>

Add a small test to avoid regressions.

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
---
 tests/tcg/s390x/Makefile.softmmu-target |  1 +
 tests/tcg/s390x/per.S                   | 55 +++++++++++++++++++++++++
 2 files changed, 56 insertions(+)
 create mode 100644 tests/tcg/s390x/per.S

diff --git a/tests/tcg/s390x/Makefile.softmmu-target b/tests/tcg/s390x/Makefile.softmmu-target
index a34fa68473e..1d649753f4e 100644
--- a/tests/tcg/s390x/Makefile.softmmu-target
+++ b/tests/tcg/s390x/Makefile.softmmu-target
@@ -7,3 +7,4 @@ QEMU_OPTS=-action panic=exit-failure -kernel
 		-Wl,--build-id=none $< -o $@
 
 TESTS += unaligned-lowcore
+TESTS += per
diff --git a/tests/tcg/s390x/per.S b/tests/tcg/s390x/per.S
new file mode 100644
index 00000000000..02f8422c44d
--- /dev/null
+++ b/tests/tcg/s390x/per.S
@@ -0,0 +1,55 @@
+#define N_ITERATIONS 10
+
+    .org 0x8d
+ilc:
+    .org 0x8e
+program_interruption_code:
+    .org 0x96
+per_code:
+    .org 0x150
+program_old_psw:
+    .org 0x1d0                         /* program new PSW */
+    .quad 0,pgm_handler
+    .org 0x200                         /* lowcore padding */
+
+    .globl _start
+_start:
+    lpswe per_on_psw
+start_per:
+    lghi %r0,N_ITERATIONS
+    xgr %r1,%r1
+    lctlg %c9,%c11,per_on_regs
+loop:
+    brct %r0,loop
+    lctlg %c9,%c11,per_off_regs
+    cgijne %r1,N_ITERATIONS-1,fail     /* expected number of events? */
+    lpswe success_psw
+fail:
+    lpswe failure_psw
+
+pgm_handler:
+    chhsi program_interruption_code,0x80         /* PER event? */
+    jne fail
+    cli per_code,0x80                  /* successful-branching event? */
+    jne fail
+    la %r1,1(%r1)                      /* increment event counter */
+    mvc return_psw(8),program_old_psw
+    lg %r3,program_old_psw+8
+    llgc %r2,ilc
+    sgr %r3,%r2                        /* rewind PSW */
+    stg %r3,return_psw+8
+    lpswe return_psw
+
+    .align 8
+per_on_psw:
+    .quad 0x4000000000000000,start_per
+per_on_regs:
+    .quad 0x80000000,0,-1              /* successful-branching everywhere */
+per_off_regs:
+    .quad 0,0,0
+return_psw:
+    .quad 0,0
+success_psw:
+    .quad 0x2000000000000,0xfff        /* see is_special_wait_psw() */
+failure_psw:
+    .quad 0x2000000000000,0            /* disabled wait */
-- 
2.38.1



  reply	other threads:[~2022-11-30 17:47 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-06  3:43 [PATCH 00/26] target/s390x: pc-relative translation blocks Richard Henderson
2022-10-06  3:43 ` [PATCH 01/26] target/s390x: Use tcg_constant_* in local contexts Richard Henderson
2022-11-03 10:38   ` Ilya Leoshkevich
2022-10-06  3:43 ` [PATCH 02/26] target/s390x: Use tcg_constant_* for DisasCompare Richard Henderson
2022-11-03 10:54   ` Ilya Leoshkevich
2022-10-06  3:43 ` [PATCH 03/26] target/s390x: Use tcg_constant_i32 for fpinst_extract_m34 Richard Henderson
2022-11-03 10:56   ` Ilya Leoshkevich
2022-10-06  3:43 ` [PATCH 04/26] target/s390x: Use tcg_constant_* in translate_vx.c.inc Richard Henderson
2022-11-03 11:04   ` Ilya Leoshkevich
2022-11-03 23:05     ` Richard Henderson
2022-10-06  3:44 ` [PATCH 05/26] target/s390x: Change help_goto_direct to work on displacements Richard Henderson
2022-11-03 11:13   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 06/26] target/s390x: Introduce gen_psw_addr_disp Richard Henderson
2022-11-03 11:22   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 07/26] target/s390x: Remove pc argument to pc_to_link_into Richard Henderson
2022-11-03 11:23   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 08/26] target/s390x: Use gen_psw_addr_disp in pc_to_link_info Richard Henderson
2022-11-03 11:26   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 09/26] target/s390x: Use gen_psw_addr_disp in save_link_info Richard Henderson
2022-11-03 12:52   ` Ilya Leoshkevich
2022-11-03 13:00     ` [PATCH] tests/tcg/s390x: Add bal.S Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 10/26] target/s390x: Use gen_psw_addr_disp in op_sam Richard Henderson
2022-11-03 13:11   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 11/26] target/s390x: Use ilen instead in branches Richard Henderson
2022-11-03 13:13   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 12/26] target/s390x: Move masking of psw.addr to cpu_get_tb_cpu_state Richard Henderson
2022-11-03 13:42   ` Ilya Leoshkevich
2022-11-04 22:27     ` Richard Henderson
2022-11-29  1:49       ` Ilya Leoshkevich
2022-11-29  1:53         ` [PATCH] tests/tcg/s390x: Add sam.S Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 13/26] target/s390x: Add disp argument to update_psw_addr Richard Henderson
2022-11-03 13:44   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 14/26] target/s390x: Don't set gbea for user-only Richard Henderson
2022-11-03 13:46   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 15/26] target/s390x: Introduce per_enabled Richard Henderson
2022-11-03 13:47   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 16/26] target/s390x: Disable conditional branch-to-next for PER Richard Henderson
2022-11-03 14:32   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 17/26] target/s390x: Introduce help_goto_indirect Richard Henderson
2022-11-30 10:15   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 18/26] target/s390x: Split per_branch Richard Henderson
2022-11-03 14:45   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 19/26] target/s390x: Simplify help_branch Richard Henderson
2022-11-30 12:06   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 20/26] target/s390x: Split per_breaking_event from per_branch_* Richard Henderson
2022-11-30 12:14   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 21/26] target/s390x: Remove PER check from use_goto_tb Richard Henderson
2022-11-30 17:33   ` Ilya Leoshkevich
2022-11-30 17:46     ` [PATCH 1/2] target/s390x: Fix successful-branch PER events Ilya Leoshkevich
2022-11-30 17:46       ` Ilya Leoshkevich [this message]
2022-10-06  3:44 ` [PATCH 22/26] target/s390x: Pass original r2 register to BCR Richard Henderson
2022-11-30 17:53   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 23/26] tcg: Pass TCGTempKind to tcg_temp_new_internal Richard Henderson
2022-11-30 17:56   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 24/26] tcg: Introduce tcg_temp_ebb_new_* Richard Henderson
2022-11-30 18:07   ` Ilya Leoshkevich
2022-11-30 21:09     ` Richard Henderson
2022-12-01 19:13       ` Alex Bennée
2022-12-01 20:34         ` Richard Henderson
2022-10-06  3:44 ` [PATCH 25/26] tcg: Introduce tcg_temp_is_normal_* Richard Henderson
2022-11-30 18:07   ` Ilya Leoshkevich
2022-10-06  3:44 ` [PATCH 26/26] target/s390x: Enable TARGET_TB_PCREL Richard Henderson
2022-10-24 23:04 ` [PATCH 00/26] target/s390x: pc-relative translation blocks Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221130174610.434590-2-iii@linux.ibm.com \
    --to=iii@linux.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.