Lines Matching +full:32 +full:-
1 //===--- X86.h - Declare X86 target feature support -------------*- C++ -*-===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
11 //===----------------------------------------------------------------------===//
54 // X86 target abstract base class; x86-32 and x86-64 are very close, so
243 // esp and ebp are the only 32-bit registers the x86 backend can currently in validateGlobalRegisterVariable()
246 // Check that the register size is 32-bit. in validateGlobalRegisterVariable()
247 HasSizeMismatch = RegSize != 32; in validateGlobalRegisterVariable()
347 return "no-mmx"; in getABI()
364 // Allow 32-bit only CPUs regardless of 64-bit mode unlike isValidCPUName. in isValidTuneCPUName()
365 // NOTE: gcc rejects 32-bit mtune CPUs in 64-bit mode. But being lenient in isValidTuneCPUName()
388 // Most of the non-ARM calling conventions are i386 conventions. in checkCallingConvention()
422 return 32; in getPointerWidthV()
434 // X86-32 generic target
439 DoubleAlign = LongLongAlign = 32; in X86_32TargetInfo()
441 LongDoubleAlign = 32; in X86_32TargetInfo()
444 ? "e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:" in X86_32TargetInfo()
445 "128-f64:32:64-f80:32-n8:16:32-S128" in X86_32TargetInfo()
446 : "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:" in X86_32TargetInfo()
447 "128-f64:32:64-f80:32-n8:16:32-S128", in X86_32TargetInfo()
459 // x86-32 has atomics up to 8 bytes in X86_32TargetInfo()
461 MaxAtomicInlineWidth = 32; in X86_32TargetInfo()
473 return -1; in getEHDataRegisterNumber()
490 return Size <= 32; in validateOperandSize()
538 // The watchOS simulator uses the builtin bool type for Objective-C. in DarwinI386TargetInfo()
544 resetDataLayout("e-m:o-p:32:32-p270:32:32-p271:32:32-p272:64:64-i128:128-" in DarwinI386TargetInfo()
545 "f64:32:64-f80:128-n8:16:32-S128", in DarwinI386TargetInfo()
562 // x86-32 Windows target
572 std::string Layout = IsWinCOFF ? "e-m:x" : "e-m:e"; in WindowsX86_32TargetInfo()
573 Layout += "-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-"; in WindowsX86_32TargetInfo()
574 Layout += IsMSVC ? "f80:128" : "f80:32"; in WindowsX86_32TargetInfo()
575 Layout += "-n8:16:32-a:0:32-S32"; in WindowsX86_32TargetInfo()
580 // x86-32 Windows Visual Studio target
601 // x86-32 MinGW target
617 // x86-32 Cygwin target
622 this->WCharType = TargetInfo::UnsignedShort; in CygwinX86_32TargetInfo()
624 resetDataLayout("e-m:x-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:64-" in CygwinX86_32TargetInfo()
625 "i128:128-f80:32-n8:16:32-a:0:32-S32", in CygwinX86_32TargetInfo()
642 // x86-32 Haiku target
656 // X86-32 MCU target
662 DefaultAlignForAttributeAligned = 32; in MCUX86_32TargetInfo()
664 resetDataLayout("e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-i64:32-" in MCUX86_32TargetInfo()
665 "f64:32-f128:32-n8:16:32-a:0:32-S32"); in MCUX86_32TargetInfo()
684 // x86-32 RTEMS target
702 // x86-64 generic target
710 LongWidth = LongAlign = PointerWidth = PointerAlign = IsX32 ? 32 : 64; in X86_64TargetInfo()
723 // Pointers are 32-bit in x32. in X86_64TargetInfo()
724 resetDataLayout(IsX32 ? "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-" in X86_64TargetInfo()
725 "i64:64-i128:128-f80:128-n8:16:32:64-S128" in X86_64TargetInfo()
726 : IsWinCOFF ? "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:" in X86_64TargetInfo()
727 "64-i128:128-f80:128-n8:16:32:64-S128" in X86_64TargetInfo()
728 : "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:" in X86_64TargetInfo()
729 "64-i128:128-f80:128-n8:16:32:64-S128"); in X86_64TargetInfo()
740 // x86-64 has atomics up to 16 bytes. in X86_64TargetInfo()
754 return -1; in getEHDataRegisterNumber()
789 // rsp and rbp are the only 64-bit registers the x86 backend can currently in validateGlobalRegisterVariable()
792 // Check that the register size is 64-bit. in validateGlobalRegisterVariable()
797 // Check if the register is a 32-bit register the backend can handle. in validateGlobalRegisterVariable()
815 // x86-64 Windows target
821 LongWidth = LongAlign = 32; in WindowsX86_64TargetInfo()
858 // x86-64 Windows Visual Studio target
882 // x86-64 MinGW target
896 // x86-64 Cygwin target
901 this->WCharType = TargetInfo::UnsignedShort; in CygwinX86_64TargetInfo()
924 // The 64-bit iOS simulator uses the builtin bool type for Objective-C. in DarwinX86_64TargetInfo()
928 resetDataLayout("e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-" in DarwinX86_64TargetInfo()
929 "f80:128-n8:16:32:64-S128", in DarwinX86_64TargetInfo()
961 SuitableAlign = 32; in AndroidX86_32TargetInfo()
983 SuitableAlign = 32; in OHOSX86_32TargetInfo()