Revert r220427, "[Hexagon] Adding encoding bits for add opcode."
[oota-llvm.git] / unittests / MC / Hexagon / HexagonMCCodeEmitterTest.cpp
1 #include "gtest/gtest.h"
2
3 #include <memory>
4
5 #include "llvm/MC/MCCodeEmitter.h"
6 #include "llvm/MC/MCContext.h"
7 #include "llvm/Support/raw_ostream.h"
8 #include "llvm/Support/TargetRegistry.h"
9 #include "llvm/Support/TargetSelect.h"
10
11 #include "MCTargetDesc/HexagonMCInst.h"
12 #include "MCTargetDesc/HexagonMCTargetDesc.h"
13
14 namespace {
15 class TestEmitter {
16 public:
17   TestEmitter() : Triple("hexagon-unknown-elf") {
18     LLVMInitializeHexagonTargetInfo();
19     LLVMInitializeHexagonTarget();
20     LLVMInitializeHexagonTargetMC();
21     std::string error;
22     Target = llvm::TargetRegistry::lookupTarget("hexagon", error);
23     assert(Target != nullptr && "Expected to find target");
24     assert(error.empty() && "Error should be empty if we have a target");
25     RegisterInfo = Target->createMCRegInfo(Triple);
26     assert(RegisterInfo != nullptr && "Expecting to find register info");
27     AsmInfo = Target->createMCAsmInfo(*RegisterInfo, Triple);
28     assert(AsmInfo != nullptr && "Expecting to find asm info");
29     Context = new llvm::MCContext(AsmInfo, RegisterInfo, nullptr);
30     assert(Context != nullptr && "Expecting to create a context");
31     Subtarget = Target->createMCSubtargetInfo(Triple, "hexagonv4", "");
32     assert(Subtarget != nullptr && "Expecting to find a subtarget");
33     InstrInfo = Target->createMCInstrInfo();
34     assert(InstrInfo != nullptr && "Expecting to find instr info");
35     Emitter = Target->createMCCodeEmitter(*InstrInfo, *RegisterInfo, *Subtarget,
36                                           *Context);
37     assert(Emitter != nullptr);
38   }
39   std::string Triple;
40   llvm::Target const *Target;
41   llvm::MCRegisterInfo *RegisterInfo;
42   llvm::MCAsmInfo *AsmInfo;
43   llvm::MCContext *Context;
44   llvm::MCSubtargetInfo *Subtarget;
45   llvm::MCInstrInfo *InstrInfo;
46   llvm::MCCodeEmitter *Emitter;
47 };
48 TestEmitter Emitter;
49 }
50
51 TEST(HexagonMCCodeEmitter, emitter_creation) {
52   ASSERT_NE(nullptr, Emitter.Emitter);
53 }