arm: m5ops readfile64 args broken, offset coming through garbage

There were several sections of the m5ops code which were
essentially copy/pasted versions of the 32-bit code. The
problem is that some of these didn't account fo4 64-bit
registers leading to arguments being in the wrong registers.
This patch addresses the args for readfile64, writefile64,
and addsymbol64 -- all of which seemed to suffer from a
similar set of problems when moving to 64-bit.
This commit is contained in:
Eric Van Hensbergen 2014-03-23 11:11:34 -04:00
parent 5093e58dc2
commit 7630168a75

View file

@ -403,10 +403,10 @@ let {{
''' '''
m5readfileCode64 = ''' m5readfileCode64 = '''
int n = 4; int n = 2;
uint64_t offset = getArgument(xc->tcBase(), n, sizeof(uint64_t), false); uint64_t offset = getArgument(xc->tcBase(), n, sizeof(uint64_t), false);
n = 6; n = 3;
X0 = PseudoInst::readfile(xc->tcBase(), (uint32_t)X0, X1, offset); X0 = PseudoInst::readfile(xc->tcBase(), X0, X1, offset);
''' '''
m5readfileIop = InstObjParams("m5readfile", "M5readfile", "PredOp", m5readfileIop = InstObjParams("m5readfile", "M5readfile", "PredOp",
@ -435,11 +435,11 @@ let {{
''' '''
m5writefileCode64 = ''' m5writefileCode64 = '''
int n = 4; int n = 2;
uint64_t offset = getArgument(xc->tcBase(), n, sizeof(uint64_t), false); uint64_t offset = getArgument(xc->tcBase(), n, sizeof(uint64_t), false);
n = 6; n = 3;
Addr filenameAddr = getArgument(xc->tcBase(), n, sizeof(Addr), false); Addr filenameAddr = getArgument(xc->tcBase(), n, sizeof(Addr), false);
X0 = PseudoInst::writefile(xc->tcBase(), (uint32_t)X0, X1, offset, X0 = PseudoInst::writefile(xc->tcBase(), X0, X1, offset,
filenameAddr); filenameAddr);
''' '''
@ -479,7 +479,7 @@ let {{
PseudoInst::addsymbol(xc->tcBase(), join32to64(R1, R0), R2); PseudoInst::addsymbol(xc->tcBase(), join32to64(R1, R0), R2);
''' '''
m5addsymbolCode64 = ''' m5addsymbolCode64 = '''
PseudoInst::addsymbol(xc->tcBase(), X0, (uint32_t)X1); PseudoInst::addsymbol(xc->tcBase(), X0, X1);
''' '''
m5addsymbolIop = InstObjParams("m5addsymbol", "M5addsymbol", "PredOp", m5addsymbolIop = InstObjParams("m5addsymbol", "M5addsymbol", "PredOp",
{ "code": m5addsymbolCode, { "code": m5addsymbolCode,