mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-30 17:33:24 +00:00
cee63322ea
Default HasSetDirective to true, since most targets have it. The targets that claim to not have it probably do, or it is spelled differently. These include Blackfin, Mips, Alpha, and PIC16. All of these except pic16 are normal ELF targets, so they almost certainly have it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94585 91177308-0d34-0410-b5e6-96231b3b80d8
59 lines
1.9 KiB
C++
59 lines
1.9 KiB
C++
//===-- MCAsmInfoDarwin.cpp - Darwin asm properties -------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file defines target asm properties related what form asm statements
|
|
// should take in general on Darwin-based targets
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "llvm/MC/MCAsmInfoDarwin.h"
|
|
using namespace llvm;
|
|
|
|
MCAsmInfoDarwin::MCAsmInfoDarwin() {
|
|
// Common settings for all Darwin targets.
|
|
// Syntax:
|
|
GlobalPrefix = "_";
|
|
PrivateGlobalPrefix = "L";
|
|
LinkerPrivateGlobalPrefix = "l";
|
|
AllowQuotesInName = true;
|
|
HasSingleParameterDotFile = false;
|
|
HasSubsectionsViaSymbols = true;
|
|
|
|
AlignmentIsInBytes = false;
|
|
COMMDirectiveAlignmentIsInBytes = false;
|
|
InlineAsmStart = " InlineAsm Start";
|
|
InlineAsmEnd = " InlineAsm End";
|
|
|
|
// Directives:
|
|
WeakDefDirective = "\t.weak_definition ";
|
|
WeakRefDirective = "\t.weak_reference ";
|
|
ZeroDirective = "\t.space\t"; // ".space N" emits N zeros.
|
|
HasMachoZeroFillDirective = true; // Uses .zerofill
|
|
HasStaticCtorDtorReferenceInStaticMode = true;
|
|
|
|
HiddenVisibilityAttr = MCSA_PrivateExtern;
|
|
// Doesn't support protected visibility.
|
|
ProtectedVisibilityAttr = MCSA_Global;
|
|
|
|
|
|
HasDotTypeDotSizeDirective = false;
|
|
HasNoDeadStrip = true;
|
|
// Note: Even though darwin has the .lcomm directive, it is just a synonym for
|
|
// zerofill, so we prefer to use .zerofill.
|
|
|
|
// _foo.eh symbols are currently always exported so that the linker knows
|
|
// about them. This is not necessary on 10.6 and later, but it
|
|
// doesn't hurt anything.
|
|
// FIXME: I need to get this from Triple.
|
|
Is_EHSymbolPrivate = false;
|
|
GlobalEHDirective = "\t.globl\t";
|
|
SupportsWeakOmittedEHFrame = false;
|
|
}
|
|
|