op_class.hh revision 2665
14120Sgblack@eecs.umich.edu/* 24120Sgblack@eecs.umich.edu * Copyright (c) 2003-2005 The Regents of The University of Michigan 34120Sgblack@eecs.umich.edu * All rights reserved. 44120Sgblack@eecs.umich.edu * 54120Sgblack@eecs.umich.edu * Redistribution and use in source and binary forms, with or without 64120Sgblack@eecs.umich.edu * modification, are permitted provided that the following conditions are 74120Sgblack@eecs.umich.edu * met: redistributions of source code must retain the above copyright 84120Sgblack@eecs.umich.edu * notice, this list of conditions and the following disclaimer; 94120Sgblack@eecs.umich.edu * redistributions in binary form must reproduce the above copyright 104120Sgblack@eecs.umich.edu * notice, this list of conditions and the following disclaimer in the 114120Sgblack@eecs.umich.edu * documentation and/or other materials provided with the distribution; 124120Sgblack@eecs.umich.edu * neither the name of the copyright holders nor the names of its 134120Sgblack@eecs.umich.edu * contributors may be used to endorse or promote products derived from 144120Sgblack@eecs.umich.edu * this software without specific prior written permission. 154120Sgblack@eecs.umich.edu * 164120Sgblack@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 174120Sgblack@eecs.umich.edu * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 184120Sgblack@eecs.umich.edu * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 194120Sgblack@eecs.umich.edu * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 204120Sgblack@eecs.umich.edu * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 214120Sgblack@eecs.umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 224120Sgblack@eecs.umich.edu * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 234120Sgblack@eecs.umich.edu * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 244120Sgblack@eecs.umich.edu * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 254120Sgblack@eecs.umich.edu * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 264120Sgblack@eecs.umich.edu * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 274120Sgblack@eecs.umich.edu * 284120Sgblack@eecs.umich.edu * Authors: Steve Reinhardt 294120Sgblack@eecs.umich.edu * Nathan Binkert 304120Sgblack@eecs.umich.edu */ 314120Sgblack@eecs.umich.edu 324120Sgblack@eecs.umich.edu#ifndef __CPU__OP_CLASS_HH__ 334120Sgblack@eecs.umich.edu#define __CPU__OP_CLASS_HH__ 344120Sgblack@eecs.umich.edu 354120Sgblack@eecs.umich.edu/** 364120Sgblack@eecs.umich.edu * @file 374120Sgblack@eecs.umich.edu * Definition of operation classes. 384120Sgblack@eecs.umich.edu */ 394120Sgblack@eecs.umich.edu 404120Sgblack@eecs.umich.edu/** 414120Sgblack@eecs.umich.edu * Instruction operation classes. These classes are used for 424120Sgblack@eecs.umich.edu * assigning instructions to functional units. 434120Sgblack@eecs.umich.edu */ 444120Sgblack@eecs.umich.eduenum OpClass { 454120Sgblack@eecs.umich.edu No_OpClass = 0, ///< Instruction does not use a functional unit 464120Sgblack@eecs.umich.edu IntAluOp, ///< Integer ALU operaton (add/sub/logical) 474120Sgblack@eecs.umich.edu IntMultOp, ///< Integer multiply 484120Sgblack@eecs.umich.edu IntDivOp, ///< Integer divide 494120Sgblack@eecs.umich.edu FloatAddOp, ///< Floating point add/subtract 504120Sgblack@eecs.umich.edu FloatCmpOp, ///< Floating point comparison 514120Sgblack@eecs.umich.edu FloatCvtOp, ///< Floating point<->integer conversion 524120Sgblack@eecs.umich.edu FloatMultOp, ///< Floating point multiply 534120Sgblack@eecs.umich.edu FloatDivOp, ///< Floating point divide 544120Sgblack@eecs.umich.edu FloatSqrtOp, ///< Floating point square root 554120Sgblack@eecs.umich.edu MemReadOp, ///< Memory read port 564120Sgblack@eecs.umich.edu MemWriteOp, ///< Memory write port 574120Sgblack@eecs.umich.edu IprAccessOp, ///< Internal Processor Register read/write port 584120Sgblack@eecs.umich.edu InstPrefetchOp, ///< Instruction prefetch port (on I-cache) 594120Sgblack@eecs.umich.edu Num_OpClasses ///< Total number of operation classes 604120Sgblack@eecs.umich.edu}; 614166Sgblack@eecs.umich.edu 624166Sgblack@eecs.umich.edu/** 634166Sgblack@eecs.umich.edu * Array mapping OpClass enum values to strings. Defined in op_class.cc. 644120Sgblack@eecs.umich.edu */ 655956Sgblack@eecs.umich.eduextern const char *opClassStrings[]; 665956Sgblack@eecs.umich.edu 674120Sgblack@eecs.umich.edu#endif // __CPU__OP_CLASS_HH__ 684120Sgblack@eecs.umich.edu