static_inst.hh (10259:ebb376f73dd2) static_inst.hh (10319:4207f9bfcceb)
1/*
2 * Copyright (c) 2003-2005 The Regents of The University of Michigan
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright

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

45#include "cpu/static_inst_fwd.hh"
46#include "cpu/thread_context.hh"
47#include "enums/StaticInstFlags.hh"
48#include "sim/fault_fwd.hh"
49
50// forward declarations
51class Packet;
52
1/*
2 * Copyright (c) 2003-2005 The Regents of The University of Michigan
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met: redistributions of source code must retain the above copyright

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

45#include "cpu/static_inst_fwd.hh"
46#include "cpu/thread_context.hh"
47#include "enums/StaticInstFlags.hh"
48#include "sim/fault_fwd.hh"
49
50// forward declarations
51class Packet;
52
53struct O3CPUImpl;
54template <class Impl> class BaseO3DynInst;
55typedef BaseO3DynInst<O3CPUImpl> O3DynInst;
56class InOrderDynInst;
53class ExecContext;
57
54
58class CheckerCPU;
59class AtomicSimpleCPU;
60class TimingSimpleCPU;
61class InorderCPU;
62namespace Minor
63{
64 class ExecContext;
65};
66
67class SymbolTable;
68
69namespace Trace {
70 class InstRecord;
71}
72
73/**
74 * Base, ISA-independent static instruction class.

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

262 : _opClass(__opClass), _numSrcRegs(0), _numDestRegs(0),
263 _numFPDestRegs(0), _numIntDestRegs(0),
264 machInst(_machInst), mnemonic(_mnemonic), cachedDisassembly(0)
265 { }
266
267 public:
268 virtual ~StaticInst();
269
55class SymbolTable;
56
57namespace Trace {
58 class InstRecord;
59}
60
61/**
62 * Base, ISA-independent static instruction class.

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

250 : _opClass(__opClass), _numSrcRegs(0), _numDestRegs(0),
251 _numFPDestRegs(0), _numIntDestRegs(0),
252 machInst(_machInst), mnemonic(_mnemonic), cachedDisassembly(0)
253 { }
254
255 public:
256 virtual ~StaticInst();
257
270/**
271 * The execute() signatures are auto-generated by scons based on the
272 * set of CPU models we are compiling in today.
273 */
274#include "cpu/static_inst_exec_sigs.hh"
258 virtual Fault execute(ExecContext *xc,
259 Trace::InstRecord *traceData) const = 0;
260 virtual Fault eaComp(ExecContext *xc,
261 Trace::InstRecord *traceData) const
262 {
263 panic("eaComp not defined!");
264 }
275
265
266 virtual Fault initiateAcc(ExecContext *xc,
267 Trace::InstRecord *traceData) const
268 {
269 panic("initiateAcc not defined!");
270 }
271
272 virtual Fault completeAcc(Packet *pkt, ExecContext *xc,
273 Trace::InstRecord *traceData) const
274 {
275 panic("completeAcc not defined!");
276 }
277
276 virtual void advancePC(TheISA::PCState &pcState) const = 0;
277
278 /**
279 * Return the microop that goes with a particular micropc. This should
280 * only be defined/used in macroops which will contain microops
281 */
282 virtual StaticInstPtr fetchMicroop(MicroPC upc) const;
283

--- 44 unchanged lines hidden ---
278 virtual void advancePC(TheISA::PCState &pcState) const = 0;
279
280 /**
281 * Return the microop that goes with a particular micropc. This should
282 * only be defined/used in macroops which will contain microops
283 */
284 virtual StaticInstPtr fetchMicroop(MicroPC upc) const;
285

--- 44 unchanged lines hidden ---