-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a small test to prevent regressions. Tested-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Message-Id: <20230724082032.66864-13-iii@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
- Loading branch information
Showing
2 changed files
with
57 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -24,6 +24,7 @@ ASM_TESTS = \ | |
lpsw \ | ||
lpswe-early \ | ||
lra \ | ||
mc \ | ||
ssm-early \ | ||
stosm-early \ | ||
unaligned-lowcore | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
.org 0x8d | ||
ilc: | ||
.org 0x8e | ||
program_interruption_code: | ||
.org 0x94 | ||
monitor_class: | ||
.org 0xb0 | ||
monitor_code: | ||
.org 0x150 | ||
program_old_psw: | ||
.org 0x1d0 /* program new PSW */ | ||
.quad 0x180000000,pgm /* 64-bit mode */ | ||
.org 0x200 /* lowcore padding */ | ||
.globl _start | ||
_start: | ||
stctg %c8,%c8,c8 /* enable only monitor class 1 */ | ||
mvhhi c8+6,0x4000 | ||
lctlg %c8,%c8,c8 | ||
mc_nop: | ||
mc 123,0 | ||
mc_monitor_event: | ||
mc 321,1 | ||
j failure | ||
mc_specification: | ||
mc 333,16 | ||
j failure | ||
pgm: | ||
lgrl %r0,program_old_psw+8 /* ilc adjustment */ | ||
llgc %r1,ilc | ||
sgr %r0,%r1 | ||
larl %r1,mc_monitor_event /* dispatch based on old PSW */ | ||
cgrje %r0,%r1,pgm_monitor_event | ||
larl %r1,mc_specification | ||
cgrje %r0,%r1,pgm_specification | ||
j failure | ||
pgm_monitor_event: | ||
chhsi program_interruption_code,0x40 /* monitor event? */ | ||
jne failure | ||
chhsi monitor_class,1 /* class from mc_monitor_event? */ | ||
jne failure | ||
cghsi monitor_code,321 /* code from mc_monitor_event? */ | ||
jne failure | ||
j mc_specification /* next test */ | ||
pgm_specification: | ||
chhsi program_interruption_code,6 /* specification exception? */ | ||
jne failure | ||
lpswe success_psw | ||
failure: | ||
lpswe failure_psw | ||
.align 8 | ||
c8: | ||
.quad 0 | ||
success_psw: | ||
.quad 0x2000000000000,0xfff /* see is_special_wait_psw() */ | ||
failure_psw: | ||
.quad 0x2000000000000,0 /* disabled wait */ |