xref: /llvm-project/llvm/lib/Target/AArch64/AArch64ExpandImm.h (revision 8a595b1d2edf3d5d987a2a498e7f696596d0eaa5)
1*8a595b1dSAdhemerval Zanella //===- AArch64ExpandImm.h - AArch64 Immediate Expansion ---------*- C++ -*-===//
2*8a595b1dSAdhemerval Zanella //
3*8a595b1dSAdhemerval Zanella // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*8a595b1dSAdhemerval Zanella // See https://llvm.org/LICENSE.txt for license information.
5*8a595b1dSAdhemerval Zanella // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*8a595b1dSAdhemerval Zanella //
7*8a595b1dSAdhemerval Zanella //===----------------------------------------------------------------------===//
8*8a595b1dSAdhemerval Zanella //
9*8a595b1dSAdhemerval Zanella // This file contains the AArch64 immediate expansion stuff.
10*8a595b1dSAdhemerval Zanella //
11*8a595b1dSAdhemerval Zanella //===----------------------------------------------------------------------===//
12*8a595b1dSAdhemerval Zanella 
13*8a595b1dSAdhemerval Zanella #ifndef LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64EXPANDIMM_H
14*8a595b1dSAdhemerval Zanella #define LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64EXPANDIMM_H
15*8a595b1dSAdhemerval Zanella 
16*8a595b1dSAdhemerval Zanella #include "llvm/ADT/SmallVector.h"
17*8a595b1dSAdhemerval Zanella 
18*8a595b1dSAdhemerval Zanella namespace llvm {
19*8a595b1dSAdhemerval Zanella 
20*8a595b1dSAdhemerval Zanella namespace AArch64_IMM {
21*8a595b1dSAdhemerval Zanella 
22*8a595b1dSAdhemerval Zanella struct ImmInsnModel {
23*8a595b1dSAdhemerval Zanella   unsigned Opcode;
24*8a595b1dSAdhemerval Zanella   uint64_t Op1;
25*8a595b1dSAdhemerval Zanella   uint64_t Op2;
26*8a595b1dSAdhemerval Zanella };
27*8a595b1dSAdhemerval Zanella 
28*8a595b1dSAdhemerval Zanella void expandMOVImm(uint64_t Imm, unsigned BitSize,
29*8a595b1dSAdhemerval Zanella 		  SmallVectorImpl<ImmInsnModel> &Insn);
30*8a595b1dSAdhemerval Zanella 
31*8a595b1dSAdhemerval Zanella } // end namespace AArch64_IMM
32*8a595b1dSAdhemerval Zanella 
33*8a595b1dSAdhemerval Zanella } // end namespace llvm
34*8a595b1dSAdhemerval Zanella 
35*8a595b1dSAdhemerval Zanella #endif
36