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