Print this page
de-linting of .s files

*** 24,38 **** * Use is subject to license terms. * * Assembly code support for the Cheetah module */ - #pragma ident "%Z%%M% %I% %E% SMI" - - #if !defined(lint) #include "assym.h" - #endif /* lint */ #include <sys/asm_linkage.h> #include <sys/mmu.h> #include <vm/hat_sfmmu.h> #include <sys/machparam.h> --- 24,34 ----
*** 52,63 **** #ifdef TRAPTRACE #include <sys/traptrace.h> #endif /* TRAPTRACE */ - #if !defined(lint) - /* BEGIN CSTYLED */ /* * Cheetah version to flush an Ecache line by index (aliased address) */ --- 48,57 ----
*** 73,101 **** add scr1, scr2, scr1; \ ECACHE_REFLUSH_LINE(ecache_size, scr1, scr2) /* END CSTYLED */ - #endif /* !lint */ - /* * Fast ECC error at TL>0 handler * We get here via trap 70 at TL>0->Software trap 0 at TL>0. We enter * this routine with %g1 and %g2 already saved in %tpc, %tnpc and %tstate. * For a complete description of the Fast ECC at TL>0 handling see the * comment block "Cheetah/Cheetah+ Fast ECC at TL>0 trap strategy" in * us3_common_asm.s */ - #if defined(lint) - void - fast_ecc_tl1_err(void) - {} - - #else /* lint */ - .section ".text" .align 64 ENTRY_NP(fast_ecc_tl1_err) /* --- 67,86 ----
*** 310,351 **** */ CH_ERR_TL1_PANIC_EXIT(fecc_tl1_err); SET_SIZE(fast_ecc_tl1_err) - #endif /* lint */ - - #if defined(lint) - /* - * scrubphys - Pass in the aligned physical memory address - * that you want to scrub, along with the ecache set size. - * - * 1) Displacement flush the E$ line corresponding to %addr. - * The first ldxa guarantees that the %addr is no longer in - * M, O, or E (goes to I or S (if instruction fetch also happens). - * 2) "Write" the data using a CAS %addr,%g0,%g0. - * The casxa guarantees a transition from I to M or S to M. - * 3) Displacement flush the E$ line corresponding to %addr. - * The second ldxa pushes the M line out of the ecache, into the - * writeback buffers, on the way to memory. - * 4) The "membar #Sync" pushes the cache line out of the writeback - * buffers onto the bus, on the way to dram finally. - * - * This is a modified version of the algorithm suggested by Gary Lauterbach. - * In theory the CAS %addr,%g0,%g0 is supposed to mark the addr's cache line - * as modified, but then we found out that for spitfire, if it misses in the - * E$ it will probably install as an M, but if it hits in the E$, then it - * will stay E, if the store doesn't happen. So the first displacement flush - * should ensure that the CAS will miss in the E$. Arrgh. - */ - /* ARGSUSED */ - void - scrubphys(uint64_t paddr, int ecache_set_size) - {} - - #else /* lint */ ENTRY(scrubphys) rdpr %pstate, %o4 andn %o4, PSTATE_IE | PSTATE_AM, %o5 wrpr %o5, %g0, %pstate ! clear IE, AM bits --- 295,305 ----
*** 357,387 **** retl membar #Sync ! move the data out of the load buffer SET_SIZE(scrubphys) - #endif /* lint */ - - #if defined(lint) - /* - * clearphys - Pass in the physical memory address of the checkblock - * that you want to push out, cleared with a recognizable pattern, - * from the ecache. - * - * To ensure that the ecc gets recalculated after the bad data is cleared, - * we must write out enough data to fill the w$ line (64 bytes). So we read - * in an entire ecache subblock's worth of data, and write it back out. - * Then we overwrite the 16 bytes of bad data with the pattern. - */ - /* ARGSUSED */ - void - clearphys(uint64_t paddr, int ecache_set_size, int ecache_linesize) - { - } - - #else /* lint */ ENTRY(clearphys) /* turn off IE, AM bits */ rdpr %pstate, %o4 andn %o4, PSTATE_IE | PSTATE_AM, %o5 wrpr %o5, %g0, %pstate --- 311,321 ----
*** 425,472 **** /* return and re-enable IE and AM */ retl wrpr %g0, %o4, %pstate SET_SIZE(clearphys) - #endif /* lint */ - - #if defined(lint) - /* - * Cheetah Ecache displacement flush the specified line from the E$ - * - * Register usage: - * %o0 - 64 bit physical address for flushing - * %o1 - Ecache set size - */ - /*ARGSUSED*/ - void - ecache_flush_line(uint64_t flushaddr, int ec_set_size) - { - } - #else /* lint */ ENTRY(ecache_flush_line) ECACHE_FLUSH_LINE(%o0, %o1, %o2, %o3) retl nop SET_SIZE(ecache_flush_line) - #endif /* lint */ - #if defined(lint) - /* - * This routine will not be called in Cheetah systems. - */ - void - flush_ipb(void) - { return; } - - #else /* lint */ - ENTRY(flush_ipb) retl nop SET_SIZE(flush_ipb) - #endif /* lint */ --- 359,378 ----