tests/tcg/s390x: Test LAALG with negative cc_src
Add a small test to prevent regressions. Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-ID: <20231106093605.1349201-5-iii@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com> (cherry picked from commit ebc14107f1f3ac1db13132cd28cf94adcd38e5d7) Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> (Mjt: context fix in tests/tcg/s390x/Makefile.target)
This commit is contained in:
parent
154760b6db
commit
15764a7635
@ -24,6 +24,7 @@ TESTS+=trap
|
|||||||
TESTS+=signals-s390x
|
TESTS+=signals-s390x
|
||||||
TESTS+=branch-relative-long
|
TESTS+=branch-relative-long
|
||||||
TESTS+=noexec
|
TESTS+=noexec
|
||||||
|
TESTS+=laalg
|
||||||
|
|
||||||
Z13_TESTS=vistr
|
Z13_TESTS=vistr
|
||||||
Z13_TESTS+=lcbb
|
Z13_TESTS+=lcbb
|
||||||
|
27
tests/tcg/s390x/laalg.c
Normal file
27
tests/tcg/s390x/laalg.c
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* Test the LAALG instruction.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
#include <assert.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
unsigned long cc = 0, op1, op2 = 40, op3 = 2;
|
||||||
|
|
||||||
|
asm("slgfi %[cc],1\n" /* Set cc_src = -1. */
|
||||||
|
"laalg %[op1],%[op3],%[op2]\n"
|
||||||
|
"ipm %[cc]"
|
||||||
|
: [cc] "+r" (cc)
|
||||||
|
, [op1] "=r" (op1)
|
||||||
|
, [op2] "+T" (op2)
|
||||||
|
: [op3] "r" (op3)
|
||||||
|
: "cc");
|
||||||
|
|
||||||
|
assert(cc == 0xffffffff10ffffff);
|
||||||
|
assert(op1 == 40);
|
||||||
|
assert(op2 == 42);
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user