util: integrate LLVM-based Disassembler
The LLVM Disassembler infrastructure can be used to analyze many kinds of ELF Binaries. For every instruction the used and defined registers is available as well as information about the instruction itself. Change-Id: I9cc89b6c116ceff7b5143a6f179ae31c4e994d2d
This commit is contained in:
28
src/core/util/llvmdisassembler/LLVMtoFailGem5.cpp
Normal file
28
src/core/util/llvmdisassembler/LLVMtoFailGem5.cpp
Normal file
@ -0,0 +1,28 @@
|
||||
#include "LLVMtoFailGem5.hpp"
|
||||
#include "sal/arm/ArmArchitecture.hpp"
|
||||
|
||||
using namespace fail;
|
||||
|
||||
LLVMtoFailGem5::LLVMtoFailGem5() {
|
||||
#ifndef __puma
|
||||
/* These magic numbers are taken from the machine descriptions of
|
||||
LLVM they (hopefully) will not change, since they are not exported
|
||||
via a header */
|
||||
llvm_to_fail_map[60] = reginfo_t(RI_R0);
|
||||
llvm_to_fail_map[61] = reginfo_t(RI_R1);
|
||||
llvm_to_fail_map[62] = reginfo_t(RI_R2);
|
||||
llvm_to_fail_map[63] = reginfo_t(RI_R3);
|
||||
llvm_to_fail_map[64] = reginfo_t(RI_R4);
|
||||
llvm_to_fail_map[65] = reginfo_t(RI_R5);
|
||||
llvm_to_fail_map[66] = reginfo_t(RI_R6);
|
||||
llvm_to_fail_map[67] = reginfo_t(RI_R7);
|
||||
llvm_to_fail_map[68] = reginfo_t(RI_R8);
|
||||
llvm_to_fail_map[69] = reginfo_t(RI_R9);
|
||||
llvm_to_fail_map[70] = reginfo_t(RI_R10);
|
||||
llvm_to_fail_map[71] = reginfo_t(RI_R11);
|
||||
llvm_to_fail_map[72] = reginfo_t(RI_R12);
|
||||
llvm_to_fail_map[105] = reginfo_t(RI_SP);
|
||||
llvm_to_fail_map[40] = reginfo_t(RI_LR);
|
||||
llvm_to_fail_map[43] = reginfo_t(RI_IP);
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user