tests/tcg/s390x: Add div.c
Add a basic test to prevent regressions. Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Message-Id: <20221101111300.2539919-1-iii@linux.ibm.com> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
894448ae7d
commit
29b8de001f
@ -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+=div
|
||||||
|
|
||||||
Z13_TESTS=vistr
|
Z13_TESTS=vistr
|
||||||
$(Z13_TESTS): CFLAGS+=-march=z13 -O2
|
$(Z13_TESTS): CFLAGS+=-march=z13 -O2
|
||||||
|
40
tests/tcg/s390x/div.c
Normal file
40
tests/tcg/s390x/div.c
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#include <assert.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
static void test_dr(void)
|
||||||
|
{
|
||||||
|
register int32_t r0 asm("r0") = -1;
|
||||||
|
register int32_t r1 asm("r1") = -4241;
|
||||||
|
int32_t b = 101, q, r;
|
||||||
|
|
||||||
|
asm("dr %[r0],%[b]"
|
||||||
|
: [r0] "+r" (r0), [r1] "+r" (r1)
|
||||||
|
: [b] "r" (b)
|
||||||
|
: "cc");
|
||||||
|
q = r1;
|
||||||
|
r = r0;
|
||||||
|
assert(q == -41);
|
||||||
|
assert(r == -100);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_dlr(void)
|
||||||
|
{
|
||||||
|
register uint32_t r0 asm("r0") = 0;
|
||||||
|
register uint32_t r1 asm("r1") = 4243;
|
||||||
|
uint32_t b = 101, q, r;
|
||||||
|
|
||||||
|
asm("dlr %[r0],%[b]"
|
||||||
|
: [r0] "+r" (r0), [r1] "+r" (r1)
|
||||||
|
: [b] "r" (b)
|
||||||
|
: "cc");
|
||||||
|
q = r1;
|
||||||
|
r = r0;
|
||||||
|
assert(q == 42);
|
||||||
|
assert(r == 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
test_dr();
|
||||||
|
test_dlr();
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user