diff options
Diffstat (limited to 'src/mem/ruby/slicc_interface/RubySlicc_Util.hh')
-rw-r--r-- | src/mem/ruby/slicc_interface/RubySlicc_Util.hh | 56 |
1 files changed, 13 insertions, 43 deletions
diff --git a/src/mem/ruby/slicc_interface/RubySlicc_Util.hh b/src/mem/ruby/slicc_interface/RubySlicc_Util.hh index 6318d8e33..61813bb30 100644 --- a/src/mem/ruby/slicc_interface/RubySlicc_Util.hh +++ b/src/mem/ruby/slicc_interface/RubySlicc_Util.hh @@ -36,9 +36,10 @@ #include <cassert> #include "debug/RubySlicc.hh" +#include "mem/packet.hh" #include "mem/ruby/common/Address.hh" #include "mem/ruby/common/DataBlock.hh" -#include "mem/packet.hh" +#include "mem/ruby/common/TypeDefines.hh" inline Cycles zero_time() { return Cycles(0); } @@ -57,35 +58,10 @@ IDToInt(NodeID id) } inline int -addressToInt(Address addr) -{ - assert(!(addr.getAddress() & 0xffffffff00000000)); - - return (int)addr.getAddress(); -} - -// Appends an offset to an address -inline Address -setOffset(Address addr, int offset) +addressToInt(Addr addr) { - Address result = addr; - result.setOffset(offset); - return result; -} - -// Makes an address into a line address -inline Address -makeLineAddress(Address addr) -{ - Address result = addr; - result.makeLineAddress(); - return result; -} - -inline int -addressOffset(Address addr) -{ - return addr.getOffset(); + assert(!(addr & 0xffffffff00000000)); + return addr; } inline int @@ -106,18 +82,15 @@ inline int max_tokens() * returned if the data block was read, otherwise false is returned. */ inline bool -testAndRead(Address addr, DataBlock& blk, Packet *pkt) +testAndRead(Addr addr, DataBlock& blk, Packet *pkt) { - Address pktLineAddr(pkt->getAddr()); - pktLineAddr.makeLineAddress(); - - Address lineAddr = addr; - lineAddr.makeLineAddress(); + Addr pktLineAddr = makeLineAddress(pkt->getAddr()); + Addr lineAddr = makeLineAddress(addr); if (pktLineAddr == lineAddr) { uint8_t *data = pkt->getPtr<uint8_t>(); unsigned int size_in_bytes = pkt->getSize(); - unsigned startByte = pkt->getAddr() - lineAddr.getAddress(); + unsigned startByte = pkt->getAddr() - lineAddr; for (unsigned i = 0; i < size_in_bytes; ++i) { data[i] = blk.getByte(i + startByte); @@ -134,18 +107,15 @@ testAndRead(Address addr, DataBlock& blk, Packet *pkt) * returned if the data block was written, otherwise false is returned. */ inline bool -testAndWrite(Address addr, DataBlock& blk, Packet *pkt) +testAndWrite(Addr addr, DataBlock& blk, Packet *pkt) { - Address pktLineAddr(pkt->getAddr()); - pktLineAddr.makeLineAddress(); - - Address lineAddr = addr; - lineAddr.makeLineAddress(); + Addr pktLineAddr = makeLineAddress(pkt->getAddr()); + Addr lineAddr = makeLineAddress(addr); if (pktLineAddr == lineAddr) { const uint8_t *data = pkt->getConstPtr<uint8_t>(); unsigned int size_in_bytes = pkt->getSize(); - unsigned startByte = pkt->getAddr() - lineAddr.getAddress(); + unsigned startByte = pkt->getAddr() - lineAddr; for (unsigned i = 0; i < size_in_bytes; ++i) { blk.setByte(i + startByte, data[i]); |