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+=branch-relative-long
|
||||
TESTS+=noexec
|
||||
TESTS+=div
|
||||
|
||||
Z13_TESTS=vistr
|
||||
$(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…
Reference in New Issue
Block a user