summaryrefslogtreecommitdiff
path: root/src/arch/arm/isa
diff options
context:
space:
mode:
authorEric Van Hensbergen <eric.vanhensbergen@arm.com>2014-03-23 11:11:34 -0400
committerEric Van Hensbergen <eric.vanhensbergen@arm.com>2014-03-23 11:11:34 -0400
commit7630168a755122993072090cbd1d52a8dcaf1509 (patch)
tree6ea0fecc5560321e06979bd75ca13831e0b7ff2e /src/arch/arm/isa
parent5093e58dc2576c93275c22058d1dd52abcda6467 (diff)
downloadgem5-7630168a755122993072090cbd1d52a8dcaf1509.tar.xz
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.
Diffstat (limited to 'src/arch/arm/isa')
-rw-r--r--src/arch/arm/isa/insts/m5ops.isa14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/arch/arm/isa/insts/m5ops.isa b/src/arch/arm/isa/insts/m5ops.isa
index 928d1be0d..e18d0682c 100644
--- a/src/arch/arm/isa/insts/m5ops.isa
+++ b/src/arch/arm/isa/insts/m5ops.isa
@@ -403,10 +403,10 @@ let {{
'''
m5readfileCode64 = '''
- int n = 4;
+ int n = 2;
uint64_t offset = getArgument(xc->tcBase(), n, sizeof(uint64_t), false);
- n = 6;
- X0 = PseudoInst::readfile(xc->tcBase(), (uint32_t)X0, X1, offset);
+ n = 3;
+ X0 = PseudoInst::readfile(xc->tcBase(), X0, X1, offset);
'''
m5readfileIop = InstObjParams("m5readfile", "M5readfile", "PredOp",
@@ -435,11 +435,11 @@ let {{
'''
m5writefileCode64 = '''
- int n = 4;
+ int n = 2;
uint64_t offset = getArgument(xc->tcBase(), n, sizeof(uint64_t), false);
- n = 6;
+ n = 3;
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);
'''
@@ -479,7 +479,7 @@ let {{
PseudoInst::addsymbol(xc->tcBase(), join32to64(R1, R0), R2);
'''
m5addsymbolCode64 = '''
- PseudoInst::addsymbol(xc->tcBase(), X0, (uint32_t)X1);
+ PseudoInst::addsymbol(xc->tcBase(), X0, X1);
'''
m5addsymbolIop = InstObjParams("m5addsymbol", "M5addsymbol", "PredOp",
{ "code": m5addsymbolCode,