1351278Sdim//===- AArch64ExpandImm.h - AArch64 Immediate Expansion ---------*- C++ -*-===//
2351278Sdim//
3351278Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4351278Sdim// See https://llvm.org/LICENSE.txt for license information.
5351278Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6351278Sdim//
7351278Sdim//===----------------------------------------------------------------------===//
8351278Sdim//
9351278Sdim// This file contains the AArch64 immediate expansion stuff.
10351278Sdim//
11351278Sdim//===----------------------------------------------------------------------===//
12351278Sdim
13351278Sdim#ifndef LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64EXPANDIMM_H
14351278Sdim#define LLVM_LIB_TARGET_AARCH64_MCTARGETDESC_AARCH64EXPANDIMM_H
15351278Sdim
16351278Sdim#include "llvm/ADT/SmallVector.h"
17351278Sdim
18351278Sdimnamespace llvm {
19351278Sdim
20351278Sdimnamespace AArch64_IMM {
21351278Sdim
22351278Sdimstruct ImmInsnModel {
23351278Sdim  unsigned Opcode;
24351278Sdim  uint64_t Op1;
25351278Sdim  uint64_t Op2;
26351278Sdim};
27351278Sdim
28351278Sdimvoid expandMOVImm(uint64_t Imm, unsigned BitSize,
29351278Sdim		  SmallVectorImpl<ImmInsnModel> &Insn);
30351278Sdim
31351278Sdim} // end namespace AArch64_IMM
32351278Sdim
33351278Sdim} // end namespace llvm
34351278Sdim
35351278Sdim#endif
36