{
Addr EA;
Fault fault = NoFault;
+ Msr msr = xc->readMiscReg(MISCREG_MSR);
%(op_decl)s;
%(op_rd)s;
%(ea_code)s;
if (fault == NoFault) {
- fault = readMemAtomicBE(xc, traceData, EA, Mem, memAccessFlags);
+ fault = msr.le ?
+ readMemAtomicLE(xc, traceData, EA, Mem, memAccessFlags) :
+ readMemAtomicBE(xc, traceData, EA, Mem, memAccessFlags);
%(memacc_code)s;
}
{
M5_VAR_USED Addr EA;
Fault fault = NoFault;
+ Msr msr = xc->readMiscReg(MISCREG_MSR);
%(op_decl)s;
%(op_rd)s;
EA = pkt->req->getVaddr();
- getMemBE(pkt, Mem, traceData);
+ if (msr.le)
+ getMemLE(pkt, Mem, traceData);
+ else
+ getMemBE(pkt, Mem, traceData);
if (fault == NoFault) {
%(memacc_code)s;
{
Addr EA;
Fault fault = NoFault;
+ Msr msr = xc->readMiscReg(MISCREG_MSR);
%(op_decl)s;
%(op_rd)s;
}
if (fault == NoFault) {
- fault = writeMemAtomicBE(xc, traceData, Mem, EA, memAccessFlags,
- NULL);
+ fault = msr.le ?
+ writeMemAtomicLE(xc, traceData, Mem, EA, memAccessFlags,
+ NULL) :
+ writeMemAtomicBE(xc, traceData, Mem, EA, memAccessFlags,
+ NULL);
}
if (fault == NoFault) {
{
Addr EA;
Fault fault = NoFault;
+ Msr msr = xc->readMiscReg(MISCREG_MSR);
%(op_decl)s;
%(op_rd)s;
}
if (fault == NoFault) {
- fault = writeMemTimingBE(xc, traceData, Mem, EA, memAccessFlags,
- NULL);
+ fault = msr.le ?
+ writeMemTimingLE(xc, traceData, Mem, EA, memAccessFlags,
+ NULL) :
+ writeMemTimingBE(xc, traceData, Mem, EA, memAccessFlags,
+ NULL);
}
// Need to write back any potential address register update