Lines Matching +full:fractional +full:- +full:n

1 //===--- TargetInfo.cpp - Information about Target machine ----------------===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
11 //===----------------------------------------------------------------------===//
28 // language-specific address space.
55 // Set defaults. Defaults are set for a 32-bit RISC platform, like PPC or in TargetInfo()
86 // Fixed point default integral and fractional bit sizes in TargetInfo()
87 // We give the _Accum 1 fewer fractional bits than their corresponding _Fract in TargetInfo()
88 // types by default to have the same number of fractional bits between _Accum in TargetInfo()
98 // From the glibc documentation, on GNU systems, malloc guarantees 16-byte in TargetInfo()
99 // alignment on 64-bit systems and 8-byte alignment on 32-bit systems. See in TargetInfo()
100 // https://www.gnu.org/software/libc/manual/html_node/Malloc-Examples.html. in TargetInfo()
102 // and OpenBSD, the alignment is 16 bytes on both 64-bit and 32-bit systems. in TargetInfo()
197 Diags.Report(diag::err_opt_not_valid_on_target) << "cf-protection=branch"; in checkCFProtectionBranchSupported()
203 Diags.Report(diag::err_opt_not_valid_on_target) << "cf-protection=return"; in checkCFProtectionReturnSupported()
207 /// getTypeName - Return the user string for the specified integer type enum.
208 /// For example, SignedShort -> "short".
225 /// getTypeConstantSuffix - Return the constant suffix for the specified
226 /// integer type enum. For example, SignedLong -> "L".
249 /// getTypeFormatModifier - Return the printf format modifier for the
250 /// specified integer type enum. For example, SignedLong -> "l".
268 /// getTypeWidth - Return the width (in bits) of the specified integer type
269 /// enum. For example, SignedInt -> getIntWidth().
350 /// getTypeAlign - Return the alignment (in bits) of the specified integer type
351 /// enum. For example, SignedInt -> getIntAlign().
368 /// isTypeSigned - Return whether an integer types is signed. Returns true if
388 /// adjust - Set forced language options.
430 // Embedded 32-bit targets (OpenCL EP) might have double C type in adjust()
453 // OpenCL C v3.0 s6.7.5 - The generic address space requires support for in adjust()
456 // OpenCL C v3.0 s6.2.1 - OpenCL pipes require support of OpenCL C 2.0 in adjust()
515 // Each unsigned fixed point type has the same number of fractional bits as in adjust()
521 Diags.Report(diag::err_opt_not_valid_on_target) << "-fprotect-parens"; in adjust()
540 if (Name[0] != '+' && Name[0] != '-') in initFeatureMap()
568 if (Feature.starts_with("branch-protection=")) { in parseTargetAttr()
584 } else if (Feature.starts_with("no-")) in parseTargetAttr()
585 Ret.Features.push_back("-" + Feature.split("-").second.str()); in parseTargetAttr()
618 //===----------------------------------------------------------------------===//
628 /// isValidClobber - Returns whether the passed in string is
636 /// isValidGCCRegisterName - Returns whether the passed in string
652 unsigned n; in isValidGCCRegisterName() local
653 if (!Name.getAsInteger(0, n)) in isValidGCCRegisterName()
654 return n < Names.size(); in isValidGCCRegisterName()
695 unsigned n; in getNormalizedGCCRegisterName() local
696 if (!Name.getAsInteger(0, n)) { in getNormalizedGCCRegisterName()
697 assert(n < Names.size() && "Out of bounds register number!"); in getNormalizedGCCRegisterName()
698 return Names[n]; in getNormalizedGCCRegisterName()
756 case 'V': // non-offsetable memory operand. in validateOutputConstraint()
778 case 'i': // Ignore i,n,E,F as output constraints (match from the other in validateOutputConstraint()
780 case 'n': in validateOutputConstraint()
789 // Early clobber with a read-write constraint which doesn't permit registers in validateOutputConstraint()
813 std::string SymbolicName(Start, Name - Start); in resolveSymbolicName()
840 if (StringRef(DigitStart, DigitEnd - DigitStart + 1) in validateInputConstraint()
888 case 'n': // immediate integer with a known value. in validateInputConstraint()
891 case 'I': // Various constant constraints with target-specific meanings. in validateInputConstraint()
896 case 'N': in validateInputConstraint()
907 case 'V': // non-offsettable memory operand. in validateInputConstraint()
944 // Check that the number of fractional and integral bits (and maybe sign) can in CheckFixedPointBits()
962 // Each unsigned fract type has either the same number of fractional bits in CheckFixedPointBits()
963 // as, or one more fractional bit than, its corresponding signed fract type. in CheckFixedPointBits()
965 getShortFractScale() == getUnsignedShortFractScale() - 1); in CheckFixedPointBits()
967 getFractScale() == getUnsignedFractScale() - 1); in CheckFixedPointBits()
969 getLongFractScale() == getUnsignedLongFractScale() - 1); in CheckFixedPointBits()
972 // fractional bits is nondecreasing for each of the following sets of in CheckFixedPointBits()
973 // fixed-point types: in CheckFixedPointBits()
974 // - signed fract types in CheckFixedPointBits()
975 // - unsigned fract types in CheckFixedPointBits()
976 // - signed accum types in CheckFixedPointBits()
977 // - unsigned accum types. in CheckFixedPointBits()
988 // fixed-point types: in CheckFixedPointBits()
989 // - signed accum types in CheckFixedPointBits()
990 // - unsigned accum types in CheckFixedPointBits()