| //===-- AssemblerTest.cpp ---------------------------------------*- C++ -*-===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "../Common/AssemblerUtils.h" |
| #include "X86InstrInfo.h" |
| |
| namespace llvm { |
| namespace exegesis { |
| |
| void InitializeX86ExegesisTarget(); |
| |
| namespace { |
| |
| using X86::EAX; |
| using X86::MOV32ri; |
| using X86::MOV64ri32; |
| using X86::RAX; |
| using X86::XOR32rr; |
| |
| class X86MachineFunctionGeneratorTest |
| : public MachineFunctionGeneratorBaseTest { |
| protected: |
| X86MachineFunctionGeneratorTest() |
| : MachineFunctionGeneratorBaseTest("x86_64-unknown-linux", "haswell") {} |
| |
| static void SetUpTestCase() { |
| LLVMInitializeX86TargetInfo(); |
| LLVMInitializeX86TargetMC(); |
| LLVMInitializeX86Target(); |
| LLVMInitializeX86AsmPrinter(); |
| InitializeX86ExegesisTarget(); |
| } |
| }; |
| |
| TEST_F(X86MachineFunctionGeneratorTest, DISABLED_JitFunction) { |
| Check({}, MCInst(), 0xc3); |
| } |
| |
| TEST_F(X86MachineFunctionGeneratorTest, DISABLED_JitFunctionXOR32rr_X86) { |
| Check({{EAX, APInt(32, 1)}}, |
| MCInstBuilder(XOR32rr).addReg(EAX).addReg(EAX).addReg(EAX), |
| // mov eax, 1 |
| 0xb8, 0x01, 0x00, 0x00, 0x00, |
| // xor eax, eax |
| 0x31, 0xc0, 0xc3); |
| } |
| |
| TEST_F(X86MachineFunctionGeneratorTest, DISABLED_JitFunctionMOV64ri) { |
| Check({}, MCInstBuilder(MOV64ri32).addReg(RAX).addImm(42), 0x48, 0xc7, 0xc0, |
| 0x2a, 0x00, 0x00, 0x00, 0xc3); |
| } |
| |
| TEST_F(X86MachineFunctionGeneratorTest, DISABLED_JitFunctionMOV32ri) { |
| Check({}, MCInstBuilder(MOV32ri).addReg(EAX).addImm(42), 0xb8, 0x2a, 0x00, |
| 0x00, 0x00, 0xc3); |
| } |
| |
| } // namespace |
| } // namespace exegesis |
| } // namespace llvm |