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 Workervoid MipsMCAsmInfo::anchor() { } 20*9880d681SAndroid Build Coastguard Worker MipsMCAsmInfo(const Triple & TheTriple)21*9880d681SAndroid Build Coastguard WorkerMipsMCAsmInfo::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