gpu_neon: fix some missing ebuf updates
[pcsx_rearmed.git] / deps / lightning / check / ret.tst
CommitLineData
4a71579b
PC
1.data 16
2ok:
3.c "ok"
4
5.code
6 jmpi main
7
8/*
9 * very simple test on purpose because otherwise it would not trigger
10 * the bug where the retr %r0 or retr_d %f0 would be omitted because
11 * the argument was already the return register, but the register end
12 * clobbered by another instruction, like the div*, and the wrong
13 * value returned because the retr* was removed and this way, lost
14 * information that the register was live at function exit.
15 */
16
17check_r0:
18 prolog
19 movi %r0 1
20 movi %r2 10
21 // on x86 this changes %rax on other arches could use %r0 as temporary
22 divi %r1 %r2 3
23 // %r0 must still be 1
24 retr %r0
25 epilog
26
27check_f0:
28 prolog
29 movi_d %f0 0.5
30 movi_d %f2 10
31 divi_d %f1 %f2 3
32 retr_d %f0
33 epilog
34
35main:
36 prolog
37 calli check_r0
38 retval %r1
39 beqi r0_ok %r1 1
40 calli @abort
41r0_ok:
42 calli check_f0
43 retval_d %f1
44 beqi_d f0_ok %f1 0.5
45 calli @abort
46f0_ok:
47 prepare
48 pushargi ok
49 finishi @puts
50 ret
51 epilog