Minor changes to instruction trace output.
authorSteve Reinhardt <stever@eecs.umich.edu>
Tue, 4 Nov 2003 04:26:51 +0000 (20:26 -0800)
committerSteve Reinhardt <stever@eecs.umich.edu>
Tue, 4 Nov 2003 04:26:51 +0000 (20:26 -0800)
arch/alpha/isa_desc:
    A few disassembly changes to make it easier to compare with old machine.def traces:
    - Make lds prefetches print f31 instead of r31 as dest.
    - Don't print mode suffixes on FP if SS_COMPATIBLE_DISASSEMBLY
cpu/exetrace.cc:
    Left-justify instruction in field, and increase width by 1.

--HG--
extra : convert_revision : 9ffd56728f1bb772aa3ccda5f027b93d4c3a4135

arch/alpha/isa_desc
cpu/exetrace.cc

index 75f765029258681e23e2418ac3f83f370536b0de..6c28886857414bfd9e84b50adf0a4c1f10d1c4f3 100644 (file)
@@ -560,13 +560,19 @@ declare {{
        {
            std::string mnem_str(mnemonic);
 
-           mnem_str += ((_destRegIdx[0] >= FP_Base_DepTag)
-                        ? fpTrappingModeSuffix[trappingMode]
-                        : intTrappingModeSuffix[trappingMode]);
-           mnem_str += roundingModeSuffix[roundingMode];
+#ifndef SS_COMPATIBLE_DISASSEMBLY
+           std::string suffix("");
+           suffix += ((_destRegIdx[0] >= FP_Base_DepTag)
+                      ? fpTrappingModeSuffix[trappingMode]
+                      : intTrappingModeSuffix[trappingMode]);
+           suffix += roundingModeSuffix[roundingMode];
+
+           if (suffix != "") {
+               mnem_str = csprintf("%s/%s", mnemonic, suffix);
+           }
+#endif
 
            std::stringstream ss;
-
            ccprintf(ss, "%-10s ", mnem_str.c_str());
 
            // just print the first two source regs... if there's
@@ -1790,8 +1796,10 @@ decode OPCODE default Unknown::unknown() {
     format LoadOrPrefetch {
        0x28: ldl({{ EA = Rb + disp; }}, {{ Ra.sl = Mem.sl; }});
        0x29: ldq({{ EA = Rb + disp; }}, {{ Ra.uq = Mem.uq; }}, EVICT_NEXT);
+       // IsFloating flag on lds gets the prefetch to disassemble
+       // using f31 instead of r31... funcitonally it's unnecessary
        0x22: lds({{ EA = Rb + disp; }}, {{ Fa.uq = s_to_t(Mem.ul); }},
-                 PF_EXCLUSIVE);
+                 PF_EXCLUSIVE, IsFloating);  
     }
 
     format Store {
index c350288bcd0a344fc240eecf74822b6bff7269c9..ce6b0c5442dda4d6e06f8ebf2b80bf6be5efca0d 100644 (file)
@@ -74,11 +74,11 @@ Trace::InstRecord::dump(ostream &outs)
     // There's a bug in gcc 2.x library that prevents setw()
     // from working properly on strings
     string mc(staticInst->disassemble(PC, debugSymbolTable));
-    while (mc.length() < 25)
+    while (mc.length() < 26)
         mc += " ";
     outs << mc;
 #else
-    outs << setw(25) << staticInst->disassemble(PC, debugSymbolTable);
+    outs << setw(26) << left << staticInst->disassemble(PC, debugSymbolTable);
 #endif
 
     outs << " : ";