LLVM
8.0.1
|
MachORebaseEntry encapsulates the current state in the decompression of rebasing opcodes. More...
#include "llvm/Object/MachO.h"
Public Member Functions | |
MachORebaseEntry (Error *Err, const MachOObjectFile *O, ArrayRef< uint8_t > opcodes, bool is64Bit) | |
int32_t | segmentIndex () const |
uint64_t | segmentOffset () const |
StringRef | typeName () const |
StringRef | segmentName () const |
StringRef | sectionName () const |
uint64_t | address () const |
bool | operator== (const MachORebaseEntry &) const |
void | moveNext () |
Friends | |
class | MachOObjectFile |
MachORebaseEntry encapsulates the current state in the decompression of rebasing opcodes.
This allows you to iterate through the compressed table of rebasing using: Error Err; for (const llvm::object::MachORebaseEntry &Entry : Obj->rebaseTable(&Err)) { } if (Err) { report error ...
MachORebaseEntry::MachORebaseEntry | ( | Error * | Err, |
const MachOObjectFile * | O, | ||
ArrayRef< uint8_t > | opcodes, | ||
bool | is64Bit | ||
) |
Definition at line 3034 of file MachOObjectFile.cpp.
References llvm::ArrayRef< T >::begin(), llvm::ArrayRef< T >::end(), and moveNext().
uint64_t MachORebaseEntry::address | ( | ) | const |
Definition at line 3386 of file MachOObjectFile.cpp.
References llvm::object::MachOObjectFile::BindRebaseAddress(), and SegmentOffset().
void MachORebaseEntry::moveNext | ( | ) |
Definition at line 3050 of file MachOObjectFile.cpp.
References llvm::ArrayRef< T >::begin(), llvm::dbgs(), DEBUG_WITH_TYPE, llvm::decodeULEB128(), llvm::ArrayRef< T >::end(), error, llvm::format(), malformedError(), readULEB128(), llvm::MachO::REBASE_IMMEDIATE_MASK, llvm::MachO::REBASE_OPCODE_ADD_ADDR_IMM_SCALED, llvm::MachO::REBASE_OPCODE_ADD_ADDR_ULEB, llvm::MachO::REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB, llvm::MachO::REBASE_OPCODE_DO_REBASE_IMM_TIMES, llvm::MachO::REBASE_OPCODE_DO_REBASE_ULEB_TIMES, llvm::MachO::REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB, llvm::MachO::REBASE_OPCODE_DONE, llvm::MachO::REBASE_OPCODE_MASK, llvm::MachO::REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB, llvm::MachO::REBASE_OPCODE_SET_TYPE_IMM, llvm::MachO::REBASE_TYPE_TEXT_PCREL32, llvm::object::MachOObjectFile::RebaseEntryCheckCountAndSkip(), llvm::object::MachOObjectFile::RebaseEntryCheckSegAndOffset(), SegmentOffset(), and llvm::Twine::utohexstr().
Referenced by MachORebaseEntry().
bool MachORebaseEntry::operator== | ( | const MachORebaseEntry & | Other | ) | const |
Definition at line 3390 of file MachOObjectFile.cpp.
References assert(), and llvm::ArrayRef< T >::data().
StringRef MachORebaseEntry::sectionName | ( | ) | const |
Definition at line 3380 of file MachOObjectFile.cpp.
References llvm::object::MachOObjectFile::BindRebaseSectionName(), and SegmentOffset().
int32_t MachORebaseEntry::segmentIndex | ( | ) | const |
Definition at line 3356 of file MachOObjectFile.cpp.
StringRef MachORebaseEntry::segmentName | ( | ) | const |
Definition at line 3374 of file MachOObjectFile.cpp.
References llvm::object::MachOObjectFile::BindRebaseSegmentName().
uint64_t MachORebaseEntry::segmentOffset | ( | ) | const |
Definition at line 3358 of file MachOObjectFile.cpp.
References SegmentOffset().
StringRef MachORebaseEntry::typeName | ( | ) | const |
Definition at line 3360 of file MachOObjectFile.cpp.
References llvm::MachO::REBASE_TYPE_POINTER, llvm::MachO::REBASE_TYPE_TEXT_ABSOLUTE32, and llvm::MachO::REBASE_TYPE_TEXT_PCREL32.
|
friend |