================ @@ -2595,6 +2595,14 @@ GetX86_64ByValArgumentPair(llvm::Type *Lo, llvm::Type *Hi, ABIArgInfo X86_64ABIInfo:: classifyReturnType(QualType RetTy) const { + // return int128 as i128 + if (const BuiltinType *BT = RetTy->getAs<BuiltinType>()) { + BuiltinType::Kind k = BT->getKind(); + if (k == BuiltinType::Int128 || k == BuiltinType::UInt128) { + return ABIArgInfo::getDirect(); + } + } + // AMD64-ABI 3.2.3p4: Rule 1. Classify the return type with the // classification algorithm. X86_64ABIInfo::Class Lo, Hi; ---------------- efriedma-quic wrote:
We still need to handle i128 in structs. We could maybe extend GetINTEGERTypeAtOffset to allow it to return i128 when appropriate. (That code is pretty fragile, though; see #76017.) https://github.com/llvm/llvm-project/pull/135230 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits