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:
parent
5093e58dc2
commit
7630168a75
|
@ -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,
|
||||||
|
|
Loading…
Reference in a new issue