[Hexagon] Few fixes for exception handling

llvm-svn: 267469
This commit is contained in:
Krzysztof Parzyszek 2016-04-25 21:05:19 +00:00
parent 55954aec70
commit 3e28229000
3 changed files with 13 additions and 1 deletions

View File

@ -338,6 +338,17 @@ void MCObjectFileInfo::initELFMCObjectFileInfo(Triple T) {
TTypeEncoding = (CMModel == CodeModel::Small)
? dwarf::DW_EH_PE_udata4 : dwarf::DW_EH_PE_absptr;
}
case Triple::hexagon:
PersonalityEncoding = dwarf::DW_EH_PE_absptr;
LSDAEncoding = dwarf::DW_EH_PE_absptr;
FDECFIEncoding = dwarf::DW_EH_PE_absptr;
TTypeEncoding = dwarf::DW_EH_PE_absptr;
if (RelocM == Reloc::PIC_){
PersonalityEncoding |= dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel;
LSDAEncoding |= dwarf::DW_EH_PE_pcrel;
FDECFIEncoding |= dwarf::DW_EH_PE_pcrel;
TTypeEncoding |= dwarf::DW_EH_PE_indirect | dwarf::DW_EH_PE_pcrel;
}
break;
case Triple::aarch64:
case Triple::aarch64_be:

View File

@ -32,6 +32,7 @@ HexagonMCAsmInfo::HexagonMCAsmInfo(const Triple &TT) {
AscizDirective = "\t.string\t";
SupportsDebugInformation = true;
MinInstAlignment = 4;
UsesELFSectionDirectiveForBSS = true;
ExceptionsType = ExceptionHandling::DwarfCFI;
}

View File

@ -98,7 +98,7 @@ MCInstrInfo *llvm::createHexagonMCInstrInfo() {
static MCRegisterInfo *createHexagonMCRegisterInfo(const Triple &TT) {
MCRegisterInfo *X = new MCRegisterInfo();
InitHexagonMCRegisterInfo(X, Hexagon::R0);
InitHexagonMCRegisterInfo(X, Hexagon::R31);
return X;
}