Home | History | Annotate | Download | only in MCTargetDesc
      1 //===-- MipsMCAsmInfo.cpp - Mips Asm Properties ---------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 //
     10 // This file contains the declarations of the MipsMCAsmInfo properties.
     11 //
     12 //===----------------------------------------------------------------------===//
     13 
     14 #include "MipsMCAsmInfo.h"
     15 #include "llvm/ADT/Triple.h"
     16 
     17 using namespace llvm;
     18 
     19 void MipsMCAsmInfo::anchor() { }
     20 
     21 MipsMCAsmInfo::MipsMCAsmInfo(const Triple &TheTriple) {
     22   if ((TheTriple.getArch() == Triple::mips) ||
     23       (TheTriple.getArch() == Triple::mips64))
     24     IsLittleEndian = false;
     25 
     26   if ((TheTriple.getArch() == Triple::mips64el) ||
     27       (TheTriple.getArch() == Triple::mips64)) {
     28     PointerSize = CalleeSaveStackSlotSize = 8;
     29   }
     30 
     31   AlignmentIsInBytes          = false;
     32   Data16bitsDirective         = "\t.2byte\t";
     33   Data32bitsDirective         = "\t.4byte\t";
     34   Data64bitsDirective         = "\t.8byte\t";
     35   PrivateGlobalPrefix         = "$";
     36   PrivateLabelPrefix          = "$";
     37   CommentString               = "#";
     38   ZeroDirective               = "\t.space\t";
     39   GPRel32Directive            = "\t.gpword\t";
     40   GPRel64Directive            = "\t.gpdword\t";
     41   UseAssignmentForEHBegin = true;
     42   SupportsDebugInformation = true;
     43   ExceptionsType = ExceptionHandling::DwarfCFI;
     44   DwarfRegNumForCFI = true;
     45 
     46   // Enable IAS by default for O32.
     47   if (TheTriple.getArch() == Triple::mips ||
     48       TheTriple.getArch() == Triple::mipsel)
     49     UseIntegratedAssembler = true;
     50 }
     51