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