482,537d481
< template <class T>
< Fault
< TimingSimpleCPU::read(Addr addr, T &data, unsigned flags)
< {
< return readBytes(addr, (uint8_t *)&data, sizeof(T), flags);
< }
<
< #ifndef DOXYGEN_SHOULD_SKIP_THIS
<
< template
< Fault
< TimingSimpleCPU::read(Addr addr, Twin64_t &data, unsigned flags);
<
< template
< Fault
< TimingSimpleCPU::read(Addr addr, Twin32_t &data, unsigned flags);
<
< template
< Fault
< TimingSimpleCPU::read(Addr addr, uint64_t &data, unsigned flags);
<
< template
< Fault
< TimingSimpleCPU::read(Addr addr, uint32_t &data, unsigned flags);
<
< template
< Fault
< TimingSimpleCPU::read(Addr addr, uint16_t &data, unsigned flags);
<
< template
< Fault
< TimingSimpleCPU::read(Addr addr, uint8_t &data, unsigned flags);
<
< #endif //DOXYGEN_SHOULD_SKIP_THIS
<
< template<>
< Fault
< TimingSimpleCPU::read(Addr addr, double &data, unsigned flags)
< {
< return read(addr, *(uint64_t*)&data, flags);
< }
<
< template<>
< Fault
< TimingSimpleCPU::read(Addr addr, float &data, unsigned flags)
< {
< return read(addr, *(uint32_t*)&data, flags);
< }
<
< template<>
< Fault
< TimingSimpleCPU::read(Addr addr, int32_t &data, unsigned flags)
< {
< return read(addr, (uint32_t&)data, flags);
< }
<
559,560c503,504
< TimingSimpleCPU::writeTheseBytes(uint8_t *data, unsigned size,
< Addr addr, unsigned flags, uint64_t *res)
---
> TimingSimpleCPU::writeBytes(uint8_t *data, unsigned size,
> Addr addr, unsigned flags, uint64_t *res)
561a506,508
> uint8_t *newData = new uint8_t[size];
> memcpy(newData, data, size);
>
585c532
< new WholeTranslationState(req, req1, req2, data, res, mode);
---
> new WholeTranslationState(req, req1, req2, newData, res, mode);
595c542
< new WholeTranslationState(req, data, res, mode);
---
> new WholeTranslationState(req, newData, res, mode);
605,612d551
< Fault
< TimingSimpleCPU::writeBytes(uint8_t *data, unsigned size,
< Addr addr, unsigned flags, uint64_t *res)
< {
< uint8_t *newData = new uint8_t[size];
< memcpy(newData, data, size);
< return writeTheseBytes(newData, size, addr, flags, res);
< }
614,683d552
< template <class T>
< Fault
< TimingSimpleCPU::write(T data, Addr addr, unsigned flags, uint64_t *res)
< {
< if (traceData) {
< traceData->setData(data);
< }
< T *dataP = (T*) new uint8_t[sizeof(T)];
< *dataP = TheISA::htog(data);
<
< return writeTheseBytes((uint8_t *)dataP, sizeof(T), addr, flags, res);
< }
<
<
< #ifndef DOXYGEN_SHOULD_SKIP_THIS
< template
< Fault
< TimingSimpleCPU::write(Twin32_t data, Addr addr,
< unsigned flags, uint64_t *res);
<
< template
< Fault
< TimingSimpleCPU::write(Twin64_t data, Addr addr,
< unsigned flags, uint64_t *res);
<
< template
< Fault
< TimingSimpleCPU::write(uint64_t data, Addr addr,
< unsigned flags, uint64_t *res);
<
< template
< Fault
< TimingSimpleCPU::write(uint32_t data, Addr addr,
< unsigned flags, uint64_t *res);
<
< template
< Fault
< TimingSimpleCPU::write(uint16_t data, Addr addr,
< unsigned flags, uint64_t *res);
<
< template
< Fault
< TimingSimpleCPU::write(uint8_t data, Addr addr,
< unsigned flags, uint64_t *res);
<
< #endif //DOXYGEN_SHOULD_SKIP_THIS
<
< template<>
< Fault
< TimingSimpleCPU::write(double data, Addr addr, unsigned flags, uint64_t *res)
< {
< return write(*(uint64_t*)&data, addr, flags, res);
< }
<
< template<>
< Fault
< TimingSimpleCPU::write(float data, Addr addr, unsigned flags, uint64_t *res)
< {
< return write(*(uint32_t*)&data, addr, flags, res);
< }
<
<
< template<>
< Fault
< TimingSimpleCPU::write(int32_t data, Addr addr, unsigned flags, uint64_t *res)
< {
< return write((uint32_t)data, addr, flags, res);
< }
<
<