Home | History | Annotate | Download | only in aarch64
      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
     75