@ -47,28 +47,28 @@
# endif
.endm
.macro cache_loop curr, e n d , l i n e _ s z , o p
10 : cache \ o p , 0 ( \ c u r r )
PTR_ A D D U \ c u r r , \ c u r r , \ l i n e _ s z
bne \ c u r r , \ e n d , 1 0 b
.endm
/ *
* mips_ i n i t _ i c a c h e ( u i n t P R I d , u l o n g i c a c h e _ s i z e , u n c h a r i c a c h e _ l i n e s z )
* /
LEAF( m i p s _ i n i t _ i c a c h e )
blez a1 , 9 f
mtc0 z e r o , C P 0 _ T A G L O
/* clear tag to invalidate */
PTR_ L I t 0 , I N D E X _ B A S E
PTR_ A D D U t 1 , t 0 , a1
1 : cache I N D E X _ S T O R E _ T A G _ I , 0 ( t 0 )
PTR_ A D D U t 0 , a2
bne t 0 , t 1 , 1 b
/* clear tag to invalidate */
cache_ l o o p t 0 , t 1 , a2 , I N D E X _ S T O R E _ T A G _ I
/* fill once, so data field parity is correct */
PTR_ L I t 0 , I N D E X _ B A S E
2 : cache F I L L , 0 ( t 0 )
PTR_ A D D U t 0 , a2
bne t 0 , t 1 , 2 b
cache_ l o o p t 0 , t 1 , a2 , F I L L
/* invalidate again - prudent but not strictly neccessary */
PTR_ L I t 0 , I N D E X _ B A S E
1 : cache I N D E X _ S T O R E _ T A G _ I , 0 ( t 0 )
PTR_ A D D U t 0 , a2
bne t 0 , t 1 , 1 b
cache_ l o o p t 0 , t 1 , a2 , I N D E X _ S T O R E _ T A G _ I
9 : jr r a
END( m i p s _ i n i t _ i c a c h e )
@ -78,12 +78,10 @@ LEAF(mips_init_icache)
LEAF( m i p s _ i n i t _ d c a c h e )
blez a1 , 9 f
mtc0 z e r o , C P 0 _ T A G L O
/* clear all tags */
PTR_ L I t 0 , I N D E X _ B A S E
PTR_ A D D U t 1 , t 0 , a1
1 : cache I N D E X _ S T O R E _ T A G _ D , 0 ( t 0 )
PTR_ A D D U t 0 , a2
bne t 0 , t 1 , 1 b
/* clear all tags */
cache_ l o o p t 0 , t 1 , a2 , I N D E X _ S T O R E _ T A G _ D
/* load from each line (in cached space) */
PTR_ L I t 0 , I N D E X _ B A S E
2 : LONG_ L z e r o , 0 ( t 0 )
@ -91,9 +89,7 @@ LEAF(mips_init_dcache)
bne t 0 , t 1 , 2 b
/* clear all tags */
PTR_ L I t 0 , I N D E X _ B A S E
1 : cache I N D E X _ S T O R E _ T A G _ D , 0 ( t 0 )
PTR_ A D D U t 0 , a2
bne t 0 , t 1 , 1 b
cache_ l o o p t 0 , t 1 , a2 , I N D E X _ S T O R E _ T A G _ D
9 : jr r a
END( m i p s _ i n i t _ d c a c h e )