summaryrefslogtreecommitdiffstats
path: root/binutils-2.24/gas/testsuite/gas/aarch64/system.s
blob: 234b900a3f9fd373335c4fd23dab757ffef91e07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
	.text
	drps

	//
	// HINTS
	//

	nop
	yield
	wfe
	wfi
	sev
	sevl

	.macro	all_hints from=0, to=127
	hint \from
	.if	\to-\from
	all_hints "(\from+1)", \to
	.endif
	.endm

	all_hints from=0, to=63
	all_hints from=64, to=127

	//
	// SYSL
	//

	sysl	x7, #3, C15, C7, #7

	//
	// BARRIERS
	//

	.macro	all_barriers op, from=0, to=15
	\op	\from
	.if	\to-\from
	all_barriers \op, "(\from+1)", \to
	.endif
	.endm

	all_barriers	op=dsb, from=0, to=15
	all_barriers	op=dmb, from=0, to=15
	all_barriers	op=isb, from=0, to=15

	isb

	//
	// PREFETCHS
	//

	.macro	all_prefetchs op, from=0, to=31
	\op	\from, LABEL1
	\op	\from, [sp, x15, lsl #0]
	\op	\from, [x7, w30, uxtw #3]
	\op	\from, [x3, #24]
	.if	\to-\from
	all_prefetchs \op, "(\from+1)", \to
	.endif
	.endm

	all_prefetchs	op=prfm, from=0, to=31

	//
	// PREFETCHS with named operation
	//

	.irp op, pld, pli, pst
	.irp l, l1, l2, l3
	.irp t, keep, strm
	prfm	\op\l\t, [x3, #24]
	.endr
	.endr
	.endr