1 //===-- SparcMCAsmInfo.cpp - Sparc asm properties -------------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file contains the declarations of the SparcMCAsmInfo properties.
12 //===----------------------------------------------------------------------===//
14 #include "SparcMCAsmInfo.h"
15 #include "llvm/ADT/Triple.h"
19 void SparcELFMCAsmInfo::anchor() { }
21 SparcELFMCAsmInfo::SparcELFMCAsmInfo(StringRef TT) {
22 IsLittleEndian = false;
24 bool isV9 = (TheTriple.getArch() == Triple::sparcv9);
27 PointerSize = CalleeSaveStackSlotSize = 8;
30 Data16bitsDirective = "\t.half\t";
31 Data32bitsDirective = "\t.word\t";
32 // .xword is only supported by V9.
33 Data64bitsDirective = (isV9) ? "\t.xword\t" : 0;
34 ZeroDirective = "\t.skip\t";
37 SupportsDebugInformation = true;
39 ExceptionsType = ExceptionHandling::DwarfCFI;
41 SunStyleELFSectionSwitchSyntax = true;
42 UsesELFSectionDirectiveForBSS = true;
44 PrivateGlobalPrefix = ".L";