add fsr to the list of registers we are interested in
authorAli Saidi <saidi@eecs.umich.edu>
Tue, 30 Jan 2007 23:27:04 +0000 (18:27 -0500)
committerAli Saidi <saidi@eecs.umich.edu>
Tue, 30 Jan 2007 23:27:04 +0000 (18:27 -0500)
--HG--
extra : convert_revision : 2cc0d0144abab264aa0ec8c07242cdab2dffd4f8

src/cpu/exetrace.cc
src/cpu/m5legion_interface.h

index 85b08ee325f1f6e37dc2eab14a6bc35a3a9eff7a..e34ae3731773b1531972ee41052803adb9027b36 100644 (file)
@@ -307,6 +307,7 @@ Trace::InstRecord::dump(ostream &outs)
         bool diffHtba = false;
         bool diffPstate = false;
         bool diffY = false;
+        bool diffFsr = false;
         bool diffCcr = false;
         bool diffTl = false;
         bool diffGl = false;
@@ -410,6 +411,8 @@ Trace::InstRecord::dump(ostream &outs)
                     if(shared_data->y !=
                             thread->readIntReg(NumIntArchRegs + 1))
                         diffY = true;
+                    if(shared_data->fsr != thread->readMiscReg(MISCREG_FSR))
+                        diffFsr = true;
                     //if(shared_data->ccr != thread->readMiscReg(MISCREG_CCR))
                     if(shared_data->ccr !=
                             thread->readIntReg(NumIntArchRegs + 2))
@@ -450,8 +453,8 @@ Trace::InstRecord::dump(ostream &outs)
                     if ((diffPC || diffCC || diffInst || diffIntRegs ||
                          diffFpRegs || diffTpc || diffTnpc || diffTstate ||
                          diffTt || diffHpstate || diffHtstate || diffHtba ||
-                         diffPstate || diffY || diffCcr || diffTl || diffGl ||
-                         diffAsi || diffPil || diffCwp || diffCansave ||
+                         diffPstate || diffY || diffCcr || diffTl || diffFsr ||
+                         diffGl || diffAsi || diffPil || diffCwp || diffCansave ||
                          diffCanrestore || diffOtherwin || diffCleanwin || diffTlb)
                         && !((staticInst->machInst & 0xC1F80000) == 0x81D00000)
                         && !(((staticInst->machInst & 0xC0000000) == 0xC0000000)
@@ -487,6 +490,8 @@ Trace::InstRecord::dump(ostream &outs)
                             outs << " [Pstate]";
                         if (diffY)
                             outs << " [Y]";
+                        if (diffFsr)
+                            outs << " [FSR]";
                         if (diffCcr)
                             outs << " [Ccr]";
                         if (diffTl)
@@ -556,6 +561,9 @@ Trace::InstRecord::dump(ostream &outs)
                                 //thread->readMiscReg(MISCREG_Y),
                                 thread->readIntReg(NumIntArchRegs + 1),
                                 shared_data->y);
+                        printRegPair(outs, "FSR",
+                                thread->readMiscReg(MISCREG_FSR),
+                                shared_data->fsr);
                         printRegPair(outs, "Ccr",
                                 //thread->readMiscReg(MISCREG_CCR),
                                 thread->readIntReg(NumIntArchRegs + 2),
index 81714f76981f05ff165a261a91d89a07aa1b0e90..373dc5cdcf4425f32176e49aa5b1283c76e75ba7 100644 (file)
@@ -30,7 +30,7 @@
 
 #include <unistd.h>
 
-#define VERSION         0xA1000008
+#define VERSION         0xA1000009
 #define OWN_M5          0x000000AA
 #define OWN_LEGION      0x00000055
 
@@ -61,6 +61,7 @@ typedef struct {
     uint16_t pstate;
 
     uint64_t y;
+    uint64_t fsr;
     uint8_t ccr;
     uint8_t tl;
     uint8_t gl;