Skip to content

Commit

Permalink
tests/tcg/s390x: Test LAALG with negative cc_src
Browse files Browse the repository at this point in the history
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 ebc1410)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
(Mjt: context fix in tests/tcg/s390x/Makefile.target)
  • Loading branch information
iii-i authored and Michael Tokarev committed Nov 19, 2023
1 parent 154760b commit 15764a7
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
1 change: 1 addition & 0 deletions tests/tcg/s390x/Makefile.target
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ TESTS+=trap
TESTS+=signals-s390x
TESTS+=branch-relative-long
TESTS+=noexec
TESTS+=laalg

Z13_TESTS=vistr
Z13_TESTS+=lcbb
Expand Down
27 changes: 27 additions & 0 deletions tests/tcg/s390x/laalg.c
Original file line number Diff line number Diff line change
@@ -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;
}

0 comments on commit 15764a7

Please sign in to comment.