Lines Matching defs:afar
72 * afar: input AFAR, not modified.
78 #define GET_DCACHE_DTAG(afar, datap, scr1, scr2, scr3) \
80 and afar, scr3, scr3; \
81 srlx afar, CH_DCTAG_PA_SHIFT, scr2; \
143 * afar: input AFAR, not modified.
158 #define GET_ICACHE_DTAG(afar, datap, scr1, scr2, scr3) \
173 and afar, scr3, scr3; \
175 srlx afar, CH_ICPATAG_SHIFT, scr2; /* pa tag we want */ \
225 * afar: input AFAR, not modified
232 #define GET_ECACHE_DTAG(afar, datap, ec_way, scr1, scr2, scr3) \
237 and afar, scr2, scr3; /* get set offset */ \
263 #define GET_ECACHE_DTAGS(afar, datap, scr1, scr2, scr3) \
264 GET_ECACHE_DTAG(afar, datap, 0, scr1, scr2, scr3); \
265 GET_ECACHE_DTAG(afar, datap, 1, scr1, scr2, scr3); \
266 GET_ECACHE_DTAG(afar, datap, 2, scr1, scr2, scr3); \
267 GET_ECACHE_DTAG(afar, datap, 3, scr1, scr2, scr3); \
282 * afar: returned primary AFAR value.
286 #define GET_AFSR_AFAR(datap, afar, scr1, scr2) \
287 ldxa [%g0]ASI_AFAR, afar; \
288 stxa afar, [datap + (CH_CLO_DATA + CH_CHD_AFAR)]%asi; \
300 #define GET_SHADOW_DATA(afar, datap, scr1, scr2, scr3)
308 * afar: returned primary AFAR value.
312 #define GET_AFSR_AFAR(datap, afar, scr1, scr2) \
314 ldxa [scr1]ASI_MCU_CTRL, afar; \
315 stxa afar, [datap + (CH_CLO_DATA + CH_CHD_AFAR2)]%asi; \
316 ldxa [%g0]ASI_AFAR, afar; \
317 stxa afar, [datap + (CH_CLO_DATA + CH_CHD_AFAR)]%asi; \
328 * afar: scratch, holds afar2.
334 #define GET_SHADOW_DATA(afar, datap, scr1, scr2, scr3) \
335 ldxa [datap + (CH_CLO_DATA + CH_CHD_AFAR2)]%asi, afar; \
337 GET_ECACHE_DTAGS(afar, datap, scr1, scr2, scr3); \
338 GET_DCACHE_DTAG(afar, datap, scr1, scr2, scr3); \
339 GET_ICACHE_DTAG(afar, datap, scr1, scr2, scr3); \
347 * afar: input AFAR, not modified.
355 #define GET_ECACHE_DTAG(afar, datap, pn_way, scr1, scr2, scr3) \
356 mov afar, scr3; \
462 * afar: returned primary AFAR value.
466 #define GET_AFSR_AFAR(datap, afar, scr1, scr2) \
472 ldxa [%g0]ASI_AFAR, afar; \
473 stxa afar, [datap + (CH_CLO_DATA + CH_CHD_AFAR)]%asi; \
501 * afar: input AFAR, not modified.
507 #define GET_PN_L2_CACHE_DTAGS(afar, datap, scr1, scr2, scr3) \
508 mov afar, scr3; \
550 * Cheetah+ assumes E$ is 2-way and grabs both E$ lines associated with afar.
551 * afar: AFAR from access.
557 #define GET_ECACHE_DTAGS(afar, datap, scr1, scr2, scr3) \
562 GET_ECACHE_DTAG(afar, datap, 0, scr1, scr2, scr3); \
563 GET_ECACHE_DTAG(afar, datap, 1, scr1, scr2, scr3); \
564 GET_ECACHE_DTAG(afar, datap, 2, scr1, scr2, scr3); \
565 GET_ECACHE_DTAG(afar, datap, 3, scr1, scr2, scr3); \
567 GET_PN_L2_CACHE_DTAGS(afar, datap, scr1, scr2, scr3); \
571 GET_ECACHE_DTAG(afar, datap, 0, scr1, scr2, scr3); \
573 xor afar, scr1, afar; \
574 GET_ECACHE_DTAG(afar, datap, 0, scr1, scr2, scr3); \
576 xor afar, scr1, afar; \
583 * shadow afar.
584 * afar: scratch, holds shadow afar.
590 #define GET_SHADOW_DATA(afar, datap, scr1, scr2, scr3) \
591 ldxa [datap + (CH_CLO_SDW_DATA + CH_CHD_AFAR)]%asi, afar; \
593 GET_ECACHE_DTAGS(afar, datap, scr1, scr2, scr3); \
594 GET_DCACHE_DTAG(afar, datap, scr1, scr2, scr3); \
595 GET_ICACHE_DTAG(afar, datap, scr1, scr2, scr3); \
613 * afar: input AFAR, not modified.
619 #define GET_ECACHE_DTAG(afar, datap, scr1, scr2, scr3) \
620 mov afar, scr3; \
655 * afar: returned primary AFAR value.
659 #define GET_AFSR_AFAR(datap, afar, scr1, scr2) \
660 ldxa [%g0]ASI_AFAR, afar; \
661 stxa afar, [datap + (CH_CLO_DATA + CH_CHD_AFAR)]%asi; \
672 * afar: AFAR from access.
678 #define GET_ECACHE_DTAGS(afar, datap, scr1, scr2, scr3) \
679 GET_ECACHE_DTAG(afar, datap, scr1, scr2, scr3); \
686 #define GET_SHADOW_DATA(afar, datap, scr1, scr2, scr3)
694 * the macro. afar is used to return the primary AFAR value to the caller
716 * afar: output: contains AFAR on exit
724 #define DO_TL1_CPU_LOGOUT(r_val, afar, t_flags, datap, scr1, scr2, scr3) \
731 GET_AFSR_AFAR(datap, afar, scr1, scr2); \
733 GET_ECACHE_DTAGS(afar, datap, scr1, scr2, scr3); \
734 GET_DCACHE_DTAG(afar, datap, scr1, scr2, scr3); \
735 GET_ICACHE_DTAG(afar, datap, scr1, scr2, scr3); \
737 GET_SHADOW_DATA(afar, datap, scr1, scr2, scr3); \
738 ldxa [datap + (CH_CLO_DATA + CH_CHD_AFAR)]%asi, afar; \
743 ldxa [%g0]ASI_AFAR, afar; \
769 * afar: returns AFAR, used internally as afar value.
782 #define DO_CPU_LOGOUT(r_val, afar, r_or_s, t_flags, scr1, scr2, scr3, scr4) \
785 DO_TL1_CPU_LOGOUT(r_val, afar, t_flags, scr1, scr2, scr3, scr4) \
789 mov t_flags, afar; /* depends on afar = %g2 */ \