1 //===- MCSectionXCore.h - XCore-specific section representation -*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file declares the MCSectionXCore class.
12 //===----------------------------------------------------------------------===//
14 #ifndef LLVM_MCSECTION_XCORE_H
15 #define LLVM_MCSECTION_XCORE_H
17 #include "llvm/MC/MCSectionELF.h"
21 class MCSectionXCore
: public MCSectionELF
{
22 MCSectionXCore(const StringRef
&Section
, unsigned Type
, unsigned Flags
,
23 SectionKind K
, bool isExplicit
)
24 : MCSectionELF(Section
, Type
, Flags
, K
, isExplicit
) {}
29 /// SHF_CP_SECTION - All sections with the "c" flag are grouped together
30 /// by the linker to form the constant pool and the cp register is set to
31 /// the start of the constant pool by the boot code.
32 SHF_CP_SECTION
= FIRST_TARGET_DEP_FLAG
,
34 /// SHF_DP_SECTION - All sections with the "d" flag are grouped together
35 /// by the linker to form the data section and the dp register is set to
36 /// the start of the section by the boot code.
37 SHF_DP_SECTION
= FIRST_TARGET_DEP_FLAG
<< 1
40 static MCSectionXCore
*Create(const StringRef
&Section
, unsigned Type
,
41 unsigned Flags
, SectionKind K
,
42 bool isExplicit
, MCContext
&Ctx
);
45 /// PrintTargetSpecificSectionFlags - This handles the XCore-specific cp/dp
47 virtual void PrintTargetSpecificSectionFlags(const TargetAsmInfo
&TAI
,
48 raw_ostream
&OS
) const;
52 } // end namespace llvm