xref: /freebsd-src/contrib/llvm-project/llvm/lib/Target/Xtensa/XtensaUtils.h (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
1*0fca6ea1SDimitry Andric //===--- XtensaUtils.h ---- Xtensa Utility Functions ------------*- C++ -*-===//
2*0fca6ea1SDimitry Andric //
3*0fca6ea1SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*0fca6ea1SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5*0fca6ea1SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*0fca6ea1SDimitry Andric //
7*0fca6ea1SDimitry Andric //===----------------------------------------------------------------------===//
8*0fca6ea1SDimitry Andric //
9*0fca6ea1SDimitry Andric // This file contains miscellaneous utility functions.
10*0fca6ea1SDimitry Andric //
11*0fca6ea1SDimitry Andric //===----------------------------------------------------------------------===//
12*0fca6ea1SDimitry Andric 
13*0fca6ea1SDimitry Andric #ifndef LLVM_LIB_TARGET_XTENSA_XTENSAUTILS_H
14*0fca6ea1SDimitry Andric #define LLVM_LIB_TARGET_XTENSA_XTENSAUTILS_H
15*0fca6ea1SDimitry Andric 
16*0fca6ea1SDimitry Andric #include "XtensaInstrInfo.h"
17*0fca6ea1SDimitry Andric #include "llvm/CodeGen/MachineInstr.h"
18*0fca6ea1SDimitry Andric 
19*0fca6ea1SDimitry Andric namespace llvm {
20*0fca6ea1SDimitry Andric // Check address offset for load/store instructions.
21*0fca6ea1SDimitry Andric // The offset should be multiple of scale.
22*0fca6ea1SDimitry Andric bool isValidAddrOffset(int Scale, int64_t OffsetVal);
23*0fca6ea1SDimitry Andric 
24*0fca6ea1SDimitry Andric // Check address offset for load/store instructions.
25*0fca6ea1SDimitry Andric bool isValidAddrOffset(MachineInstr &MI, int64_t Offset);
26*0fca6ea1SDimitry Andric } // namespace llvm
27*0fca6ea1SDimitry Andric #endif // LLVM_LIB_TARGET_XTENSA_XTENSAUTILS_H
28