sim: bfin: import testsuite
[external/binutils.git] / sim / testsuite / sim / bfin / cir1.s
1 # Blackfin testcase for circular buffers
2 # mach: bfin
3
4         .include "testutils.inc"
5
6         .macro daginit i:req, b:req, l:req, m:req
7         imm32 I0, \i
8         imm32 B0, \b
9         imm32 L0, \l
10         imm32 M0, \m
11         .endm
12         .macro dagcheck newi:req
13         DBGA ( I0.L, \newi & 0xFFFF );
14         DBGA ( I0.H, \newi >> 16 );
15         .endm
16
17         .macro dagadd i:req, b:req, l:req, m:req, newi:req
18         daginit \i, \b, \l, \m
19         I0 += M0;
20         dagcheck \newi
21         .endm
22
23         .macro dagsub i:req, b:req, l:req, m:req, newi:req
24         daginit \i, \b, \l, \m
25         I0 -= M0;
26         dagcheck \newi
27         .endm
28
29         .macro dag i:req, b:req, l:req, m:req, addi:req, subi:req
30         daginit \i, \b, \l, \m
31         I0 += M0;
32         dagcheck \addi
33         imm32 I0, \i
34         I0 -= M0;
35         dagcheck \subi
36         .endm
37
38         start
39
40         init_l_regs 0
41         init_i_regs 0
42         init_b_regs 0
43         init_m_regs 0
44
45 _zero_len:
46         dag 0, 0, 0, 0, 0, 0
47         dag 100, 0, 0, 0, 100, 100
48         dag 100, 0, 0, 11, 111, 89
49         dag 100, 0xaa00ff00, 0, 0, 100, 100
50         dag 100, 0xaa00ff00, 0, 11, 111, 89
51
52 _zero_base:
53         dag 0, 0, 100, 10, 10, 90
54         dag 50, 0, 100, 10, 60, 40
55         dag 99, 0, 100, 10, 9, 89
56         dag 50, 0, 100, 50, 0, 0
57         dag 50, 0, 100, 100, 50, 50
58         dag 50, 0, 100, 200, 150, -50
59         dag 50, 0, 100, 2100, 2050, -1950
60         dag 1000, 0, 100, 0, 900, 1000
61         dag 1000, 0, 1000, 0, 0, 1000
62
63         dag 0xffff1000, 0, 0x1000, 0, 0xffff0000, 0xffff1000
64         dag 0xaaaa1000, 0, 0xaaa1000, 0, 0xa0000000, 0xaaaa1000
65         dag 0xaaaa1000, 0, 0xaaa1000, 0x1000, 0xa0001000, 0xaaaa0000
66         dag 0xffff1000, 0, 0xffff0000, 0xffffff, 0x1000fff, 0xfeff1001
67
68 _positive_base:
69         dag 0, 100, 100, 10, 10, 90
70         dag 90, 100, 100, 10, 100, 180
71         dag 90, 100, 100, 2100, 2090, -1910
72         dag 100, 100, 100, 100, 100, 100
73         dag 0xfffff000, 0xffffff00, 0x10, 0xffff, 0xefef, 0xfffef011
74
75 _large_base_len:
76         dag 0, 0xffffff00, 0xffffff00, 0x00000100, 0x00000200, 0xfffffe00
77         dag 0, 0xaaaaaaaa, 0xbbbbbbbb, 0xcccccccc, 0x88888887, 0x77777779
78         dag 0, 0xaaaaaaaa, 0xbbbbbbbb, 0x4ccccccc, 0x91111111, 0x6eeeeeef
79         dag 0, 0xaaaaaaaa, 0xbbbbbbbb, 0x00000000, 0x44444445, 0xbbbbbbbb
80         dag 0, 0xdddddddd, 0x7bbbbbbb, 0xcccccccc, 0xcccccccc, 0xb7777779
81         dag 0, 0xbbbbbbbb, 0x7bbbbbbb, 0x4ccccccc, 0x4ccccccc, 0xb3333334
82         dag 0, 0xbbbbbbbb, 0x7bbbbbbb, 0x00000000, 0x84444445, 0x7bbbbbbb
83
84         pass