LLVM 22.0.0git
llvm::UnwindOpcodeAssembler Class Reference

#include "Target/ARM/MCTargetDesc/ARMUnwindOpAsm.h"

Public Member Functions

 UnwindOpcodeAssembler ()
void Reset ()
 Reset the unwind opcode assembler.
void setPersonality (const MCSymbol *Per)
 Set the personality.
void EmitRegSave (uint32_t RegSave)
 Emit unwind opcodes for .save directives.
void EmitVFPRegSave (uint32_t VFPRegSave)
 Emit unwind opcodes for .vsave directives.
void EmitSetSP (uint16_t Reg)
 Emit unwind opcodes to copy address from source register to $sp.
void EmitSPOffset (int64_t Offset)
 Emit unwind opcodes to add $sp with an offset.
void EmitRaw (const SmallVectorImpl< uint8_t > &Opcodes)
 Emit unwind raw opcodes.
void Finalize (unsigned &PersonalityIndex, SmallVectorImpl< uint8_t > &Result)
 Finalize the unwind opcode sequence for emitBytes()

Detailed Description

Definition at line 26 of file ARMUnwindOpAsm.h.

Constructor & Destructor Documentation

◆ UnwindOpcodeAssembler()

llvm::UnwindOpcodeAssembler::UnwindOpcodeAssembler ( )
inline

Definition at line 33 of file ARMUnwindOpAsm.h.

Member Function Documentation

◆ EmitRaw()

void llvm::UnwindOpcodeAssembler::EmitRaw ( const SmallVectorImpl< uint8_t > & Opcodes)
inline

Emit unwind raw opcodes.

Definition at line 63 of file ARMUnwindOpAsm.h.

References llvm::append_range(), and llvm::SmallVectorTemplateCommon< T, typename >::size().

◆ EmitRegSave()

◆ EmitSetSP()

void UnwindOpcodeAssembler::EmitSetSP ( uint16_t Reg)

Emit unwind opcodes to copy address from source register to $sp.

Definition at line 130 of file ARMUnwindOpAsm.cpp.

References llvm::ARM::EHABI::UNWIND_OPCODE_SET_VSP.

◆ EmitSPOffset()

void UnwindOpcodeAssembler::EmitSPOffset ( int64_t Offset)

◆ EmitVFPRegSave()

void UnwindOpcodeAssembler::EmitVFPRegSave ( uint32_t VFPRegSave)

◆ Finalize()

void UnwindOpcodeAssembler::Finalize ( unsigned & PersonalityIndex,
SmallVectorImpl< uint8_t > & Result )

Finalize the unwind opcode sequence for emitBytes()

Definition at line 158 of file ARMUnwindOpAsm.cpp.

References llvm::ARM::EHABI::AEABI_UNWIND_CPP_PR0, llvm::ARM::EHABI::AEABI_UNWIND_CPP_PR1, assert(), llvm::ARM::EHABI::NUM_PERSONALITY_INDEX, and Reset().

◆ Reset()

void llvm::UnwindOpcodeAssembler::Reset ( )
inline

Reset the unwind opcode assembler.

Definition at line 38 of file ARMUnwindOpAsm.h.

Referenced by Finalize().

◆ setPersonality()

void llvm::UnwindOpcodeAssembler::setPersonality ( const MCSymbol * Per)
inline

Set the personality.

Definition at line 46 of file ARMUnwindOpAsm.h.


The documentation for this class was generated from the following files: