xref: /freebsd/contrib/llvm-project/llvm/lib/Target/X86/AsmParser/X86AsmParserCommon.h (revision dd41de95a84d979615a2ef11df6850622bf6184e)
1 //===-- X86AsmParserCommon.h - Common functions for X86AsmParser ---------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLVM_LIB_TARGET_X86_ASMPARSER_X86ASMPARSERCOMMON_H
10 #define LLVM_LIB_TARGET_X86_ASMPARSER_X86ASMPARSERCOMMON_H
11 
12 #include "llvm/Support/MathExtras.h"
13 
14 namespace llvm {
15 
16 inline bool isImmSExti16i8Value(uint64_t Value) {
17   return isInt<8>(Value) ||
18          (isUInt<16>(Value) && isInt<8>(static_cast<int16_t>(Value)));
19 }
20 
21 inline bool isImmSExti32i8Value(uint64_t Value) {
22   return isInt<8>(Value) ||
23          (isUInt<32>(Value) && isInt<8>(static_cast<int32_t>(Value)));
24 }
25 
26 inline bool isImmSExti64i8Value(uint64_t Value) {
27   return isInt<8>(Value);
28 }
29 
30 inline bool isImmSExti64i32Value(uint64_t Value) {
31   return isInt<32>(Value);
32 }
33 
34 inline bool isImmUnsignedi8Value(uint64_t Value) {
35   return isUInt<8>(Value) || isInt<8>(Value);
36 }
37 
38 inline bool isImmUnsignedi4Value(uint64_t Value) {
39   return isUInt<4>(Value);
40 }
41 
42 } // End of namespace llvm
43 
44 #endif
45