Lines Matching refs:Hi
830 /// Post merger cleanup, reduces a malformed Hi and Lo pair to
839 /// \param Hi - The classification for the parts of the type
842 void postMerge(unsigned AggregateSize, Class &Lo, Class &Hi) const;
850 /// \param Hi - The classification for the parts of the type
863 /// If the \arg Lo class is ComplexX87, then the \arg Hi class will
865 void classify(QualType T, uint64_t OffsetBase, Class &Lo, Class &Hi) const;
981 Class &Hi) const {
1003 if (Hi == Memory)
1005 if (Hi == X87Up && Lo != X87 && honorsRevision0_98())
1007 if (AggregateSize > 128 && (Lo != SSE || Hi != SSEUp))
1009 if (Hi == SSEUp && Lo != SSE)
1010 Hi = SSE;
1054 Class &Lo, Class &Hi) const {
1063 Lo = Hi = NoClass;
1065 Class &Current = OffsetBase < 64 ? Lo : Hi;
1075 Hi = Integer;
1082 Hi = X87Up;
1091 classify(ET->getDecl()->getIntegerType(), OffsetBase, Lo, Hi);
1102 Lo = Hi = Integer;
1120 Hi = Lo;
1138 Hi = Lo;
1142 // SSEUP. The original Lo and Hi design considers that types can't be
1143 // greater than 128-bits, so a 64-bit split in Hi and Lo makes sense.
1146 // complexity and just consider Hi to match the 64-256 part.
1148 Hi = SSEUp;
1161 Lo = Hi = Integer;
1165 Lo = Hi = SSE;
1173 if (Hi == NoClass && EB_Real != EB_Imag)
1174 Hi = Lo;
1203 // contains a single 256-bit element. Since Lo and Hi logic isn't extended
1212 Hi = merge(Hi, FieldHi);
1213 if (Lo == Memory || Hi == Memory)
1217 postMerge(Size, Lo, Hi);
1218 assert((Hi != SSEUp || Lo == SSE) && "Invalid SSEUp array classification.");
1265 Hi = merge(Hi, FieldHi);
1266 if (Lo == Memory || Hi == Memory)
1282 // contains a single 256-bit element. Since Lo and Hi logic isn't extended
1329 Hi = merge(Hi, FieldHi);
1330 if (Lo == Memory || Hi == Memory)
1334 postMerge(Size, Lo, Hi);
1621 GetX86_64ByValArgumentPair(llvm::Type *Lo, llvm::Type *Hi,
1628 unsigned HiAlign = TD.getABITypeAlignment(Hi);
1648 llvm::StructType *Result = llvm::StructType::get(Lo, Hi, NULL);
1661 X86_64ABIInfo::Class Lo, Hi;
1662 classify(RetTy, 0, Lo, Hi);
1665 assert((Hi != Memory || Lo == Memory) && "Invalid memory classification.");
1666 assert((Hi != SSEUp || Lo == SSE) && "Invalid SSEUp classification.");
1671 if (Hi == NoClass)
1675 assert((Hi == SSE || Hi == Integer || Hi == X87Up) &&
1695 if (Hi == NoClass && isa<llvm::IntegerType>(ResType)) {
1722 assert(Hi == ComplexX87 && "Unexpected ComplexX87 classification.");
1730 switch (Hi) {
1732 // never occur as a hi class.
1735 assert(0 && "Invalid classification for hi word.");
1788 X86_64ABIInfo::Class Lo, Hi;
1789 classify(Ty, 0, Lo, Hi);
1793 assert((Hi != Memory || Lo == Memory) && "Invalid memory classification.");
1794 assert((Hi != SSEUp || Lo == SSE) && "Invalid SSEUp classification.");
1801 if (Hi == NoClass)
1805 assert((Hi == SSE || Hi == Integer || Hi == X87Up) &&
1836 if (Hi == NoClass && isa<llvm::IntegerType>(ResType)) {
1860 switch (Hi) {
1862 // never occur as hi classes, and X87Up must be preceded by X87,
1867 assert(0 && "Invalid classification for hi word.");
2995 // 64 and 65 are the multiply/divide registers, $hi and $lo.