Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | /* |
2 | * ========== Copyright Header Begin ========================================== | |
3 | * | |
4 | * OpenSPARC T2 Processor File: xdcache.c | |
5 | * Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved. | |
6 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES. | |
7 | * | |
8 | * The above named program is free software; you can redistribute it and/or | |
9 | * modify it under the terms of the GNU General Public | |
10 | * License version 2 as published by the Free Software Foundation. | |
11 | * | |
12 | * The above named program is distributed in the hope that it will be | |
13 | * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
15 | * General Public License for more details. | |
16 | * | |
17 | * You should have received a copy of the GNU General Public | |
18 | * License along with this work; if not, write to the Free Software | |
19 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. | |
20 | * | |
21 | * ========== Copyright Header End ============================================ | |
22 | */ | |
23 | /* | |
24 | * Copyright 2006 Sun Microsystems, Inc. All rights reserved. | |
25 | * Use is subject to license terms. | |
26 | */ | |
27 | #pragma ident "@(#)xdcache.c 1.7 06/08/08 SMI" | |
28 | ||
29 | /* | |
30 | * Support routines for the execution data cache | |
31 | */ | |
32 | ||
33 | #include <assert.h> | |
34 | ||
35 | #include "basics.h" | |
36 | #include "allocate.h" | |
37 | #include "simcore.h" | |
38 | #include "config.h" | |
39 | #include "xdcache.h" | |
40 | ||
41 | void xdcache_flush(simcpu_t * sp) | |
42 | { | |
43 | xdcache_t * xdcp = &(sp->xdc); | |
44 | xdcache_line_t * lp; | |
45 | ulong_t i; | |
46 | ||
47 | XDC_FLUSH(sp); | |
48 | ||
49 | DBGXCACHE( lprintf(sp->gid, "xdcache_flush: pc=0x%llx " | |
50 | "[cycle=0x%llx]\n", sp->pc, sp->cycle); ); | |
51 | ||
52 | lp = &xdcp->line[0]; | |
53 | ||
54 | for (i=0; i<XDCACHE_NUM_LINES; i++, lp++) { | |
55 | if ((lp->tag & XCACHE_TAGSTATE_MASK) != XCACHE_TAGSTATE_PHYS) | |
56 | lp->tag = XDCACHE_INVALID_TAG; | |
57 | } | |
58 | } | |
59 |