git subrepo pull --force deps/lightrec
[pcsx_rearmed.git] / deps / lightning / check / Makefile.am
1 #
2 # Copyright 2012-2023 Free Software Foundation, Inc.
3 #
4 # This file is part of GNU lightning.
5 #
6 # GNU lightning is free software; you can redistribute it and/or modify it
7 # under the terms of the GNU Lesser General Public License as published
8 # by the Free Software Foundation; either version 3, or (at your option)
9 # any later version.
10 #
11 # GNU lightning is distributed in the hope that it will be useful, but
12 # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
14 # License for more details.
15 #
16
17 AM_CFLAGS = -I$(top_builddir)/include -I$(top_srcdir)/include \
18         -D_GNU_SOURCE $(LIGHTNING_CFLAGS)
19
20 check_PROGRAMS = lightning ccall self setcode nodata ctramp carg cva_list \
21         catomic protect riprel cbit callee
22
23 lightning_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
24 lightning_SOURCES = lightning.c
25
26 ccall_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
27 ccall_SOURCES = ccall.c
28
29 self_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
30 self_SOURCES = self.c
31
32 setcode_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
33 setcode_SOURCES = setcode.c
34
35 nodata_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
36 nodata_SOURCES = nodata.c
37
38 ctramp_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
39 ctramp_SOURCES = ctramp.c
40
41 carg_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
42 carg_SOURCES = carg.c
43
44 cva_list_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
45 cva_list_SOURCES = cva_list.c
46
47 catomic_LDADD = $(top_builddir)/lib/liblightning.la -lm -lpthread $(SHLIB)
48 catomic_SOURCES = catomic.c
49
50 protect_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
51 protect_SOURCES = protect.c
52
53 riprel_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
54 riprel_SOURCES = riprel.c
55
56 # Actually, gcc 4.1.2 does not like unknown -Wno-option and errors out;
57 # better to just have warnings.
58 if cpu_ia64
59 cbit_CFLAGS = $(AM_CFLAGS) -fwrapv
60 else
61 cbit_CFLAGS = $(AM_CFLAGS) -fwrapv -Wno-overflow -Wno-integer-overflow \
62         -Wno-shift-count-overflow
63 endif
64 cbit_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
65 cbit_SOURCES = cbit.c
66
67 callee_LDADD = $(top_builddir)/lib/liblightning.la -lm $(SHLIB)
68 callee_SOURCES = callee.c
69
70 noinst_PROGRAMS = gen_cbit
71 gen_cbit_SOURCES = gen_cbit.c
72
73 cbit.c:         gen_cbit
74         $(top_builddir)/check/gen_cbit > cbit.c
75
76 $(top_builddir)/lib/liblightning.la:
77         cd $(top_builddir)/lib; $(MAKE) $(AM_MAKEFLAGS) liblightning.la
78
79 EXTRA_DIST =                            \
80         3to2.tst        3to2.ok         \
81         add.tst         add.ok          \
82         align.tst       align.ok        \
83         allocai.tst     allocai.ok      \
84         allocar.tst     allocar.ok      \
85         bp.tst          bp.ok           \
86         divi.tst        divi.ok         \
87         fib.tst         fib.ok          \
88         rpn.tst         rpn.ok          \
89         ldst.inc                        \
90         ldstr.tst       ldstr.ok        \
91         ldsti.tst       ldsti.ok        \
92         ldstxr.tst      ldstxr.ok       \
93         ldstxi.tst      ldstxi.ok       \
94         ldstr-c.tst     ldstr-c.ok      \
95         ldstxr-c.tst    ldstxr-c.ok     \
96         ldstxi-c.tst    ldstxi-c.ok     \
97         ext.tst         ext.ok          \
98         cvt.tst         cvt.ok          \
99         hton.tst        hton.ok         \
100         bswap.tst       bswap.ok        \
101         branch.tst      branch.ok       \
102         alu.inc                         \
103         alu_add.tst     alu_add.ok      \
104         alux_add.tst    alux_add.ok     \
105         alu_sub.tst     alu_sub.ok      \
106         alux_sub.tst    alux_sub.ok     \
107         alu_rsb.tst     alu_rsb.ok      \
108         alu_mul.tst     alu_mul.ok      \
109         alu_hmul.tst    alu_hmul.ok     \
110         alu_div.tst     alu_div.ok      \
111         alu_rem.tst     alu_rem.ok      \
112         alu_and.tst     alu_and.ok      \
113         alu_or.tst      alu_or.ok       \
114         alu_xor.tst     alu_xor.ok      \
115         alu_lsh.tst     alu_lsh.ok      \
116         alu_rsh.tst     alu_rsh.ok      \
117         alu_com.tst     alu_com.ok      \
118         alu_neg.tst     alu_neg.ok      \
119         alu_rot.tst     alu_rot.ok      \
120         movzr.tst       movzr.ok        \
121         fop_abs.tst     fop_abs.ok      \
122         fop_sqrt.tst    fop_sqrt.ok     \
123         varargs.tst     varargs.ok      \
124         stack.tst       stack.ok        \
125         clobber.tst     clobber.ok      \
126         carry.tst       carry.ok        \
127         call.tst        call.ok         \
128         float.tst       float.ok        \
129         fma.tst         fma.ok          \
130         jmpr.tst        jmpr.ok         \
131         live.tst        live.ok         \
132         put.tst         put.ok          \
133         qalu.inc                        \
134         qalu_mul.tst    qalu_mul.ok     \
135         qalu_div.tst    qalu_div.ok     \
136         qalu_shift.tst  qalu_shift.ok   \
137         range.tst       range.ok        \
138         ranger.tst      ranger.ok       \
139         ret.tst         ret.ok          \
140         skip.tst        skip.ok         \
141         tramp.tst       tramp.ok        \
142         va_list.tst     va_list.ok      \
143         bit.tst         bit.ok          \
144         rbit.tst        rbit.ok         \
145         popcnt.tst      popcnt.ok       \
146         imm.tst         imm.ok          \
147         unldst.tst      unldst.ok       \
148         check.sh                        \
149         check.x87.sh                    \
150         check.arm.sh    check.swf.sh    \
151         check.arm.swf.sh                \
152         check.arm4.swf.sh               \
153         check.nodata.sh                 \
154         check.x87.nodata.sh             \
155         run-test        all.tst         \
156         collatz.tst     factorial.tst   \
157         gen_cbit.c
158
159 base_TESTS =                            \
160         3to2 add align allocai          \
161         allocar bp divi fib rpn         \
162         ldstr ldsti                     \
163         ldstxr ldstxi                   \
164         ldstr-c ldstxr-c ldstxi-c       \
165         ext cvt hton bswap branch       \
166         alu_add alux_add                \
167         alu_sub alux_sub alu_rsb        \
168         alu_mul alu_hmul                \
169         alu_div alu_rem                 \
170         alu_and alu_or alu_xor          \
171         alu_lsh alu_rsh                 \
172         alu_com alu_neg alu_rot         \
173         movzr fma                       \
174         fop_abs fop_sqrt                \
175         varargs stack                   \
176         clobber carry call              \
177         float jmpr live put             \
178         qalu_mul qalu_div qalu_shift    \
179         range ranger ret skip tramp     \
180         va_list bit rbit popcnt imm     \
181         unldst
182
183 $(base_TESTS):  check.sh
184         $(LN_S) $(srcdir)/check.sh $@
185
186 TESTS = $(base_TESTS)
187
188 if test_x86_x87
189 #x87_TESTS = $(addsuffix .x87, $(base_TESTS))
190 x87_TESTS =                                     \
191         3to2.x87 add.x87 allocai.x87            \
192         allocar.x87 bp.x87 divi.x87 fib.x87     \
193         rpn.x87 ldstr.x87 ldsti.x87             \
194         ldstxr.x87 ldstxi.x87                   \
195         ldstr-c.x87 ldstxr-c.x87 ldstxi-c.x87   \
196         ext.x87 cvt.x87 branch.x87              \
197         alu_add.x87 alux_add.x87                \
198         alu_sub.x87 alux_sub.x87 alu_rsb.x87    \
199         alu_mul.x87 alu_hmul.x87                \
200         alu_div.x87 alu_rem.x87                 \
201         alu_and.x87 alu_or.x87 alu_xor.x87      \
202         alu_lsh.x87 alu_rsh.x87 alu_rot.x87     \
203         alu_com.x87 alu_neg.x87                 \
204         movzr.x87 fma.x87                       \
205         fop_abs.x87 fop_sqrt.x87                \
206         varargs.x87 stack.x87                   \
207         clobber.x87 carry.x87 call.x87          \
208         float.x87 jmpr.x87 put.x87              \
209         va_list.x87 imm.x87 unldst.x87
210 $(x87_TESTS):   check.x87.sh
211         $(LN_S) $(srcdir)/check.x87.sh $@
212 TESTS += $(x87_TESTS)
213
214 #x87_nodata_TESTS = $(addsuffix .x87.nodata, $(base_TESTS))
215 x87_nodata_TESTS =                                                      \
216         3to2.x87.nodata add.x87.nodata allocai.x87.nodata               \
217         allocar.x87.nodata bp.x87.nodata divi.x87.nodata fib.x87.nodata \
218         rpn.x87.nodata ldstr.x87.nodata ldsti.x87.nodata                \
219         ldstxr.x87.nodata ldstxi.x87.nodata                             \
220         ldstr-c.x87.nodata ldstxr-c.x87.nodata ldstxi-c.x87.nodata      \
221         ext.x87.nodata cvt.x87.nodata branch.x87.nodata                 \
222         alu_add.x87.nodata alux_add.x87.nodata                          \
223         alu_sub.x87.nodata alux_sub.x87.nodata alu_rsb.x87.nodata       \
224         alu_mul.x87.nodata alu_hmul.x87.nodata                          \
225         alu_div.x87.nodata alu_rem.x87.nodata                           \
226         alu_and.x87.nodata alu_or.x87.nodata alu_xor.x87.nodata         \
227         alu_lsh.x87.nodata alu_rsh.x87.nodata alu_rot.x87.nodata        \
228         alu_com.x87.nodata alu_neg.x87.nodata                           \
229         movzr.x87.nodata fma.x87.nodata                                 \
230         fop_abs.x87.nodata fop_sqrt.x87.nodata                          \
231         varargs.x87.nodata stack.x87.nodata                             \
232         clobber.x87.nodata carry.x87.nodata call.x87.nodata             \
233         float.x87.nodata jmpr.x87.nodata put.x87.nodata                 \
234         va_list.x87.nodata imm.x87.nodata unldst.x87.nodata
235 $(x87_nodata_TESTS):    check.x87.nodata.sh
236         $(LN_S) $(srcdir)/check.x87.nodata.sh $@
237 TESTS += $(x87_nodata_TESTS)
238 endif
239
240 if test_arm_arm
241 #arm_TESTS = $(addsuffix .arm, $(base_TESTS))
242 arm_TESTS =                                     \
243         3to2.arm add.arm align.arm allocai.arm  \
244         allocar.arm bp.arm divi.arm fib.arm     \
245         rpn.arm ldstr.arm ldsti.arm             \
246         ldstxr.arm ldstxi.arm                   \
247         ldstr-c.arm ldstxr-c.arm ldstxi-c.arm   \
248         ext.arm cvt.arm hton.arm bswap.arm      \
249         branch.arm alu_add.arm alux_add.arm     \
250         alu_sub.arm alux_sub.arm alu_rsb.arm    \
251         alu_mul.arm alu_hmul.arm                \
252          alu_div.arm alu_rem.arm                \
253         alu_and.arm alu_or.arm alu_xor.arm      \
254         alu_lsh.arm alu_rsh.arm alu_rot.arm     \
255         alu_com.arm alu_neg.arm                 \
256         movzr.arm fma.arm                       \
257         fop_abs.arm fop_sqrt.arm                \
258         varargs.arm stack.arm                   \
259         clobber.arm carry.arm call.arm          \
260         float.arm jmpr.arm tramp.arm range.arm  \
261         ranger.arm put.arm va_list.arm imm.arm  \
262         unldst.arm
263 $(arm_TESTS):   check.arm.sh
264         $(LN_S) $(srcdir)/check.arm.sh $@
265 TESTS += $(arm_TESTS)
266 endif
267
268 if test_arm_swf
269 #swf_TESTS = $(addsuffix .swf, $(base_TESTS))
270 swf_TESTS =                                     \
271         3to2.swf add.swf allocai.swf            \
272         allocar.swf bp.swf divi.swf fib.swf     \
273         rpn.swf ldstr.swf ldsti.swf             \
274         ldstxr.swf ldstxi.swf                   \
275         ldstr-c.swf ldstxr-c.swf ldstxi-c.swf   \
276         ext.swf cvt.swf hton.swf bswap.swf      \
277         branch.swf alu_add.swf alux_add.swf     \
278         alu_sub.swf alux_sub.swf alu_rsb.swf    \
279         alu_mul.swf alu_hmul.swf                \
280          alu_div.swf alu_rem.swf                \
281         alu_and.swf alu_or.swf alu_xor.swf      \
282         alu_lsh.swf alu_rsh.swf alu_rot.swf     \
283         alu_com.swf alu_neg.swf                 \
284         movzr.swf fma.swf                       \
285         fop_abs.swf fop_sqrt.swf                \
286         varargs.swf stack.swf                   \
287         clobber.swf carry.swf call.swf          \
288         float.swf jmpr.swf tramp.swf range.swf  \
289         ranger.swf put.swf va_list.swf imm.swf  \
290         unldst.swf
291 $(swf_TESTS):   check.swf.sh
292         $(LN_S) $(srcdir)/check.swf.sh $@
293 TESTS += $(swf_TESTS)
294 if test_arm_arm
295 #arm_swf_TESTS = $(addsuffix .arm.swf, $(base_TESTS))
296 arm_swf_TESTS =                                                 \
297         3to2.arm.swf add.arm.swf allocai.arm.swf                \
298         allocar.arm.swf bp.arm.swf divi.arm.swf fib.arm.swf     \
299         rpn.arm.swf ldstr.arm.swf ldsti.arm.swf                 \
300         ldstxr.arm.swf ldstxi.arm.swf                           \
301         ldstr-c.arm.swf ldstxr-c.arm.swf ldstxi-c.arm.swf       \
302         ext.arm.swf cvt.arm.swf hton.arm.swf bswap.arm.swf      \
303         branch.arm.swf alu_add.arm.swf alux_add.arm.swf         \
304         alu_sub.arm.swf alux_sub.arm.swf alu_rsb.arm.swf        \
305         alu_mul.arm.swf alu_div.arm.swf alu_rem.arm.swf         \
306         alu_and.arm.swf alu_or.arm.swf alu_xor.arm.swf          \
307         alu_lsh.arm.swf alu_rsh.arm.swf alu_rot.arm.swf         \
308         alu_com.arm.swf alu_neg.arm.swf                         \
309         movzr.arm.swf fma.arm.swf                               \
310         fop_abs.arm.swf fop_sqrt.arm.swf                        \
311         varargs.arm.swf stack.arm.swf                           \
312         clobber.arm.swf carry.arm.swf call.arm.swf              \
313         float.arm.swf jmpr.arm.swf tramp.arm.swf range.arm.swf  \
314         ranger.arm.swf put.arm.swf va_list.arm.swf imm.arm.swf  \
315         unldst.arm.swf
316 $(arm_swf_TESTS):       check.arm.swf.sh
317         $(LN_S) $(srcdir)/check.arm.swf.sh $@
318 TESTS += $(arm_swf_TESTS)
319 endif
320 if test_arm_arm
321 #arm4_swf_TESTS = $(addsuffix .arm4.swf, $(base_TESTS))
322 arm4_swf_TESTS =                                                \
323         3to2.arm4.swf add.arm4.swf allocai.arm4.swf             \
324         allocar.arm4.swf bp.arm4.swf divi.arm4.swf fib.arm4.swf \
325         rpn.arm4.swf ldstr.arm4.swf ldsti.arm4.swf              \
326         ldstxr.arm4.swf ldstxi.arm4.swf                         \
327         ldstr-c.arm4.swf ldstxr-c.arm4.swf ldstxi-c.arm4.swf    \
328         ext.arm4.swf cvt.arm4.swf hton.arm4.swf bswap.arm4.swf  \
329         branch.arm4.swf alu_add.arm4.swf alux_add.arm4.swf      \
330         alu_sub.arm4.swf alux_sub.arm4.swf alu_rsb.arm4.swf     \
331         alu_mul.arm4.swf alu_div.arm4.swf alu_rem.arm4.swf      \
332         alu_and.arm4.swf alu_or.arm4.swf alu_xor.arm4.swf       \
333         alu_lsh.arm4.swf alu_rsh.arm4.swf alu_rot.arm4.swf      \
334         alu_com.arm4.swf alu_neg.arm4.swf                       \
335         movzr.arm4.swf fma.arm4.swf                             \
336         fop_abs.arm4.swf fop_sqrt.arm4.swf                      \
337         varargs.arm4.swf stack.arm4.swf                         \
338         clobber.arm4.swf carry.arm4.swf call.arm4.swf           \
339         float.arm4.swf jmpr.arm4.swf tramp.arm4.swf             \
340         range.arm4.swf ranger.arm4.swf put.arm4.swf             \
341         va_list.arm4.swf imm.arm4.swf                           \
342         unldst.arm4.swf
343 $(arm4_swf_TESTS):      check.arm4.swf.sh
344         $(LN_S) $(srcdir)/check.arm4.swf.sh $@
345 TESTS += $(arm4_swf_TESTS)
346 endif
347 endif
348
349 if test_nodata
350 #nodata_TESTS = $(addsuffix .nodata, $(base_TESTS))
351 nodata_TESTS =                                          \
352         3to2.nodata add.nodata allocai.nodata           \
353         allocar.nodata bp.nodata divi.nodata fib.nodata \
354         rpn.nodata ldstr.nodata ldsti.nodata            \
355         ldstxr.nodata ldstxi.nodata                     \
356         ldstr-c.nodata ldstxr-c.nodata ldstxi-c.nodata  \
357         ext.nodata cvt.nodata branch.nodata             \
358         alu_add.nodata alux_add.nodata                  \
359         alu_sub.nodata alux_sub.nodata alu_rsb.nodata   \
360         alu_mul.nodata alu_hmul.nodata                  \
361         alu_div.nodata alu_rem.nodata                   \
362         alu_and.nodata alu_or.nodata alu_xor.nodata     \
363         alu_lsh.nodata alu_rsh.nodata alu_rot.nodata    \
364         alu_com.nodata alu_neg.nodata                   \
365         movzr.nodata fma.nodata                         \
366         fop_abs.nodata fop_sqrt.nodata                  \
367         varargs.nodata stack.nodata                     \
368         clobber.nodata carry.nodata call.nodata         \
369         float.nodata jmpr.nodata tramp.nodata           \
370         range.nodata ranger.nodata put.nodata           \
371         va_list.nodata bit.nodata imm.nodata            \
372         unldst.nodata
373 $(nodata_TESTS):        check.nodata.sh
374         $(LN_S) $(srcdir)/check.nodata.sh $@
375 TESTS += $(nodata_TESTS)
376 endif
377
378 TESTS += ccall self setcode nodata ctramp carg cva_list catomic \
379          protect riprel cbit callee
380 CLEANFILES = $(TESTS) gen_cbit cbit.c
381
382 #TESTS_ENVIRONMENT=$(srcdir)/run-test;
383
384 debug:          lightning
385         $(LIBTOOL) --mode=execute gdb lightning