lsq_unit.hh (3970:d54945bab95d) lsq_unit.hh (4022:c422464ca16e)
1/*
2 * Copyright (c) 2004-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;

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

569 load_inst->memData = new uint8_t[64];
570
571 memcpy(load_inst->memData, &data, req->getSize());
572
573 DPRINTF(LSQUnit, "Forwarding from store idx %i to load to "
574 "addr %#x, data %#x\n",
575 store_idx, req->getVaddr(), data);
576
1/*
2 * Copyright (c) 2004-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;

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

569 load_inst->memData = new uint8_t[64];
570
571 memcpy(load_inst->memData, &data, req->getSize());
572
573 DPRINTF(LSQUnit, "Forwarding from store idx %i to load to "
574 "addr %#x, data %#x\n",
575 store_idx, req->getVaddr(), data);
576
577 PacketPtr data_pkt = new Packet(req, Packet::ReadReq, Packet::Broadcast);
577 PacketPtr data_pkt = new Packet(req, MemCmd::ReadReq,
578 Packet::Broadcast);
578 data_pkt->dataStatic(load_inst->memData);
579
580 WritebackEvent *wb = new WritebackEvent(load_inst, data_pkt, this);
581
582 // We'll say this has a 1 cycle load-store forwarding latency
583 // for now.
584 // @todo: Need to make this a parameter.
585 wb->schedule(curTick);

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

633 assert(!load_inst->memData);
634 load_inst->memData = new uint8_t[64];
635
636 ++usedPorts;
637
638 // if we the cache is not blocked, do cache access
639 if (!lsq->cacheBlocked()) {
640 PacketPtr data_pkt =
579 data_pkt->dataStatic(load_inst->memData);
580
581 WritebackEvent *wb = new WritebackEvent(load_inst, data_pkt, this);
582
583 // We'll say this has a 1 cycle load-store forwarding latency
584 // for now.
585 // @todo: Need to make this a parameter.
586 wb->schedule(curTick);

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

634 assert(!load_inst->memData);
635 load_inst->memData = new uint8_t[64];
636
637 ++usedPorts;
638
639 // if we the cache is not blocked, do cache access
640 if (!lsq->cacheBlocked()) {
641 PacketPtr data_pkt =
641 new Packet(req, Packet::ReadReq, Packet::Broadcast);
642 new Packet(req, MemCmd::ReadReq, Packet::Broadcast);
642 data_pkt->dataStatic(load_inst->memData);
643
644 LSQSenderState *state = new LSQSenderState;
645 state->isLoad = true;
646 state->idx = load_idx;
647 state->inst = load_inst;
648 data_pkt->senderState = state;
649

--- 63 unchanged lines hidden ---
643 data_pkt->dataStatic(load_inst->memData);
644
645 LSQSenderState *state = new LSQSenderState;
646 state->isLoad = true;
647 state->idx = load_idx;
648 state->inst = load_inst;
649 data_pkt->senderState = state;
650

--- 63 unchanged lines hidden ---