using namespace llvm;
using namespace llvm::dwarf;
-static const char* x86_asm_table[] = {"{si}", "S",
+static const char *const x86_asm_table[] = {
+ "{si}", "S",
"{di}", "D",
"{ax}", "a",
"{cx}", "c",
ReadOnlySection = "\t.const\n";
LCOMMDirective = "\t.lcomm\t";
SwitchToSectionDirective = "\t.section ";
+ StringConstantPrefix = "\1LC";
COMMDirectiveTakesAlignment = false;
HasDotTypeDotSizeDirective = false;
if (TM.getRelocationModel() == Reloc::Static) {
PersonalitySuffix = "$non_lazy_ptr";
}
NeedsIndirectEncoding = true;
- InlineAsmStart = "# InlineAsm Start";
- InlineAsmEnd = "# InlineAsm End";
+ InlineAsmStart = "## InlineAsm Start";
+ InlineAsmEnd = "## InlineAsm End";
+ CommentString = "##";
SetDirective = "\t.set";
PCSymbol = ".";
UsedDirective = "\t.no_dead_strip\t";
WeakDefDirective = "\t.weak_definition ";
WeakRefDirective = "\t.weak_reference ";
HiddenDirective = "\t.private_extern ";
+ ProtectedDirective = "\t.globl\t";
// In non-PIC modes, emit a special label before jump tables so that the
// linker can perform more accurate dead code stripping.
GlobalEHDirective = "\t.globl\t";
SupportsWeakOmittedEHFrame = false;
AbsoluteEHSectionOffsets = false;
- if (Subtarget->is64Bit())
- ShortenEHDataOn64Bit = true;
DwarfEHFrameSection =
".section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support";
DwarfExceptionSection = ".section __DATA,__gcc_except_tab";
SectionEndDirectiveSuffix = "\tends\n";
}
+ // On Linux we must declare when we can use a non-executable stack.
+ if (Subtarget->isLinux())
+ NonexecutableStackDirective = "\t.section\t.note.GNU-stack,\"\",@progbits";
+
AssemblerDialect = Subtarget->getAsmFlavor();
}
Constant *Int = Intrinsic::getDeclaration(M, Intrinsic::bswap, Tys, 1);
Value *Op = CI->getOperand(1);
- Op = new CallInst(Int, Op, CI->getName(), CI);
+ Op = CallInst::Create(Int, Op, CI->getName(), CI);
CI->replaceAllUsesWith(Op);
CI->eraseFromParent();