SparcMCAsmInfo.cpp revision e752feee5228bfa33acee35ef9c606ce12f0f173
1af76e592c7f9deff0e55c13dbb4a34f07f1c7f64Chris Lattner//===-- SparcMCAsmInfo.cpp - Sparc asm properties -------------------------===//
28e8de8f7765a08ab3aa4f48b302cf19ccb9740e2Jim Laskey//
38e8de8f7765a08ab3aa4f48b302cf19ccb9740e2Jim Laskey//                     The LLVM Compiler Infrastructure
48e8de8f7765a08ab3aa4f48b302cf19ccb9740e2Jim Laskey//
54ee451de366474b9c228b4e5fa573795a715216dChris Lattner// This file is distributed under the University of Illinois Open Source
64ee451de366474b9c228b4e5fa573795a715216dChris Lattner// License. See LICENSE.TXT for details.
78e8de8f7765a08ab3aa4f48b302cf19ccb9740e2Jim Laskey//
88e8de8f7765a08ab3aa4f48b302cf19ccb9740e2Jim Laskey//===----------------------------------------------------------------------===//
98e8de8f7765a08ab3aa4f48b302cf19ccb9740e2Jim Laskey//
10af76e592c7f9deff0e55c13dbb4a34f07f1c7f64Chris Lattner// This file contains the declarations of the SparcMCAsmInfo properties.
118e8de8f7765a08ab3aa4f48b302cf19ccb9740e2Jim Laskey//
128e8de8f7765a08ab3aa4f48b302cf19ccb9740e2Jim Laskey//===----------------------------------------------------------------------===//
138e8de8f7765a08ab3aa4f48b302cf19ccb9740e2Jim Laskey
14af76e592c7f9deff0e55c13dbb4a34f07f1c7f64Chris Lattner#include "SparcMCAsmInfo.h"
151be0e271a07925b928ba89848934f1ea6f1854e2Evan Cheng#include "llvm/ADT/Triple.h"
161be0e271a07925b928ba89848934f1ea6f1854e2Evan Cheng
178e8de8f7765a08ab3aa4f48b302cf19ccb9740e2Jim Laskeyusing namespace llvm;
188e8de8f7765a08ab3aa4f48b302cf19ccb9740e2Jim Laskey
192d24e2a396a1d211baaeedf32148a3b657240170David Blaikievoid SparcELFMCAsmInfo::anchor() { }
202d24e2a396a1d211baaeedf32148a3b657240170David Blaikie
2138e59891ee4417a9be2f8146ce0ba3269e38ac21Benjamin KramerSparcELFMCAsmInfo::SparcELFMCAsmInfo(const Target &T, StringRef TT) {
221be0e271a07925b928ba89848934f1ea6f1854e2Evan Cheng  IsLittleEndian = false;
231be0e271a07925b928ba89848934f1ea6f1854e2Evan Cheng  Triple TheTriple(TT);
24e752feee5228bfa33acee35ef9c606ce12f0f173Eli Bendersky  if (TheTriple.getArch() == Triple::sparcv9) {
25e752feee5228bfa33acee35ef9c606ce12f0f173Eli Bendersky    PointerSize = CalleeSaveStackSlotSize = 8;
26e752feee5228bfa33acee35ef9c606ce12f0f173Eli Bendersky  }
271be0e271a07925b928ba89848934f1ea6f1854e2Evan Cheng
288e8de8f7765a08ab3aa4f48b302cf19ccb9740e2Jim Laskey  Data16bitsDirective = "\t.half\t";
298e8de8f7765a08ab3aa4f48b302cf19ccb9740e2Jim Laskey  Data32bitsDirective = "\t.word\t";
308e8de8f7765a08ab3aa4f48b302cf19ccb9740e2Jim Laskey  Data64bitsDirective = 0;  // .xword is only supported by V9.
318e8de8f7765a08ab3aa4f48b302cf19ccb9740e2Jim Laskey  ZeroDirective = "\t.skip\t";
328e8de8f7765a08ab3aa4f48b302cf19ccb9740e2Jim Laskey  CommentString = "!";
33930e4d96e8718abcb56212676c35e6f7ea0ab605Richard Pennington  HasLEB128 = true;
34930e4d96e8718abcb56212676c35e6f7ea0ab605Richard Pennington  SupportsDebugInformation = true;
355277b22687d3513dd29d5a9c8510cac740f933f6Chris Lattner
365277b22687d3513dd29d5a9c8510cac740f933f6Chris Lattner  SunStyleELFSectionSwitchSyntax = true;
37eb2aa096bb8aba742b87a99d561185bb3f8863c5Venkatraman Govindaraju  UsesELFSectionDirectiveForBSS = true;
38eb2aa096bb8aba742b87a99d561185bb3f8863c5Venkatraman Govindaraju
39eb2aa096bb8aba742b87a99d561185bb3f8863c5Venkatraman Govindaraju  WeakRefDirective = "\t.weak\t";
40eb2aa096bb8aba742b87a99d561185bb3f8863c5Venkatraman Govindaraju
41eb2aa096bb8aba742b87a99d561185bb3f8863c5Venkatraman Govindaraju  PrivateGlobalPrefix = ".L";
425b794b98cebbc3982b87780657e0d280c2bcdd04Anton Korobeynikov}
435b794b98cebbc3982b87780657e0d280c2bcdd04Anton Korobeynikov
445b794b98cebbc3982b87780657e0d280c2bcdd04Anton Korobeynikov
45