/* This file is part of JOP, the Java Optimized Processor see <http://www.jopdesign.com/> Copyright (C) 2001-2008, Martin Schoeberl (martin@jopdesign.com) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ /** * * Simulation of simple cache (as in JOP) * */ package com.jopdesign.tools; public class SimpleCache extends Cache { SimpleCache(int[] main, JopSim js) { mem = main; sim = js; } int ret(int start, int len, int pc) { this.lastHit = false; loadBc(start, len); return pc; } int corrPc(int pc) { return pc; } int invoke(int start, int len) { this.lastHit = false; loadBc(start, len); return 0; } void loadBc(int start, int len) { // high byte of word is first bc!!! for (int i=0; i<len; ++i) { int val = sim.readInstrMem(start+i); for (int j=0; j<4; ++j) { bc[i*4+(3-j)] = (byte) val; val >>>= 8; } } memRead += len*4; memTrans++; } byte bc(int addr) { ++cacheRead; return bc[addr]; } }