///
bool DwarfRequiresFrameSection; // Defaults to true.
- /// FDEEncodingRequiresSData4 - If set, the FDE Encoding in the EH section
- /// includes DW_EH_PE_sdata4.
- ///
- bool FDEEncodingRequiresSData4; // Defaults to true
-
/// NonLocalEHFrameLabel - If set, the EH_frame label needs to be non-local.
///
bool NonLocalEHFrameLabel; // Defaults to false.
- /// Force32BitFDEReference - Force the FDE initial location and address
- /// range to be 32-bit sized.
- ///
- bool Force32BitFDEReference; // Defaults to true.
-
/// GlobalEHDirective - This is the directive used to make exception frame
/// tables globally visible.
///
bool doesDwarfRequireFrameSection() const {
return DwarfRequiresFrameSection;
}
- bool doesFDEEncodingRequireSData4() const {
- return FDEEncodingRequiresSData4;
- }
bool doesRequireNonLocalEHFrameLabel() const {
return NonLocalEHFrameLabel;
}
- bool doesRequire32BitFDEReference() const {
- return Force32BitFDEReference;
- }
const char *getGlobalEHDirective() const {
return GlobalEHDirective;
}
Asm->EmitInt8(DW_EH_PE_pcrel | DW_EH_PE_sdata4);
Asm->EOL("LSDA Encoding (pcrel sdata4)");
- if (TAI->doesFDEEncodingRequireSData4()) {
- Asm->EmitInt8(DW_EH_PE_pcrel | DW_EH_PE_sdata4);
- Asm->EOL("FDE Encoding (pcrel sdata4)");
- } else {
- Asm->EmitInt8(DW_EH_PE_pcrel);
- Asm->EOL("FDE Encoding (pcrel)");
- }
+ Asm->EmitInt8(DW_EH_PE_pcrel | DW_EH_PE_sdata4);
+ Asm->EOL("FDE Encoding (pcrel sdata4)");
} else {
Asm->EmitULEB128Bytes(1);
Asm->EOL("Augmentation Size");
- if (TAI->doesFDEEncodingRequireSData4()) {
- Asm->EmitInt8(DW_EH_PE_pcrel | DW_EH_PE_sdata4);
- Asm->EOL("FDE Encoding (pcrel sdata4)");
- } else {
- Asm->EmitInt8(DW_EH_PE_pcrel);
- Asm->EOL("FDE Encoding (pcrel)");
- }
+ Asm->EmitInt8(DW_EH_PE_pcrel | DW_EH_PE_sdata4);
+ Asm->EOL("FDE Encoding (pcrel sdata4)");
}
// Indicate locations of general callee saved registers in frame.
Asm->EOL("FDE CIE offset");
- EmitReference("eh_func_begin", EHFrameInfo.Number, true,
- TAI->doesRequire32BitFDEReference());
+ EmitReference("eh_func_begin", EHFrameInfo.Number, true);
Asm->EOL("FDE initial location");
EmitDifference("eh_func_end", EHFrameInfo.Number,
- "eh_func_begin", EHFrameInfo.Number,
- TAI->doesRequire32BitFDEReference());
+ "eh_func_begin", EHFrameInfo.Number);
Asm->EOL("FDE address range");
// If there is a personality and landing pads then point to the language
SupportsDebugInformation = false;
SupportsExceptionHandling = false;
DwarfRequiresFrameSection = true;
- FDEEncodingRequiresSData4 = true;
NonLocalEHFrameLabel = false;
- Force32BitFDEReference = true;
GlobalEHDirective = 0;
SupportsWeakOmittedEHFrame = true;
DwarfSectionOffsetDirective = 0;
COMMDirectiveTakesAlignment = (Subtarget->getDarwinVers() >= 9);
HasDotTypeDotSizeDirective = false;
HasSingleParameterDotFile = false;
- FDEEncodingRequiresSData4 = false;
NonLocalEHFrameLabel = true;
- Force32BitFDEReference = false;
if (TM.getRelocationModel() == Reloc::Static) {
StaticCtorsSection = ".constructor";
StaticDtorsSection = ".destructor";