summaryrefslogtreecommitdiff
path: root/covoar/TargetBase.cc
diff options
context:
space:
mode:
Diffstat (limited to 'covoar/TargetBase.cc')
-rw-r--r--covoar/TargetBase.cc136
1 files changed, 0 insertions, 136 deletions
diff --git a/covoar/TargetBase.cc b/covoar/TargetBase.cc
deleted file mode 100644
index e5a0ee6..0000000
--- a/covoar/TargetBase.cc
+++ /dev/null
@@ -1,136 +0,0 @@
-/*! @file TargetBase.cc
- * @brief TargetBase Implementation
- *
- * This file contains the implementation of the base class for
- * functions supporting target unique functionallity.
- */
-
-#include "TargetBase.h"
-#include "qemu-traces.h"
-
-#include <algorithm>
-#include <stdio.h>
-#include <stdlib.h>
-
-namespace Target {
-
- TargetBase::TargetBase(
- std::string targetName
- ):
- targetName_m( targetName )
- {
- int i;
- std::string front = "";
-
- for (i=0 ; targetName_m[i] && targetName_m[i] != '-' ; ) {
- cpu_m[i] = targetName_m[i];
- cpu_m[++i] = '\0';
- }
- if (targetName_m[i] == '-')
- front = targetName_m + "-";
-
-
- addr2line_m = front + "addr2line";
- objdump_m = front + "objdump";
- }
-
- TargetBase::~TargetBase()
- {
- }
-
- const char* TargetBase::getAddr2line() const
- {
- return addr2line_m.c_str();
- }
-
- const char* TargetBase::getCPU( void ) const
- {
- return cpu_m.c_str();
- }
-
- const char* TargetBase::getObjdump() const
- {
- return objdump_m.c_str();
- }
-
- const char* TargetBase::getTarget( void ) const
- {
- return targetName_m.c_str();
- }
-
- bool TargetBase::isBranch(
- const char* const instruction
- )
- {
- std::list <std::string>::iterator i;
-
- if (branchInstructions.empty()) {
- fprintf(
- stderr,
- "DETERMINE BRANCH INSTRUCTIONS FOR THIS ARCHITECTURE! -- fix me\n"
- );
- exit( -1 );
- }
-
- i = find(branchInstructions.begin(), branchInstructions.end(), instruction);
- if ( i == branchInstructions.end() )
- return false;
-
- return true;
- }
-
- bool TargetBase::isBranchLine(
- const char* const line
- )
- {
- #define WARNING \
- "WARNING: TargetBase::isBranchLine - (%d) " \
- "Unable to find instruction in: %s\n"
- const char *ch;
- char instruction[120];
- int result;
-
-
- ch = &(line[0]);
-
- // Increment to the first tab in the line
- while ((*ch != '\t') && (*ch != '\0')) {
- ch++;
- }
- if (*ch != '\t') {
- fprintf( stderr, WARNING, 1, line );
- return false;
- }
- ch++;
-
- // Increment to the second tab in the line
- while ((*ch != '\t') && (*ch != '\0'))
- ch++;
- if (*ch != '\t') {
- fprintf( stderr, WARNING, 2, line) ;
- return false;
- }
- ch++;
-
- // Grab the instruction which is the next word in the buffer
- // after the second tab.
- result = sscanf( ch, "%s", instruction );
- if (result != 1) {
- fprintf( stderr, WARNING, 3, line );
- return false;
- }
-
- return isBranch( instruction );
- }
-
- uint8_t TargetBase::qemuTakenBit(void)
- {
- return TRACE_OP_BR0;
- }
-
- uint8_t TargetBase::qemuNotTakenBit(void)
- {
- return TRACE_OP_BR1;
- }
-
-}