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 ----