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
23 lines
589 B
C++
23 lines
589 B
C++
#ifndef __INSTRUCTION_IMPORTER_H__
|
|
#define __INSTRUCTION_IMPORTER_H__
|
|
|
|
#include "Importer.hpp"
|
|
|
|
#include "util/llvmdisassembler/LLVMDisassembler.hpp"
|
|
|
|
class InstructionImporter : public Importer {
|
|
llvm::OwningPtr<llvm::object::Binary> binary;
|
|
llvm::OwningPtr<fail::LLVMDisassembler> disas;
|
|
|
|
public:
|
|
virtual bool handle_ip_event(fail::simtime_t curtime, instruction_count_t instr,
|
|
const Trace_Event &ev);
|
|
virtual bool handle_mem_event(fail::simtime_t curtime, instruction_count_t instr,
|
|
const Trace_Event &ev) {
|
|
/* ignore on purpose */
|
|
return true;
|
|
}
|
|
};
|
|
|
|
#endif
|