mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-21 03:53:04 +02:00
04fad6dc3c
Summary: The MIPS IAS can now pass 'ninja check-all', recurse, build a bootable linux kernel, and pass a variety of LNT testing. Unfortunately we can't enable it by default for 64-bit targets yet since the N32 ABI is still very buggy and this also means we can't enable it for N64 either because we can't distinguish between N32 and N64 in the relevant code. Reviewers: vkalintiris Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D18759 Differential Revision: http://reviews.llvm.org/D18761 llvm-svn: 269560
51 lines
1.6 KiB
C++
51 lines
1.6 KiB
C++
//===-- MipsMCAsmInfo.cpp - Mips Asm Properties ---------------------------===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file contains the declarations of the MipsMCAsmInfo properties.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "MipsMCAsmInfo.h"
|
|
#include "llvm/ADT/Triple.h"
|
|
|
|
using namespace llvm;
|
|
|
|
void MipsMCAsmInfo::anchor() { }
|
|
|
|
MipsMCAsmInfo::MipsMCAsmInfo(const Triple &TheTriple) {
|
|
if ((TheTriple.getArch() == Triple::mips) ||
|
|
(TheTriple.getArch() == Triple::mips64))
|
|
IsLittleEndian = false;
|
|
|
|
if ((TheTriple.getArch() == Triple::mips64el) ||
|
|
(TheTriple.getArch() == Triple::mips64)) {
|
|
PointerSize = CalleeSaveStackSlotSize = 8;
|
|
}
|
|
|
|
AlignmentIsInBytes = false;
|
|
Data16bitsDirective = "\t.2byte\t";
|
|
Data32bitsDirective = "\t.4byte\t";
|
|
Data64bitsDirective = "\t.8byte\t";
|
|
PrivateGlobalPrefix = "$";
|
|
PrivateLabelPrefix = "$";
|
|
CommentString = "#";
|
|
ZeroDirective = "\t.space\t";
|
|
GPRel32Directive = "\t.gpword\t";
|
|
GPRel64Directive = "\t.gpdword\t";
|
|
UseAssignmentForEHBegin = true;
|
|
SupportsDebugInformation = true;
|
|
ExceptionsType = ExceptionHandling::DwarfCFI;
|
|
DwarfRegNumForCFI = true;
|
|
|
|
// Enable IAS by default for O32.
|
|
if (TheTriple.getArch() == Triple::mips ||
|
|
TheTriple.getArch() == Triple::mipsel)
|
|
UseIntegratedAssembler = true;
|
|
}
|