remove #ifndef __puma from code using LLVM
Contemporary AspectC++ versions can deal with the LLVM headers very well, and #ifdef __puma stuff in Fail* headers results in unmaintainable #ifdef __puma blocks in other parts of Fail* (e.g., the trace importer). Make sure you're using a 64-bit ac++ when living in a 64-bit userland (the 32-bit version doesn't know about __int128), and be aware that AspectC++ r325 introduced a regression that has not been fixed yet. Change-Id: I5bb759b08995a74b020d44a2b40e9d7a6e18111c
This commit is contained in:
@ -1,4 +1,3 @@
|
|||||||
#ifndef __puma
|
|
||||||
#include "LLVMDisassembler.hpp"
|
#include "LLVMDisassembler.hpp"
|
||||||
|
|
||||||
using namespace fail;
|
using namespace fail;
|
||||||
@ -147,5 +146,3 @@ void LLVMDisassembler::disassemble()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void LLVMDisassembler::StringRefMemoryObject::anchor() {}
|
void LLVMDisassembler::StringRefMemoryObject::anchor() {}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|||||||
@ -1,8 +1,6 @@
|
|||||||
#ifndef __LLVMDISASSEMBLER_HPP__
|
#ifndef __LLVMDISASSEMBLER_HPP__
|
||||||
#define __LLVMDISASSEMBLER_HPP__
|
#define __LLVMDISASSEMBLER_HPP__
|
||||||
|
|
||||||
#ifndef __puma
|
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <map>
|
#include <map>
|
||||||
@ -137,5 +135,4 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif // puma
|
|
||||||
#endif // __LLVMDISASSEMBLER_HPP__
|
#endif // __LLVMDISASSEMBLER_HPP__
|
||||||
|
|||||||
@ -4,7 +4,6 @@
|
|||||||
using namespace fail;
|
using namespace fail;
|
||||||
|
|
||||||
LLVMtoFailBochs::LLVMtoFailBochs() {
|
LLVMtoFailBochs::LLVMtoFailBochs() {
|
||||||
#ifndef __puma
|
|
||||||
/* These magic numbers are taken from the llvm compiler (MC), they
|
/* These magic numbers are taken from the llvm compiler (MC), they
|
||||||
do not appear in any header. They hopefully will never
|
do not appear in any header. They hopefully will never
|
||||||
change */
|
change */
|
||||||
@ -46,5 +45,4 @@ LLVMtoFailBochs::LLVMtoFailBochs() {
|
|||||||
llvm_to_fail_map[54] = reginfo_t(RID_CSP); // ESP
|
llvm_to_fail_map[54] = reginfo_t(RID_CSP); // ESP
|
||||||
llvm_to_fail_map[117] = reginfo_t(RID_CSP, 16, 0); // SP
|
llvm_to_fail_map[117] = reginfo_t(RID_CSP, 16, 0); // SP
|
||||||
llvm_to_fail_map[118] = reginfo_t(RID_CSP, 8, 0); // SPL
|
llvm_to_fail_map[118] = reginfo_t(RID_CSP, 8, 0); // SPL
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,7 +4,6 @@
|
|||||||
using namespace fail;
|
using namespace fail;
|
||||||
|
|
||||||
LLVMtoFailGem5::LLVMtoFailGem5() {
|
LLVMtoFailGem5::LLVMtoFailGem5() {
|
||||||
#ifndef __puma
|
|
||||||
/* These magic numbers are taken from the machine descriptions of
|
/* These magic numbers are taken from the machine descriptions of
|
||||||
LLVM they (hopefully) will not change, since they are not exported
|
LLVM they (hopefully) will not change, since they are not exported
|
||||||
via a header */
|
via a header */
|
||||||
@ -24,5 +23,4 @@ LLVMtoFailGem5::LLVMtoFailGem5() {
|
|||||||
llvm_to_fail_map[105] = reginfo_t(RI_SP);
|
llvm_to_fail_map[105] = reginfo_t(RI_SP);
|
||||||
llvm_to_fail_map[40] = reginfo_t(RI_LR);
|
llvm_to_fail_map[40] = reginfo_t(RI_LR);
|
||||||
llvm_to_fail_map[43] = reginfo_t(RI_IP);
|
llvm_to_fail_map[43] = reginfo_t(RI_IP);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,7 +4,6 @@
|
|||||||
using namespace fail;
|
using namespace fail;
|
||||||
|
|
||||||
const LLVMtoFailTranslator::reginfo_t & LLVMtoFailTranslator::getFailRegisterID(unsigned int regid) {
|
const LLVMtoFailTranslator::reginfo_t & LLVMtoFailTranslator::getFailRegisterID(unsigned int regid) {
|
||||||
#ifndef __puma
|
|
||||||
ltof_map_t::iterator it = llvm_to_fail_map.find(regid);
|
ltof_map_t::iterator it = llvm_to_fail_map.find(regid);
|
||||||
if( it != llvm_to_fail_map.end() ) {// found
|
if( it != llvm_to_fail_map.end() ) {// found
|
||||||
return (*it).second;
|
return (*it).second;
|
||||||
@ -13,7 +12,6 @@ const LLVMtoFailTranslator::reginfo_t & LLVMtoFailTranslator::getFailRegisterID
|
|||||||
//exit(EXIT_FAILURE);
|
//exit(EXIT_FAILURE);
|
||||||
return notfound;
|
return notfound;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
regdata_t LLVMtoFailTranslator::getRegisterContent(ConcreteCPU& cpu, const reginfo_t ®info){
|
regdata_t LLVMtoFailTranslator::getRegisterContent(ConcreteCPU& cpu, const reginfo_t ®info){
|
||||||
|
|||||||
@ -39,11 +39,8 @@ protected:
|
|||||||
|
|
||||||
LLVMtoFailTranslator(){};
|
LLVMtoFailTranslator(){};
|
||||||
|
|
||||||
#ifndef __puma
|
|
||||||
typedef std::map<unsigned int, struct reginfo_t> ltof_map_t;
|
typedef std::map<unsigned int, struct reginfo_t> ltof_map_t;
|
||||||
ltof_map_t llvm_to_fail_map;
|
ltof_map_t llvm_to_fail_map;
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
const reginfo_t & getFailRegisterID(unsigned int regid);
|
const reginfo_t & getFailRegisterID(unsigned int regid);
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
#ifndef __puma
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "InstructionImporter.hpp"
|
#include "InstructionImporter.hpp"
|
||||||
@ -77,6 +76,3 @@ bool InstructionImporter::handle_ip_event(fail::simtime_t curtime, instruction_c
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif // !__puma
|
|
||||||
|
|||||||
@ -3,16 +3,11 @@
|
|||||||
|
|
||||||
#include "Importer.hpp"
|
#include "Importer.hpp"
|
||||||
|
|
||||||
#ifndef __puma
|
|
||||||
#include "util/llvmdisassembler/LLVMDisassembler.hpp"
|
#include "util/llvmdisassembler/LLVMDisassembler.hpp"
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
class InstructionImporter : public Importer {
|
class InstructionImporter : public Importer {
|
||||||
#ifndef __puma
|
|
||||||
llvm::OwningPtr<llvm::object::Binary> binary;
|
llvm::OwningPtr<llvm::object::Binary> binary;
|
||||||
llvm::OwningPtr<fail::LLVMDisassembler> disas;
|
llvm::OwningPtr<fail::LLVMDisassembler> disas;
|
||||||
#endif
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual bool handle_ip_event(fail::simtime_t curtime, instruction_count_t instr,
|
virtual bool handle_ip_event(fail::simtime_t curtime, instruction_count_t instr,
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
#ifndef __puma
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "util/Logger.hpp"
|
#include "util/Logger.hpp"
|
||||||
@ -129,6 +128,3 @@ bool RandomJumpImporter::handle_ip_event(fail::simtime_t curtime, instruction_co
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif // !__puma
|
|
||||||
|
|||||||
@ -5,16 +5,11 @@
|
|||||||
#include "util/CommandLine.hpp"
|
#include "util/CommandLine.hpp"
|
||||||
#include "Importer.hpp"
|
#include "Importer.hpp"
|
||||||
|
|
||||||
#ifndef __puma
|
|
||||||
#include "util/llvmdisassembler/LLVMDisassembler.hpp"
|
#include "util/llvmdisassembler/LLVMDisassembler.hpp"
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
class RandomJumpImporter : public Importer {
|
class RandomJumpImporter : public Importer {
|
||||||
#ifndef __puma
|
|
||||||
llvm::OwningPtr<llvm::object::Binary> binary;
|
llvm::OwningPtr<llvm::object::Binary> binary;
|
||||||
llvm::OwningPtr<fail::LLVMDisassembler> disas;
|
llvm::OwningPtr<fail::LLVMDisassembler> disas;
|
||||||
#endif
|
|
||||||
|
|
||||||
fail::CommandLine::option_handle FROM, TO;
|
fail::CommandLine::option_handle FROM, TO;
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
#ifndef __puma
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include "RegisterImporter.hpp"
|
#include "RegisterImporter.hpp"
|
||||||
@ -168,6 +167,3 @@ bool RegisterImporter::handle_ip_event(fail::simtime_t curtime, instruction_coun
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#endif // !__puma
|
|
||||||
|
|||||||
@ -5,13 +5,10 @@
|
|||||||
#include "util/CommandLine.hpp"
|
#include "util/CommandLine.hpp"
|
||||||
#include "Importer.hpp"
|
#include "Importer.hpp"
|
||||||
|
|
||||||
#ifndef __puma
|
|
||||||
#include "util/llvmdisassembler/LLVMDisassembler.hpp"
|
#include "util/llvmdisassembler/LLVMDisassembler.hpp"
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
class RegisterImporter : public Importer {
|
class RegisterImporter : public Importer {
|
||||||
#ifndef __puma
|
|
||||||
llvm::OwningPtr<llvm::object::Binary> binary;
|
llvm::OwningPtr<llvm::object::Binary> binary;
|
||||||
llvm::OwningPtr<fail::LLVMDisassembler> disas;
|
llvm::OwningPtr<fail::LLVMDisassembler> disas;
|
||||||
|
|
||||||
@ -19,8 +16,6 @@ class RegisterImporter : public Importer {
|
|||||||
const Trace_Event &ev,
|
const Trace_Event &ev,
|
||||||
const fail::LLVMtoFailTranslator::reginfo_t &info,
|
const fail::LLVMtoFailTranslator::reginfo_t &info,
|
||||||
char access_type);
|
char access_type);
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
fail::CommandLine::option_handle NO_GP, FLAGS, IP;
|
fail::CommandLine::option_handle NO_GP, FLAGS, IP;
|
||||||
bool do_gp, do_flags, do_ip;
|
bool do_gp, do_flags, do_ip;
|
||||||
|
|||||||
Reference in New Issue
Block a user