[ARM] VQADD instructions
[llvm-complete.git] / lib / Target / AVR / MCTargetDesc / AVRELFStreamer.cpp
blob6d126ed622aa18ac153d9e3b67183ce3baf90cdb
1 #include "AVRELFStreamer.h"
3 #include "llvm/BinaryFormat/ELF.h"
4 #include "llvm/MC/MCSubtargetInfo.h"
5 #include "llvm/MC/SubtargetFeature.h"
6 #include "llvm/Support/FormattedStream.h"
8 #include "AVRMCTargetDesc.h"
10 namespace llvm {
12 static unsigned getEFlagsForFeatureSet(const FeatureBitset &Features) {
13 unsigned EFlags = 0;
15 // Set architecture
16 if (Features[AVR::ELFArchAVR1])
17 EFlags |= ELF::EF_AVR_ARCH_AVR1;
18 else if (Features[AVR::ELFArchAVR2])
19 EFlags |= ELF::EF_AVR_ARCH_AVR2;
20 else if (Features[AVR::ELFArchAVR25])
21 EFlags |= ELF::EF_AVR_ARCH_AVR25;
22 else if (Features[AVR::ELFArchAVR3])
23 EFlags |= ELF::EF_AVR_ARCH_AVR3;
24 else if (Features[AVR::ELFArchAVR31])
25 EFlags |= ELF::EF_AVR_ARCH_AVR31;
26 else if (Features[AVR::ELFArchAVR35])
27 EFlags |= ELF::EF_AVR_ARCH_AVR35;
28 else if (Features[AVR::ELFArchAVR4])
29 EFlags |= ELF::EF_AVR_ARCH_AVR4;
30 else if (Features[AVR::ELFArchAVR5])
31 EFlags |= ELF::EF_AVR_ARCH_AVR5;
32 else if (Features[AVR::ELFArchAVR51])
33 EFlags |= ELF::EF_AVR_ARCH_AVR51;
34 else if (Features[AVR::ELFArchAVR6])
35 EFlags |= ELF::EF_AVR_ARCH_AVR6;
36 else if (Features[AVR::ELFArchTiny])
37 EFlags |= ELF::EF_AVR_ARCH_AVRTINY;
38 else if (Features[AVR::ELFArchXMEGA1])
39 EFlags |= ELF::EF_AVR_ARCH_XMEGA1;
40 else if (Features[AVR::ELFArchXMEGA2])
41 EFlags |= ELF::EF_AVR_ARCH_XMEGA2;
42 else if (Features[AVR::ELFArchXMEGA3])
43 EFlags |= ELF::EF_AVR_ARCH_XMEGA3;
44 else if (Features[AVR::ELFArchXMEGA4])
45 EFlags |= ELF::EF_AVR_ARCH_XMEGA4;
46 else if (Features[AVR::ELFArchXMEGA5])
47 EFlags |= ELF::EF_AVR_ARCH_XMEGA5;
48 else if (Features[AVR::ELFArchXMEGA6])
49 EFlags |= ELF::EF_AVR_ARCH_XMEGA6;
50 else if (Features[AVR::ELFArchXMEGA7])
51 EFlags |= ELF::EF_AVR_ARCH_XMEGA7;
53 return EFlags;
56 AVRELFStreamer::AVRELFStreamer(MCStreamer &S,
57 const MCSubtargetInfo &STI)
58 : AVRTargetStreamer(S) {
60 MCAssembler &MCA = getStreamer().getAssembler();
61 unsigned EFlags = MCA.getELFHeaderEFlags();
63 EFlags |= getEFlagsForFeatureSet(STI.getFeatureBits());
65 MCA.setELFHeaderEFlags(EFlags);
68 } // end namespace llvm