Merge pull request #377 from pcercuei/libretro
[pcsx_rearmed.git] / deps / lightning / check / qalu.inc
1 .data   8
2 ok:
3 .c      "ok\n"
4
5 /* r0,r1 = r2 op r3 */
6 #define QALUR(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
7         movi %R2 I0                                     \
8         movi %R3 I1                                     \
9         OP##r##T %R0 %R1 %R2 %R3                        \
10         bnei OP##T##N##rlo##R0##R1##R2##R3 %R0 LO       \
11         bnei OP##T##N##rlo##R0##R1##R2##R3 %R1 HI       \
12         bnei OP##T##N##rlo##R0##R1##R2##R3 %R2 I0       \
13         beqi OP##T##N##rhi##R0##R1##R2##R3 %R3 I1       \
14 OP##T##N##rlo##R0##R1##R2##R3:                          \
15         calli @abort                                    \
16 OP##T##N##rhi##R0##R1##R2##R3:
17
18 /* r0,r1 = r2 op i0 */
19 #define QALUI(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
20         movi %R2 I0                                     \
21         movi %R3 HI                                     \
22         OP##i##T %R0 %R1 %R2 I1                         \
23         bnei OP##T##N##ilo##R0##R1##R2##R3 %R0 LO       \
24         bner OP##T##N##ilo##R0##R1##R2##R3 %R1 %R3      \
25         beqi OP##T##N##ihi##R0##R1##R2##R3 %R2 I0       \
26 OP##T##N##ilo##R0##R1##R2##R3:                          \
27         calli @abort                                    \
28 OP##T##N##ihi##R0##R1##R2##R3:
29
30 /* r0,r1 = r0 op r1 */
31 #define QALUX(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
32         movi %R0 I0                                     \
33         movi %R1 I1                                     \
34         movi %R2 LO                                     \
35         movi %R3 HI                                     \
36         OP##r##T %R0 %R1 %R0 %R1                        \
37         bner OP##T##N##0lo##R0##R1##R2##R3 %R0 %R2      \
38         beqr OP##T##N##0hi##R0##R1##R2##R3 %R1 %R3      \
39 OP##T##N##0lo##R0##R1##R2##R3:                          \
40         calli @abort                                    \
41 OP##T##N##0hi##R0##R1##R2##R3:
42
43 /* r0,r1 = r1 op r0 */
44 #define QALUY(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
45         movi %R1 I0                                     \
46         movi %R0 I1                                     \
47         movi %R2 LO                                     \
48         movi %R3 HI                                     \
49         OP##r##T %R0 %R1 %R1 %R0                        \
50         bner OP##T##N##1lo##R0##R1##R2##R3 %R0 %R2      \
51         beqr OP##T##N##1hi##R0##R1##R2##R3 %R1 %R3      \
52 OP##T##N##1lo##R0##R1##R2##R3:                          \
53         calli @abort                                    \
54 OP##T##N##1hi##R0##R1##R2##R3:
55
56 /* r0,r1 = r0 op r3 */
57 #define QALUZ(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
58         movi %R0 I0                                     \
59         movi %R3 I1                                     \
60         movi %R2 LO                                     \
61         OP##r##T %R0 %R1 %R0 %R3                        \
62         bner OP##T##N##2lo##R0##R1##R2##R3 %R0 %R2      \
63         bnei OP##T##N##2lo##R0##R1##R2##R3 %R1 HI       \
64         beqi OP##T##N##2hi##R0##R1##R2##R3 %R3 I1       \
65 OP##T##N##2lo##R0##R1##R2##R3:                          \
66         calli @abort                                    \
67 OP##T##N##2hi##R0##R1##R2##R3:
68
69 /* r0,r1 = r2 op r1 */
70 #define QALUW(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
71         movi %R2 I0                                     \
72         movi %R1 I1                                     \
73         movi %R3 LO                                     \
74         OP##r##T %R0 %R1 %R2 %R1                        \
75         bner OP##T##N##3lo##R0##R1##R2##R3 %R0 %R3      \
76         bnei OP##T##N##3lo##R0##R1##R2##R3 %R1 HI       \
77         beqi OP##T##N##3hi##R0##R1##R2##R3 %R2 I0       \
78 OP##T##N##3lo##R0##R1##R2##R3:                          \
79         calli @abort                                    \
80 OP##T##N##3hi##R0##R1##R2##R3:
81
82 #define QALU2(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
83         QALUR(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
84         QALUI(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
85         QALUX(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
86         QALUY(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
87         QALUZ(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
88         QALUW(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3)
89
90 #define QALU1(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
91         QALU2(N, T, OP, I0, I1, LO, HI, R0, R1, R2, R3) \
92         QALU2(N, T, OP, I0, I1, LO, HI, R0, R1, R3, R2) \
93         QALU2(N, T, OP, I0, I1, LO, HI, R0, R2, R1, R3) \
94         QALU2(N, T, OP, I0, I1, LO, HI, R0, R2, R3, R1) \
95         QALU2(N, T, OP, I0, I1, LO, HI, R0, R3, R1, R2) \
96         QALU2(N, T, OP, I0, I1, LO, HI, R0, R3, R2, R1) \
97         QALU2(N, T, OP, I0, I1, LO, HI, R1, R0, R2, R3) \
98         QALU2(N, T, OP, I0, I1, LO, HI, R1, R0, R3, R2) \
99         QALU2(N, T, OP, I0, I1, LO, HI, R1, R2, R0, R3) \
100         QALU2(N, T, OP, I0, I1, LO, HI, R1, R2, R3, R0) \
101         QALU2(N, T, OP, I0, I1, LO, HI, R1, R3, R0, R2) \
102         QALU2(N, T, OP, I0, I1, LO, HI, R1, R3, R2, R0) \
103         QALU2(N, T, OP, I0, I1, LO, HI, R2, R1, R0, R3) \
104         QALU2(N, T, OP, I0, I1, LO, HI, R2, R1, R3, R0) \
105         QALU2(N, T, OP, I0, I1, LO, HI, R2, R0, R1, R3) \
106         QALU2(N, T, OP, I0, I1, LO, HI, R2, R0, R3, R1) \
107         QALU2(N, T, OP, I0, I1, LO, HI, R2, R3, R1, R0) \
108         QALU2(N, T, OP, I0, I1, LO, HI, R2, R3, R0, R1) \
109         QALU2(N, T, OP, I0, I1, LO, HI, R3, R1, R2, R0) \
110         QALU2(N, T, OP, I0, I1, LO, HI, R3, R1, R0, R2) \
111         QALU2(N, T, OP, I0, I1, LO, HI, R3, R2, R1, R0) \
112         QALU2(N, T, OP, I0, I1, LO, HI, R3, R2, R0, R1) \
113         QALU2(N, T, OP, I0, I1, LO, HI, R3, R0, R1, R2) \
114         QALU2(N, T, OP, I0, I1, LO, HI, R3, R0, R2, R1)
115
116 #define QALU(N, T, OP, I0, I1, LO, HI)                  \
117         QALU1(N, T, OP, I0, I1, LO, HI, v0, v1, v2, r0) \
118         QALU1(N, T, OP, I0, I1, LO, HI, v0, v1, v2, r1) \
119         QALU1(N, T, OP, I0, I1, LO, HI, v0, v1, v2, r2) \
120         QALU1(N, T, OP, I0, I1, LO, HI, v1, v2, r0, r1) \
121         QALU1(N, T, OP, I0, I1, LO, HI, v1, v2, r0, r2) \
122         QALU1(N, T, OP, I0, I1, LO, HI, v2, r0, r1, r2)