arm: m5ops readfile64 args broken, offset coming through garbage
authorEric Van Hensbergen <eric.vanhensbergen@arm.com>
Sun, 23 Mar 2014 15:11:34 +0000 (11:11 -0400)
committerEric Van Hensbergen <eric.vanhensbergen@arm.com>
Sun, 23 Mar 2014 15:11:34 +0000 (11:11 -0400)
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.

src/arch/arm/isa/insts/m5ops.isa

index 928d1be0d30718b76e17e51e017300a59211549a..e18d0682c65c4a4a35136676329b23ec4b1997d1 100644 (file)
@@ -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,