blob: 4e3c54accac9120698c29318927cc74016714cea [file] [log] [blame]
Clement Courbet0e69e2d2018-05-17 10:52:18 +00001//===-- AssemblerTest.cpp ---------------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#include "../Common/AssemblerUtils.h"
11#include "X86InstrInfo.h"
12
13namespace exegesis {
14namespace {
15
16using llvm::MCInstBuilder;
17using llvm::X86::EAX;
18using llvm::X86::MOV32ri;
19using llvm::X86::MOV64ri32;
20using llvm::X86::RAX;
21using llvm::X86::XOR32rr;
22
23class X86MachineFunctionGeneratorTest
24 : public MachineFunctionGeneratorBaseTest {
25protected:
26 X86MachineFunctionGeneratorTest()
27 : MachineFunctionGeneratorBaseTest("x86_64-unknown-linux", "haswell") {}
28
29 static void SetUpTestCase() {
30 LLVMInitializeX86TargetInfo();
31 LLVMInitializeX86TargetMC();
32 LLVMInitializeX86Target();
33 LLVMInitializeX86AsmPrinter();
34 }
35};
36
Clement Courbet3d5e08d2018-05-17 11:55:08 +000037TEST_F(X86MachineFunctionGeneratorTest, DISABLED_JitFunction) {
Clement Courbet0e69e2d2018-05-17 10:52:18 +000038 Check(llvm::MCInst(), 0xc3);
39}
40
Clement Courbet3d5e08d2018-05-17 11:55:08 +000041TEST_F(X86MachineFunctionGeneratorTest, DISABLED_JitFunctionXOR32rr) {
Clement Courbet0e69e2d2018-05-17 10:52:18 +000042 Check(MCInstBuilder(XOR32rr).addReg(EAX).addReg(EAX).addReg(EAX), 0x31, 0xc0,
43 0xc3);
44}
45
Clement Courbet3d5e08d2018-05-17 11:55:08 +000046TEST_F(X86MachineFunctionGeneratorTest, DISABLED_JitFunctionMOV64ri) {
Clement Courbet0e69e2d2018-05-17 10:52:18 +000047 Check(MCInstBuilder(MOV64ri32).addReg(RAX).addImm(42), 0x48, 0xc7, 0xc0, 0x2a,
48 0x00, 0x00, 0x00, 0xc3);
49}
50
Clement Courbet3d5e08d2018-05-17 11:55:08 +000051TEST_F(X86MachineFunctionGeneratorTest, DISABLED_JitFunctionMOV32ri) {
Clement Courbet0e69e2d2018-05-17 10:52:18 +000052 Check(MCInstBuilder(MOV32ri).addReg(EAX).addImm(42), 0xb8, 0x2a, 0x00, 0x00,
53 0x00, 0xc3);
54}
55
56} // namespace
57} // namespace exegesis