xref: /aosp_15_r20/external/llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker //===-- X86AsmParserCommon.h - Common functions for X86AsmParser ---------===//
2*9880d681SAndroid Build Coastguard Worker //
3*9880d681SAndroid Build Coastguard Worker //                     The LLVM Compiler Infrastructure
4*9880d681SAndroid Build Coastguard Worker //
5*9880d681SAndroid Build Coastguard Worker // This file is distributed under the University of Illinois Open Source
6*9880d681SAndroid Build Coastguard Worker // License. See LICENSE.TXT for details.
7*9880d681SAndroid Build Coastguard Worker //
8*9880d681SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
9*9880d681SAndroid Build Coastguard Worker 
10*9880d681SAndroid Build Coastguard Worker #ifndef LLVM_LIB_TARGET_X86_ASMPARSER_X86ASMPARSERCOMMON_H
11*9880d681SAndroid Build Coastguard Worker #define LLVM_LIB_TARGET_X86_ASMPARSER_X86ASMPARSERCOMMON_H
12*9880d681SAndroid Build Coastguard Worker 
13*9880d681SAndroid Build Coastguard Worker #include "llvm/Support/MathExtras.h"
14*9880d681SAndroid Build Coastguard Worker 
15*9880d681SAndroid Build Coastguard Worker namespace llvm {
16*9880d681SAndroid Build Coastguard Worker 
isImmSExti16i8Value(uint64_t Value)17*9880d681SAndroid Build Coastguard Worker inline bool isImmSExti16i8Value(uint64_t Value) {
18*9880d681SAndroid Build Coastguard Worker   return isInt<8>(Value) ||
19*9880d681SAndroid Build Coastguard Worker          (isUInt<16>(Value) && isInt<8>(static_cast<int16_t>(Value)));
20*9880d681SAndroid Build Coastguard Worker }
21*9880d681SAndroid Build Coastguard Worker 
isImmSExti32i8Value(uint64_t Value)22*9880d681SAndroid Build Coastguard Worker inline bool isImmSExti32i8Value(uint64_t Value) {
23*9880d681SAndroid Build Coastguard Worker   return isInt<8>(Value) ||
24*9880d681SAndroid Build Coastguard Worker          (isUInt<32>(Value) && isInt<8>(static_cast<int32_t>(Value)));
25*9880d681SAndroid Build Coastguard Worker }
26*9880d681SAndroid Build Coastguard Worker 
isImmSExti64i8Value(uint64_t Value)27*9880d681SAndroid Build Coastguard Worker inline bool isImmSExti64i8Value(uint64_t Value) {
28*9880d681SAndroid Build Coastguard Worker   return isInt<8>(Value);
29*9880d681SAndroid Build Coastguard Worker }
30*9880d681SAndroid Build Coastguard Worker 
isImmSExti64i32Value(uint64_t Value)31*9880d681SAndroid Build Coastguard Worker inline bool isImmSExti64i32Value(uint64_t Value) {
32*9880d681SAndroid Build Coastguard Worker   return isInt<32>(Value);
33*9880d681SAndroid Build Coastguard Worker }
34*9880d681SAndroid Build Coastguard Worker 
isImmUnsignedi8Value(uint64_t Value)35*9880d681SAndroid Build Coastguard Worker inline bool isImmUnsignedi8Value(uint64_t Value) {
36*9880d681SAndroid Build Coastguard Worker   return isUInt<8>(Value) || isInt<8>(Value);
37*9880d681SAndroid Build Coastguard Worker }
38*9880d681SAndroid Build Coastguard Worker 
39*9880d681SAndroid Build Coastguard Worker } // End of namespace llvm
40*9880d681SAndroid Build Coastguard Worker 
41*9880d681SAndroid Build Coastguard Worker #endif
42