tests/tcg: target/s390x: Test MVO

Let's add the simple test based on the example from the PoP.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: David Hildenbrand <david@redhat.com>
This commit is contained in:
David Hildenbrand 2019-09-05 20:18:51 +02:00
parent ab89acd0b7
commit d9e13c3419
2 changed files with 26 additions and 0 deletions

View File

@ -6,3 +6,4 @@ TESTS+=ipm
TESTS+=exrl-trt
TESTS+=exrl-trtr
TESTS+=pack
TESTS+=mvo

25
tests/tcg/s390x/mvo.c Normal file
View File

@ -0,0 +1,25 @@
#include <stdint.h>
#include <stdio.h>
int main(void)
{
uint8_t dest[6] = {0xff, 0x77, 0x88, 0x99, 0x0c, 0xff};
uint8_t src[5] = {0xee, 0x12, 0x34, 0x56, 0xee};
uint8_t expected[6] = {0xff, 0x01, 0x23, 0x45, 0x6c, 0xff};
int i;
asm volatile (
" mvo 0(4,%[dest]),0(3,%[src])\n"
:
: [dest] "d" (dest + 1),
[src] "d" (src + 1)
: "memory");
for (i = 0; i < sizeof(expected); i++) {
if (dest[i] != expected[i]) {
fprintf(stderr, "bad data\n");
return 1;
}
}
return 0;
}