LLVM
22.0.0git
include
llvm
MC
MCSFrame.h
Go to the documentation of this file.
1
//===- MCSFrame.h - Machine Code SFrame support ---------------------------===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// This file contains the declaration of MCSFrameEmitter to support emitting
10
// sframe unwinding info from .cfi_* directives. It relies on FDEs and CIEs
11
// created for Dwarf frame info, but emits that info in a different format.
12
//
13
// See https://sourceware.org/binutils/docs-2.41/sframe-spec.html
14
//===----------------------------------------------------------------------===//
15
16
#ifndef LLVM_MC_MCSFRAME_H
17
#define LLVM_MC_MCSFRAME_H
18
19
#include "
llvm/ADT/SmallVector.h
"
20
#include <cstdint>
21
22
namespace
llvm
{
23
24
class
MCContext
;
25
class
MCObjectStreamer
;
26
class
MCFragment
;
27
28
class
MCSFrameEmitter
{
29
public
:
30
// Emit the sframe section.
31
//
32
// \param Streamer - Emit into this stream.
33
static
void
emit
(
MCObjectStreamer
&Streamer);
34
35
// Encode the FRE's function offset.
36
//
37
// \param C - Context.
38
// \param Offset - Offset to encode.
39
// \param Out - Destination of the encoding.
40
// \param FDEFrag - Frag that specifies the encoding format.
41
static
void
encodeFuncOffset
(
MCContext
&
C
,
uint64_t
Offset
,
42
SmallVectorImpl<char>
&Out,
MCFragment
*FDEFrag);
43
};
44
45
}
// end namespace llvm
46
#endif
// LLVM_MC_MCSFRAME_H
SmallVector.h
This file defines the SmallVector class.
llvm::MCContext
Context object for machine code objects.
Definition
MCContext.h:83
llvm::MCFragment
Definition
MCSection.h:45
llvm::MCObjectStreamer
Streaming object file generation interface.
Definition
MCObjectStreamer.h:39
llvm::MCSFrameEmitter
Definition
MCSFrame.h:28
llvm::MCSFrameEmitter::emit
static void emit(MCObjectStreamer &Streamer)
Definition
MCSFrame.cpp:421
llvm::MCSFrameEmitter::encodeFuncOffset
static void encodeFuncOffset(MCContext &C, uint64_t Offset, SmallVectorImpl< char > &Out, MCFragment *FDEFrag)
Definition
MCSFrame.cpp:451
llvm::SmallVectorImpl
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
Definition
SmallVector.h:574
uint64_t
llvm::CallingConv::C
@ C
The default llvm calling convention, compatible with C.
Definition
CallingConv.h:34
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition
AddressRanges.h:18
llvm::Offset
@ Offset
Definition
DWP.cpp:477
Generated on
for LLVM by
1.14.0