14#ifndef LLVM_LIB_TARGET_ARM_MCTARGETDESC_ARMUNWINDOPASM_H
15#define LLVM_LIB_TARGET_ARM_MCTARGETDESC_ARMUNWINDOPASM_H
30 bool HasPersonality =
false;
34 OpBegins.push_back(0);
41 OpBegins.push_back(0);
42 HasPersonality =
false;
47 HasPersonality =
true;
65 OpBegins.push_back(OpBegins.back() + Opcodes.
size());
69 void Finalize(
unsigned &PersonalityIndex,
73 void EmitInt8(
unsigned Opcode) {
74 Ops.push_back(Opcode & 0xff);
78 void EmitInt16(
unsigned Opcode) {
79 Ops.push_back((Opcode >> 8) & 0xff);
80 Ops.push_back(Opcode & 0xff);
84 void emitBytes(
const uint8_t *Opcode,
size_t Size) {
85 Ops.insert(Ops.end(), Opcode, Opcode +
Size);
86 OpBegins.push_back(OpBegins.back() +
Size);
const AbstractManglingParser< Derived, Alloc >::OperatorInfo AbstractManglingParser< Derived, Alloc >::Ops[]
This file defines the SmallVector class.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
void push_back(const T &Elt)
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
void EmitSetSP(uint16_t Reg)
Emit unwind opcodes to copy address from source register to $sp.
void EmitVFPRegSave(uint32_t VFPRegSave)
Emit unwind opcodes for .vsave directives.
void EmitRegSave(uint32_t RegSave)
Emit unwind opcodes for .save directives.
void setPersonality(const MCSymbol *Per)
Set the personality.
void EmitSPOffset(int64_t Offset)
Emit unwind opcodes to add $sp with an offset.
void Reset()
Reset the unwind opcode assembler.
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()
This is an optimization pass for GlobalISel generic memory operations.
void append_range(Container &C, Range &&R)
Wrapper function to append range R to container C.