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 ---