// Properties to be set by the target writer, used to configure asm printer.
//
- /// BSSSection - Section directive for uninitialized data. Null if this
- /// target doesn't support a BSS section.
- ///
-/// FIXME: REMOVE.
- const char *BSSSection; // Default to ".bss".
-
/// ZeroFillDirective - Directive for emitting a global to the ZeroFill
/// section on this target. Null if this target doesn't support zerofill.
const char *ZeroFillDirective; // Default is null.
/// section with the section name and this suffix printed.
const char *SectionEndDirectiveSuffix;// Defaults to null.
- /// ConstantPoolSection - This is the section that we SwitchToSection right
- /// before emitting the constant pool for a function.
- const char *ConstantPoolSection; // Defaults to "\t.section .rodata"
-
/// JumpTableDataSection - This is the section that we SwitchToSection right
/// before emitting the jump tables for a function when the relocation model
/// is not PIC.
/// table.
const char *JumpTableDirective;
- /// CStringSection - If not null, this allows for special handling of
- /// cstring constants (null terminated string that does not contain any
- /// other null bytes) on this target. This is commonly supported as
- /// ".cstring".
-/// FIXME: REMOVE.
- const char *CStringSection; // Defaults to NULL
-
/// StaticCtorsSection - This is the directive that is emitted to switch to
/// a section to emit the static constructor list.
/// Defaults to "\t.section .ctors,\"aw\",@progbits".
// Accessors.
//
- const char *getBSSSection() const {
- return BSSSection;
- }
const char *getZeroFillDirective() const {
return ZeroFillDirective;
}
const char *getSectionEndDirectiveSuffix() const {
return SectionEndDirectiveSuffix;
}
- const char *getConstantPoolSection() const {
- return ConstantPoolSection;
- }
const char *getJumpTableDataSection() const {
return JumpTableDataSection;
}
- const char *getCStringSection() const {
- return CStringSection;
- }
const char *getStaticCtorsSection() const {
return StaticCtorsSection;
}
NeedsSet = false;
HasLEB128 = true;
AbsoluteDebugSectionOffsets = true;
- CStringSection = ".rodata.str";
PrivateGlobalPrefix = ".L";
WeakRefDirective = "\t.weak\t";
SetDirective = "\t.set\t";
BaseTAI::AlignmentIsInBytes = false;
BaseTAI::Data64bitsDirective = 0;
BaseTAI::CommentString = "@";
- BaseTAI::ConstantPoolSection = "\t.text\n";
BaseTAI::COMMDirectiveTakesAlignment = false;
BaseTAI::InlineAsmStart = "@ InlineAsm Start";
BaseTAI::InlineAsmEnd = "@ InlineAsm End";
CommentString = "#";
GlobalPrefix = "";
PrivateGlobalPrefix = ".L";
- // This corresponds to what the gcc SPU compiler emits, for consistency.
- CStringSection = ".rodata.str";
// Has leb128, .loc and .file
HasLEB128 = true;
HiddenDirective = "\t.private_extern ";
// Sections:
- CStringSection = "\t.cstring";
JumpTableDataSection = "\t.const";
- BSSSection = 0;
if (TM.getRelocationModel() == Reloc::Static) {
StaticCtorsSection = ".constructor";
JumpTableDataSection = "\t.rdata";
CommentString = "#";
ZeroDirective = "\t.space\t";
- BSSSection = "\t.section\t.bss";
- CStringSection = ".rodata.str";
if (!TM.getSubtarget<MipsSubtarget>().hasABICall())
JumpTableDirective = "\t.word\t";
PPCTargetAsmInfo<DarwinTargetAsmInfo>(TM) {
PCSymbol = ".";
CommentString = ";";
- ConstantPoolSection = "\t.const\t";
UsedDirective = "\t.no_dead_strip\t";
SupportsExceptionHandling = true;
CommentString = "#";
GlobalPrefix = "";
PrivateGlobalPrefix = ".L";
- ConstantPoolSection = "\t.section .rodata.cst4\t";
- JumpTableDataSection = ".section .rodata.cst4";
- CStringSection = ".rodata.str";
StaticCtorsSection = ".section\t.ctors,\"aw\",@progbits";
StaticDtorsSection = ".section\t.dtors,\"aw\",@progbits";
UsedDirective = "\t# .no_dead_strip\t";
WeakRefDirective = "\t.weak\t";
- BSSSection = "\t.section\t\".sbss\",\"aw\",@nobits";
// Debug Information
AbsoluteDebugSectionOffsets = true;
Data64bitsDirective = 0; // .xword is only supported by V9.
ZeroDirective = "\t.skip\t";
CommentString = "!";
- ConstantPoolSection = "\t.section \".rodata\",#alloc\n";
COMMDirectiveTakesAlignment = true;
- CStringSection=".rodata.str";
}
: ELFTargetAsmInfo(TM) {
AlignmentIsInBytes = true;
- CStringSection = ".rodata.str";
PrivateGlobalPrefix = ".L";
WeakRefDirective = "\t.weak\t";
SetDirective = "\t.set\t";
using namespace llvm;
TargetAsmInfo::TargetAsmInfo(const TargetMachine &tm) : TM(tm) {
- BSSSection = "\t.bss";
ZeroFillDirective = 0;
NonexecutableStackDirective = 0;
NeedsSet = false;
TextSectionStartSuffix = "";
DataSectionStartSuffix = "";
SectionEndDirectiveSuffix = 0;
- ConstantPoolSection = "\t.section .rodata";
JumpTableDataSection = "\t.section .rodata";
JumpTableDirective = 0;
- CStringSection = 0;
// FIXME: Flags are ELFish - replace with normal section stuff.
StaticCtorsSection = "\t.section .ctors,\"aw\",@progbits";
StaticDtorsSection = "\t.section .dtors,\"aw\",@progbits";
Data64bitsDirective = 0; // we can't emit a 64-bit unit
ZeroDirective = "\t.space\t"; // ".space N" emits N zeros.
ZeroFillDirective = "\t.zerofill\t"; // Uses .zerofill
- if (TM.getRelocationModel() != Reloc::Static)
- ConstantPoolSection = "\t.const_data";
- else
- ConstantPoolSection = "\t.const\n";
LCOMMDirective = "\t.lcomm\t";
// Leopard and above support aligned common symbols.
X86ELFTargetAsmInfo::X86ELFTargetAsmInfo(const X86TargetMachine &TM) :
X86TargetAsmInfo<ELFTargetAsmInfo>(TM) {
- CStringSection = ".rodata.str";
PrivateGlobalPrefix = ".L";
WeakRefDirective = "\t.weak\t";
SetDirective = "\t.set\t";
Data64bitsDirective = 0;
ZeroDirective = "\t.space\t";
CommentString = "#";
- ConstantPoolSection = "\t.section\t.cp.rodata,\"ac\",@progbits";
JumpTableDataSection = "\t.section\t.dp.data,\"awd\",@progbits";
PrivateGlobalPrefix = ".L";
AscizDirective = ".asciiz";