diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-05-19 17:06:29 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2010-05-19 17:06:29 +0000 |
commit | 76ac827934b644ac365374027169ffd6d1af5818 (patch) | |
tree | 66dad1b3262af9c273d7fec5b8a35bbf38e02d6d /rtems-coverage | |
parent | 8e777521104d53ea41d6bcfb282b6dd33794cf4a (diff) |
2010-05-19 Joel Sherrill <joel.sherrilL@OARcorp.com>
* Target_i386.cc, Target_i386.h: Spacing.
* Target_m68k.cc, Target_m68k.h, Target_powerpc.cc: Branch
information now correct on m68k and PowerPC.
Diffstat (limited to 'rtems-coverage')
-rw-r--r-- | rtems-coverage/ChangeLog | 6 | ||||
-rw-r--r-- | rtems-coverage/Target_i386.cc | 1 | ||||
-rw-r--r-- | rtems-coverage/Target_i386.h | 12 | ||||
-rw-r--r-- | rtems-coverage/Target_m68k.cc | 48 | ||||
-rw-r--r-- | rtems-coverage/Target_m68k.h | 6 | ||||
-rw-r--r-- | rtems-coverage/Target_powerpc.cc | 24 |
6 files changed, 84 insertions, 13 deletions
diff --git a/rtems-coverage/ChangeLog b/rtems-coverage/ChangeLog index deea423..eed9ee4 100644 --- a/rtems-coverage/ChangeLog +++ b/rtems-coverage/ChangeLog @@ -1,3 +1,9 @@ +2010-05-19 Joel Sherrill <joel.sherrilL@OARcorp.com> + + * Target_i386.cc, Target_i386.h: Spacing. + * Target_m68k.cc, Target_m68k.h, Target_powerpc.cc: Branch + information now correct on m68k and PowerPC. + 2010-05-19 Jennifer Averett <Jennifer.Averett@OARcorp.com> * Target_powerpc.cc: Added missing branch instructions to table of diff --git a/rtems-coverage/Target_i386.cc b/rtems-coverage/Target_i386.cc index 3914cc0..4a09d4c 100644 --- a/rtems-coverage/Target_i386.cc +++ b/rtems-coverage/Target_i386.cc @@ -105,7 +105,6 @@ namespace Target { return TRACE_OP_BR0; } - TargetBase *Target_i386_Constructor( std::string targetName ) diff --git a/rtems-coverage/Target_i386.h b/rtems-coverage/Target_i386.h index 732f38d..9bf86d7 100644 --- a/rtems-coverage/Target_i386.h +++ b/rtems-coverage/Target_i386.h @@ -51,18 +51,14 @@ namespace Target { int& size ); - /*! - * This method returns the bit set by Qemu in the trace record - * when a branch is taken. - */ + /* Documentation inherited from base class */ virtual uint8_t qemuTakenBit(void); - /*! - * This method returns the bit set by Qemu in the trace record - * when a branch is taken. - */ + /* Documentation inherited from base class */ virtual uint8_t qemuNotTakenBit(void); + private: + }; //! diff --git a/rtems-coverage/Target_m68k.cc b/rtems-coverage/Target_m68k.cc index ee3fa06..7ec0706 100644 --- a/rtems-coverage/Target_m68k.cc +++ b/rtems-coverage/Target_m68k.cc @@ -9,6 +9,7 @@ * functions supporting target unique functionallity. */ #include "Target_m68k.h" +#include "qemu-traces.h" #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -20,21 +21,53 @@ namespace Target { TargetBase( targetName ) { branchInstructions.push_back("bcc"); + branchInstructions.push_back("bccs"); + branchInstructions.push_back("bccl"); branchInstructions.push_back("bcs"); + branchInstructions.push_back("bcss"); + branchInstructions.push_back("bcsl"); branchInstructions.push_back("beq"); + branchInstructions.push_back("beqs"); + branchInstructions.push_back("beql"); branchInstructions.push_back("bge"); + branchInstructions.push_back("bges"); + branchInstructions.push_back("bgel"); branchInstructions.push_back("bgt"); + branchInstructions.push_back("bgts"); + branchInstructions.push_back("bgtl"); branchInstructions.push_back("bhi"); + branchInstructions.push_back("bhis"); + branchInstructions.push_back("bhil"); branchInstructions.push_back("bhs"); + branchInstructions.push_back("bhss"); + branchInstructions.push_back("bhsl"); branchInstructions.push_back("ble"); + branchInstructions.push_back("bles"); + branchInstructions.push_back("blel"); branchInstructions.push_back("blo"); + branchInstructions.push_back("blos"); + branchInstructions.push_back("blol"); branchInstructions.push_back("bls"); + branchInstructions.push_back("blss"); + branchInstructions.push_back("blsl"); branchInstructions.push_back("blt"); + branchInstructions.push_back("blts"); + branchInstructions.push_back("bltl"); branchInstructions.push_back("bmi"); + branchInstructions.push_back("bmis"); + branchInstructions.push_back("bmil"); branchInstructions.push_back("bne"); + branchInstructions.push_back("bnes"); + branchInstructions.push_back("bnel"); branchInstructions.push_back("bpl"); + branchInstructions.push_back("bpls"); + branchInstructions.push_back("bpll"); branchInstructions.push_back("bvc"); + branchInstructions.push_back("bvcs"); + branchInstructions.push_back("bvcl"); branchInstructions.push_back("bvs"); + branchInstructions.push_back("bvss"); + branchInstructions.push_back("bvsl"); branchInstructions.sort(); @@ -70,10 +103,23 @@ namespace Target { const char* const instruction ) { - fprintf( stderr, "DETERMINE BRANCH INSTRUCTIONS FOR THIS ARCHITECTURE! -- fix me\n" ); + fprintf( + stderr, + "DETERMINE BRANCH INSTRUCTIONS FOR THIS ARCHITECTURE! -- fix me\n" + ); exit( -1 ); } + uint8_t Target_m68k::qemuTakenBit(void) + { + return TRACE_OP_BR1; + } + + uint8_t Target_m68k::qemuNotTakenBit(void) + { + return TRACE_OP_BR0; + } + TargetBase *Target_m68k_Constructor( std::string targetName ) diff --git a/rtems-coverage/Target_m68k.h b/rtems-coverage/Target_m68k.h index 581fe52..f740fd2 100644 --- a/rtems-coverage/Target_m68k.h +++ b/rtems-coverage/Target_m68k.h @@ -59,6 +59,12 @@ namespace Target { const char* const instruction ); + /* Documentation inherited from base class */ + virtual uint8_t qemuTakenBit(void); + + /* Documentation inherited from base class */ + virtual uint8_t qemuNotTakenBit(void); + private: }; diff --git a/rtems-coverage/Target_powerpc.cc b/rtems-coverage/Target_powerpc.cc index 4d05b5c..060c09d 100644 --- a/rtems-coverage/Target_powerpc.cc +++ b/rtems-coverage/Target_powerpc.cc @@ -19,9 +19,27 @@ namespace Target { Target_powerpc::Target_powerpc( std::string targetName ): TargetBase( targetName ) { - branchInstructions.push_back("b"); - branchInstructions.push_back("ba"); - branchInstructions.push_back("bl"); + // bl is actually branch and link which is a call + // branchInstructions.push_back("b"); + // branchInstructions.push_back("ba"); + branchInstructions.push_back("beq"); + branchInstructions.push_back("beq+"); + branchInstructions.push_back("beq-"); + branchInstructions.push_back("bne"); + branchInstructions.push_back("bne+"); + branchInstructions.push_back("bne-"); + branchInstructions.push_back("bge"); + branchInstructions.push_back("bge+"); + branchInstructions.push_back("bge-"); + branchInstructions.push_back("bgt"); + branchInstructions.push_back("bgt+"); + branchInstructions.push_back("bgt-"); + branchInstructions.push_back("ble"); + branchInstructions.push_back("ble+"); + branchInstructions.push_back("ble-"); + branchInstructions.push_back("blt"); + branchInstructions.push_back("blt+"); + branchInstructions.push_back("blt-"); branchInstructions.push_back("bla"); branchInstructions.push_back("bc"); branchInstructions.push_back("bca"); |