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 isb sy 48 ssbb 49 pssbb 50 51 dsb oshld 52 dsb oshst 53 dsb osh 54 dsb nshld 55 dsb nshst 56 dsb nsh 57 dsb #0x08 58 dsb ishld 59 dsb ishst 60 dsb ish 61 dsb #0x0c 62 dsb ld 63 dsb st 64 dsb sy 65 66 // 67 // PREFETCHS 68 // 69 70 .macro all_prefetchs op, from=0, to=31 71 \op \from, LABEL1 72 \op \from, [sp, x15, lsl #0] 73 \op \from, [x7, w30, uxtw #3] 74 \op \from, [x3, #24] 75 .if \to-\from 76 all_prefetchs \op, "(\from+1)", \to 77 .endif 78 .endm 79 80 all_prefetchs op=prfm, from=0, to=31 81 82 // 83 // PREFETCHS with named operation 84 // 85 86 .irp op, pld, pli, pst 87 .irp l, l1, l2, l3 88 .irp t, keep, strm 89 prfm \op\l\t, [x3, #24] 90 .endr 91 .endr 92 .endr 93