iob.cc (11005:e7f403b6b76f) iob.cc (11294:a368064a2ab5)
1/*
2 * Copyright (c) 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;

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

86 return pioDelay;
87}
88
89void
90Iob::readIob(PacketPtr pkt)
91{
92 Addr accessAddr = pkt->getAddr() - iobManAddr;
93
1/*
2 * Copyright (c) 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;

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

86 return pioDelay;
87}
88
89void
90Iob::readIob(PacketPtr pkt)
91{
92 Addr accessAddr = pkt->getAddr() - iobManAddr;
93
94 if (accessAddr >= IntManAddr && accessAddr < IntManAddr + IntManSize) {
94 assert(IntManAddr == 0);
95 if (accessAddr < IntManAddr + IntManSize) {
95 int index = (accessAddr - IntManAddr) >> 3;
96 uint64_t data = intMan[index].cpu << 8 | intMan[index].vector << 0;
97 pkt->set(data);
98 return;
99 }
100
101 if (accessAddr >= IntCtlAddr && accessAddr < IntCtlAddr + IntCtlSize) {
102 int index = (accessAddr - IntCtlAddr) >> 3;

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

181
182void
183Iob::writeIob(PacketPtr pkt)
184{
185 Addr accessAddr = pkt->getAddr() - iobManAddr;
186 int index;
187 uint64_t data;
188
96 int index = (accessAddr - IntManAddr) >> 3;
97 uint64_t data = intMan[index].cpu << 8 | intMan[index].vector << 0;
98 pkt->set(data);
99 return;
100 }
101
102 if (accessAddr >= IntCtlAddr && accessAddr < IntCtlAddr + IntCtlSize) {
103 int index = (accessAddr - IntCtlAddr) >> 3;

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

182
183void
184Iob::writeIob(PacketPtr pkt)
185{
186 Addr accessAddr = pkt->getAddr() - iobManAddr;
187 int index;
188 uint64_t data;
189
189 if (accessAddr >= IntManAddr && accessAddr < IntManAddr + IntManSize) {
190 assert(IntManAddr == 0);
191 if (accessAddr < IntManAddr + IntManSize) {
190 index = (accessAddr - IntManAddr) >> 3;
191 data = pkt->get<uint64_t>();
192 intMan[index].cpu = bits(data,12,8);
193 intMan[index].vector = bits(data,5,0);
194 DPRINTF(Iob, "Wrote IntMan %d cpu %d, vec %d\n", index,
195 intMan[index].cpu, intMan[index].vector);
196 return;
197 }

--- 184 unchanged lines hidden ---
192 index = (accessAddr - IntManAddr) >> 3;
193 data = pkt->get<uint64_t>();
194 intMan[index].cpu = bits(data,12,8);
195 intMan[index].vector = bits(data,5,0);
196 DPRINTF(Iob, "Wrote IntMan %d cpu %d, vec %d\n", index,
197 intMan[index].cpu, intMan[index].vector);
198 return;
199 }

--- 184 unchanged lines hidden ---