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