9#ifndef LLDB_SOURCE_PLUGINS_OBJECTFILE_WASM_WASMADDRESS_H
10#define LLDB_SOURCE_PLUGINS_OBJECTFILE_WASM_WASMADDRESS_H
43 "a Wasm address has to account for all 64 bits");
50 return ((uint64_t(1) <<
bits) - 1) << shift;
82static_assert(
sizeof(wasm_addr_t) == 8,
"");
static constexpr uint32_t kWasmModuleIDShift
static constexpr uint64_t MakeFieldMask(uint32_t bits, uint32_t shift)
static constexpr uint32_t kWasmModuleIDBits
static constexpr uint64_t kWasmAddressTypeMask
static constexpr uint32_t kWasmAddressTypeBits
static constexpr uint32_t kWasmOffsetBits
Widths of the fields a 64-bit address is made of, from the low bits up.
WasmAddressType
Each WebAssembly module has separate address spaces for Code and Memory.
static constexpr uint64_t kWasmModuleIDMask
static constexpr uint32_t kWasmAddressTypeShift
static constexpr uint64_t kWasmOffsetMask
A class that represents a running process on the host machine.
static uint32_t bits(const uint32_t val, const uint32_t msbit, const uint32_t lsbit)
uint32_t GetModuleID() const
wasm_addr_t(WasmAddressType type, uint32_t module_id, uint32_t offset)
wasm_addr_t(lldb::addr_t addr)
uint32_t GetOffset() const
WasmAddressType GetType() const