Internal LLVM register IDs can and did change between LLVM versions. These magic integers are replaced by iterating over all LLVM registers and mapping them to FAIL* registers by name. As this iteration requires a LLVM object created from a binary, a static convenience function is added to LLVMtoFailTranslator which creates a translator given the binary filename. Building this functionality inside libfail-llvmdisassembler prevents experiments from needing to add LLVM includes and library definitions. Change-Id: I27927f40d5cb6d9a22bb2caf21ca2450f6bcb0b8
22 lines
320 B
C++
22 lines
320 B
C++
#ifndef __LLVMTOFAILGEM5_HPP_
|
|
#define __LLVMTOFAILGEM5_HPP_
|
|
|
|
#include "LLVMtoFailTranslator.hpp"
|
|
#include <stdlib.h>
|
|
#include <iostream>
|
|
|
|
namespace fail {
|
|
|
|
class LLVMDisassembler;
|
|
|
|
class LLVMtoFailGem5 : public LLVMtoFailTranslator {
|
|
|
|
public:
|
|
|
|
LLVMtoFailGem5(LLVMDisassembler *disas);
|
|
|
|
};
|
|
} // end of namespace
|
|
|
|
#endif
|