LLVM API Documentation
#include <ARMUnwindOpAsm.h>
Public Member Functions | |
UnwindOpcodeAssembler () | |
void | Reset () |
Reset the unwind opcode assembler. More... | |
void | setPersonality (const MCSymbol *Per) |
Set the personality index. More... | |
void | EmitRegSave (uint32_t RegSave) |
Emit unwind opcodes for .save directives. More... | |
void | EmitVFPRegSave (uint32_t VFPRegSave) |
Emit unwind opcodes for .vsave directives. More... | |
void | EmitSetSP (uint16_t Reg) |
Emit unwind opcodes to copy address from source register to $sp. More... | |
void | EmitSPOffset (int64_t Offset) |
Emit unwind opcodes to add $sp with an offset. More... | |
void | Finalize (unsigned &PersonalityIndex, SmallVectorImpl< uint8_t > &Result) |
Finalize the unwind opcode sequence for EmitBytes() More... | |
Definition at line 28 of file ARMUnwindOpAsm.h.
|
inline |
Definition at line 35 of file ARMUnwindOpAsm.h.
References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
void UnwindOpcodeAssembler::EmitRegSave | ( | uint32_t | RegSave | ) |
Emit unwind opcodes for .save directives.
Definition at line 65 of file ARMUnwindOpAsm.cpp.
References llvm::tgtok::Bit, llvm::UNWIND_OPCODE_POP_REG_MASK, llvm::UNWIND_OPCODE_POP_REG_MASK_R4, llvm::UNWIND_OPCODE_POP_REG_RANGE_R4, and llvm::UNWIND_OPCODE_POP_REG_RANGE_R4_R14.
void UnwindOpcodeAssembler::EmitSetSP | ( | uint16_t | Reg | ) |
Emit unwind opcodes to copy address from source register to $sp.
Definition at line 155 of file ARMUnwindOpAsm.cpp.
References llvm::UNWIND_OPCODE_SET_VSP.
void UnwindOpcodeAssembler::EmitSPOffset | ( | int64_t | Offset | ) |
Emit unwind opcodes to add $sp with an offset.
Definition at line 160 of file ARMUnwindOpAsm.cpp.
References llvm::encodeULEB128(), llvm::UNWIND_OPCODE_DEC_VSP, llvm::UNWIND_OPCODE_INC_VSP, and llvm::UNWIND_OPCODE_INC_VSP_ULEB128.
void UnwindOpcodeAssembler::EmitVFPRegSave | ( | uint32_t | VFPRegSave | ) |
Emit unwind opcodes for .vsave directives.
Definition at line 107 of file ARMUnwindOpAsm.cpp.
References llvm::tgtok::Bit, llvm::UNWIND_OPCODE_POP_VFP_REG_RANGE_FSTMFDD, and llvm::UNWIND_OPCODE_POP_VFP_REG_RANGE_FSTMFDD_D16.
void UnwindOpcodeAssembler::Finalize | ( | unsigned & | PersonalityIndex, |
SmallVectorImpl< uint8_t > & | Result | ||
) |
Finalize the unwind opcode sequence for EmitBytes()
Definition at line 182 of file ARMUnwindOpAsm.cpp.
References llvm::AEABI_UNWIND_CPP_PR0, llvm::AEABI_UNWIND_CPP_PR1, llvm::sys::path::end(), llvm::NUM_PERSONALITY_INDEX, Reset(), llvm::SmallVectorImpl< T >::resize(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
|
inline |
Reset the unwind opcode assembler.
Definition at line 41 of file ARMUnwindOpAsm.h.
References llvm::SmallVectorImpl< T >::clear(), and llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
Referenced by Finalize().
|
inline |
Set the personality index.
Definition at line 49 of file ARMUnwindOpAsm.h.