LLVM 22.0.0git
|
#include "llvm/Object/Wasm.h"
Classes | |
struct | ReadContext |
WasmObjectFile::WasmObjectFile | ( | MemoryBufferRef | Object, |
Error & | Err ) |
Definition at line 351 of file WasmObjectFile.cpp.
References llvm::StringRef::bytes_begin(), llvm::object::Binary::getData(), llvm::object::Binary::ID_Wasm, llvm::make_error(), llvm::object::ObjectFile::ObjectFile(), llvm::object::parse_failed, readSection(), readUint32(), llvm::StringRef::size(), llvm::object::WasmObjectFile::ReadContext::Start, llvm::StringRef::substr(), and llvm::wasm::WasmVersion.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 156 of file Wasm.h.
Referenced by getSymbolSize().
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2115 of file WasmObjectFile.cpp.
References llvm::Triple::wasm32, and llvm::Triple::wasm64.
|
overridevirtual |
The number of bytes used to represent an address in this object file format.
Implements llvm::object::ObjectFile.
Definition at line 2109 of file WasmObjectFile.cpp.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 1906 of file WasmObjectFile.cpp.
References llvm_unreachable.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2119 of file WasmObjectFile.cpp.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2113 of file WasmObjectFile.cpp.
const wasm::WasmObjectHeader & WasmObjectFile::getHeader | ( | ) | const |
Definition at line 1796 of file WasmObjectFile.cpp.
|
inline |
|
inline |
Definition at line 161 of file Wasm.h.
Referenced by getSymbolSize().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2058 of file WasmObjectFile.cpp.
References getWasmRelocation(), llvm::wasm::WasmRelocation::Offset, and llvm::Ref.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2063 of file WasmObjectFile.cpp.
References llvm::object::DataRefImpl::a, llvm::object::DataRefImpl::b, llvm::object::DataRefImpl::d, getWasmRelocation(), llvm::wasm::WasmRelocation::Index, llvm::Ref, symbol_end(), llvm::object::ObjectFile::SymbolRef, and llvm::wasm::WasmRelocation::Type.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2073 of file WasmObjectFile.cpp.
References getWasmRelocation(), llvm::Ref, and llvm::wasm::WasmRelocation::Type.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2078 of file WasmObjectFile.cpp.
References llvm::StringRef::begin(), llvm::StringRef::end(), getWasmRelocation(), llvm::Ref, and llvm::wasm::WasmRelocation::Type.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 1996 of file WasmObjectFile.cpp.
References llvm::object::DataRefImpl::a, llvm::object::DataRefImpl::d, isRelocatableObject(), and isSharedObject().
Referenced by getSymbolAddress().
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2021 of file WasmObjectFile.cpp.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2014 of file WasmObjectFile.cpp.
References llvm::object::DataRefImpl::a, llvm::object::WasmSection::Content, and llvm::object::DataRefImpl::d.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2004 of file WasmObjectFile.cpp.
References llvm::object::DataRefImpl::a, and llvm::object::DataRefImpl::d.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 1987 of file WasmObjectFile.cpp.
References llvm::object::DataRefImpl::a, llvm::createStringError(), llvm::object::DataRefImpl::d, llvm::object::invalid_section_index, llvm::object::WasmSection::Name, llvm::wasm::sectionTypeToString(), llvm::object::WasmSection::Type, llvm::wasm::WASM_SEC_CUSTOM, and llvm::wasm::WASM_SEC_LAST_KNOWN.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2008 of file WasmObjectFile.cpp.
References llvm::object::DataRefImpl::a, llvm::object::WasmSection::Content, llvm::object::DataRefImpl::d, and llvm::ArrayRef< T >::size().
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 1846 of file WasmObjectFile.cpp.
References llvm::Expected< T >::get(), getSectionAddress(), getSymbolSection(), llvm::object::ObjectFile::getSymbolValue(), getWasmSymbol(), llvm::Expected< T >::takeError(), llvm::wasm::WASM_SYMBOL_TYPE_FUNCTION, and llvm::wasm::WASM_SYMBOL_TYPE_GLOBAL.
|
overridevirtual |
Reimplemented from llvm::object::ObjectFile.
Definition at line 1901 of file WasmObjectFile.cpp.
References llvm_unreachable.
|
overridevirtual |
Implements llvm::object::SymbolicFile.
Definition at line 1802 of file WasmObjectFile.cpp.
References llvm::dbgs(), getWasmSymbol(), llvm::object::WasmSymbol::isBindingLocal(), llvm::object::WasmSymbol::isBindingWeak(), llvm::object::WasmSymbol::isDefined(), llvm::object::WasmSymbol::isHidden(), llvm::object::WasmSymbol::isTypeFunction(), LLVM_DEBUG, llvm::object::BasicSymbolRef::SF_Executable, llvm::object::BasicSymbolRef::SF_Global, llvm::object::BasicSymbolRef::SF_Hidden, llvm::object::BasicSymbolRef::SF_None, llvm::object::BasicSymbolRef::SF_Undefined, and llvm::object::BasicSymbolRef::SF_Weak.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 1842 of file WasmObjectFile.cpp.
References getWasmSymbol(), llvm::object::WasmSymbol::Info, and llvm::wasm::WasmSymbolInfo::Name.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 1935 of file WasmObjectFile.cpp.
References getWasmSymbol(), llvm::object::WasmSymbol::isUndefined(), llvm::Ref, section_end(), and llvm::object::ObjectFile::SectionRef.
Referenced by getSymbolAddress().
Definition at line 1945 of file WasmObjectFile.cpp.
References getWasmSymbol(), and llvm::object::ObjectFile::SymbolRef.
Definition at line 1969 of file WasmObjectFile.cpp.
References llvm::wasm::WasmSymbolInfo::DataRef, llvm::wasm::WasmSymbolInfo::ElementIndex, functions(), getNumImportedFunctions(), getWasmSymbol(), llvm::object::WasmSymbol::Info, llvm::object::WasmSymbol::isDefined(), llvm::object::WasmSymbol::isTypeData(), llvm::object::WasmSymbol::isTypeFunction(), llvm::object::WasmSymbol::isTypeGlobal(), llvm::wasm::WasmDataReference::Size, and llvm::object::ObjectFile::SymbolRef.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 1912 of file WasmObjectFile.cpp.
References getWasmSymbol(), llvm::object::WasmSymbol::Info, llvm::wasm::WasmSymbolInfo::Kind, llvm_unreachable, llvm::object::SymbolRef::ST_Data, llvm::object::SymbolRef::ST_Debug, llvm::object::SymbolRef::ST_Function, llvm::object::SymbolRef::ST_Other, llvm::wasm::WASM_SYMBOL_TYPE_DATA, llvm::wasm::WASM_SYMBOL_TYPE_FUNCTION, llvm::wasm::WASM_SYMBOL_TYPE_GLOBAL, llvm::wasm::WASM_SYMBOL_TYPE_SECTION, llvm::wasm::WASM_SYMBOL_TYPE_TABLE, and llvm::wasm::WASM_SYMBOL_TYPE_TAG.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 1897 of file WasmObjectFile.cpp.
References getWasmSymbol(), and getWasmSymbolValue().
|
inline |
const wasm::WasmRelocation & WasmObjectFile::getWasmRelocation | ( | const RelocationRef & | Ref | ) | const |
Definition at line 2138 of file WasmObjectFile.cpp.
References getWasmRelocation(), llvm::Ref, and llvm::object::ObjectFile::RelocationRef.
Referenced by getRelocationOffset(), getRelocationSymbol(), getRelocationType(), getRelocationTypeName(), and getWasmRelocation().
const WasmSection & WasmObjectFile::getWasmSection | ( | const SectionRef & | Section | ) | const |
Definition at line 2133 of file WasmObjectFile.cpp.
References getWasmSection(), and llvm::object::ObjectFile::SectionRef.
Referenced by getWasmSection(), isSectionData(), isSectionText(), and section_rel_end().
const WasmSymbol & WasmObjectFile::getWasmSymbol | ( | const DataRefImpl & | Symb | ) | const |
Definition at line 1834 of file WasmObjectFile.cpp.
References llvm::object::DataRefImpl::b, and llvm::object::DataRefImpl::d.
Referenced by getSymbolAddress(), getSymbolFlags(), getSymbolName(), getSymbolSection(), getSymbolSectionId(), getSymbolSize(), getSymbolType(), getSymbolValueImpl(), and getWasmSymbol().
const WasmSymbol & WasmObjectFile::getWasmSymbol | ( | const SymbolRef & | Symbol | ) | const |
Definition at line 1838 of file WasmObjectFile.cpp.
References llvm::object::BasicSymbolRef::getRawDataRefImpl(), getWasmSymbol(), and llvm::object::ObjectFile::SymbolRef.
uint64_t WasmObjectFile::getWasmSymbolValue | ( | const WasmSymbol & | Sym | ) | const |
Definition at line 1867 of file WasmObjectFile.cpp.
References llvm::object::WasmSegment::Data, llvm::wasm::WasmSymbolInfo::DataRef, llvm::wasm::WasmSymbolInfo::ElementIndex, llvm::wasm::WasmInitExpr::Extended, llvm::object::WasmSymbol::Info, llvm::wasm::WasmInitExpr::Inst, llvm::wasm::WasmInitExprMVP::Int32, llvm::wasm::WasmInitExprMVP::Int64, llvm::wasm::WasmSymbolInfo::Kind, llvm_unreachable, llvm::wasm::WasmDataReference::Offset, llvm::wasm::WasmDataSegment::Offset, llvm::wasm::WasmInitExprMVP::Opcode, llvm::wasm::WasmDataReference::Segment, llvm::wasm::WasmInitExprMVP::Value, llvm::wasm::WASM_OPCODE_GLOBAL_GET, llvm::wasm::WASM_OPCODE_I32_CONST, llvm::wasm::WASM_OPCODE_I64_CONST, llvm::wasm::WASM_SYMBOL_TYPE_DATA, llvm::wasm::WASM_SYMBOL_TYPE_FUNCTION, llvm::wasm::WASM_SYMBOL_TYPE_GLOBAL, llvm::wasm::WASM_SYMBOL_TYPE_SECTION, llvm::wasm::WASM_SYMBOL_TYPE_TABLE, and llvm::wasm::WASM_SYMBOL_TYPE_TAG.
Referenced by getSymbolValueImpl().
|
inline |
|
inline |
|
inline |
|
inlineoverridevirtual |
Implements llvm::object::SymbolicFile.
|
overridevirtual |
True if this is a relocatable object (.o/.obj).
Implements llvm::object::ObjectFile.
Definition at line 2123 of file WasmObjectFile.cpp.
Referenced by getSectionAddress().
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2037 of file WasmObjectFile.cpp.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2025 of file WasmObjectFile.cpp.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2033 of file WasmObjectFile.cpp.
References getWasmSection(), llvm::object::WasmSection::Type, and llvm::wasm::WASM_SEC_DATA.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2029 of file WasmObjectFile.cpp.
References getWasmSection(), llvm::object::WasmSection::Type, and llvm::wasm::WASM_SEC_CODE.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2039 of file WasmObjectFile.cpp.
bool WasmObjectFile::isSharedObject | ( | ) | const |
Definition at line 2125 of file WasmObjectFile.cpp.
Referenced by getSectionAddress().
|
inline |
|
inline |
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2056 of file WasmObjectFile.cpp.
References llvm::object::DataRefImpl::b, and llvm::object::DataRefImpl::d.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 1985 of file WasmObjectFile.cpp.
References llvm::object::DataRefImpl::a, and llvm::object::DataRefImpl::d.
|
overridevirtual |
Implements llvm::object::SymbolicFile.
Definition at line 1800 of file WasmObjectFile.cpp.
References llvm::object::DataRefImpl::b, and llvm::object::DataRefImpl::d.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2097 of file WasmObjectFile.cpp.
References llvm::Ref, and llvm::object::ObjectFile::SectionRef.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2103 of file WasmObjectFile.cpp.
References llvm::Ref, and llvm::object::ObjectFile::SectionRef.
Referenced by getSymbolSection().
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2041 of file WasmObjectFile.cpp.
References llvm::object::DataRefImpl::a, llvm::object::DataRefImpl::b, llvm::object::DataRefImpl::d, llvm::Ref, and llvm::object::ObjectFile::RelocationRef.
|
overridevirtual |
Implements llvm::object::ObjectFile.
Definition at line 2048 of file WasmObjectFile.cpp.
References llvm::object::DataRefImpl::a, llvm::object::DataRefImpl::b, llvm::object::DataRefImpl::d, getWasmSection(), llvm::Ref, llvm::object::ObjectFile::RelocationRef, and llvm::object::WasmSection::Relocations.
|
inline |
|
overridevirtual |
Implements llvm::object::SymbolicFile.
Definition at line 1820 of file WasmObjectFile.cpp.
References llvm::Ref.
|
overridevirtual |
Implements llvm::object::SymbolicFile.
Definition at line 1827 of file WasmObjectFile.cpp.
References llvm::Ref.
Referenced by getRelocationSymbol().
|
inline |
|
inline |
|
inline |