summaryrefslogtreecommitdiff
path: root/covoar/Target_i386.cc
diff options
context:
space:
mode:
Diffstat (limited to 'covoar/Target_i386.cc')
-rw-r--r--covoar/Target_i386.cc111
1 files changed, 0 insertions, 111 deletions
diff --git a/covoar/Target_i386.cc b/covoar/Target_i386.cc
deleted file mode 100644
index 0f82f18..0000000
--- a/covoar/Target_i386.cc
+++ /dev/null
@@ -1,111 +0,0 @@
-/*! @file Target_i386.cc
- * @brief Target_i386 Implementation
- *
- * This file contains the implementation of the base class for
- * functions supporting target unique functionallity.
- */
-
-#include "Target_i386.h"
-#include "qemu-traces.h"
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-namespace Target {
-
- Target_i386::Target_i386( std::string targetName ):
- TargetBase( targetName )
- {
- branchInstructions.push_back("ja");
- branchInstructions.push_back("jb");
- branchInstructions.push_back("jc");
- branchInstructions.push_back("je");
- branchInstructions.push_back("jg");
- branchInstructions.push_back("jl");
- branchInstructions.push_back("jo");
- branchInstructions.push_back("jp");
- branchInstructions.push_back("js");
- branchInstructions.push_back("jz");
- branchInstructions.push_back("jae");
- branchInstructions.push_back("jbe");
- branchInstructions.push_back("jge");
- branchInstructions.push_back("jle");
- branchInstructions.push_back("jne");
- branchInstructions.push_back("jna");
- branchInstructions.push_back("jnb");
- branchInstructions.push_back("jnc");
- branchInstructions.push_back("jne");
- branchInstructions.push_back("jng");
- branchInstructions.push_back("jnl");
- branchInstructions.push_back("jno");
- branchInstructions.push_back("jnp");
- branchInstructions.push_back("jns");
- branchInstructions.push_back("jnz");
- branchInstructions.push_back("jpe");
- branchInstructions.push_back("jpo");
- branchInstructions.push_back("jnbe");
- branchInstructions.push_back("jnae");
- branchInstructions.push_back("jnle");
- branchInstructions.push_back("jnge");
-
- branchInstructions.sort();
-
- }
-
- Target_i386::~Target_i386()
- {
- }
-
- bool Target_i386::isNopLine(
- const char* const line,
- int& size
- )
- {
- if (!strcmp( &line[strlen(line)-3], "nop")) {
- size = 1;
- return true;
- }
-
- // i386 has some two and three byte nops
- if (!strncmp( &line[strlen(line)-14], "xchg %ax,%ax", 14)) {
- size = 2;
- return true;
- }
- if (!strncmp( &line[strlen(line)-16], "xor %eax,%eax", 16)) {
- size = 2;
- return true;
- }
- if (!strncmp( &line[strlen(line)-16], "xor %ebx,%ebx", 16)) {
- size = 2;
- return true;
- }
- if (!strncmp( &line[strlen(line)-16], "xor %esi,%esi", 16)) {
- size = 2;
- return true;
- }
- if (!strncmp( &line[strlen(line)-21], "lea 0x0(%esi),%esi", 21)) {
- size = 3;
- return true;
- }
-
- return false;
- }
-
- uint8_t Target_i386::qemuTakenBit(void)
- {
- return TRACE_OP_BR1;
- }
-
- uint8_t Target_i386::qemuNotTakenBit(void)
- {
- return TRACE_OP_BR0;
- }
-
- TargetBase *Target_i386_Constructor(
- std::string targetName
- )
- {
- return new Target_i386( targetName );
- }
-
-}