Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / legion / src / simcore / xdcache.c
CommitLineData
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
41void 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