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 --- 86 unchanged lines hidden (view full) --- 95 /// The following are used to track physical register usage 96 /// for machines with separate int & FP reg files. 97 //@{ 98 int8_t _numFPDestRegs; 99 int8_t _numIntDestRegs; 100 int8_t _numCCDestRegs; 101 //@} 102 |
103 /** To use in architectures with vector register file. */ 104 /** @{ */ 105 int8_t _numVecDestRegs; 106 int8_t _numVecElemDestRegs; 107 /** @} */ 108 |
109 public: 110 111 /// @name Register information. |
112 /// The sum of numFPDestRegs(), numIntDestRegs(), numVecDestRegs() and 113 /// numVecelemDestRegs() equals numDestRegs(). The former two functions 114 /// are used to track physical register usage for machines with separate 115 /// int & FP reg files, the next two is for machines with vector register 116 /// file. |
117 //@{ 118 /// Number of source registers. 119 int8_t numSrcRegs() const { return _numSrcRegs; } 120 /// Number of destination registers. 121 int8_t numDestRegs() const { return _numDestRegs; } 122 /// Number of floating-point destination regs. 123 int8_t numFPDestRegs() const { return _numFPDestRegs; } 124 /// Number of integer destination regs. 125 int8_t numIntDestRegs() const { return _numIntDestRegs; } |
126 /// Number of vector destination regs. 127 int8_t numVecDestRegs() const { return _numVecDestRegs; } 128 /// Number of vector element destination regs. 129 int8_t numVecElemDestRegs() const { return _numVecElemDestRegs; } |
130 /// Number of coprocesor destination regs. 131 int8_t numCCDestRegs() const { return _numCCDestRegs; } 132 //@} 133 134 /// @name Flag accessors. 135 /// These functions are used to access the values of the various 136 /// instruction property flags. See StaticInst::Flags for descriptions 137 /// of the individual flags. --- 119 unchanged lines hidden (view full) --- 257 /// Constructor. 258 /// It's important to initialize everything here to a sane 259 /// default, since the decoder generally only overrides 260 /// the fields that are meaningful for the particular 261 /// instruction. 262 StaticInst(const char *_mnemonic, ExtMachInst _machInst, OpClass __opClass) 263 : _opClass(__opClass), _numSrcRegs(0), _numDestRegs(0), 264 _numFPDestRegs(0), _numIntDestRegs(0), _numCCDestRegs(0), |
265 _numVecDestRegs(0), _numVecElemDestRegs(0), machInst(_machInst), 266 mnemonic(_mnemonic), cachedDisassembly(0) |
267 { } 268 269 public: 270 virtual ~StaticInst(); 271 272 virtual Fault execute(ExecContext *xc, 273 Trace::InstRecord *traceData) const = 0; 274 virtual Fault eaComp(ExecContext *xc, --- 69 unchanged lines hidden --- |