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