* Authors: Ali Saidi
*/
+#include "base/cp_annotate.hh"
+
#include "arch/generic/linux/threadinfo.hh"
#include "arch/utility.hh"
-#include "base/loader/object_file.hh"
#include "base/callback.hh"
-#include "base/cp_annotate.hh"
+#include "base/loader/object_file.hh"
#include "base/output.hh"
#include "base/trace.hh"
#include "config/the_isa.hh"
debugSymbolTable->findNearestSymbol(
tc->readIntReg(ReturnAddressReg), st, junk);
- CopyStringOut(tc, sm, args[0], 50);
+ tc->getVirtProxy().readString(sm, args[0], 50);
System *sys = tc->getSystemPtr();
StringWrap name(sys->name());
int smi = getSm(sysi, sm, args[1]);
DPRINTF(Annotate, "Starting machine: %s(%d) sysi: %d id: %#x\n", sm,
smi, sysi, args[1]);
- DPRINTF(Annotate, "smMap[%d] = %d, %s, %#x\n", smi,
- smMap[smi-1].first, smMap[smi-1].second.first,
+ DPRINTF(Annotate, "smMap[%d] = %d, %s, %#x\n", smi,
+ smMap[smi-1].first, smMap[smi-1].second.first,
smMap[smi-1].second.second);
uint64_t frame = getFrame(tc);
scLinks[sysi-1].erase(id);
an->stq = smi;
an->dump = true;
- DPRINTF(Annotate,
+ DPRINTF(Annotate,
"Found prev unknown linking from %d to state machine %s(%d)\n",
an->sm, sm, smi);
Arguments args(tc);
char sm[50];
- CopyStringOut(tc, sm, args[0], 50);
+ tc->getVirtProxy().readString(sm, args[0], 50);
System *sys = tc->getSystemPtr();
doSwSmEnd(sys, tc->contextId(), sm, getFrame(tc));
}
warn("State machine stack not unwinding correctly at %d\n", curTick());
} else {
- DPRINTF(Annotate,
+ DPRINTF(Annotate,
"State machine ending:%s sysi:%d id:%#x back:%d getSm:%d\n",
sm, sysi, smMap[smib-1].second.second, smStack[sid].back(),
getSm(sysi, sm, smMap[smib-1].second.second));
- assert(getSm(sysi, sm, smMap[smib-1].second.second) ==
+ assert(getSm(sysi, sm, smMap[smib-1].second.second) ==
smStack[sid].back());
int smi = smStack[sid].back();
Arguments args(tc);
char st[50];
- CopyStringOut(tc, st, args[1], 50);
+ tc->getVirtProxy().readString(st, args[1], 50);
StringWrap name(tc->getSystemPtr()->name());
DPRINTF(Annotate, "Explict begin of state %s\n", st);
tc->readIntReg(ReturnAddressReg), st, junk);
System *sys = tc->getSystemPtr();
StringWrap name(sys->name());
-
+
int sysi = getSys(sys);
StackId sid = StackId(sysi, getFrame(tc));
if (!smStack[sid].size()) {
char q[50];
Arguments args(tc);
uint64_t id = args[0];
- CopyStringOut(tc, q, args[1], 50);
+ tc->getVirtProxy().readString(q, args[1], 50);
int32_t count = args[2];
System *sys = tc->getSystemPtr();
//warn("Tried to queue 0 bytes in %s, ignoring\n", q);
return;
}
- DPRINTFS(AnnotateQ, sys,
+ DPRINTFS(AnnotateQ, sys,
"swQ: %s[%#x] cur size %d %d bytes: %d adding: %d\n",
q, id, qSize[qi-1], qData[qi-1].size(), qBytes[qi-1], count);
doQ(sys, FL_NONE, tc->contextId(), smi, q, qi, count);
char q[50];
Arguments args(tc);
uint64_t id = args[0];
- CopyStringOut(tc, q, args[1], 50);
+ tc->getVirtProxy().readString(q, args[1], 50);
int32_t count = args[2];
System *sys = tc->getSystemPtr();
int qi = getQ(sysi, q, id);
if (swExpl[sid])
swExpl[sid] = false;
- DPRINTFS(AnnotateQ, sys,
+ DPRINTFS(AnnotateQ, sys,
"swDq: %s[%#x] cur size %d %d bytes: %d removing: %d\n",
q, id, qSize[qi-1], qData[qi-1].size(), qBytes[qi-1], count);
assert(count != 0);
char q[50];
Arguments args(tc);
uint64_t id = args[0];
- CopyStringOut(tc, q, args[1], 50);
+ tc->getVirtProxy().readString(q, args[1], 50);
System *sys = tc->getSystemPtr();
int32_t count = args[2];
int qi = getQ(sysi, q, id);
if (swExpl[sid])
swExpl[sid] = false;
- DPRINTFS(AnnotateQ, sys,
+ DPRINTFS(AnnotateQ, sys,
"swPq: %s [%#x] cur size %d %d bytes: %d peeking: %d\n",
q, id, qSize[qi-1], qData[qi-1].size(), qBytes[qi-1], count);
char q[50];
Arguments args(tc);
uint64_t id = args[0];
- CopyStringOut(tc, q, args[1], 50);
+ tc->getVirtProxy().readString(q, args[1], 50);
System *sys = tc->getSystemPtr();
int32_t count = args[2];
int qi = getQ(sysi, q, id);
if (swExpl[sid])
swExpl[sid] = false;
- DPRINTFS(AnnotateQ, sys,
+ DPRINTFS(AnnotateQ, sys,
"swRq: %s [%#x] cur size %d %d bytes: %d reserve: %d\n",
q, id, qSize[qi-1], qData[qi-1].size(), qBytes[qi-1], count);
char q[50];
Arguments args(tc);
uint64_t id = args[0];
- CopyStringOut(tc, q, args[1], 50);
+ tc->getVirtProxy().readString(q, args[1], 50);
System *sys = tc->getSystemPtr();
int32_t count = args[3];
if (!!args[2]) {
char sm[50];
- CopyStringOut(tc, sm, args[2], 50);
+ tc->getVirtProxy().readString(sm, args[2], 50);
doSwSmEnd(tc->getSystemPtr(), tc->contextId(), sm, getFrame(tc));
}
}
char q[50];
Arguments args(tc);
uint64_t id = args[0];
- CopyStringOut(tc, q, args[1], 50);
+ tc->getVirtProxy().readString(q, args[1], 50);
System *sys = tc->getSystemPtr();
int32_t count = args[3];
if (!!args[2]) {
char sm[50];
- CopyStringOut(tc, sm, args[2], 50);
+ tc->getVirtProxy().readString(sm, args[2], 50);
doSwSmEnd(tc->getSystemPtr(), tc->contextId(), sm, getFrame(tc));
}
}
char q[50];
Arguments args(tc);
uint64_t id = args[0];
- CopyStringOut(tc, q, args[1], 50);
+ tc->getVirtProxy().readString(q, args[1], 50);
System *sys = tc->getSystemPtr();
StringWrap name(sys->name());
int32_t size = args[2];
char q[50];
Arguments args(tc);
uint64_t id = args[0];
- CopyStringOut(tc, q, args[1], 50);
+ tc->getVirtProxy().readString(q, args[1], 50);
System *sys = tc->getSystemPtr();
StringWrap name(sys->name());
int32_t size = args[2];
x++;
}
- warn("%d: Queue Assert: SW said there should be %d byte(s) in %s,"
+ warn("%d: Queue Assert: SW said there should be %d byte(s) in %s,"
"however there are %d byte(s)\n",
curTick(), size, q, qBytes[qi-1]);
DPRINTF(AnnotateQ, "%d: Queue Assert: SW said there should be %d"
char lsm[50];
Arguments args(tc);
- CopyStringOut(tc, lsm, args[0], 50);
+ tc->getVirtProxy().readString(lsm, args[0], 50);
System *sys = tc->getSystemPtr();
StringWrap name(sys->name());
if (!!args[2]) {
char sm[50];
- CopyStringOut(tc, sm, args[2], 50);
+ tc->getVirtProxy().readString(sm, args[2], 50);
doSwSmEnd(tc->getSystemPtr(), tc->contextId(), sm, getFrame(tc));
}
}
char lsm[50];
Arguments args(tc);
- CopyStringOut(tc, lsm, args[0], 50);
+ tc->getVirtProxy().readString(lsm, args[0], 50);
System *sys = tc->getSystemPtr();
StringWrap name(sys->name());
int sysi = getSys(sys);
smi, lsm);
if (scLinks[sysi-1][id])
- DPRINTF(Annotate,
+ DPRINTF(Annotate,
"scLinks already contains entry for system %d %s[%x] of %d\n",
sysi, lsm, getFrame(tc), scLinks[sysi-1][id]);
assert(scLinks[sysi-1][id] == 0);
if (!!args[1]) {
char sm[50];
- CopyStringOut(tc, sm, args[1], 50);
+ tc->getVirtProxy().readString(sm, args[1], 50);
doSwSmEnd(tc->getSystemPtr(), tc->contextId(), sm, getFrame(tc));
}
}
DPRINTF(AnnotateVerbose, "Annotate: op: %d flags: 0x%x sm: %d state: %d time: %d, data: %d\n",
an->op, an->flag, an->sm, an->stq, an->time, an->data);
-
+
// Don't dump Links because we might be setting no-dump on it
if (an->op != OP_LINK)
dump(false);
}
// qData (vector<AnnotateList>)
- for(x = 0; x < qData.size(); x++) {
+ for (x = 0; x < qData.size(); x++) {
if (!qData[x].size())
continue;
y = 0;