diff options
author | David Miller | 2022-02-23 23:31:16 +0100 |
---|---|---|
committer | Thomas Huth | 2022-02-28 11:29:15 +0100 |
commit | e2c3fb069994858fea9aca9a4e64fa5afd34021a (patch) | |
tree | fcb834de3f1c6992e315c8ab99d27add543c8eda /tests/tcg/s390x/mie3-mvcrl.c | |
parent | s390x/cpumodel: Bump up QEMU model to a stripped-down IBM z15 GA1 (diff) | |
download | qemu-e2c3fb069994858fea9aca9a4e64fa5afd34021a.tar.gz qemu-e2c3fb069994858fea9aca9a4e64fa5afd34021a.tar.xz qemu-e2c3fb069994858fea9aca9a4e64fa5afd34021a.zip |
tests/tcg/s390x: Tests for Miscellaneous-Instruction-Extensions Facility 3
tests/tcg/s390x/mie3-compl.c: [N]*K instructions
tests/tcg/s390x/mie3-mvcrl.c: MVCRL instruction
tests/tcg/s390x/mie3-sel.c: SELECT instruction
Signed-off-by: David Miller <dmiller423@gmail.com>
Message-Id: <20220223223117.66660-4-dmiller423@gmail.com>
[thuth: Squash mnemonic -> .insn patch, white space cleanup, improve asm usage]
Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'tests/tcg/s390x/mie3-mvcrl.c')
-rw-r--r-- | tests/tcg/s390x/mie3-mvcrl.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/tcg/s390x/mie3-mvcrl.c b/tests/tcg/s390x/mie3-mvcrl.c new file mode 100644 index 0000000000..57b08e48d0 --- /dev/null +++ b/tests/tcg/s390x/mie3-mvcrl.c @@ -0,0 +1,27 @@ +#include <stdint.h> +#include <string.h> + +static inline void mvcrl_8(const char *dst, const char *src) +{ + asm volatile ( + "llill %%r0, 8\n" + ".insn sse, 0xE50A00000000, 0(%[dst]), 0(%[src])" + : : [dst] "d" (dst), [src] "d" (src) + : "memory"); +} + +int main(int argc, char *argv[]) +{ + const char *alpha = "abcdefghijklmnop"; + + /* array missing 'i' */ + char tstr[17] = "abcdefghjklmnop\0" ; + + /* mvcrl reference use: 'open a hole in an array' */ + mvcrl_8(tstr + 9, tstr + 8); + + /* place missing 'i' */ + tstr[8] = 'i'; + + return strncmp(alpha, tstr, 16ul); +} |