static_inst.hh (12106:7784fac1b159) | static_inst.hh (12109:f29e9c5418aa) |
---|---|
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 | 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 |
|
103 public: 104 105 /// @name Register information. | 109 public: 110 111 /// @name Register information. |
106 /// The sum of numFPDestRegs() and numIntDestRegs() equals 107 /// numDestRegs(). The former two functions are used to track 108 /// physical register usage for machines with separate int & FP 109 /// reg files. | 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. |
110 //@{ 111 /// Number of source registers. 112 int8_t numSrcRegs() const { return _numSrcRegs; } 113 /// Number of destination registers. 114 int8_t numDestRegs() const { return _numDestRegs; } 115 /// Number of floating-point destination regs. 116 int8_t numFPDestRegs() const { return _numFPDestRegs; } 117 /// Number of integer destination regs. 118 int8_t numIntDestRegs() const { return _numIntDestRegs; } | 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; } |
119 //@} | 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; } |
120 /// Number of coprocesor destination regs. 121 int8_t numCCDestRegs() const { return _numCCDestRegs; } 122 //@} 123 124 /// @name Flag accessors. 125 /// These functions are used to access the values of the various 126 /// instruction property flags. See StaticInst::Flags for descriptions 127 /// of the individual flags. --- 119 unchanged lines hidden (view full) --- 247 /// Constructor. 248 /// It's important to initialize everything here to a sane 249 /// default, since the decoder generally only overrides 250 /// the fields that are meaningful for the particular 251 /// instruction. 252 StaticInst(const char *_mnemonic, ExtMachInst _machInst, OpClass __opClass) 253 : _opClass(__opClass), _numSrcRegs(0), _numDestRegs(0), 254 _numFPDestRegs(0), _numIntDestRegs(0), _numCCDestRegs(0), | 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), |
255 machInst(_machInst), mnemonic(_mnemonic), cachedDisassembly(0) | 265 _numVecDestRegs(0), _numVecElemDestRegs(0), machInst(_machInst), 266 mnemonic(_mnemonic), cachedDisassembly(0) |
256 { } 257 258 public: 259 virtual ~StaticInst(); 260 261 virtual Fault execute(ExecContext *xc, 262 Trace::InstRecord *traceData) const = 0; 263 virtual Fault eaComp(ExecContext *xc, --- 69 unchanged lines hidden --- | 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 --- |