Deleted Added
sdiff udiff text old ( 2985:c010893f23ae ) new ( 3271:4a871cbe6d84 )
full compact
1/*
2 * Copyright (c) 2003-2005 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 53 unchanged lines hidden (view full) ---

62class TimingSimpleCPU;
63class InorderCPU;
64class SymbolTable;
65
66namespace Trace {
67 class InstRecord;
68}
69
70/**
71 * Base, ISA-independent static instruction class.
72 *
73 * The main component of this class is the vector of flags and the
74 * associated methods for reading them. Any object that can rely
75 * solely on these flags can process instructions without being
76 * recompiled for multiple ISAs.
77 */

--- 56 unchanged lines hidden (view full) ---

134 IsWriteBarrier, ///< Is a write barrier
135
136 IsNonSpeculative, ///< Should not be executed speculatively
137 IsQuiesce, ///< Is a quiesce instruction
138
139 IsIprAccess, ///< Accesses IPRs
140 IsUnverifiable, ///< Can't be verified by a checker
141
142 NumFlags
143 };
144
145 /// Flag values for this instruction.
146 std::bitset<NumFlags> flags;
147
148 /// See opClass().
149 OpClass _opClass;

--- 75 unchanged lines hidden (view full) ---

225 bool isSerializeBefore() const { return flags[IsSerializeBefore]; }
226 bool isSerializeAfter() const { return flags[IsSerializeAfter]; }
227 bool isMemBarrier() const { return flags[IsMemBarrier]; }
228 bool isWriteBarrier() const { return flags[IsWriteBarrier]; }
229 bool isNonSpeculative() const { return flags[IsNonSpeculative]; }
230 bool isQuiesce() const { return flags[IsQuiesce]; }
231 bool isIprAccess() const { return flags[IsIprAccess]; }
232 bool isUnverifiable() const { return flags[IsUnverifiable]; }
233 //@}
234
235 /// Operation class. Used to select appropriate function unit in issue.
236 OpClass opClass() const { return _opClass; }
237};
238
239
240// forward declaration

--- 101 unchanged lines hidden (view full) ---

342
343/**
344 * The execute() signatures are auto-generated by scons based on the
345 * set of CPU models we are compiling in today.
346 */
347#include "cpu/static_inst_exec_sigs.hh"
348
349 /**
350 * Return the target address for a PC-relative branch.
351 * Invalid if not a PC-relative branch (i.e. isDirectCtrl()
352 * should be true).
353 */
354 virtual Addr branchTarget(Addr branchPC) const
355 {
356 panic("StaticInst::branchTarget() called on instruction "
357 "that is not a PC-relative branch.");

--- 131 unchanged lines hidden ---