bfd/
[platform/upstream/binutils.git] / gas / testsuite / gas / aarch64 / system.s
1         .text
2         drps
3
4         //
5         // HINTS
6         //
7
8         nop
9         yield
10         wfe
11         wfi
12         sev
13         sevl
14
15         .macro  all_hints from=0, to=127
16         hint \from
17         .if     \to-\from
18         all_hints "(\from+1)", \to
19         .endif
20         .endm
21
22         all_hints from=0, to=63
23         all_hints from=64, to=127
24
25         //
26         // SYSL
27         //
28
29         sysl    x7, #3, C15, C7, #7
30
31         //
32         // BARRIERS
33         //
34
35         .macro  all_barriers op, from=0, to=15
36         \op     \from
37         .if     \to-\from
38         all_barriers \op, "(\from+1)", \to
39         .endif
40         .endm
41
42         all_barriers    op=dsb, from=0, to=15
43         all_barriers    op=dmb, from=0, to=15
44         all_barriers    op=isb, from=0, to=15
45
46         isb
47
48         //
49         // PREFETCHS
50         //
51
52         .macro  all_prefetchs op, from=0, to=31
53         \op     \from, LABEL1
54         \op     \from, [sp, x15, lsl #0]
55         \op     \from, [x7, w30, uxtw #3]
56         \op     \from, [x3, #24]
57         .if     \to-\from
58         all_prefetchs \op, "(\from+1)", \to
59         .endif
60         .endm
61
62         all_prefetchs   op=prfm, from=0, to=31
63
64         //
65         // PREFETCHS with named operation
66         //
67
68         .irp op, pld, pli, pst
69         .irp l, l1, l2, l3
70         .irp t, keep, strm
71         prfm    \op\l\t, [x3, #24]
72         .endr
73         .endr
74         .endr