<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>change log for gcc-testing (2010-05-11)</title>
</head>
<body text='#000000' bgcolor='#ffffff'>
<a name='cs1'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-05-11 Joel Sherrill <joel.sherrilL@OARcorp.com>

        * CoverageReaderQEMU.cc, ReportsBase.cc, app_common.cc, app_common.h,
        covoar.cc: Now properly know when a trace or coverage format includes
        or does not include branch information.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/ChangeLog.diff?r1=text&tr1=1.216&r2=text&tr2=1.217&diff_format=h">M</a></td><td width='1%'>1.217</td><td width='100%'>rtems-coverage/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/CoverageReaderQEMU.cc.diff?r1=text&tr1=1.12&r2=text&tr2=1.13&diff_format=h">M</a></td><td width='1%'>1.13</td><td width='100%'>rtems-coverage/CoverageReaderQEMU.cc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/ReportsBase.cc.diff?r1=text&tr1=1.5&r2=text&tr2=1.6&diff_format=h">M</a></td><td width='1%'>1.6</td><td width='100%'>rtems-coverage/ReportsBase.cc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/app_common.h.diff?r1=text&tr1=1.7&r2=text&tr2=1.8&diff_format=h">M</a></td><td width='1%'>1.8</td><td width='100%'>rtems-coverage/app_common.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/app_common.cc.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&diff_format=h">M</a></td><td width='1%'>1.4</td><td width='100%'>rtems-coverage/app_common.cc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/covoar.cc.diff?r1=text&tr1=1.16&r2=text&tr2=1.17&diff_format=h">M</a></td><td width='1%'>1.17</td><td width='100%'>rtems-coverage/covoar.cc</td></tr>
</table>
<pre>
<font color='#006600'>diff -u gcc-testing/rtems-coverage/ChangeLog:1.216 gcc-testing/rtems-coverage/ChangeLog:1.217
--- gcc-testing/rtems-coverage/ChangeLog:1.216  Tue May 11 13:17:33 2010
+++ gcc-testing/rtems-coverage/ChangeLog        Tue May 11 14:44:52 2010
</font><font color='#997700'>@@ -1,5 +1,11 @@
</font> 2010-05-11        Joel Sherrill <joel.sherrilL@OARcorp.com>
 
<font color='#000088'>+   * CoverageReaderQEMU.cc, ReportsBase.cc, app_common.cc, app_common.h,
+       covoar.cc: Now properly know when a trace or coverage format includes
+       or does not include branch information.
+
+2010-05-11     Joel Sherrill <joel.sherrilL@OARcorp.com>
+
</font>   * DesiredSymbols.cc: Remove range1.tmp and ranges2.tmp.
        * ReportsBase.cc, app_common.cc, covoar.cc, do_coverage: Generate
        files into user specified output directory.

<font color='#006600'>diff -u gcc-testing/rtems-coverage/CoverageReaderQEMU.cc:1.12 gcc-testing/rtems-coverage/CoverageReaderQEMU.cc:1.13
--- gcc-testing/rtems-coverage/CoverageReaderQEMU.cc:1.12       Fri May  7 13:53:58 2010
+++ gcc-testing/rtems-coverage/CoverageReaderQEMU.cc    Tue May 11 14:44:52 2010
</font><font color='#997700'>@@ -13,6 +13,7 @@
</font> #include <stdlib.h>
 #include <sys/stat.h>
 
<font color='#000088'>+#include "app_common.h"
</font> #include "CoverageReaderQEMU.h"
 #include "CoverageMap.h"
 #include "ExecutableInfo.h"
<font color='#997700'>@@ -35,6 +36,7 @@
</font> 
   CoverageReaderQEMU::CoverageReaderQEMU()
   {
<font color='#000088'>+    BranchInfoAvailable = true;
</font>   }
 
   CoverageReaderQEMU::~CoverageReaderQEMU()

<font color='#006600'>diff -u gcc-testing/rtems-coverage/ReportsBase.cc:1.5 gcc-testing/rtems-coverage/ReportsBase.cc:1.6
--- gcc-testing/rtems-coverage/ReportsBase.cc:1.5       Tue May 11 13:17:33 2010
+++ gcc-testing/rtems-coverage/ReportsBase.cc   Tue May 11 14:44:52 2010
</font><font color='#997700'>@@ -220,15 +220,16 @@
</font> 
   // Open the branch report file
   report = OpenBranchFile( fileName );
<font color='#000088'>+
</font>   if (!report)
     return;
 
<font color='#880000'>-  // If no branches were found, then branch coverage is not supported
-  if (SymbolsToAnalyze->getNumberBranchesFound() == 0)
</font><font color='#000088'>+  // If no branches were found of branch coverage is not supported
+  if ((SymbolsToAnalyze->getNumberBranchesFound() == 0) ||<span style="background-color: #FF0000"> </span>
+      (BranchInfoAvailable == false) ) {
</font>     PutNoBranchInfo(report);
<font color='#880000'>-
-  // If branches were found, ...
-  else {
</font><font color='#000088'>+    // If branches were found, ...
+  } else {
</font> 
     // Process uncovered branches for each symbol.
     count = 0;

<font color='#006600'>diff -u gcc-testing/rtems-coverage/app_common.h:1.7 gcc-testing/rtems-coverage/app_common.h:1.8
--- gcc-testing/rtems-coverage/app_common.h:1.7 Mon May 10 14:31:11 2010
+++ gcc-testing/rtems-coverage/app_common.h     Tue May 11 14:44:52 2010
</font><font color='#997700'>@@ -17,6 +17,7 @@
</font> extern Coverage::Toolnames*         Tools;
 extern bool                         Verbose;
 extern const char*                  outputDirectory;
<font color='#000088'>+extern bool                         BranchInfoAvailable;
</font> 
 bool FileIsNewer( const char *f1, const char *f2 );<span style="background-color: #FF0000"> </span>
 bool ReadUntilFound( FILE *file, const char *line );

<font color='#006600'>diff -u gcc-testing/rtems-coverage/app_common.cc:1.3 gcc-testing/rtems-coverage/app_common.cc:1.4
--- gcc-testing/rtems-coverage/app_common.cc:1.3        Tue May 11 13:17:33 2010
+++ gcc-testing/rtems-coverage/app_common.cc    Tue May 11 14:44:52 2010
</font><font color='#997700'>@@ -17,12 +17,13 @@
</font> /*
  *  Global variables for the program
  */
<font color='#880000'>-Coverage::Explanations*     AllExplanations  = NULL;
-Coverage::ObjdumpProcessor* objdumpProcessor = NULL;
-Coverage::DesiredSymbols*   SymbolsToAnalyze = NULL;
-Coverage::Toolnames*        Tools            = NULL;
-bool                        Verbose          = false;
-const char*                 outputDirectory = ".";
</font><font color='#000088'>+Coverage::Explanations*     AllExplanations     = NULL;
+Coverage::ObjdumpProcessor* objdumpProcessor    = NULL;
+Coverage::DesiredSymbols*   SymbolsToAnalyze    = NULL;
+Coverage::Toolnames*        Tools               = NULL;
+bool                        Verbose             = false;
+const char*                 outputDirectory     = ".";
+bool                        BranchInfoAvailable = false;
</font> 
 bool FileIsNewer( const char *f1, const char *f2 ) {
   struct stat buf1, buf2;

<font color='#006600'>diff -u gcc-testing/rtems-coverage/covoar.cc:1.16 gcc-testing/rtems-coverage/covoar.cc:1.17
--- gcc-testing/rtems-coverage/covoar.cc:1.16   Tue May 11 13:17:33 2010
+++ gcc-testing/rtems-coverage/covoar.cc        Tue May 11 14:44:52 2010
</font><font color='#997700'>@@ -421,9 +421,10 @@
</font>       "Uncovered ranges found   : %d\n",
       SymbolsToAnalyze->getNumberUncoveredRanges()
     );
<font color='#880000'>-    if (SymbolsToAnalyze->getNumberBranchesFound() == 0)
-      printf( "MAIN No branch information found\n" );
-    else {
</font><font color='#000088'>+    if ((SymbolsToAnalyze->getNumberBranchesFound() == 0) ||<span style="background-color: #FF0000"> </span>
+        (BranchInfoAvailable == false) ) {
+      printf( "No branch information available\n" );
+    } else {
</font>       printf(
         "Total branches found     : %d\n",
         SymbolsToAnalyze->getNumberBranchesFound()
</pre>
<p> </p>
<a name='cs2'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-05-11 Joel Sherrill <joel.sherrilL@OARcorp.com>

        * CoverageReaderQEMU.cc, ObjdumpProcessor.cc, ObjdumpProcessor.h,
        TargetBase.cc, TargetBase.h, TraceConverter.cc, TraceWriterQEMU.cc,
        app_common.cc, app_common.h, covoar.cc, qemu-traces.h: Allow each
        Qemu target architecture to define its own taken and not taken bits.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/ChangeLog.diff?r1=text&tr1=1.217&r2=text&tr2=1.218&diff_format=h">M</a></td><td width='1%'>1.218</td><td width='100%'>rtems-coverage/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/CoverageReaderQEMU.cc.diff?r1=text&tr1=1.13&r2=text&tr2=1.14&diff_format=h">M</a></td><td width='1%'>1.14</td><td width='100%'>rtems-coverage/CoverageReaderQEMU.cc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/ObjdumpProcessor.h.diff?r1=text&tr1=1.9&r2=text&tr2=1.10&diff_format=h">M</a></td><td width='1%'>1.10</td><td width='100%'>rtems-coverage/ObjdumpProcessor.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/ObjdumpProcessor.cc.diff?r1=text&tr1=1.29&r2=text&tr2=1.30&diff_format=h">M</a></td><td width='1%'>1.30</td><td width='100%'>rtems-coverage/ObjdumpProcessor.cc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/TargetBase.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.3&diff_format=h">M</a></td><td width='1%'>1.3</td><td width='100%'>rtems-coverage/TargetBase.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/TargetBase.cc.diff?r1=text&tr1=1.4&r2=text&tr2=1.5&diff_format=h">M</a></td><td width='1%'>1.5</td><td width='100%'>rtems-coverage/TargetBase.cc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/TraceConverter.cc.diff?r1=text&tr1=1.5&r2=text&tr2=1.6&diff_format=h">M</a></td><td width='1%'>1.6</td><td width='100%'>rtems-coverage/TraceConverter.cc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/TraceWriterQEMU.cc.diff?r1=text&tr1=1.1&r2=text&tr2=1.2&diff_format=h">M</a></td><td width='1%'>1.2</td><td width='100%'>rtems-coverage/TraceWriterQEMU.cc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/app_common.h.diff?r1=text&tr1=1.8&r2=text&tr2=1.9&diff_format=h">M</a></td><td width='1%'>1.9</td><td width='100%'>rtems-coverage/app_common.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/app_common.cc.diff?r1=text&tr1=1.4&r2=text&tr2=1.5&diff_format=h">M</a></td><td width='1%'>1.5</td><td width='100%'>rtems-coverage/app_common.cc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/covoar.cc.diff?r1=text&tr1=1.17&r2=text&tr2=1.18&diff_format=h">M</a></td><td width='1%'>1.18</td><td width='100%'>rtems-coverage/covoar.cc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//gcc-testing/rtems-coverage/qemu-traces.h.diff?r1=text&tr1=1.2&r2=text&tr2=1.3&diff_format=h">M</a></td><td width='1%'>1.3</td><td width='100%'>rtems-coverage/qemu-traces.h</td></tr>
</table>
<pre>
<font color='#006600'>diff -u gcc-testing/rtems-coverage/ChangeLog:1.217 gcc-testing/rtems-coverage/ChangeLog:1.218
--- gcc-testing/rtems-coverage/ChangeLog:1.217  Tue May 11 14:44:52 2010
+++ gcc-testing/rtems-coverage/ChangeLog        Tue May 11 15:09:19 2010
</font><font color='#997700'>@@ -1,5 +1,12 @@
</font> 2010-05-11        Joel Sherrill <joel.sherrilL@OARcorp.com>
 
<font color='#000088'>+   * CoverageReaderQEMU.cc, ObjdumpProcessor.cc, ObjdumpProcessor.h,
+       TargetBase.cc, TargetBase.h, TraceConverter.cc, TraceWriterQEMU.cc,
+       app_common.cc, app_common.h, covoar.cc, qemu-traces.h: Allow each
+       Qemu target architecture to define its own taken and not taken bits.
+
+2010-05-11     Joel Sherrill <joel.sherrilL@OARcorp.com>
+
</font>   * CoverageReaderQEMU.cc, ReportsBase.cc, app_common.cc, app_common.h,
        covoar.cc: Now properly know when a trace or coverage format includes
        or does not include branch information.

<font color='#006600'>diff -u gcc-testing/rtems-coverage/CoverageReaderQEMU.cc:1.13 gcc-testing/rtems-coverage/CoverageReaderQEMU.cc:1.14
--- gcc-testing/rtems-coverage/CoverageReaderQEMU.cc:1.13       Tue May 11 14:44:52 2010
+++ gcc-testing/rtems-coverage/CoverageReaderQEMU.cc    Tue May 11 15:09:19 2010
</font><font color='#997700'>@@ -18,9 +18,6 @@
</font> #include "CoverageMap.h"
 #include "ExecutableInfo.h"
 
<font color='#880000'>-/* XXX really not always right */
-typedef uint32_t target_ulong;
-
</font> #include "qemu-traces.h"
 
 /* hack so this can compile on the RH7 RTEMS 4.5 host */
<font color='#997700'>@@ -53,6 +50,13 @@
</font>     struct STAT         statbuf;
     int                 status;
     FILE*               traceFile;
<font color='#000088'>+    uint8_t             taken;
+    uint8_t             notTaken;
+    uint8_t             branchInfo;
+
+    taken    = TargetInfo->qemuTakenBit();
+    notTaken = TargetInfo->qemuNotTakenBit();
+    branchInfo = taken | notTaken;
</font> 
     //
     // Verify that the coverage file has a non-zero size.
<font color='#997700'>@@ -145,13 +149,13 @@
</font>         }
 
         // Determine if additional branch information is available.
<font color='#880000'>-       if ( (entry->op & (TRACE_OP_TAKEN|TRACE_OP_NOT_TAKEN)) != 0 ) {
</font><font color='#000088'>+       if ( (entry->op & branchInfo) != 0 ) {
</font>           unsigned int a = entry->pc + entry->size - 1;
           while (!aCoverageMap->isStartOfInstruction(a))
             a--;
<font color='#880000'>-          if (entry->op & TRACE_OP_TAKEN) {
</font><font color='#000088'>+          if (entry->op & taken) {
</font>             aCoverageMap->setWasTaken( a );
<font color='#880000'>-          } else if (entry->op & TRACE_OP_NOT_TAKEN) {
</font><font color='#000088'>+          } else if (entry->op & notTaken) {
</font>       aCoverageMap->setWasNotTaken( a );
           }
        }

<font color='#006600'>diff -u gcc-testing/rtems-coverage/ObjdumpProcessor.h:1.9 gcc-testing/rtems-coverage/ObjdumpProcessor.h:1.10
--- gcc-testing/rtems-coverage/ObjdumpProcessor.h:1.9   Fri May  7 13:53:58 2010
+++ gcc-testing/rtems-coverage/ObjdumpProcessor.h       Tue May 11 15:09:19 2010
</font><font color='#997700'>@@ -134,7 +134,6 @@
</font>   private:
 
     objdumpFile_t       objdumpList;
<font color='#880000'>-    Target::TargetBase* target_m;
</font> 
     /*!
      *  This method determines whether the specified line is a

<font color='#006600'>diff -u gcc-testing/rtems-coverage/ObjdumpProcessor.cc:1.29 gcc-testing/rtems-coverage/ObjdumpProcessor.cc:1.30
--- gcc-testing/rtems-coverage/ObjdumpProcessor.cc:1.29 Fri May  7 13:53:58 2010
+++ gcc-testing/rtems-coverage/ObjdumpProcessor.cc      Tue May 11 15:09:19 2010
</font><font color='#997700'>@@ -17,8 +17,8 @@
</font> #include <string.h>
 #include <algorithm>
 
<font color='#880000'>-#include "ObjdumpProcessor.h"
</font> #include "app_common.h"
<font color='#000088'>+#include "ObjdumpProcessor.h"
</font> #include "CoverageMap.h"
 #include "ExecutableInfo.h"
 #include "SymbolTable.h"
<font color='#997700'>@@ -76,7 +76,6 @@
</font> 
   ObjdumpProcessor::ObjdumpProcessor()
   {
<font color='#880000'>-    target_m = Target::TargetFactory(Tools->getTarget());
</font>   }
 
   ObjdumpProcessor::~ObjdumpProcessor()
<font color='#997700'>@@ -87,26 +86,26 @@
</font>     const char *instruction<span style="background-color: #FF0000"> </span>
   )
   {<span style="background-color: #FF0000"> </span>
<font color='#880000'>-    if (!target_m) {
</font><font color='#000088'>+    if ( !TargetInfo ) {
</font>       fprintf( stderr, "ERROR!!! unknown architecture!!!\n");
       assert(0);
       return false;
     }
 
<font color='#880000'>-    return target_m->isBranch( instruction );
</font><font color='#000088'>+    return TargetInfo->isBranch( instruction );
</font>   }
 
   bool ObjdumpProcessor::isBranchLine(
     const char* const line
   )
   {
<font color='#880000'>-    if (!target_m) {
</font><font color='#000088'>+    if ( !TargetInfo ) {
</font>       fprintf( stderr, "ERROR!!! unknown architecture!!!\n");
       assert(0);
       return false;
     }
 
<font color='#880000'>-    return  target_m->isBranchLine( line );
</font><font color='#000088'>+    return  TargetInfo->isBranchLine( line );
</font>   }
 
   bool ObjdumpProcessor::isNop(
<font color='#997700'>@@ -115,14 +114,14 @@
</font>   )
   {
 
<font color='#880000'>-    if (!target_m){
</font><font color='#000088'>+    if ( !TargetInfo ){
</font>       fprintf( stderr, "ERROR!!! unknown architecture!!!\n");
       fprintf( stderr, "HOW LARGE IS NOP ON THIS ARCHITECTURE? -- fix me\n" );
       assert(0);
       return false;
     }
 
<font color='#880000'>-    return target_m->isNopLine( line, size );
</font><font color='#000088'>+    return TargetInfo->isNopLine( line, size );
</font>   }
 
   FILE* ObjdumpProcessor::getFile(<span style="background-color: #FF0000"> </span>

<font color='#006600'>diff -u gcc-testing/rtems-coverage/TargetBase.h:1.2 gcc-testing/rtems-coverage/TargetBase.h:1.3
--- gcc-testing/rtems-coverage/TargetBase.h:1.2 Thu Apr 29 14:12:31 2010
+++ gcc-testing/rtems-coverage/TargetBase.h     Tue May 11 15:09:19 2010
</font><font color='#997700'>@@ -13,15 +13,15 @@
</font> 
 #include <list>
 #include <string>
<font color='#880000'>-
</font><font color='#000088'>+#include <stdint.h>
</font> 
 namespace Target {
 
   /*! @class TargetBase
    *
    *  This class is the base class for all Target classes.  Each
<font color='#880000'>-   *  target class contains routines that are specific to the target in question.
-   *
</font><font color='#000088'>+   *  target class contains routines that are specific to the target
+   *  in question.
</font>    */
   class TargetBase {
 
<font color='#997700'>@@ -74,6 +74,18 @@
</font>       const char* const instruction
     );
 
<font color='#000088'>+    /*!
+     *  This method returns the bit set by Qemu in the trace record
+     *  when a branch is taken.
+     */
+    virtual uint8_t qemuTakenBit(void);
+
+    /*!
+     *  This method returns the bit set by Qemu in the trace record
+     *  when a branch is taken.
+     */
+    virtual uint8_t qemuNotTakenBit(void);
+
</font>   protected:
 
     /*!

<font color='#006600'>diff -u gcc-testing/rtems-coverage/TargetBase.cc:1.4 gcc-testing/rtems-coverage/TargetBase.cc:1.5
--- gcc-testing/rtems-coverage/TargetBase.cc:1.4        Mon May 10 09:07:35 2010
+++ gcc-testing/rtems-coverage/TargetBase.cc    Tue May 11 15:09:19 2010
</font><font color='#997700'>@@ -8,7 +8,10 @@
</font>  *  This file contains the implementation of the base class for<span style="background-color: #FF0000"> </span>
  *  functions supporting target unique functionallity.
  */
<font color='#000088'>+
</font> #include "TargetBase.h"
<font color='#000088'>+#include "qemu-traces.h"
+
</font> #include <algorithm>
 #include <stdio.h>
 
<font color='#997700'>@@ -25,7 +28,6 @@
</font>   {
   }
 
<font color='#880000'>-
</font>   bool TargetBase::isBranch(
       const char* const instruction
   )
<font color='#997700'>@@ -90,4 +92,15 @@
</font> 
     return isBranch( instruction );
   }
<font color='#000088'>+
+  uint8_t TargetBase::qemuTakenBit(void)
+  {
+    return TRACE_OP_BR0;
+  }
+
+  uint8_t TargetBase::qemuNotTakenBit(void)
+  {
+    return TRACE_OP_BR1;
+  }
+
</font> }

<font color='#006600'>diff -u gcc-testing/rtems-coverage/TraceConverter.cc:1.5 gcc-testing/rtems-coverage/TraceConverter.cc:1.6
--- gcc-testing/rtems-coverage/TraceConverter.cc:1.5    Mon Apr 26 12:23:36 2010
+++ gcc-testing/rtems-coverage/TraceConverter.cc        Tue May 11 15:09:19 2010
</font><font color='#997700'>@@ -22,6 +22,7 @@
</font> #include "ObjdumpProcessor.h"
 #include "Toolnames.h"
 #include "app_common.h"
<font color='#000088'>+#include "TargetFactory.h"
</font> 
 char *progname;
 
<font color='#997700'>@@ -82,6 +83,7 @@
</font> 
   // Create toolnames.
   Tools = new Coverage::Toolnames( cpuname );
<font color='#000088'>+  TargetInfo = Target::TargetFactory( cpuname );
</font> 
   objdumpProcessor = new Coverage::ObjdumpProcessor();
  

<font color='#006600'>diff -u gcc-testing/rtems-coverage/TraceWriterQEMU.cc:1.1 gcc-testing/rtems-coverage/TraceWriterQEMU.cc:1.2
--- gcc-testing/rtems-coverage/TraceWriterQEMU.cc:1.1   Fri Apr 23 13:57:18 2010
+++ gcc-testing/rtems-coverage/TraceWriterQEMU.cc       Tue May 11 15:09:19 2010
</font><font color='#997700'>@@ -51,6 +51,11 @@
</font>     struct trace_header header;
     int                 status;
     FILE*               traceFile;
<font color='#000088'>+    uint8_t             taken;
+    uint8_t             notTaken;
+
+    taken    = TargetInfo->qemuTakenBit();
+    notTaken = TargetInfo->qemuNotTakenBit();
</font> 
     //
     // Verify that the TraceList has a non-zero size.
<font color='#997700'>@@ -114,10 +119,10 @@
</font>       entry.op   = TRACE_OP_BLOCK;
       switch (itr->exitReason) {
         case TraceList::EXIT_REASON_BRANCH_TAKEN:
<font color='#880000'>-          entry.op |= TRACE_OP_TAKEN;
</font><font color='#000088'>+          entry.op |= taken;
</font>           break;
         case TraceList::EXIT_REASON_BRANCH_NOT_TAKEN:
<font color='#880000'>-          entry.op |= TRACE_OP_NOT_TAKEN;
</font><font color='#000088'>+          entry.op |= notTaken;
</font>           break;
         case TraceList::EXIT_REASON_OTHER:
           break;
<font color='#997700'>@@ -127,7 +132,7 @@
</font>           break;
        }
        
<font color='#880000'>-      if (Verbose )
</font><font color='#000088'>+      if ( Verbose )
</font>         fprintf(stderr, "%x %x %x\n", entry.pc, entry.size, entry.op);
 
       status = fwrite( &entry, sizeof(entry), 1, traceFile );

<font color='#006600'>diff -u gcc-testing/rtems-coverage/app_common.h:1.8 gcc-testing/rtems-coverage/app_common.h:1.9
--- gcc-testing/rtems-coverage/app_common.h:1.8 Tue May 11 14:44:52 2010
+++ gcc-testing/rtems-coverage/app_common.h     Tue May 11 15:09:19 2010
</font><font color='#997700'>@@ -10,6 +10,7 @@
</font> #include "DesiredSymbols.h"
 #include "Explanations.h"
 #include "Toolnames.h"
<font color='#000088'>+#include "TargetBase.h"
</font> 
 extern Coverage::Explanations*      AllExplanations;
 extern Coverage::ObjdumpProcessor*  objdumpProcessor;
<font color='#997700'>@@ -18,6 +19,7 @@
</font> extern bool                         Verbose;
 extern const char*                  outputDirectory;
 extern bool                         BranchInfoAvailable;
<font color='#000088'>+extern Target::TargetBase*          TargetInfo;
</font> 
 bool FileIsNewer( const char *f1, const char *f2 );<span style="background-color: #FF0000"> </span>
 bool ReadUntilFound( FILE *file, const char *line );

<font color='#006600'>diff -u gcc-testing/rtems-coverage/app_common.cc:1.4 gcc-testing/rtems-coverage/app_common.cc:1.5
--- gcc-testing/rtems-coverage/app_common.cc:1.4        Tue May 11 14:44:52 2010
+++ gcc-testing/rtems-coverage/app_common.cc    Tue May 11 15:09:19 2010
</font><font color='#997700'>@@ -24,6 +24,7 @@
</font> bool                        Verbose             = false;
 const char*                 outputDirectory     = ".";
 bool                        BranchInfoAvailable = false;
<font color='#000088'>+Target::TargetBase*         TargetInfo          = NULL;
</font> 
 bool FileIsNewer( const char *f1, const char *f2 ) {
   struct stat buf1, buf2;

<font color='#006600'>diff -u gcc-testing/rtems-coverage/covoar.cc:1.17 gcc-testing/rtems-coverage/covoar.cc:1.18
--- gcc-testing/rtems-coverage/covoar.cc:1.17   Tue May 11 14:44:52 2010
+++ gcc-testing/rtems-coverage/covoar.cc        Tue May 11 15:09:19 2010
</font><font color='#997700'>@@ -24,6 +24,7 @@
</font> #include "Explanations.h"
 #include "ObjdumpProcessor.h"
 #include "ReportsBase.h"
<font color='#000088'>+#include "TargetFactory.h"
</font> 
 /*
  *  Variables to control general behavior
<font color='#997700'>@@ -271,7 +272,8 @@
</font>   //
 
   // Create toolnames based on target.
<font color='#880000'>-  Tools = new Coverage::Toolnames( target );
</font><font color='#000088'>+  Tools      = new Coverage::Toolnames( target );
+  TargetInfo = Target::TargetFactory( target );
</font> 
   // Create the set of desired symbols.
   SymbolsToAnalyze = new Coverage::DesiredSymbols();

<font color='#006600'>diff -u gcc-testing/rtems-coverage/qemu-traces.h:1.2 gcc-testing/rtems-coverage/qemu-traces.h:1.3
--- gcc-testing/rtems-coverage/qemu-traces.h:1.2        Wed Jan 20 13:08:07 2010
+++ gcc-testing/rtems-coverage/qemu-traces.h    Tue May 11 15:09:19 2010
</font><font color='#997700'>@@ -31,6 +31,10 @@
</font> #ifndef QEMU_TRACE_H
 #define QEMU_TRACE_H
 
<font color='#000088'>+/* XXX really not always right */
+/* XXX Added for covoar so this compiles */
+typedef uint32_t target_ulong;
+
</font> /* File header definition.  */
 struct trace_header
 {
<font color='#997700'>@@ -98,9 +102,6 @@
</font> #define TRACE_OP_BR2 0x04
 #define TRACE_OP_BR3 0x08
 
<font color='#880000'>-#define TRACE_OP_TAKEN     TRACE_OP_BR0 /* Branch not taken at pc.  */
-#define TRACE_OP_NOT_TAKEN TRACE_OP_BR1 /* Branch taken at pc. */
-
</font> /*
  * Decision map operations
  */
</pre>
<p> </p>

<p>--<br />
<small>Generated by <a href="http://www.codewiz.org/projects/index.html#loginfo">Deluxe Loginfo</a> 2.122 by Bernardo Innocenti <bernie@develer.com></small></p>
</body>
</html>