mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-23 17:24:48 +00:00
Produce the EH_frame# symbols if needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130378 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -494,9 +494,10 @@ static const MachineLocation TranslateMachineLocation(
|
|||||||
namespace {
|
namespace {
|
||||||
class FrameEmitterImpl {
|
class FrameEmitterImpl {
|
||||||
int CFAOffset;
|
int CFAOffset;
|
||||||
|
int CIENum;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
FrameEmitterImpl() : CFAOffset(0) {
|
FrameEmitterImpl() : CFAOffset(0), CIENum(0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const MCSymbol &EmitCIE(MCStreamer &streamer,
|
const MCSymbol &EmitCIE(MCStreamer &streamer,
|
||||||
@ -623,7 +624,15 @@ const MCSymbol &FrameEmitterImpl::EmitCIE(MCStreamer &streamer,
|
|||||||
const TargetAsmInfo &asmInfo = context.getTargetAsmInfo();
|
const TargetAsmInfo &asmInfo = context.getTargetAsmInfo();
|
||||||
const MCSection §ion = *asmInfo.getEHFrameSection();
|
const MCSection §ion = *asmInfo.getEHFrameSection();
|
||||||
streamer.SwitchSection(§ion);
|
streamer.SwitchSection(§ion);
|
||||||
MCSymbol *sectionStart = context.CreateTempSymbol();
|
|
||||||
|
MCSymbol *sectionStart;
|
||||||
|
if (asmInfo.isFunctionEHFrameSymbolPrivate())
|
||||||
|
sectionStart = context.CreateTempSymbol();
|
||||||
|
else
|
||||||
|
sectionStart = context.GetOrCreateSymbol(Twine("EH_frame") + Twine(CIENum));
|
||||||
|
|
||||||
|
CIENum++;
|
||||||
|
|
||||||
MCSymbol *sectionEnd = streamer.getContext().CreateTempSymbol();
|
MCSymbol *sectionEnd = streamer.getContext().CreateTempSymbol();
|
||||||
|
|
||||||
// Length
|
// Length
|
||||||
|
Reference in New Issue
Block a user