#include <abi.h>
◆ Abi()
retdec::bin2llvmir::Abi::Abi |
( |
llvm::Module * |
m, |
|
|
Config * |
c |
|
) |
| |
◆ ~Abi()
virtual retdec::bin2llvmir::Abi::~Abi |
( |
| ) |
|
|
virtualdefault |
◆ addRegister()
void retdec::bin2llvmir::Abi::addRegister |
( |
uint32_t |
id, |
|
|
llvm::GlobalVariable * |
reg |
|
) |
| |
◆ getCallingConvention()
◆ getConfig()
Config * retdec::bin2llvmir::Abi::getConfig |
( |
| ) |
const |
◆ getDefaultCallingConvention()
◆ getDefaultCallingConventionID()
◆ getDefaultFPType()
llvm::Type * retdec::bin2llvmir::Abi::getDefaultFPType |
( |
llvm::Module * |
m | ) |
|
|
static |
◆ getDefaultPointerType() [1/2]
llvm::PointerType * retdec::bin2llvmir::Abi::getDefaultPointerType |
( |
| ) |
const |
◆ getDefaultPointerType() [2/2]
llvm::PointerType * retdec::bin2llvmir::Abi::getDefaultPointerType |
( |
llvm::Module * |
m | ) |
|
|
static |
◆ getDefaultType() [1/2]
llvm::IntegerType * retdec::bin2llvmir::Abi::getDefaultType |
( |
| ) |
const |
◆ getDefaultType() [2/2]
llvm::IntegerType * retdec::bin2llvmir::Abi::getDefaultType |
( |
llvm::Module * |
m | ) |
|
|
static |
◆ getRegister()
llvm::GlobalVariable * retdec::bin2llvmir::Abi::getRegister |
( |
uint32_t |
r, |
|
|
bool |
use = true |
|
) |
| const |
- Parameters
-
r | Register ID to get. Warning! We are using Capstone register IDs which overlaps. E.g. MIPS_REG_0 has the same ID as X86_REG_AL. |
use | Should the register be really got. This solves the problem with overlapping IDs when used like this: Abi::getRegister(MIPS_REG_GP, Abi::isMips()) |
◆ getRegisterByteSize()
std::size_t retdec::bin2llvmir::Abi::getRegisterByteSize |
( |
uint32_t |
r | ) |
const |
◆ getRegisterId()
uint32_t retdec::bin2llvmir::Abi::getRegisterId |
( |
const llvm::Value * |
r | ) |
const |
◆ getRegisters()
const std::vector< llvm::GlobalVariable * > & retdec::bin2llvmir::Abi::getRegisters |
( |
| ) |
const |
◆ getStackPointerRegister()
llvm::GlobalVariable * retdec::bin2llvmir::Abi::getStackPointerRegister |
( |
| ) |
const |
◆ getSyscallArgumentRegister()
llvm::GlobalVariable * retdec::bin2llvmir::Abi::getSyscallArgumentRegister |
( |
unsigned |
n | ) |
|
◆ getSyscallIdRegister()
llvm::GlobalVariable * retdec::bin2llvmir::Abi::getSyscallIdRegister |
( |
| ) |
|
◆ getSyscallReturnRegister()
llvm::GlobalVariable * retdec::bin2llvmir::Abi::getSyscallReturnRegister |
( |
| ) |
|
◆ getTypeBitSize() [1/2]
std::size_t retdec::bin2llvmir::Abi::getTypeBitSize |
( |
llvm::Module * |
m, |
|
|
llvm::Type * |
t |
|
) |
| |
|
static |
◆ getTypeBitSize() [2/2]
std::size_t retdec::bin2llvmir::Abi::getTypeBitSize |
( |
llvm::Type * |
t | ) |
const |
|
virtual |
◆ getTypeByteSize() [1/2]
std::size_t retdec::bin2llvmir::Abi::getTypeByteSize |
( |
llvm::Module * |
m, |
|
|
llvm::Type * |
t |
|
) |
| |
|
static |
◆ getTypeByteSize() [2/2]
std::size_t retdec::bin2llvmir::Abi::getTypeByteSize |
( |
llvm::Type * |
t | ) |
const |
|
virtual |
◆ getWordSize() [1/2]
std::size_t retdec::bin2llvmir::Abi::getWordSize |
( |
| ) |
const |
◆ getWordSize() [2/2]
std::size_t retdec::bin2llvmir::Abi::getWordSize |
( |
llvm::Module * |
m | ) |
|
|
static |
◆ getZeroRegister()
llvm::GlobalVariable * retdec::bin2llvmir::Abi::getZeroRegister |
( |
| ) |
const |
◆ isArm()
bool retdec::bin2llvmir::Abi::isArm |
( |
| ) |
const |
◆ isArm64()
bool retdec::bin2llvmir::Abi::isArm64 |
( |
| ) |
const |
◆ isFlagRegister()
bool retdec::bin2llvmir::Abi::isFlagRegister |
( |
const llvm::Value * |
val | ) |
|
◆ isGeneralPurposeRegister()
virtual bool retdec::bin2llvmir::Abi::isGeneralPurposeRegister |
( |
const llvm::Value * |
val | ) |
const |
|
pure virtual |
◆ isMips()
bool retdec::bin2llvmir::Abi::isMips |
( |
| ) |
const |
◆ isMips64()
bool retdec::bin2llvmir::Abi::isMips64 |
( |
| ) |
const |
◆ isNopInstruction() [1/2]
◆ isNopInstruction() [2/2]
virtual bool retdec::bin2llvmir::Abi::isNopInstruction |
( |
cs_insn * |
insn | ) |
|
|
pure virtual |
◆ isPic32()
bool retdec::bin2llvmir::Abi::isPic32 |
( |
| ) |
const |
◆ isPowerPC()
bool retdec::bin2llvmir::Abi::isPowerPC |
( |
| ) |
const |
◆ isPowerPC64()
bool retdec::bin2llvmir::Abi::isPowerPC64 |
( |
| ) |
const |
◆ isRegister() [1/2]
bool retdec::bin2llvmir::Abi::isRegister |
( |
const llvm::Value * |
val | ) |
const |
◆ isRegister() [2/2]
bool retdec::bin2llvmir::Abi::isRegister |
( |
const llvm::Value * |
val, |
|
|
uint32_t |
r |
|
) |
| const |
◆ isStackPointerRegister()
bool retdec::bin2llvmir::Abi::isStackPointerRegister |
( |
const llvm::Value * |
val | ) |
const |
◆ isStackVariable()
bool retdec::bin2llvmir::Abi::isStackVariable |
( |
const llvm::Value * |
val | ) |
const |
◆ isX64()
bool retdec::bin2llvmir::Abi::isX64 |
( |
| ) |
const |
◆ isX86()
bool retdec::bin2llvmir::Abi::isX86 |
( |
| ) |
const |
◆ isZeroRegister()
bool retdec::bin2llvmir::Abi::isZeroRegister |
( |
const llvm::Value * |
val | ) |
|
◆ supportsCallingConvention()
◆ _config
Config* retdec::bin2llvmir::Abi::_config = nullptr |
|
protected |
◆ _defcc
◆ _id2cc
◆ _id2regs
std::vector<llvm::GlobalVariable*> retdec::bin2llvmir::Abi::_id2regs |
|
protected |
Fast "capstone id -> LLVM value" search.
◆ _module
llvm::Module* retdec::bin2llvmir::Abi::_module = nullptr |
|
protected |
◆ _regFunctionReturnId
uint32_t retdec::bin2llvmir::Abi::_regFunctionReturnId = REG_INVALID |
|
protected |
ID of register where function return values are stored.
◆ _regs
std::vector<llvm::GlobalVariable*> retdec::bin2llvmir::Abi::_regs |
|
protected |
Fast iteration over all registers. id2regs
may contain nullptr
values.
◆ _regs2id
std::map<const llvm::Value*, uint32_t> retdec::bin2llvmir::Abi::_regs2id |
|
protected |
Fast "is LLVM value a register?" check. Fast "LLVM value -> capstone id" search.
◆ _regStackPointerId
uint32_t retdec::bin2llvmir::Abi::_regStackPointerId = REG_INVALID |
|
protected |
ID of stack pointer register.
◆ _regSyscallId
uint32_t retdec::bin2llvmir::Abi::_regSyscallId = REG_INVALID |
|
protected |
Register used to pass system call ID.
◆ _regSyscallReturn
uint32_t retdec::bin2llvmir::Abi::_regSyscallReturn = REG_INVALID |
|
protected |
Register used for returning values from system calls.
◆ _regZeroReg
uint32_t retdec::bin2llvmir::Abi::_regZeroReg = REG_INVALID |
|
protected |
Register that is always equal to zero - not every arch have this.
◆ _syscallRegs
std::vector<uint32_t> retdec::bin2llvmir::Abi::_syscallRegs |
|
protected |
Ordered list of registers used in system calls.
◆ DEFAULT_ADDR_SPACE
const unsigned retdec::bin2llvmir::Abi::DEFAULT_ADDR_SPACE = 0 |
|
static |
◆ REG_INVALID
const uint32_t retdec::bin2llvmir::Abi::REG_INVALID = 0 |
|
static |
The documentation for this class was generated from the following files:
- /var/cache/acbs/build/acbs.6bu6osb6/retdec/include/retdec/bin2llvmir/providers/abi/abi.h
- /var/cache/acbs/build/acbs.6bu6osb6/retdec/src/bin2llvmir/providers/abi/abi.cpp