func_unit.hh (9184:a1a8f137b796) func_unit.hh (10807:dac26eb4cb64)
1/*
2 * Copyright (c) 2002-2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 38 unchanged lines hidden (view full) ---

47//
48//
49
50class OpDesc : public SimObject
51{
52 public:
53 OpClass opClass;
54 Cycles opLat;
1/*
2 * Copyright (c) 2002-2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

--- 38 unchanged lines hidden (view full) ---

47//
48//
49
50class OpDesc : public SimObject
51{
52 public:
53 OpClass opClass;
54 Cycles opLat;
55 Cycles issueLat;
55 bool pipelined;
56
57 OpDesc(const OpDescParams *p)
58 : SimObject(p), opClass(p->opClass), opLat(p->opLat),
56
57 OpDesc(const OpDescParams *p)
58 : SimObject(p), opClass(p->opClass), opLat(p->opLat),
59 issueLat(p->issueLat) {};
59 pipelined(p->pipelined) {};
60};
61
62class FUDesc : public SimObject
63{
64 public:
65 std::vector<OpDesc *> opDescList;
66 unsigned number;
67

--- 12 unchanged lines hidden (view full) ---

80// The actual FU object
81//
82//
83//
84class FuncUnit
85{
86 private:
87 unsigned opLatencies[Num_OpClasses];
60};
61
62class FUDesc : public SimObject
63{
64 public:
65 std::vector<OpDesc *> opDescList;
66 unsigned number;
67

--- 12 unchanged lines hidden (view full) ---

80// The actual FU object
81//
82//
83//
84class FuncUnit
85{
86 private:
87 unsigned opLatencies[Num_OpClasses];
88 unsigned issueLatencies[Num_OpClasses];
88 bool pipelined[Num_OpClasses];
89 std::bitset<Num_OpClasses> capabilityList;
90
91 public:
92 FuncUnit();
93 FuncUnit(const FuncUnit &fu);
94
95 std::string name;
96
89 std::bitset<Num_OpClasses> capabilityList;
90
91 public:
92 FuncUnit();
93 FuncUnit(const FuncUnit &fu);
94
95 std::string name;
96
97 void addCapability(OpClass cap, unsigned oplat, unsigned issuelat);
97 void addCapability(OpClass cap, unsigned oplat, bool pipelined);
98
99 bool provides(OpClass capability);
100 std::bitset<Num_OpClasses> capabilities();
101
102 unsigned &opLatency(OpClass capability);
98
99 bool provides(OpClass capability);
100 std::bitset<Num_OpClasses> capabilities();
101
102 unsigned &opLatency(OpClass capability);
103 unsigned issueLatency(OpClass capability);
103 bool isPipelined(OpClass capability);
104};
105
106#endif // __FU_POOL_HH__
104};
105
106#endif // __FU_POOL_HH__