-
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.
Merge tag 'pull-request-2023-07-24' of https://gitlab.com/thuth/qemu …
…into staging * Fix emulation of s390x instructions: CKSM, CLM, ICM, MC, CLGEBR(A) * Remove useless and non-working s390x migration avocado tests * Fix loongarch CSRRD CPUID instruction when running on s390x hosts * Disable flaky s390x virtio-gpu test by default # -----BEGIN PGP SIGNATURE----- # # iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmS+q4IRHHRodXRoQHJl # ZGhhdC5jb20ACgkQLtnXdP5wLbXB9xAAhF6bV23f1C9SHTWpxoN8oDYqJ3ZRR/D2 # z/4RHzXC5icw4jWPXG/zf19a+TT5UA03HFqvXbFlEtLVLF1/RY2wDnQbHJd2msRX # YwvqE9SVoxbS3Jy+FS6XQ69WmPNoz01x+BIG5ig/jzXdOPZmylfik+1eAmHNHvcF # GNCvdFwDzAZnB7N7y973BRnYn73CXBk3ap3UnnX/PaFD9k7DowTW5HB4ej/Uydwl # z71/NbZhjgKYNpWgPYCI0Mypmz8b870o0VJxEJO9/1pWYLOoUcy/BKdOeGr3vqqO # cduRL2c78Xd2RaUt4TgYmsZKkLazcG37XnQ5iaewDctTjfjuL5Oss16SO0WTut3p # 8DtJHZCwD+0GcnbdFxyy7qdFmW2jgqsJtIPtnZs29ruEXnl0iyovjw38/J4kgBrF # eHY+X2AyvlXI6zNkRMjKp+ltAkVx1vXbedM/bfaEcSBiKAI/OlV0Y1slX7+K14pR # ITGOmBEG+yytMDnanzZKdN1DlBJMbGFYg9MctL7/yEwtD9vTl7gc66JhqcndkmCg # VXSvqN8ECXPRbeNyZQZP+weXQydpkk3ndVIlSUrWpWsJtj0GDQOt+iK/KWcQ+AkS # TXXp2OKM/mC+z6pdODsn/EoLl0toeDjpZFu27t/AvglNkmDFneY72LrtSwKgYHsi # OJpjY1zCoxM= # =Q+jQ # -----END PGP SIGNATURE----- # gpg: Signature made Mon 24 Jul 2023 17:49:06 BST # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full] # gpg: aka "Thomas Huth <thuth@redhat.com>" [full] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * tag 'pull-request-2023-07-24' of https://gitlab.com/thuth/qemu: tests/avocado/machine_s390_ccw_virtio: Skip the flaky virtio-gpu test by default target/loongarch: Fix the CSRRD CPUID instruction on big endian hosts tests/avocado/migration: Remove the malfunctioning s390x tests tests/tcg/s390x: Test VCKSM tests/tcg/s390x: Test STPQ tests/tcg/s390x: Test MC tests/tcg/s390x: Test ICM tests/tcg/s390x: Test CLM tests/tcg/s390x: Test CLGEBR and CGEBRA tests/tcg/s390x: Test CKSM target/s390x: Fix assertion failure in VFMIN/VFMAX with type 13 target/s390x: Make MC raise specification exception when class >= 16 target/s390x: Fix ICM with M3=0 target/s390x: Fix CONVERT TO LOGICAL/FIXED with out-of-range inputs target/s390x: Fix CLM with M3=0 target/s390x: Make CKSM raise an exception if R2 is odd Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
- Loading branch information
Showing
23 changed files
with
337 additions
and
55 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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,32 @@ | ||
/* | ||
* Test the CGEBRA instruction. | ||
* | ||
* SPDX-License-Identifier: GPL-2.0-or-later | ||
*/ | ||
#include <assert.h> | ||
#include <fenv.h> | ||
#include <stdlib.h> | ||
|
||
int main(void) | ||
{ | ||
float r2 = 1E+300; | ||
long long r1; | ||
int cc; | ||
|
||
feclearexcept(FE_ALL_EXCEPT); | ||
asm("cgebra %[r1],%[m3],%[r2],%[m4]\n" | ||
"ipm %[cc]\n" | ||
: [r1] "=r" (r1) | ||
, [cc] "=r" (cc) | ||
: [m3] "i" (5) /* round toward 0 */ | ||
, [r2] "f" (r2) | ||
, [m4] "i" (8) /* bit 0 is set, but must be ignored; XxC is not set */ | ||
: "cc"); | ||
cc >>= 28; | ||
|
||
assert(r1 == 0x7fffffffffffffffLL); | ||
assert(cc == 3); | ||
assert(fetestexcept(FE_ALL_EXCEPT) == (FE_INVALID | FE_INEXACT)); | ||
|
||
return EXIT_SUCCESS; | ||
} |
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,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 | ||
.insn rre,0xb2410000,%r2,%r15 /* cksm %r2,%r15 */ | ||
failure: | ||
lpswe failure_psw | ||
pgm: | ||
chhsi program_interruption_code,6 /* specification exception? */ | ||
jne failure | ||
lpswe success_psw | ||
cksm_args: | ||
.quad cksm_buf, 16 | ||
cksm_buf: | ||
.quad 0xaaaabbbbcccc0000, 0x12345678 | ||
cksm_exp: | ||
.long 0x89ab1234 | ||
.align 8 | ||
success_psw: | ||
.quad 0x2000000000000,0xfff /* see is_special_wait_psw() */ | ||
failure_psw: | ||
.quad 0x2000000000000,0 /* disabled wait */ |
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,32 @@ | ||
/* | ||
* Test the CLGEBR instruction. | ||
* | ||
* SPDX-License-Identifier: GPL-2.0-or-later | ||
*/ | ||
#include <assert.h> | ||
#include <fenv.h> | ||
#include <stdlib.h> | ||
|
||
int main(void) | ||
{ | ||
float r2 = -1; | ||
long long r1; | ||
int cc; | ||
|
||
feclearexcept(FE_ALL_EXCEPT); | ||
asm("clgebr %[r1],%[m3],%[r2],%[m4]\n" | ||
"ipm %[cc]\n" | ||
: [r1] "=r" (r1) | ||
, [cc] "=r" (cc) | ||
: [m3] "i" (5) /* round toward 0 */ | ||
, [r2] "f" (r2) | ||
, [m4] "i" (8) /* bit 0 is set, but must be ignored; XxC is not set */ | ||
: "cc"); | ||
cc >>= 28; | ||
|
||
assert(r1 == 0); | ||
assert(cc == 3); | ||
assert(fetestexcept(FE_ALL_EXCEPT) == (FE_INVALID | FE_INEXACT)); | ||
|
||
return EXIT_SUCCESS; | ||
} |
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,29 @@ | ||
.org 0x8e | ||
program_interruption_code: | ||
.org 0x1d0 /* program new PSW */ | ||
.quad 0,pgm | ||
.org 0x200 /* lowcore padding */ | ||
.globl _start | ||
_start: | ||
lgrl %r0,op1 | ||
clm %r0,6,op2 | ||
jle failure | ||
lgrl %r1,bad_addr | ||
clm %r0,0,0(%r1) | ||
failure: | ||
lpswe failure_psw | ||
pgm: | ||
chhsi program_interruption_code,5 /* addressing exception? */ | ||
jne failure | ||
lpswe success_psw | ||
.align 8 | ||
op1: | ||
.quad 0x1234567887654321 | ||
op2: | ||
.quad 0x3456789abcdef012 | ||
bad_addr: | ||
.quad 0xffffffff00000000 | ||
success_psw: | ||
.quad 0x2000000000000,0xfff /* see is_special_wait_psw() */ | ||
failure_psw: | ||
.quad 0x2000000000000,0 /* disabled wait */ |
Oops, something went wrong.