op_class.hh revision 2
112706Swendy.elsasser@arm.com/* 29243SN/A * Copyright (c) 2003 The Regents of The University of Michigan 39243SN/A * All rights reserved. 49243SN/A * 59243SN/A * Redistribution and use in source and binary forms, with or without 69243SN/A * modification, are permitted provided that the following conditions are 79243SN/A * met: redistributions of source code must retain the above copyright 89243SN/A * notice, this list of conditions and the following disclaimer; 99243SN/A * redistributions in binary form must reproduce the above copyright 109243SN/A * notice, this list of conditions and the following disclaimer in the 119243SN/A * documentation and/or other materials provided with the distribution; 129243SN/A * neither the name of the copyright holders nor the names of its 139831SN/A * contributors may be used to endorse or promote products derived from 1410864Sjungma@eit.uni-kl.de * this software without specific prior written permission. 1511186Serfan.azarkhish@unibo.it * 169831SN/A * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 179831SN/A * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 189243SN/A * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 199243SN/A * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 209243SN/A * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 219243SN/A * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 229243SN/A * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 239243SN/A * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 249243SN/A * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 259243SN/A * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 269243SN/A * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 279243SN/A */ 289243SN/A 299243SN/A#ifndef __OP_CLASS_HH__ 309243SN/A#define __OP_CLASS_HH__ 319243SN/A 329243SN/A/** 339243SN/A * @file 349243SN/A * Definition of operation classes. 359243SN/A */ 369243SN/A 379243SN/A/** 389243SN/A * Instruction operation classes. These classes are used for 399243SN/A * assigning instructions to functional units. 409243SN/A */ 419243SN/Aenum OpClass { 429243SN/A No_OpClass = 0, /* inst does not use a functional unit */ 4310864Sjungma@eit.uni-kl.de IntALU, /* integer ALU */ 4410864Sjungma@eit.uni-kl.de IntMULT, /* integer multiplier */ 4511186Serfan.azarkhish@unibo.it IntDIV, /* integer divider */ 469243SN/A FloatADD, /* floating point adder/subtractor */ 479243SN/A FloatCMP, /* floating point comparator */ 4812706Swendy.elsasser@arm.com FloatCVT, /* floating point<->integer converter */ 4913665Sandreas.sandberg@arm.com FloatMULT, /* floating point multiplier */ 5013665Sandreas.sandberg@arm.com FloatDIV, /* floating point divider */ 519243SN/A FloatSQRT, /* floating point square root */ 529243SN/A RdPort, /* memory read port */ 539243SN/A WrPort, /* memory write port */ 549243SN/A LvqPort, /* load value queue read port (redundant threading) */ 559243SN/A IPrefPort, 5610136SN/A Num_OpClasses /* total functional unit classes */ 5710136SN/A}; 5810136SN/A 5910136SN/A/** 6010136SN/A * Array mapping OpClass enum values to strings. 6110136SN/A */ 6210136SN/Aextern const char *opClassStrings[]; 639243SN/A 6410144SN/A#endif // __OP_CLASS_HH__ 6510144SN/A