FreeBSD: add file descriptor tracking for _umtx_op
[valgrind.git] / none / tests / s390x / div.h
blob52609dfed2efd49ac43cb6c0c92cc37dd9dcbe66
1 #include <stdio.h>
3 #define DIV_REG_MEM(insn, d1_1, d1_2, d2) \
4 ({ \
5 unsigned long tmp1 = d1_1; \
6 unsigned long tmp2 = d1_2; \
7 asm volatile( "lgr 2, %0\n" \
8 "lgr 3, %1\n" \
9 #insn " 2, %2\n" \
10 "lgr %0,2\n" \
11 "lgr %1,3\n" \
12 : "+d" (tmp1), "+d" (tmp2) \
13 : "Q" (d2) \
14 : "2","3"); \
15 printf(#insn " %16.16lX%16.16lX / %16.16lX = %16.16lX (rem %16.16lX)\n", d1_1, d1_2, d2, tmp2, tmp1); \
18 #define DIV_REG_REG(insn, d1_1, d1_2, d2) \
19 ({ \
20 unsigned long tmp1 = d1_1; \
21 unsigned long tmp2 = d1_2; \
22 asm volatile( "lgr 2, %0\n" \
23 "lgr 3, %1\n" \
24 #insn " 2, %2\n" \
25 "lgr %0,2\n" \
26 "lgr %1,3\n" \
27 : "+d" (tmp1), "+d" (tmp2) \
28 : "d" (d2) \
29 : "2","3"); \
30 printf(#insn " %16.16lX%16.16lX / %16.16lX = %16.16lX (rem %16.16lX)\n", d1_1, d1_2, d2, tmp2, tmp1); \
34 #define memsweep(i, d2) \
35 ({ \
36 DIV_REG_MEM(i, 0x0ul, 0ul, d2); \
37 DIV_REG_MEM(i, 0x0ul, 1ul, d2); \
38 DIV_REG_MEM(i, 0x0ul, 0xfffful, d2); \
39 DIV_REG_MEM(i, 0x0ul, 0x7ffful, d2); \
40 DIV_REG_MEM(i, 0x0ul, 0x8000ul, d2); \
41 DIV_REG_MEM(i, 0x0ul, 0xfffffffful, d2); \
42 DIV_REG_MEM(i, 0x0ul, 0x80000000ul, d2); \
43 DIV_REG_MEM(i, 0x0ul, 0x7ffffffful, d2); \
44 DIV_REG_MEM(i, 0x0ul, 0xfffffffffffffffful, d2); \
45 DIV_REG_MEM(i, 0x0ul, 0x8000000000000000ul, d2); \
46 DIV_REG_MEM(i, 0x0ul, 0x7ffffffffffffffful, d2); \
47 DIV_REG_MEM(i, 0x1ul, 0xaffffffful, d2); \
50 #define regsweep(i, d2) \
51 ({ \
52 DIV_REG_REG(i, 0x0ul, 0ul, d2); \
53 DIV_REG_REG(i, 0x0ul, 1ul, d2); \
54 DIV_REG_REG(i, 0x0ul, 0xfffful, d2); \
55 DIV_REG_REG(i, 0x0ul, 0x7ffful, d2); \
56 DIV_REG_REG(i, 0x0ul, 0x8000ul, d2); \
57 DIV_REG_REG(i, 0x0ul, 0xfffffffful, d2); \
58 DIV_REG_REG(i, 0x0ul, 0x80000000ul, d2); \
59 DIV_REG_REG(i, 0x0ul, 0x7ffffffful, d2); \
60 DIV_REG_REG(i, 0x0ul, 0xfffffffffffffffful, d2); \
61 DIV_REG_REG(i, 0x0ul, 0x8000000000000000ul, d2); \
62 DIV_REG_REG(i, 0x0ul, 0x7ffffffffffffffful, d2); \
63 DIV_REG_REG(i, 0x1ul, 0xaffffffful, d2); \