256c256,258
< data_read_req->setVirt(0, addr, sizeof(T), flags, thread->readPC());
---
> // use the CPU's statically allocated read request and packet objects
> Request *req = data_read_req;
> Packet *pkt = data_read_pkt;
257a260,261
> req->setVirt(0, addr, sizeof(T), flags, thread->readPC());
>
263c267
< Fault fault = thread->translateDataReadReq(data_read_req);
---
> Fault fault = thread->translateDataReadReq(req);
267c271
< data_read_pkt->reinitFromRequest();
---
> pkt->reinitFromRequest();
269c273
< dcache_latency = dcachePort.sendAtomic(data_read_pkt);
---
> dcache_latency = dcachePort.sendAtomic(pkt);
272,274c276,277
< assert(data_read_pkt->result == Packet::Success);
< data = data_read_pkt->get<T>();
<
---
> assert(pkt->result == Packet::Success);
> data = pkt->get<T>();
278c281
< if (data_read_req->getFlags() & UNCACHEABLE)
---
> if (req->getFlags() & UNCACHEABLE)
331c334,336
< data_write_req->setVirt(0, addr, sizeof(T), flags, thread->readPC());
---
> // use the CPU's statically allocated write request and packet objects
> Request *req = data_write_req;
> Packet *pkt = data_write_pkt;
332a338,339
> req->setVirt(0, addr, sizeof(T), flags, thread->readPC());
>
338c345
< Fault fault = thread->translateDataWriteReq(data_write_req);
---
> Fault fault = thread->translateDataWriteReq(req);
343,344c350,351
< data_write_pkt->reinitFromRequest();
< data_write_pkt->dataStatic(&data);
---
> pkt->reinitFromRequest();
> pkt->dataStatic(&data);
346c353
< dcache_latency = dcachePort.sendAtomic(data_write_pkt);
---
> dcache_latency = dcachePort.sendAtomic(pkt);
349c356
< assert(data_write_pkt->result == Packet::Success);
---
> assert(pkt->result == Packet::Success);
351,352c358,359
< if (res && data_write_req->getFlags() & LOCKED) {
< *res = data_write_req->getScResult();
---
> if (res && req->getFlags() & LOCKED) {
> *res = req->getScResult();
357c364
< if (data_write_req->getFlags() & UNCACHEABLE)
---
> if (req->getFlags() & UNCACHEABLE)