static_inst.hh (4182:5b2c0d266107) | static_inst.hh (4539:6eeeea62b7c4) |
---|---|
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; --- 129 unchanged lines hidden (view full) --- 138 139 IsNonSpeculative, ///< Should not be executed speculatively 140 IsQuiesce, ///< Is a quiesce instruction 141 142 IsIprAccess, ///< Accesses IPRs 143 IsUnverifiable, ///< Can't be verified by a checker 144 145 //Flags for microcode | 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; --- 129 unchanged lines hidden (view full) --- 138 139 IsNonSpeculative, ///< Should not be executed speculatively 140 IsQuiesce, ///< Is a quiesce instruction 141 142 IsIprAccess, ///< Accesses IPRs 143 IsUnverifiable, ///< Can't be verified by a checker 144 145 //Flags for microcode |
146 IsMacroOp, ///< Is a macroop containing microops 147 IsMicroOp, ///< Is a microop | 146 IsMacroop, ///< Is a macroop containing microops 147 IsMicroop, ///< Is a microop |
148 IsDelayedCommit, ///< This microop doesn't commit right away | 148 IsDelayedCommit, ///< This microop doesn't commit right away |
149 IsLastMicroOp, ///< This microop ends a microop sequence 150 IsFirstMicroOp, ///< This microop begins a microop sequence | 149 IsLastMicroop, ///< This microop ends a microop sequence 150 IsFirstMicroop, ///< This microop begins a microop sequence |
151 //This flag doesn't do anything yet 152 IsMicroBranch, ///< This microop branches within the microcode for a macroop 153 154 NumFlags 155 }; 156 157 /// Flag values for this instruction. 158 std::bitset<NumFlags> flags; --- 78 unchanged lines hidden (view full) --- 237 bool isSerializeBefore() const { return flags[IsSerializeBefore]; } 238 bool isSerializeAfter() const { return flags[IsSerializeAfter]; } 239 bool isMemBarrier() const { return flags[IsMemBarrier]; } 240 bool isWriteBarrier() const { return flags[IsWriteBarrier]; } 241 bool isNonSpeculative() const { return flags[IsNonSpeculative]; } 242 bool isQuiesce() const { return flags[IsQuiesce]; } 243 bool isIprAccess() const { return flags[IsIprAccess]; } 244 bool isUnverifiable() const { return flags[IsUnverifiable]; } | 151 //This flag doesn't do anything yet 152 IsMicroBranch, ///< This microop branches within the microcode for a macroop 153 154 NumFlags 155 }; 156 157 /// Flag values for this instruction. 158 std::bitset<NumFlags> flags; --- 78 unchanged lines hidden (view full) --- 237 bool isSerializeBefore() const { return flags[IsSerializeBefore]; } 238 bool isSerializeAfter() const { return flags[IsSerializeAfter]; } 239 bool isMemBarrier() const { return flags[IsMemBarrier]; } 240 bool isWriteBarrier() const { return flags[IsWriteBarrier]; } 241 bool isNonSpeculative() const { return flags[IsNonSpeculative]; } 242 bool isQuiesce() const { return flags[IsQuiesce]; } 243 bool isIprAccess() const { return flags[IsIprAccess]; } 244 bool isUnverifiable() const { return flags[IsUnverifiable]; } |
245 bool isMacroOp() const { return flags[IsMacroOp]; } 246 bool isMicroOp() const { return flags[IsMicroOp]; } | 245 bool isMacroop() const { return flags[IsMacroop]; } 246 bool isMicroop() const { return flags[IsMicroop]; } |
247 bool isDelayedCommit() const { return flags[IsDelayedCommit]; } | 247 bool isDelayedCommit() const { return flags[IsDelayedCommit]; } |
248 bool isLastMicroOp() const { return flags[IsLastMicroOp]; } 249 bool isFirstMicroOp() const { return flags[IsFirstMicroOp]; } | 248 bool isLastMicroop() const { return flags[IsLastMicroop]; } 249 bool isFirstMicroop() const { return flags[IsFirstMicroop]; } |
250 //This flag doesn't do anything yet 251 bool isMicroBranch() const { return flags[IsMicroBranch]; } 252 //@} 253 254 /// Operation class. Used to select appropriate function unit in issue. 255 OpClass opClass() const { return _opClass; } 256}; 257 --- 106 unchanged lines hidden (view full) --- 364 * set of CPU models we are compiling in today. 365 */ 366#include "cpu/static_inst_exec_sigs.hh" 367 368 /** 369 * Return the microop that goes with a particular micropc. This should 370 * only be defined/used in macroops which will contain microops 371 */ | 250 //This flag doesn't do anything yet 251 bool isMicroBranch() const { return flags[IsMicroBranch]; } 252 //@} 253 254 /// Operation class. Used to select appropriate function unit in issue. 255 OpClass opClass() const { return _opClass; } 256}; 257 --- 106 unchanged lines hidden (view full) --- 364 * set of CPU models we are compiling in today. 365 */ 366#include "cpu/static_inst_exec_sigs.hh" 367 368 /** 369 * Return the microop that goes with a particular micropc. This should 370 * only be defined/used in macroops which will contain microops 371 */ |
372 virtual StaticInstPtr fetchMicroOp(MicroPC micropc); | 372 virtual StaticInstPtr fetchMicroop(MicroPC micropc); |
373 374 /** 375 * Return the target address for a PC-relative branch. 376 * Invalid if not a PC-relative branch (i.e. isDirectCtrl() 377 * should be true). 378 */ 379 virtual Addr branchTarget(Addr branchPC) const 380 { --- 132 unchanged lines hidden --- | 373 374 /** 375 * Return the target address for a PC-relative branch. 376 * Invalid if not a PC-relative branch (i.e. isDirectCtrl() 377 * should be true). 378 */ 379 virtual Addr branchTarget(Addr branchPC) const 380 { --- 132 unchanged lines hidden --- |