LIEF: Library to Instrument Executable Formats Version 0.17.0
|
Loading...
Searching...
No Matches
Go to the documentation of this file.
16#ifndef LIEF_PE_RUNTIME_FUNCTION_AARCH64_PACKED_H
17#define LIEF_PE_RUNTIME_FUNCTION_AARCH64_PACKED_H
35 static std::unique_ptr<PackedFunction>
36 parse(Parser& ctx, BinaryStream& strm, uint32_t rva, uint32_t unwind_data);
38 using RuntimeFunctionAArch64::RuntimeFunctionAArch64;
41 PackedFunction&
operator=(
const PackedFunction&) =
default;
44 PackedFunction&
operator=(PackedFunction&&) =
default;
48 std::unique_ptr<ExceptionInfo>
clone()
const override {
49 return std::unique_ptr<PackedFunction>(
new PackedFunction(*
this));
54 static bool classof(
const ExceptionInfo* info) {
55 if (!RuntimeFunctionAArch64::classof(info)) {
58 const auto* aarch64 =
static_cast<const RuntimeFunctionAArch64*
>(info);
59 return aarch64->flag() == PACKED_FLAGS::PACKED ||
60 aarch64->flag() == PACKED_FLAGS::PACKED_FRAGMENT;
67 uint8_t
reg_I()
const {
73 uint8_t
reg_F()
const {
98 PackedFunction&
reg_I(uint8_t value) {
103 PackedFunction&
reg_F(uint8_t value) {
108 PackedFunction&
H(uint8_t value) {
113 PackedFunction&
CR(uint8_t value) {
119 uint8_t frame_size_ = 0;
This class represents a packed AArch64 exception entry.
Definition PackedFunction.hpp:33
static std::unique_ptr< PackedFunction > parse(Parser &ctx, BinaryStream &strm, uint32_t rva, uint32_t unwind_data)
PackedFunction & CR(uint8_t value)
Definition PackedFunction.hpp:113
uint8_t reg_I() const
Number of non-volatile INT registers (x19-x28) saved in the canonical stack location.
Definition PackedFunction.hpp:70
static bool classof(const ExceptionInfo *info)
Definition PackedFunction.hpp:54
PackedFunction & frame_size(uint8_t value)
Definition PackedFunction.hpp:93
std::unique_ptr< ExceptionInfo > clone() const override
Definition PackedFunction.hpp:48
std::string to_string() const override
uint8_t CR() const
Flag indicating whether the function includes extra instructions to set up a frame chain and return l...
Definition PackedFunction.hpp:89
uint8_t reg_F() const
Number of non-volatile FP registers (d8-d15) saved in the canonical stack location.
Definition PackedFunction.hpp:76
PackedFunction(PackedFunction &&)=default
uint8_t H() const
1-bit flag indicating whether the function homes the integer parameter registers (x0-x7) by storing t...
Definition PackedFunction.hpp:83
uint8_t frame_size() const
Size of the allocated stack.
Definition PackedFunction.hpp:64
PackedFunction & reg_I(uint8_t value)
Definition PackedFunction.hpp:98
PackedFunction & operator=(PackedFunction &&)=default
PackedFunction & reg_F(uint8_t value)
Definition PackedFunction.hpp:103
~PackedFunction() override=default
PackedFunction & operator=(const PackedFunction &)=default
PackedFunction(const PackedFunction &)=default
PackedFunction & H(uint8_t value)
Definition PackedFunction.hpp:108
This namespace wraps code related to PE-ARM64 unwinding code.
Definition PackedFunction.hpp:26
Namespace related to the LIEF's PE module.
Definition Abstract/Header.hpp:32
LIEF namespace.
Definition Abstract/Binary.hpp:36
#define LIEF_API
Definition visibility.h:41