summaryrefslogtreecommitdiff
path: root/none/tests/s390x/sub.c
diff options
context:
space:
mode:
Diffstat (limited to 'none/tests/s390x/sub.c')
-rw-r--r--none/tests/s390x/sub.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/none/tests/s390x/sub.c b/none/tests/s390x/sub.c
new file mode 100644
index 00000000..2bc5fe3e
--- /dev/null
+++ b/none/tests/s390x/sub.c
@@ -0,0 +1,51 @@
+#include <stdio.h>
+#include "sub.h"
+
+static void do_regmem_insns(unsigned long s2)
+{
+ memsweep(s, s2, 0);
+ memsweep(sh, s2, 0);
+ memsweep(sg, s2, 0);
+ memsweep(sgf, s2, 0);
+ memsweep(sl, s2, 0);
+ memsweep(slg, s2, 0);
+ memsweep(sgf, s2, 0);
+ memsweep(slgf, s2, 0);
+ regsweep(sr, s2, 0);
+ regsweep(sgr, s2, 0);
+ regsweep(sgfr, s2, 0);
+ regsweep(slr, s2, 0);
+ regsweep(slgr, s2, 0);
+ regsweep(slgfr, s2, 0);
+ memsweep(slb, s2, 0);
+ memsweep(slbg, s2, 0);
+ regsweep(slbr, s2, 0);
+ regsweep(slbgr, s2, 0);
+ memsweep(slb, s2, 1);
+ memsweep(slbg, s2, 1);
+ regsweep(slbr, s2, 1);
+ regsweep(slbgr, s2, 1);
+ memsweep(shy, s2, 0);
+ memsweep(sly, s2, 0);
+ memsweep(sy, s2, 0);
+}
+
+int main()
+{
+ do_regmem_insns(0x0ul);
+ do_regmem_insns(0x7ffffffffffffffful);
+ do_regmem_insns(0x8000000000000000ul);
+ do_regmem_insns(0xfffffffffffffffful);
+ do_regmem_insns(0x7fffffff00000000ul);
+ do_regmem_insns(0x8000000000000000ul);
+ do_regmem_insns(0xffffffff00000000ul);
+ do_regmem_insns(0x000000007ffffffful);
+ do_regmem_insns(0x0000000080000000ul);
+ do_regmem_insns(0x00000000fffffffful);
+ do_regmem_insns(0x000000000000fffful);
+ do_regmem_insns(0x0000000000007ffful);
+ do_regmem_insns(0x0000000000008000ul);
+ do_regmem_insns(0x000000000000fffful);
+
+ return 0;
+}